feat(playground): add submission tab to problem layout

This commit is contained in:
cfngc4594 2025-03-01 19:18:24 +08:00
parent 04794a34c7
commit 4a8ad24dcc

View File

@ -1,15 +1,17 @@
import { FileTextIcon, FlaskConicalIcon } from "lucide-react";
import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { CircleCheckBigIcon, FileTextIcon, FlaskConicalIcon } from "lucide-react";
interface ProblemLayoutProps { interface ProblemLayoutProps {
description: React.ReactNode; description: React.ReactNode;
solution: React.ReactNode; solution: React.ReactNode;
submission: React.ReactNode;
} }
export default function ProblemLayout({ export default function ProblemLayout({
description, description,
solution, solution,
submission,
}: ProblemLayoutProps) { }: ProblemLayoutProps) {
return ( return (
<Tabs defaultValue="description" className="h-full flex flex-col"> <Tabs defaultValue="description" className="h-full flex flex-col">
@ -37,15 +39,29 @@ export default function ProblemLayout({
/> />
Solution Solution
</TabsTrigger> </TabsTrigger>
<TabsTrigger
value="submission"
className="data-[state=active]:bg-primary data-[state=active]:text-primary-foreground rounded-full data-[state=active]:shadow-none"
>
<CircleCheckBigIcon
className="-ms-0.5 me-1.5 opacity-60"
size={16}
aria-hidden="true"
/>
Submission
</TabsTrigger>
</TabsList> </TabsList>
<ScrollBar orientation="horizontal" /> <ScrollBar orientation="horizontal" />
</ScrollArea> </ScrollArea>
<TabsContent value="description" className="flex-1 mt-0"> <TabsContent value="description" className="h-full mt-0">
{description} {description}
</TabsContent> </TabsContent>
<TabsContent value="solution" className="flex-1 mt-0"> <TabsContent value="solution" className="h-full mt-0">
{solution} {solution}
</TabsContent> </TabsContent>
<TabsContent value="submission" className="flex-1 mt-0">
{submission}
</TabsContent>
</Tabs> </Tabs>
); );
} }