import prisma from "@/lib/prisma"; import { ResizableHandle, ResizablePanel, ResizablePanelGroup, } from "@/components/ui/resizable"; import { notFound } from "next/navigation"; import { ProblemStoreProvider } from "@/providers/problem-store-provider"; import { PlaygroundHeader } from "@/components/features/playground/header"; interface PlaygroundLayoutProps { params: Promise<{ id: string }>; problem: React.ReactNode; workspace: React.ReactNode; terminal: React.ReactNode; } export default async function PlaygroundLayout({ params, problem, workspace, terminal, }: PlaygroundLayoutProps) { const { id } = await params; const [ problemData, editorLanguageConfigs, languageServerConfigs, ] = await Promise.all([ prisma.problem.findUnique({ where: { id }, include: { templates: true }, }), prisma.editorLanguageConfig.findMany(), prisma.languageServerConfig.findMany(), ]); if (!problemData) { return notFound(); } const { templates, ...problemWithoutTemplates } = problemData; return (