frontPanel/src/pages/Questions/SwitchQuestionsPage.tsx

59 lines
1.7 KiB
TypeScript
Raw Normal View History

2023-11-15 18:38:02 +00:00
import { AnyQuizQuestion } 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";
interface Props {
2023-11-15 18:38:02 +00:00
question: AnyQuizQuestion;
}
2023-11-15 18:38:02 +00:00
export default function SwitchQuestionsPage({ question }: Props) {
2023-09-15 12:37:12 +00:00
2023-11-15 18:38:02 +00:00
switch (question.type) {
case "variant":
return <AnswerOptions question={question} />;
2023-11-15 18:38:02 +00:00
case "images":
return <OptionsPicture question={question} />;
2023-11-15 18:38:02 +00:00
case "varimg":
return <OptionsAndPicture question={question} />;
2023-11-15 18:38:02 +00:00
case "emoji":
return <Emoji question={question} />;
2023-11-15 18:38:02 +00:00
case "text":
return <OwnTextField question={question} />;
2023-11-15 18:38:02 +00:00
case "select":
return <DropDown question={question} />;
2023-11-15 18:38:02 +00:00
case "date":
return <DataOptions question={question} />;
2023-11-15 18:38:02 +00:00
case "number":
return <SliderOptions question={question} />;
2023-11-15 18:38:02 +00:00
case "file":
return <UploadFile question={question} />;
2023-11-15 18:38:02 +00:00
case "page":
return <PageOptions question={question} />;
2023-11-15 18:38:02 +00:00
case "rating":
return <RatingOptions question={question} />;
2023-11-15 18:38:02 +00:00
default:
return <></>;
}
2023-08-18 11:16:56 +00:00
}