diff --git a/src/stores/dockview.ts b/src/stores/dockview.ts index 00fbde7..82b4f92 100644 --- a/src/stores/dockview.ts +++ b/src/stores/dockview.ts @@ -1,6 +1,7 @@ import { create } from "zustand"; import type { DockviewApi } from "dockview"; import type { Submission } from "@/generated/client"; +import { createJSONStorage, persist } from "zustand/middleware"; export type DockviewState = { api: DockviewApi | null; @@ -14,9 +15,20 @@ export type DockviewActions = { export type DockviewStore = DockviewState & DockviewActions; -export const useDockviewStore = create()((set) => ({ - api: null, - submission: null, - setApi: (api) => set({ api }), - setSubmission: (submission) => set({ submission }), -})); +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, + }), + } + ) +);