mirror of
https://github.com/cfngc4594/monaco-editor-lsp-next.git
synced 2025-05-18 15:26:36 +00:00
feat(problem-store): add testcases to store state and provider
This commit is contained in:
parent
e6614a0aa2
commit
a02335b255
@ -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 (
|
||||
<div className="flex flex-col h-screen">
|
||||
@ -36,6 +43,7 @@ export default async function ProblemLayout({
|
||||
problemId={id}
|
||||
problem={problemWithoutTemplates}
|
||||
templates={templates}
|
||||
testcases={testcases}
|
||||
editorLanguageConfigs={editorLanguageConfigs}
|
||||
languageServerConfigs={languageServerConfigs}
|
||||
>
|
||||
|
@ -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,
|
||||
});
|
||||
|
@ -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[];
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user