diff --git a/src/app/(app)/problems/[id]/layout.tsx b/src/app/(app)/problems/[id]/layout.tsx
index a348ce7..196c814 100644
--- a/src/app/(app)/problems/[id]/layout.tsx
+++ b/src/app/(app)/problems/[id]/layout.tsx
@@ -18,7 +18,14 @@ export default async function ProblemLayout({
await Promise.all([
prisma.problem.findUnique({
where: { id },
- include: { templates: true },
+ include: {
+ templates: true,
+ testcases: {
+ include: {
+ data: true,
+ },
+ },
+ },
}),
prisma.editorLanguageConfig.findMany(),
prisma.languageServerConfig.findMany(),
@@ -28,7 +35,7 @@ export default async function ProblemLayout({
return notFound();
}
- const { templates, ...problemWithoutTemplates } = problemData;
+ const { templates, testcases, ...problemWithoutTemplates } = problemData;
return (
@@ -36,6 +43,7 @@ export default async function ProblemLayout({
problemId={id}
problem={problemWithoutTemplates}
templates={templates}
+ testcases={testcases}
editorLanguageConfigs={editorLanguageConfigs}
languageServerConfigs={languageServerConfigs}
>
diff --git a/src/providers/problem-store-provider.tsx b/src/providers/problem-store-provider.tsx
index 9059828..b0f2ce4 100644
--- a/src/providers/problem-store-provider.tsx
+++ b/src/providers/problem-store-provider.tsx
@@ -8,6 +8,7 @@ import {
type Template,
} from "@/generated/client";
import { useStore } from "zustand";
+import { TestcaseWithData } from "@/types/prisma";
import { type ReactNode, createContext, useRef, useContext } from "react";
import { type ProblemStore, createProblemStore } from "@/stores/problem-store";
@@ -22,6 +23,7 @@ export interface ProblemStoreProviderProps {
problemId: string;
problem: Problem;
templates: Template[];
+ testcases: TestcaseWithData;
editorLanguageConfigs: EditorLanguageConfig[];
languageServerConfigs: LanguageServerConfig[];
}
@@ -31,6 +33,7 @@ export const ProblemStoreProvider = ({
problemId,
problem,
templates,
+ testcases,
editorLanguageConfigs,
languageServerConfigs,
}: ProblemStoreProviderProps) => {
@@ -48,6 +51,7 @@ export const ProblemStoreProvider = ({
problemId,
problem,
templates,
+ testcases,
editorLanguageConfigs,
languageServerConfigs,
});
diff --git a/src/stores/problem-store.ts b/src/stores/problem-store.ts
index 62ac97f..a8f13c6 100644
--- a/src/stores/problem-store.ts
+++ b/src/stores/problem-store.ts
@@ -7,6 +7,7 @@ import type {
} from "@/generated/client";
import type { editor } from "monaco-editor";
import { createStore } from "zustand/vanilla";
+import { TestcaseWithData } from "@/types/prisma";
import { createJSONStorage, persist } from "zustand/middleware";
export type ProblemState = {
@@ -20,6 +21,7 @@ export type ProblemState = {
problemId: string;
problem: Problem;
templates: Template[];
+ testcases: TestcaseWithData;
editorLanguageConfigs: EditorLanguageConfig[];
languageServerConfigs: LanguageServerConfig[];
};