mirror of
https://github.com/cfngc4594/monaco-editor-lsp-next.git
synced 2025-05-18 15:26:36 +00:00
feat(problem-store): add submissions to problem store state and provider
- Added `submissions` field to `ProblemState` and `ProblemStore` type - Updated `createProblemStore` function to handle `submissions` - Modified `ProblemStoreProvider` to pass `submissions` as a prop - Updated `ProblemLayout` to fetch `submissions` from the database and pass to the provider
This commit is contained in:
parent
ad43eb9b0a
commit
82b0705bdb
@ -14,7 +14,7 @@ export default async function ProblemLayout({
|
||||
}: ProblemProps) {
|
||||
const { id } = await params;
|
||||
|
||||
const [problem, editorLanguageConfigs, languageServerConfigs] = await Promise.all([
|
||||
const [problem, editorLanguageConfigs, languageServerConfigs, submissions] = await Promise.all([
|
||||
prisma.problem.findUnique({
|
||||
where: { id },
|
||||
include: {
|
||||
@ -28,6 +28,9 @@ export default async function ProblemLayout({
|
||||
}),
|
||||
prisma.editorLanguageConfig.findMany(),
|
||||
prisma.languageServerConfig.findMany(),
|
||||
prisma.submission.findMany({
|
||||
where: { problemId: id },
|
||||
})
|
||||
]);
|
||||
|
||||
if (!problem) {
|
||||
@ -41,6 +44,7 @@ export default async function ProblemLayout({
|
||||
problem={problem}
|
||||
editorLanguageConfigs={editorLanguageConfigs}
|
||||
languageServerConfigs={languageServerConfigs}
|
||||
submissions={submissions}
|
||||
>
|
||||
<PlaygroundHeader />
|
||||
<main className="flex flex-grow overflow-y-hidden p-2.5 pt-0">
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
import {
|
||||
EditorLanguage,
|
||||
type Submission,
|
||||
type EditorLanguageConfig,
|
||||
type LanguageServerConfig,
|
||||
} from "@/generated/client";
|
||||
@ -20,6 +21,7 @@ export interface ProblemStoreProviderProps {
|
||||
problem: ProblemWithDetails;
|
||||
editorLanguageConfigs: EditorLanguageConfig[];
|
||||
languageServerConfigs: LanguageServerConfig[];
|
||||
submissions: Submission[];
|
||||
}
|
||||
|
||||
export const ProblemStoreProvider = ({
|
||||
@ -28,6 +30,7 @@ export const ProblemStoreProvider = ({
|
||||
problem,
|
||||
editorLanguageConfigs,
|
||||
languageServerConfigs,
|
||||
submissions,
|
||||
}: ProblemStoreProviderProps) => {
|
||||
const storeRef = useRef<ProblemStoreApi | null>(null);
|
||||
|
||||
@ -44,6 +47,7 @@ export const ProblemStoreProvider = ({
|
||||
problem,
|
||||
editorLanguageConfigs,
|
||||
languageServerConfigs,
|
||||
submissions,
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ import type {
|
||||
EditorLanguage,
|
||||
EditorLanguageConfig,
|
||||
LanguageServerConfig,
|
||||
Submission,
|
||||
} from "@/generated/client";
|
||||
import type { editor } from "monaco-editor";
|
||||
import { createStore } from "zustand/vanilla";
|
||||
@ -20,6 +21,7 @@ export type ProblemState = {
|
||||
problem: ProblemWithDetails;
|
||||
editorLanguageConfigs: EditorLanguageConfig[];
|
||||
languageServerConfigs: LanguageServerConfig[];
|
||||
submissions: Submission[];
|
||||
};
|
||||
|
||||
export type ProblemActions = {
|
||||
|
Loading…
Reference in New Issue
Block a user