frontPanel/src/pages/ResultPage/ResultSettings.tsx

123 lines
3.9 KiB
TypeScript
Raw Normal View History

import IconPlus from "@icons/IconPlus";
2023-11-20 17:22:13 +00:00
import Info from "@icons/Info";
import Plus from "@icons/Plus";
import ArrowLeft from "@icons/questionsPage/arrowLeft";
import { Box, Button, Typography, Paper, Modal, TextField } from "@mui/material";
2023-11-20 17:22:13 +00:00
import { incrementCurrentStep } from "@root/quizes/actions";
import CustomWrapper from "@ui_kit/CustomWrapper";
import { DescriptionForm } from "./DescriptionForm/DescriptionForm";
import { ResultListForm } from "./ResultListForm";
import { SettingForm } from "./SettingForm";
import { useEffect, useRef, useState } from "react";
import { WhenCard } from "./cards/WhenCard";
import { ResultCard, checkEmptyData } from "./cards/ResultCard";
import { EmailSettingsCard } from "./cards/EmailSettingsCard";
2023-12-19 23:08:33 +00:00
import { useCurrentQuiz } from "@root/quizes/hooks";
import { useQuestionsStore } from "@root/questions/store";
import { deleteQuestion } from "@root/questions/actions";
import { QuizQuestionResult } from "@model/questionTypes/result";
export const ResultSettings = () => {
2023-12-19 23:08:33 +00:00
const { questions } = useQuestionsStore();
const quiz = useCurrentQuiz();
const results = useQuestionsStore().questions.filter((q): q is QuizQuestionResult => q.type === "result");
const [quizExpand, setQuizExpand] = useState(true);
const [resultContract, setResultContract] = useState(true);
const isReadyToLeaveRef = useRef(true);
console.log(quiz)
console.log(results)
2023-12-19 23:08:33 +00:00
useEffect(
function calcIsReadyToLeave() {
let isReadyToLeave = true;
results.forEach((result) => {
if (checkEmptyData({ resultData: result })) {
isReadyToLeave = false;
}
});
isReadyToLeaveRef.current = isReadyToLeave;
},
[results]
);
useEffect(() => {
2023-12-19 23:08:33 +00:00
return () => {
if (isReadyToLeaveRef.current === false) alert("Пожалуйста, проверьте, что вы заполнили все результаты");
};
}, []);
2023-04-15 09:10:59 +00:00
return (
2023-10-16 14:23:44 +00:00
<Box sx={{ maxWidth: "796px" }}>
2023-12-19 23:08:33 +00:00
<Box
sx={{
display: "flex",
alignItems: "center",
margin: "60px 0 40px 0",
}}
>
<Typography variant="h5">Настройки результатов</Typography>
2023-04-15 09:10:59 +00:00
<Info />
<Button
disableRipple
sx={{
ml: "auto",
width: "73px",
height: "19px",
color: "#7E2AEA",
textDecoration: "underline",
fontSize: "16px",
"&:hover": {
background: "none",
textDecoration: "underline",
},
}}
variant="text"
onClick={() => setQuizExpand(!quizExpand)}
2023-04-15 09:10:59 +00:00
>
Свернуть
</Button>
</Box>
<WhenCard quizExpand={quizExpand} />
{quiz.config.resultInfo.when === "email" && <EmailSettingsCard quizExpand={quizExpand} />}
2023-12-19 23:08:33 +00:00
<Box sx={{ display: "flex", alignItems: "center", mb: "15px", mt: "15px" }}>
2023-04-15 09:10:59 +00:00
<Typography variant="p1" sx={{ color: "#4D4D4D", fontSize: "14px" }}>
Создайте результат
</Typography>
<Button
disableRipple
sx={{
ml: "auto",
height: "19px",
color: "#7E2AEA",
textDecoration: "underline",
fontSize: "16px",
"&:hover": {
background: "none",
textDecoration: "underline",
},
}}
variant="text"
onClick={() => setResultContract(!resultContract)}
2023-04-15 09:10:59 +00:00
>
Развернуть все
</Button>
</Box>
2023-12-19 23:08:33 +00:00
{results.map((resultQuestion) => (
<ResultCard resultContract={resultContract} resultData={resultQuestion} key={resultQuestion.id} />
))}
<Modal
open={false}
// onClose={handleClose}
aria-labelledby="modal-modal-title"
aria-describedby="modal-modal-description"
>
<></>
</Modal>
2023-04-15 09:10:59 +00:00
</Box>
);
2023-04-23 08:39:34 +00:00
};