refactor(page): simplify WorkspaceEditorPage by removing unnecessary database queries and state management

This commit is contained in:
cfngc4594 2025-03-20 16:10:11 +08:00
parent ceee810e14
commit d79b88e0b6

View File

@ -1,50 +1,15 @@
import prisma from "@/lib/prisma";
import { notFound } from "next/navigation";
import { CodeEditor } from "@/components/problem-editor";
import { ProblemEditorProvider } from "@/providers/problem-editor-provider";
import { WorkspaceEditorHeader } from "@/components/features/playground/workspace/editor/components/header";
import { WorkspaceEditorFooter } from "@/components/features/playground/workspace/editor/components/footer";
interface WorkspaceEditorProps {
params: Promise<{ id: string }>;
}
export default async function WorkspaceEditorPage({
params,
}: WorkspaceEditorProps) {
const { id } = await params;
const [
problem,
editorLanguageConfigs,
languageServerConfigs,
] = await Promise.all([
prisma.problem.findUnique({
where: { id },
select: { templates: true },
}),
prisma.editorLanguageConfig.findMany(),
prisma.languageServerConfig.findMany(),
]);
if (!problem) {
return notFound();
}
export default function WorkspaceEditorPage() {
return (
<ProblemEditorProvider
problemId={id}
templates={problem.templates ?? []}
editorLanguageConfigs={editorLanguageConfigs}
languageServerConfigs={languageServerConfigs}
>
<>
<WorkspaceEditorHeader />
<div className="flex-1">
<CodeEditor />
</div>
<WorkspaceEditorFooter />
</>
</ProblemEditorProvider>
<>
<WorkspaceEditorHeader />
<div className="flex-1">
<CodeEditor />
</div>
<WorkspaceEditorFooter />
</>
);
}