From ce4a0e64c9c341f7658b8606bf4b451a0ef4654a Mon Sep 17 00:00:00 2001 From: cfngc4594 Date: Mon, 14 Apr 2025 10:39:06 +0800 Subject: [PATCH] feat(store): persist submission state in dockview store --- src/stores/dockview.ts | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) 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, + }), + } + ) +);