import moment from "moment"; import { DatePicker } from "@mui/x-date-pickers"; import { Box, Typography, useTheme } from "@mui/material"; import { useQuizViewStore, updateAnswer } from "@stores/quizView"; import type { QuizQuestionDate } from "../../../model/questionTypes/date"; import CalendarIcon from "@icons/CalendarIcon"; import { enqueueSnackbar } from "notistack"; import { sendAnswer } from "@api/quizRelase"; import { quizThemes } from "@utils/themes/Publication/themePublication"; import { useQuizData } from "@contexts/QuizDataContext"; import { useState } from "react"; type DateProps = { currentQuestion: QuizQuestionDate; }; export const Date = ({ currentQuestion }: DateProps) => { const theme = useTheme(); const { settings, quizId } = useQuizData(); const { answers } = useQuizViewStore(); const answer = answers.find( ({ questionId }) => questionId === currentQuestion.id )?.answer as string; const currentAnswer = moment(answer) || moment(); const [readySend, setReadySend] = useState(true) return ( {currentQuestion.title} ( ), }} value={currentAnswer} onChange={async (date) => { if (readySend) { setReadySend(false) if (!date) { return; } try { await sendAnswer({ questionId: currentQuestion.id, body: moment(date).format("YYYY.MM.DD"), qid: quizId, }); updateAnswer( currentQuestion.id, date, 0 ); } catch (e) { enqueueSnackbar("ответ не был засчитан"); } setReadySend(true) } }} slotProps={{ openPickerButton: { sx: { p: 0, }, "data-cy": "open-datepicker", }, layout: { sx: { backgroundColor: theme.palette.background.default }, }, }} sx={{ "& .MuiInputBase-root": { backgroundColor: quizThemes[settings.cfg.theme].isLight ? "white" : theme.palette.background.default, borderRadius: "10px", maxWidth: "250px", pr: "22px", "& input": { py: "11px", pl: "20px", lineHeight: "19px", }, "& fieldset": { borderColor: "#9A9AAF", }, }, }} /> ); };