diff --git a/src/app/(app)/problems/[id]/@workspace/@editor/page.tsx b/src/app/(app)/problems/[id]/@workspace/@editor/page.tsx
index b687044..18aa659 100644
--- a/src/app/(app)/problems/[id]/@workspace/@editor/page.tsx
+++ b/src/app/(app)/problems/[id]/@workspace/@editor/page.tsx
@@ -1,4 +1,5 @@
import prisma from "@/lib/prisma";
+import { notFound } from "next/navigation";
import CodeEditor from "@/components/code-editor";
import WorkspaceEditorHeader from "@/components/features/playground/workspace/editor/components/header";
import WorkspaceEditorFooter from "@/components/features/playground/workspace/editor/components/footer";
@@ -12,30 +13,37 @@ export default async function WorkspaceEditorPage({
}: WorkspaceEditorProps) {
const { id } = await params;
- const problem = await prisma.problem.findUnique({
- where: { id },
- select: {
- templates: {
- select: {
- language: true,
- template: true,
+ const [problem, editorLanguageConfigs, languageServerConfigs] = await Promise.all([
+ prisma.problem.findUnique({
+ where: { id },
+ select: {
+ templates: {
+ select: {
+ language: true,
+ template: true,
+ },
},
},
- },
- });
+ }),
+ prisma.editorLanguageConfig.findMany(),
+ prisma.languageServerConfig.findMany(),
+ ]);
- const editorLanguageConfigs = await prisma.editorLanguageConfig.findMany();
+ if (!problem) {
+ return notFound();
+ }
- const templates = problem?.templates ?? [];
+ const commonProps = {
+ templates: problem.templates ?? [],
+ editorLanguageConfigs,
+ languageServerConfigs,
+ };
return (
<>
-