mirror of
https://github.com/massbug/judge4c.git
synced 2025-05-18 15:26:33 +00:00
feat(problem): add problem layout with tabs for description, solution, and submission
This commit is contained in:
parent
3f34d9505b
commit
a851223d9f
58
src/app/(app)/problems/[id]/@problem/layout.tsx
Normal file
58
src/app/(app)/problems/[id]/@problem/layout.tsx
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area";
|
||||||
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
||||||
|
import { CircleCheckBigIcon, FileTextIcon, FlaskConicalIcon } from "lucide-react";
|
||||||
|
|
||||||
|
interface ProblemLayoutProps {
|
||||||
|
description: React.ReactNode;
|
||||||
|
solution: React.ReactNode;
|
||||||
|
submission: React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function ProblemLayout({
|
||||||
|
description,
|
||||||
|
solution,
|
||||||
|
submission,
|
||||||
|
}: ProblemLayoutProps) {
|
||||||
|
return (
|
||||||
|
<Tabs defaultValue="description" className="h-full">
|
||||||
|
<ScrollArea className="bg-muted">
|
||||||
|
<TabsList>
|
||||||
|
<TabsTrigger value="description">
|
||||||
|
<FileTextIcon
|
||||||
|
className="-ms-0.5 me-1.5 opacity-60"
|
||||||
|
size={16}
|
||||||
|
aria-hidden="true"
|
||||||
|
/>
|
||||||
|
Description
|
||||||
|
</TabsTrigger>
|
||||||
|
<TabsTrigger value="solution" className="group">
|
||||||
|
<FlaskConicalIcon
|
||||||
|
className="-ms-0.5 me-1.5 opacity-60"
|
||||||
|
size={16}
|
||||||
|
aria-hidden="true"
|
||||||
|
/>
|
||||||
|
Solution
|
||||||
|
</TabsTrigger>
|
||||||
|
<TabsTrigger value="submission" className="group">
|
||||||
|
<CircleCheckBigIcon
|
||||||
|
className="-ms-0.5 me-1.5 opacity-60"
|
||||||
|
size={16}
|
||||||
|
aria-hidden="true"
|
||||||
|
/>
|
||||||
|
Submission
|
||||||
|
</TabsTrigger>
|
||||||
|
</TabsList>
|
||||||
|
<ScrollBar orientation="horizontal" />
|
||||||
|
</ScrollArea>
|
||||||
|
<TabsContent value="description" className="h-full mt-0">
|
||||||
|
{description}
|
||||||
|
</TabsContent>
|
||||||
|
<TabsContent value="solution">
|
||||||
|
{solution}
|
||||||
|
</TabsContent>
|
||||||
|
<TabsContent value="submission">
|
||||||
|
{submission}
|
||||||
|
</TabsContent>
|
||||||
|
</Tabs>
|
||||||
|
);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user