new feature in quiz page
This commit is contained in:
parent
b059d2afd6
commit
875620b64e
|
|
@ -29,6 +29,8 @@ const page = ({ params }: IParams) => {
|
||||||
const { step, setStep } = useSteps();
|
const { step, setStep } = useSteps();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
const local_info = sessionStorage.getItem("TURKMENTV_QUIZ_INFO");
|
||||||
|
|
||||||
if (!params.quiz_id) {
|
if (!params.quiz_id) {
|
||||||
Queries.getQuizQuestions().then((res) => {
|
Queries.getQuizQuestions().then((res) => {
|
||||||
setData(res);
|
setData(res);
|
||||||
|
|
@ -39,7 +41,18 @@ const page = ({ params }: IParams) => {
|
||||||
: setQuizFinished(true)
|
: setQuizFinished(true)
|
||||||
);
|
);
|
||||||
} else if (res.data.steps && res.data.steps?.length > 0) {
|
} 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++) {
|
for (let i = 0; i < res.data.steps.length; i++) {
|
||||||
res.data.steps[i].questions.map((question) =>
|
res.data.steps[i].questions.map((question) =>
|
||||||
question.status === "active" || question.status === "new"
|
question.status === "active" || question.status === "new"
|
||||||
|
|
@ -59,7 +72,18 @@ const page = ({ params }: IParams) => {
|
||||||
: setQuizFinished(true)
|
: setQuizFinished(true)
|
||||||
);
|
);
|
||||||
} else if (res.data.steps && res.data.steps?.length > 0) {
|
} 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++) {
|
for (let i = 0; i < res.data.steps.length; i++) {
|
||||||
res.data.steps[i].questions.map((question) =>
|
res.data.steps[i].questions.map((question) =>
|
||||||
question.status === "active" || question.status === "new"
|
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)");
|
const mobile = useMediaQuery("(max-width: 768px)");
|
||||||
|
|
||||||
if (data) {
|
if (data) {
|
||||||
|
|
|
||||||
|
|
@ -23,13 +23,25 @@ const Page = ({ params }: IParams) => {
|
||||||
const { resultData, error } = useQuizResults();
|
const { resultData, error } = useQuizResults();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
const local_info = sessionStorage.getItem("TURKMENTV_QUIZ_RESULTS");
|
||||||
if (!resultData.length && !error) {
|
if (!resultData.length && !error) {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
Queries.getQuizById(params.quiz_id)
|
Queries.getQuizById(params.quiz_id)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
setData(res.data);
|
setData(res.data);
|
||||||
if (res.data.steps?.length) {
|
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);
|
setLoading(false);
|
||||||
})
|
})
|
||||||
|
|
@ -40,6 +52,18 @@ const Page = ({ params }: IParams) => {
|
||||||
}
|
}
|
||||||
}, [resultData, error]);
|
}, [resultData, error]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (data) {
|
||||||
|
sessionStorage.setItem(
|
||||||
|
"TURKMENTV_QUIZ_RESULTS",
|
||||||
|
JSON.stringify({
|
||||||
|
uuid: data?.uuid,
|
||||||
|
tab: tab,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}, [data, tab]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className="container py-[40px]">
|
<section className="container py-[40px]">
|
||||||
<div className="flex flex-col w-full py-[40px] gap-[80px]">
|
<div className="flex flex-col w-full py-[40px] gap-[80px]">
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ export interface IQuizQuestions {
|
||||||
|
|
||||||
export interface Data {
|
export interface Data {
|
||||||
id: number;
|
id: number;
|
||||||
|
uuid?: number;
|
||||||
title: string;
|
title: string;
|
||||||
date: string;
|
date: string;
|
||||||
banner: string;
|
banner: string;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue