feat(store): persist submission state in dockview store

This commit is contained in:
cfngc4594 2025-04-14 10:39:06 +08:00
parent 9b82088110
commit ce4a0e64c9

View File

@ -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<DockviewStore>()((set) => ({
api: null,
submission: null,
setApi: (api) => set({ api }),
setSubmission: (submission) => set({ submission }),
}));
export const useDockviewStore = create<DockviewStore>()(
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,
}),
}
)
);