frontPanel/src/pages/Questions/SwitchQuestionsPage.tsx

130 lines
3.3 KiB
TypeScript
Raw Normal View History

2023-11-29 13:49:52 +00:00
import { AnyTypedQuizQuestion } from "@model/questionTypes/shared";
import DataOptions from "./DataOptions/DataOptions";
2023-11-15 18:38:02 +00:00
import DropDown from "./DropDown/DropDown";
import Emoji from "./Emoji/Emoji";
import OptionsAndPicture from "./OptionsAndPicture/OptionsAndPicture";
import OptionsPicture from "./OptionsPicture/OptionsPicture";
import OwnTextField from "./OwnTextField/OwnTextField";
import PageOptions from "./PageOptions/PageOptions";
import RatingOptions from "./RatingOptions/RatingOptions";
2023-11-15 18:38:02 +00:00
import SliderOptions from "./SliderOptions/SliderOptions";
import UploadFile from "./UploadFile/UploadFile";
2023-11-15 18:38:02 +00:00
import AnswerOptions from "./answerOptions/AnswerOptions";
2023-11-29 13:49:52 +00:00
import { notReachable } from "../../utils/notReachable";
2023-11-15 18:38:02 +00:00
interface Props {
question: AnyTypedQuizQuestion;
openBranchingPage: boolean;
setOpenBranchingPage: (a: boolean) => void;
}
export default function SwitchQuestionsPage({
question,
openBranchingPage,
setOpenBranchingPage,
}: Props) {
switch (question.type) {
case "variant":
return (
<AnswerOptions
question={question}
openBranchingPage={openBranchingPage}
setOpenBranchingPage={setOpenBranchingPage}
/>
);
2023-09-15 12:37:12 +00:00
case "images":
return (
<OptionsPicture
question={question}
openBranchingPage={openBranchingPage}
setOpenBranchingPage={setOpenBranchingPage}
/>
);
case "varimg":
return (
<OptionsAndPicture
question={question}
openBranchingPage={openBranchingPage}
setOpenBranchingPage={setOpenBranchingPage}
/>
);
case "emoji":
return (
<Emoji
question={question}
openBranchingPage={openBranchingPage}
setOpenBranchingPage={setOpenBranchingPage}
/>
);
case "text":
return (
<OwnTextField
question={question}
openBranchingPage={openBranchingPage}
setOpenBranchingPage={setOpenBranchingPage}
/>
);
case "select":
return (
<DropDown
question={question}
openBranchingPage={openBranchingPage}
setOpenBranchingPage={setOpenBranchingPage}
/>
);
case "date":
return (
<DataOptions
question={question}
openBranchingPage={openBranchingPage}
setOpenBranchingPage={setOpenBranchingPage}
/>
);
case "number":
return (
<SliderOptions
question={question}
openBranchingPage={openBranchingPage}
setOpenBranchingPage={setOpenBranchingPage}
/>
);
case "file":
return (
<UploadFile
question={question}
openBranchingPage={openBranchingPage}
setOpenBranchingPage={setOpenBranchingPage}
/>
);
case "page":
return (
<PageOptions
question={question}
openBranchingPage={openBranchingPage}
setOpenBranchingPage={setOpenBranchingPage}
/>
);
case "rating":
return (
<RatingOptions
question={question}
openBranchingPage={openBranchingPage}
setOpenBranchingPage={setOpenBranchingPage}
/>
);
default:
notReachable(question);
}
2023-08-18 11:16:56 +00:00
}