refactor(problem): replace inline dockview options with default config

This commit is contained in:
cfngc4594 2025-04-12 10:47:23 +08:00
parent 69e06ecfc6
commit 3b1c2fc41b

View File

@ -10,8 +10,12 @@ import {
TestResult, TestResult,
} from "@/app/(app)/problems/[id]/features"; } from "@/app/(app)/problems/[id]/features";
import DockView from "@/components/dockview"; import DockView from "@/components/dockview";
import { useDockviewStore } from "@/stores/dockview";
import { DefaultDockviewOptions } from "@/config/dockview";
export default function ProblemPage() { export default function ProblemPage() {
const { setApi } = useDockviewStore();
return ( return (
<DockView <DockView
storageKey="dockview:problem" storageKey="dockview:problem"
@ -24,77 +28,8 @@ export default function ProblemPage() {
TestResult: () => <TestResult />, TestResult: () => <TestResult />,
Bot: () => <Bot />, Bot: () => <Bot />,
}} }}
options={[ options={DefaultDockviewOptions.filter((panel) => panel.id !== "Bot")}
{ onApiReady={setApi}
id: "Description",
component: "Description",
title: "Description",
params: { icon: "FileTextIcon" },
},
{
id: "Solutions",
component: "Solutions",
title: "Solutions",
params: { icon: "FlaskConicalIcon" },
position: {
referencePanel: "Description",
direction: "within",
},
inactive: true,
},
{
id: "Submissions",
component: "Submissions",
title: "Submissions",
params: { icon: "CircleCheckBigIcon" },
position: {
referencePanel: "Solutions",
direction: "within",
},
inactive: true,
},
{
id: "Code",
component: "Code",
title: "Code",
params: { icon: "SquarePenIcon" },
position: {
referencePanel: "Submissions",
direction: "right",
},
},
{
id: "Bot",
component: "Bot",
title: "Bot",
params: { icon: "BotIcon" },
position: {
referencePanel: "Code",
direction: "right",
},
},
{
id: "Testcase",
component: "Testcase",
title: "Testcase",
params: { icon: "SquareCheckIcon" },
position: {
referencePanel: "Code",
direction: "below",
},
},
{
id: "TestResult",
component: "TestResult",
title: "Test Result",
params: { icon: "TerminalIcon" },
position: {
referencePanel: "Testcase",
direction: "within",
},
inactive: true,
},
]}
/> />
); );
} }