From c182452dd00ae7e89a9d6df5e2692aa109fa8880 Mon Sep 17 00:00:00 2001 From: cfngc4594 Date: Tue, 6 May 2025 18:37:39 +0800 Subject: [PATCH] refactor(stores): split dockview store into problem-specific store - Remove generic dockview store (`src/stores/dockview.tsx`) - Add problem-specific dockview store (`src/stores/problem-dockview.tsx`) - Remove submission-related state as it's no longer needed --- src/stores/dockview.ts | 34 ---------------------------------- src/stores/problem-dockview.ts | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 34 deletions(-) delete mode 100644 src/stores/dockview.ts create mode 100644 src/stores/problem-dockview.ts diff --git a/src/stores/dockview.ts b/src/stores/dockview.ts deleted file mode 100644 index b9323c0..0000000 --- a/src/stores/dockview.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { create } from "zustand"; -import type { DockviewApi } from "dockview"; -import { createJSONStorage, persist } from "zustand/middleware"; -import type { SubmissionWithTestcaseResult } from "@/types/prisma"; - -export type DockviewState = { - api: DockviewApi | null; - submission: SubmissionWithTestcaseResult | null; -}; - -export type DockviewActions = { - setApi: (api: DockviewApi) => void; - setSubmission: (submission: SubmissionWithTestcaseResult) => void; -}; - -export type DockviewStore = DockviewState & DockviewActions; - -export const useDockviewStore = create()( - persist( - (set) => ({ - api: null, - submission: null, - setApi: (api) => set({ api }), - setSubmission: (submission) => set({ submission }), - }), - { - name: "zustand:dockview", - storage: createJSONStorage(() => localStorage), - partialize: (state) => ({ - submission: state.submission, - }), - } - ) -); diff --git a/src/stores/problem-dockview.ts b/src/stores/problem-dockview.ts new file mode 100644 index 0000000..5fcb60a --- /dev/null +++ b/src/stores/problem-dockview.ts @@ -0,0 +1,20 @@ +import { create } from "zustand"; +import type { DockviewApi } from "dockview"; + +export type ProblemDockviewState = { + api: DockviewApi | null; +}; + +export type ProblemDockviewActions = { + setApi: (api: DockviewApi) => void; +}; + +export type ProblemDockviewStore = ProblemDockviewState & + ProblemDockviewActions; + +export const useProblemDockviewStore = create()( + (set) => ({ + api: null, + setApi: (api) => set({ api }), + }) +);