Skip to content
This repository has been archived by the owner on Jan 16, 2024. It is now read-only.

Commit

Permalink
feat(page:problemNum): render VirtualTable for ranklist
Browse files Browse the repository at this point in the history
  ## what
  - render `VirtualTable` for ranklist
    - fetch problem ranklist using react-query hook
    - render data using VirtualTable

  ## how

  ## why

  ## where
  - ./src/app/problems/[problemNum]/page.tsx

  ## usage
  • Loading branch information
Clumsy-Coder committed Jan 10, 2024
1 parent f90107c commit 4c98972
Showing 1 changed file with 21 additions and 5 deletions.
26 changes: 21 additions & 5 deletions src/app/problems/[problemNum]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@ import {
CardHeader,
CardTitle,
} from "@/components/ui/card"
import { useFetchProblemNum, useFetchSubmissionCount, useFetchSubmissionLang } from "@/hooks";
import { useFetchProblemNum, useFetchProblemRanklist, useFetchSubmissionCount, useFetchSubmissionLang } from "@/hooks";
import { problemNumSchema } from "@/schema";
import { processProblemNumBarChartData } from "@/utils/dataProcessing";
import ProblemVerdictChart from "@/components/charts/ProblemVerdictChart";
import SubmissionsOvertimeChart from "@/components/charts/SubmissionsOvertimeChart";
import SubmissionLanguageRadarChart from "@/components/charts/SubmissionLanguageRadarChart";
import { DataTable } from "@/components/ui/data-table";
import { columns } from "./components/data-table/ranklistColumns";
import VirtualTable from "@/components/virtual-table";

type problemPageProps = {
params: z.infer<typeof problemNumSchema>;
Expand Down Expand Up @@ -43,11 +46,20 @@ const ProblemPage = ({ params }: problemPageProps) => {
data: submissionLangData,
error: submissionLangError,
} = useFetchSubmissionLang(params.problemNum);
const {
isLoading: problemRanklistIsLoading,
isSuccess: problemRanklistIsSuccess,
isError: problemRanklistIsError,
data: problemRanklistData,
error: problemRanklistError,
} = useFetchProblemRanklist(params.problemNum);


if (( problemNumIsLoading || !problemNumData || problemNumData.data === undefined ) ||
( submissionCountIsLoading || !submissionCountData) ||
( submissionLangIsLoading || !submissionLangData)
if (
(problemNumIsLoading || !problemNumData || problemNumData.data === undefined) ||
(submissionCountIsLoading || !submissionCountData) ||
(submissionLangIsLoading || !submissionLangData) ||
(problemRanklistIsLoading || !problemRanklistData)
) {
return (
<section>
Expand Down Expand Up @@ -122,7 +134,11 @@ const ProblemPage = ({ params }: problemPageProps) => {
</div>
</div>
<div className="flex flex-col gap-4">
<div>ranklist</div>
<div>
<h1 className="text-3xl mb-4 mt-6">Ranklist (Top 10)</h1>
{/* <DataTable columns={columns} data={problemRanklistData} /> */}
<VirtualTable columns={columns} data={problemRanklistData} tableHeight={400} />
</div>
<div>submissions</div>
</div>
</section>
Expand Down

0 comments on commit 4c98972

Please sign in to comment.