'use client'; import QuizQuestion from './QuizQuestion'; import { Queries } from '@/api/queries'; import { v4 } from 'uuid'; import { Dispatch, useContext, useEffect, useState } from 'react'; import { IQuizQuestions, Question } from '@/models/quizQuestions.model'; import QuizContext from '@/context/QuizContext'; interface IProps { setQuizFinished: Dispatch; quizFinished: boolean; initialQuestionsData: IQuizQuestions; paramsId?: string; } const QuizQuestionList = ({ setQuizFinished, quizFinished, initialQuestionsData, paramsId, }: IProps) => { const [data, setData] = useState(initialQuestionsData); const { quizSearchData } = useContext(QuizContext).quizSearchContext; const { setQuestionsData } = useContext(QuizContext).quizQuestionsContext; useEffect(() => { // Queries.getQuizQuestions().then((res) => setData(res)); setQuestionsData(initialQuestionsData.data.questions); // data?.data.questions.map((question) => // question.status === 'active' || question.status === 'new' // ? setQuizFinished(false) // : setQuizFinished(true), // ); if (paramsId && !quizFinished) { const interval = setInterval(() => { Queries.getQuiz(paramsId).then((res) => { setData(res); setQuestionsData(res.data.questions); res.data.questions.map((question) => question.status === 'active' || question.status === 'new' ? setQuizFinished(false) : setQuizFinished(true), ); }); }, 60000); return () => clearInterval(interval); } if (!paramsId && !quizFinished) { const interval = setInterval(() => { Queries.getQuizQuestions().then((res) => { setData(res); setQuestionsData(res.data.questions); res.data.questions.map((question) => question.status === 'active' || question.status === 'new' ? setQuizFinished(false) : setQuizFinished(true), ); }); // const isActive = data?.data.questions.some( // (question) => question.status === 'active' || question.status === 'new', // ); // data.data.questions.map((question) => // question.status === 'active' || question.status === 'new' // ? setQuizFinished(false) // : setQuizFinished(true), // ); }, 60000); return () => clearInterval(interval); // Queries.getQuizQuestions().then((res) => { // setData(res); // setQuestionsData(res.data.questions); // setSmsNumber(res.data.sms_number); // res.data.questions.map((question) => // question.status === 'active' || question.status === 'new' // ? setQuizFinished(false) // : setQuizFinished(true), // ); // }); } }, [quizFinished]); return (
{data && !quizSearchData ? ( data.data.questions.map((question, paramsId) => question.status !== 'new' ? ( ) : null, ) ) : quizSearchData && Object.values(quizSearchData.data).length === 0 ? (

Вы не участвовали ни в одном вопросе

) : data ? ( data.data.questions.map((question, id) => question.status !== 'new' ? ( ) : null, ) ) : null}
); }; export default QuizQuestionList;