diff --git a/app/(main)/quiz/[quiz_id]/results/page.tsx b/app/(main)/quiz/[quiz_id]/results/page.tsx index 0c4588d..f68785c 100644 --- a/app/(main)/quiz/[quiz_id]/results/page.tsx +++ b/app/(main)/quiz/[quiz_id]/results/page.tsx @@ -19,16 +19,25 @@ interface IParams { const Page = ({ params }: IParams) => { const [data, setData] = useState(); const [tab, setTab] = useState(0); + const [loading, setLoading] = useState(false); const { resultData, error } = useQuizResults(); useEffect(() => { if (!resultData.length && !error) { + setLoading(true); Queries.getQuizById(params.quiz_id) - .then((res) => setData(res.data)) - .catch(() => notFound()); + .then((res) => { + setData(res.data); + setLoading(false); + }) + .catch(() => { + setLoading(false); + notFound(); + }); } }, [resultData, error]); + return (
@@ -38,6 +47,7 @@ const Page = ({ params }: IParams) => { steps={data?.steps ? data?.steps : []} tab={tab} setStep={setTab} + loading={loading} /> {tab === "results" && ( { {(data?.banner || data?.banner_mobile) && ( <> {data.banner_mobile && ( -
+
banner -
+
-
+
>; tab: number | string; + loading: boolean; } -function QuizResultsTabs({ steps, setStep, tab }: IQuizTabProps) { +function QuizResultsTabs({ steps, setStep, tab, loading }: IQuizTabProps) { return ( -
- {steps.map((item) => ( + !loading && ( +
+ {steps.map((item) => ( + + ))} - ))} - -
+
+ ) ); } diff --git a/components/quiz/QuizTapgyrWinners.tsx b/components/quiz/QuizTapgyrWinners.tsx index 0b77b1c..3cf2ffd 100644 --- a/components/quiz/QuizTapgyrWinners.tsx +++ b/components/quiz/QuizTapgyrWinners.tsx @@ -137,8 +137,9 @@ const QuizTapgyrWinners = ({ id, tapgyr, questions }: IProps) => { (data[id - 1] as Datum).correct_answers_time ? id : (winner as ISearchNetije).tapgyr_breakdown - ? (winner as ISearchNetije).tapgyr_breakdown[tapgyr - 1] - .tapgyr_place + ? (winner as ISearchNetije).tapgyr_breakdown.find( + (item) => item.tapgyr === tapgyr + )?.tapgyr_place : id + 1} {/* Phone number */} @@ -191,7 +192,7 @@ const QuizTapgyrWinners = ({ id, tapgyr, questions }: IProps) => { ? matchingAnswer.serial_number_for_correct : matchingAnswer && matchingAnswer?.score === 0 ? "X" - : "0"} + : "-"} ); })} @@ -203,12 +204,12 @@ const QuizTapgyrWinners = ({ id, tapgyr, questions }: IProps) => { {(winner as Datum).correct_answers_time ? (winner as Datum).correct_answers_time - : (winner as ISearchNetije).tapgyr_breakdown[ - tapgyr - 1 - ].tapgyr_total_nobat - ? (winner as ISearchNetije).tapgyr_breakdown[ - tapgyr - 1 - ].tapgyr_total_nobat + : (winner as ISearchNetije).tapgyr_breakdown.find( + (item) => item.tapgyr === tapgyr + )?.tapgyr_total_nobat + ? (winner as ISearchNetije).tapgyr_breakdown.find( + (item) => item.tapgyr === tapgyr + )?.tapgyr_total_nobat : "-"}
@@ -219,12 +220,12 @@ const QuizTapgyrWinners = ({ id, tapgyr, questions }: IProps) => { {(winner as Datum).total_score_of_client ? (winner as Datum).total_score_of_client - : (winner as ISearchNetije).tapgyr_breakdown[ - tapgyr - 1 - ].tapgyr_total_score - ? (winner as ISearchNetije).tapgyr_breakdown[ - tapgyr - 1 - ].tapgyr_total_score + : (winner as ISearchNetije).tapgyr_breakdown.find( + (item) => item.tapgyr === tapgyr + )?.tapgyr_total_score + ? (winner as ISearchNetije).tapgyr_breakdown.find( + (item) => item.tapgyr === tapgyr + )?.tapgyr_total_score : "-"}
diff --git a/components/quiz/QuizWinnerTable.tsx b/components/quiz/QuizWinnerTable.tsx index d1d4ddb..e563e72 100644 --- a/components/quiz/QuizWinnerTable.tsx +++ b/components/quiz/QuizWinnerTable.tsx @@ -169,7 +169,7 @@ const QuizWinnerTable = ({ quizId, questionsData }: IProps) => { : matchingAnswer && matchingAnswer?.score === 0 ? "X" - : "0"} + : "-"} ); }) @@ -237,7 +237,7 @@ const QuizWinnerTable = ({ quizId, questionsData }: IProps) => { ? matchingAnswer.serial_number_for_correct : matchingAnswer && matchingAnswer?.score === 0 ? "X" - : "0"} + : "-"} ); })} @@ -364,7 +364,7 @@ const QuizWinnerTable = ({ quizId, questionsData }: IProps) => { : matchingAnswer && matchingAnswer?.score === 0 ? "X" - : "0"} + : "-"} ); }) @@ -440,7 +440,7 @@ const QuizWinnerTable = ({ quizId, questionsData }: IProps) => { : matchingAnswer && matchingAnswer?.score === 0 ? "X" - : "0"} + : "-"} ); })}