"use client"; import { getNextQuizNetijeData, getQuizNetijeData } from "@/api/queries"; import { Datum, ISearchNetije } from "@/models/quizQuestionsWinners.model"; import { notFound } from "next/navigation"; import React, { useEffect, useState } from "react"; import Loader from "../Loader"; import { useQuizResults, useResultsLoading } from "@/store/store"; const padding = "py-4"; const QuizTapgyrResults = ({ id, steps }: { id: string; steps: string[] }) => { const [data, setData] = useState([]); const { error, resultData } = useQuizResults(); const [loading, setLoading] = useState(false); const searchLoading = useResultsLoading((state) => state.loading); const [total, setTotal] = useState(0); const [nextPageQueries, setQueries] = useState<{ limit: number; offset: number; }>({ limit: 0, offset: 0, }); async function getData(next?: boolean) { if (next) { const res = await getNextQuizNetijeData( id, nextPageQueries.limit, nextPageQueries.offset ); if (res) { setQueries({ limit: res.per_page, offset: nextPageQueries.offset + res.per_page, }); setData([...data, ...res.data]); } } else { setLoading(true); const res = await getQuizNetijeData(id); if (res) { setTotal(res.total); setQueries({ limit: res.per_page, offset: res.per_page, }); setData(res.data); setLoading(false); } else { notFound(); } } } useEffect(() => { if (!resultData.length && !error) { getData(); } else if (resultData.length) { setData(resultData); setTotal(0); } else if (error) { setTotal(0); setData([]); } }, [resultData]); return (

Netijeler

{data.length > 0 && !loading && !searchLoading ? ( // Table Head
{((data[0] as Datum).client?.id || (data[0] as ISearchNetije).place) && ( Ýeri )} {((data[0] as Datum)?.client?.phone || data[0].phone) && ( Telefon beligisi )} {data[0]?.tapgyr_breakdown && steps.map((item) => ( Tapgyr {item} ))} {((data[0] as Datum).correct_answers_time || (data[0] as ISearchNetije).total_nobat) && ( Nobatlaryň jemi )} {((data[0] as Datum).total_score_of_client || (data[0] as ISearchNetije).total_score) && ( Utuklaryň jemi )}
{/* Table body */}
{data.map((winner, id) => (
{id > 0 && (winner as Datum).correct_answers_time === (data[id - 1] as Datum).correct_answers_time ? id : (winner as ISearchNetije).place ? (winner as ISearchNetije).place : id + 1}
+ {(winner as Datum).client?.phone ? (winner as Datum).client?.phone : (winner as ISearchNetije).phone ? (winner as ISearchNetije).phone : "-"} {steps.map((step, i) => ( Tapgyr {step} ))}
{steps.map((step, i) => { const tapgyr = winner.tapgyr_breakdown?.find( (i) => i.tapgyr === Number(step) ); return (
{tapgyr && "tapgyr_correct_time" in tapgyr ? tapgyr.tapgyr_correct_time : tapgyr && "tapgyr_total_nobat" in tapgyr ? tapgyr.tapgyr_total_nobat : "-"}
{tapgyr && "tapgyr_score" in tapgyr ? tapgyr.tapgyr_score : tapgyr && "tapgyr_total_score" in tapgyr ? tapgyr.tapgyr_total_score : "-"}
); })}
{(winner as Datum).correct_answers_time ? (winner as Datum).correct_answers_time : (winner as ISearchNetije).total_nobat ? (winner as ISearchNetije).total_nobat : "-"}
{steps.map((step, i) => { const tapgyr = winner.tapgyr_breakdown?.find( (i) => i.tapgyr === Number(step) ); return (
{tapgyr && "tapgyr_correct_time" in tapgyr ? tapgyr.tapgyr_correct_time : tapgyr && "tapgyr_total_nobat" in tapgyr ? tapgyr.tapgyr_total_nobat : "-"}
); })}
{(winner as Datum).total_score_of_client ? (winner as Datum).total_score_of_client : (winner as ISearchNetije).total_score ? (winner as ISearchNetije).total_score : "-"}
{steps.map((step, i) => { const tapgyr = winner.tapgyr_breakdown?.find( (i) => i.tapgyr === Number(step) ); return (
{tapgyr && "tapgyr_correct_time" in tapgyr ? tapgyr.tapgyr_correct_time : tapgyr && "tapgyr_total_nobat" in tapgyr ? tapgyr.tapgyr_total_nobat : "-"}
); })}
{/* {steps.map((step, i) => { const tapgyr = winner.tapgyr_breakdown?.find( (i) => i.tapgyr === Number(step) ); return (
Tapgyr {step}
{tapgyr ? tapgyr.tapgyr_correct_time : "-"}
{tapgyr ? tapgyr.tapgyr_correct_time : "-"}
); })} */}
))}
) : !error ? ( ) : (
{error}
)} {data.length < total && !error && ( )}
); }; export default QuizTapgyrResults;