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 ( <> - +
- +