import {LoadingList} from "../components/LoadingList.tsx"; import {AgreementQuestion, Question, QuestionPair, QuestionType, Survey} from "../types/survey.ts"; import {Link, useParams} from "react-router-dom"; import React, { useState } from "react"; import {useData, useDataPage} from "../API/common.ts"; import {LoadingData} from "../components/LoadingData.tsx"; export function SurveyPage() { const {surveyId} = useParams(); const survey = useData("surveys", "surveys", surveyId); return (

{survey?.title}

{survey?.description}
); } function SurveyQuestions({survey}: { survey: Survey | null | undefined }) { const _survey = survey as Survey; const [questions, setQuestions] = useState(null); const questionsPairs = useDataPage("surveys", "question-pairs", {survey:_survey.id}); const questionsAgreement = useDataPage("surveys", "agreement-questions", {survey:_survey.id}); if (questions === null && questionsPairs.items !== null && questionsAgreement.items !== null){ function setQuestionType(question: Question, questionType: QuestionType) { question.questionType = questionType; return question; } var _questions = [...questionsPairs.items.map(q=>setQuestionType(q, QuestionType.QuestionPair)), ...questionsAgreement.items.map(q=>setQuestionType(q, QuestionType.AgreementQuestion))]; _questions.sort(()=>Math.random() - .5); console.log(questionsPairs.items.map(q=>setQuestionType(q, QuestionType.QuestionPair))); setQuestions(_questions); } //console.log(questions); return ( <> ( ))}/> ); } function QuestionBlock({question}:{question: Question}) { switch (question.questionType) { case QuestionType.AgreementQuestion: const qa = question as AgreementQuestion; return (
(Вы согласны с утверждением?) {qa.question}
); case QuestionType.QuestionPair: const qp = question as QuestionPair; return (
(Выберите подходящий ответ) {qp.statements.map(s=>())}
); default: break; } return null; }