diff --git a/app/(main)/quiz/[quiz_id]/page.tsx b/app/(main)/quiz/[quiz_id]/page.tsx index d18e18c..fb0ad77 100644 --- a/app/(main)/quiz/[quiz_id]/page.tsx +++ b/app/(main)/quiz/[quiz_id]/page.tsx @@ -29,6 +29,8 @@ const page = ({ params }: IParams) => { const { step, setStep } = useSteps(); useEffect(() => { + const local_info = sessionStorage.getItem("TURKMENTV_QUIZ_INFO"); + if (!params.quiz_id) { Queries.getQuizQuestions().then((res) => { setData(res); @@ -39,7 +41,18 @@ const page = ({ params }: IParams) => { : setQuizFinished(true) ); } else if (res.data.steps && res.data.steps?.length > 0) { - setStep(res.data.steps[res.data.steps.length - 1].tapgyr); + if (local_info) { + if ( + JSON.parse(local_info)?.tab && + JSON.parse(local_info)?.uuid === res.data.uuid + ) { + setStep(JSON.parse(local_info)?.tab); + } else { + setStep(res.data.steps[res.data.steps.length - 1].tapgyr); + } + } else { + setStep(res.data.steps[res.data.steps.length - 1].tapgyr); + } for (let i = 0; i < res.data.steps.length; i++) { res.data.steps[i].questions.map((question) => question.status === "active" || question.status === "new" @@ -59,7 +72,18 @@ const page = ({ params }: IParams) => { : setQuizFinished(true) ); } else if (res.data.steps && res.data.steps?.length > 0) { - setStep(res.data.steps[res.data.steps.length - 1].tapgyr); + if (local_info) { + if ( + JSON.parse(local_info)?.tab && + JSON.parse(local_info)?.uuid === res.data.uuid + ) { + setStep(JSON.parse(local_info)?.tab); + } else { + setStep(res.data.steps[res.data.steps.length - 1].tapgyr); + } + } else { + setStep(res.data.steps[res.data.steps.length - 1].tapgyr); + } for (let i = 0; i < res.data.steps.length; i++) { res.data.steps[i].questions.map((question) => question.status === "active" || question.status === "new" @@ -72,6 +96,18 @@ const page = ({ params }: IParams) => { } }, []); + useEffect(() => { + if (data) { + sessionStorage.setItem( + "TURKMENTV_QUIZ_INFO", + JSON.stringify({ + uuid: data.data.uuid, + tab: step, + }) + ); + } + }, [data, step]); + const mobile = useMediaQuery("(max-width: 768px)"); if (data) { diff --git a/app/(main)/quiz/[quiz_id]/results/page.tsx b/app/(main)/quiz/[quiz_id]/results/page.tsx index 6644099..a9b2ef9 100644 --- a/app/(main)/quiz/[quiz_id]/results/page.tsx +++ b/app/(main)/quiz/[quiz_id]/results/page.tsx @@ -23,13 +23,25 @@ const Page = ({ params }: IParams) => { const { resultData, error } = useQuizResults(); useEffect(() => { + const local_info = sessionStorage.getItem("TURKMENTV_QUIZ_RESULTS"); if (!resultData.length && !error) { setLoading(true); Queries.getQuizById(params.quiz_id) .then((res) => { setData(res.data); if (res.data.steps?.length) { - setTab(res.data?.steps[res.data?.steps.length - 1].tapgyr - 1); + if (local_info) { + if ( + JSON.parse(local_info)?.tab && + JSON.parse(local_info)?.uuid === res.data.uuid + ) { + setTab(JSON.parse(local_info)?.tab); + } else { + setTab(res.data?.steps[res.data?.steps.length - 1].tapgyr - 1); + } + } else { + setTab(res.data?.steps[res.data?.steps.length - 1].tapgyr - 1); + } } setLoading(false); }) @@ -40,6 +52,18 @@ const Page = ({ params }: IParams) => { } }, [resultData, error]); + useEffect(() => { + if (data) { + sessionStorage.setItem( + "TURKMENTV_QUIZ_RESULTS", + JSON.stringify({ + uuid: data?.uuid, + tab: tab, + }) + ); + } + }, [data, tab]); + return (
diff --git a/models/quizQuestions.model.ts b/models/quizQuestions.model.ts index 170c006..7b60d10 100644 --- a/models/quizQuestions.model.ts +++ b/models/quizQuestions.model.ts @@ -5,6 +5,7 @@ export interface IQuizQuestions { export interface Data { id: number; + uuid?: number; title: string; date: string; banner: string;