diff --git a/src/app/(app)/problemset/layout.tsx b/src/app/(app)/problemset/layout.tsx index efed448..0a1981f 100644 --- a/src/app/(app)/problemset/layout.tsx +++ b/src/app/(app)/problemset/layout.tsx @@ -1,4 +1,4 @@ -import { ProblemsetHeader } from "@/features/problemset/components/problemset-header"; +import { ProblemsetHeader } from "@/features/problemset/components/header"; interface ProblemsetLayoutProps { children: React.ReactNode; diff --git a/src/app/(app)/problemset/page.tsx b/src/app/(app)/problemset/page.tsx index 89c6b1b..a35586a 100644 --- a/src/app/(app)/problemset/page.tsx +++ b/src/app/(app)/problemset/page.tsx @@ -1,73 +1,15 @@ -import Link from "next/link"; +import { Suspense } from "react"; import { - Table, - TableBody, - TableCell, - TableHead, - TableHeader, - TableRow, -} from "@/components/ui/table"; -import prisma from "@/lib/prisma"; -import { auth } from "@/lib/auth"; -import { getTranslations } from "next-intl/server"; -import { getDifficultyColorClass } from "@/lib/utils"; -import { CircleCheckBigIcon, CircleDotIcon } from "lucide-react"; - -export default async function ProblemsetPage() { - const problems = await prisma.problem.findMany({ - where: { published: true }, - orderBy: { id: "asc" }, - select: { id: true, title: true, difficulty: true }, - }); - - const session = await auth(); - const userId = session?.user?.id; - - const submissions = userId - ? await prisma.submission.findMany({ - where: { userId }, - select: { problemId: true, status: true }, - }) - : []; - - const completedProblems = new Set(submissions.filter(s => s.status === "AC").map(s => s.problemId)); - const attemptedProblems = new Set(submissions.filter(s => s.status !== "AC").map(s => s.problemId)); - - const t = await getTranslations(); + ProblemsetTable, + ProblemsetTableSkeleton, +} from "@/features/problemset/components/table"; +export default function ProblemsetPage() { return ( -