From 960ee026bd35580d697b91ef49f6d71c466103f6 Mon Sep 17 00:00:00 2001 From: nflnkr Date: Wed, 29 Nov 2023 18:33:54 +0300 Subject: [PATCH] fix form quiz question components --- .../FormDraggableList/QuestionPageCard.tsx | 8 +++-- .../Questions/Form/FormQuestionsPage.tsx | 3 +- .../Questions/Form/FormTypeQuestions.tsx | 31 ++++++------------- 3 files changed, 16 insertions(+), 26 deletions(-) diff --git a/src/pages/Questions/Form/FormDraggableList/QuestionPageCard.tsx b/src/pages/Questions/Form/FormDraggableList/QuestionPageCard.tsx index 2a445934..89e8006e 100644 --- a/src/pages/Questions/Form/FormDraggableList/QuestionPageCard.tsx +++ b/src/pages/Questions/Form/FormDraggableList/QuestionPageCard.tsx @@ -12,7 +12,7 @@ import Page from "@icons/questionsPage/page"; import RatingIcon from "@icons/questionsPage/rating"; import Slider from "@icons/questionsPage/slider"; import { Box, InputAdornment, Paper } from "@mui/material"; -import { updateQuestion } from "@root/questions/actions"; +import { updateQuestion, updateUntypedQuestion } from "@root/questions/actions"; import CustomTextField from "@ui_kit/CustomTextField"; import { useRef, useState } from "react"; import type { DraggableProvidedDragHandleProps } from "react-beautiful-dnd"; @@ -39,7 +39,9 @@ export default function QuestionsPageCard({ const anchorRef = useRef(null); const setTitle = useDebouncedCallback((title) => { - updateQuestion(question.id, question => { + const updateQuestionFn = question.type === null ? updateUntypedQuestion : updateQuestion; + + updateQuestionFn(question.id, question => { question.title = title; }); }, 200); @@ -106,7 +108,7 @@ export default function QuestionsPageCard({ }} /> {question.type === null ? ( - null // // TODO + ) : ( )} diff --git a/src/pages/Questions/Form/FormQuestionsPage.tsx b/src/pages/Questions/Form/FormQuestionsPage.tsx index 814053b3..9a6c35cf 100644 --- a/src/pages/Questions/Form/FormQuestionsPage.tsx +++ b/src/pages/Questions/Form/FormQuestionsPage.tsx @@ -1,5 +1,5 @@ import { Box, Button, Typography, useTheme } from "@mui/material"; -import { incrementCurrentStep } from "@root/quizes/actions"; +import { decrementCurrentStep, incrementCurrentStep } from "@root/quizes/actions"; import QuizPreview from "@ui_kit/QuizPreview/QuizPreview"; import { createPortal } from "react-dom"; import AddAnswer from "../../../assets/icons/questionsPage/addAnswer"; @@ -89,6 +89,7 @@ export default function FormQuestionsPage() { diff --git a/src/pages/Questions/Form/FormTypeQuestions.tsx b/src/pages/Questions/Form/FormTypeQuestions.tsx index f8a741a6..0ab7d605 100644 --- a/src/pages/Questions/Form/FormTypeQuestions.tsx +++ b/src/pages/Questions/Form/FormTypeQuestions.tsx @@ -1,23 +1,20 @@ -import { useState } from "react"; import { Box } from "@mui/material"; import QuestionsMiniButton from "@ui_kit/QuestionsMiniButton"; -import ButtonsOptions from "../ButtonsOptions"; -import SwitchAnswerOptions from "../answerOptions/switchAnswerOptions"; import { BUTTON_TYPE_QUESTIONS } from "../TypeQuestions"; import Answer from "../../../assets/icons/questionsPage/answer"; -import Input from "../../../assets/icons/questionsPage/input"; -import DropDown from "../../../assets/icons/questionsPage/drop_down"; import Date from "../../../assets/icons/questionsPage/date"; +import Download from "../../../assets/icons/questionsPage/download"; +import DropDown from "../../../assets/icons/questionsPage/drop_down"; +import Input from "../../../assets/icons/questionsPage/input"; import Slider from "../../../assets/icons/questionsPage/slider"; -import Download from "../../../assets/icons/questionsPage/download"; -import type { - AnyTypedQuizQuestion, -} from "../../../model/questionTypes/shared"; import { QuestionType } from "@model/question/question"; -import { updateQuestion } from "@root/questions/actions"; +import { createTypedQuestion } from "@root/questions/actions"; +import type { + UntypedQuizQuestion +} from "../../../model/questionTypes/shared"; type ButtonTypeQuestion = { @@ -60,11 +57,10 @@ const BUTTON_TYPE_SHORT_QUESTIONS: ButtonTypeQuestion[] = [ ]; interface Props { - question: AnyTypedQuizQuestion; + question: UntypedQuizQuestion; } export default function FormTypeQuestions({ question }: Props) { - const [switchState, setSwitchState] = useState(""); return ( @@ -83,22 +79,13 @@ export default function FormTypeQuestions({ question }: Props) { { - updateQuestion(question.id, question => { - question.type = questionType; - }) + createTypedQuestion(question.id, questionType); }} icon={icon} text={title} /> ))} - - {/* TODO конфликт типов */} - {/* */} ); }