mirror of
https://github.com/massbug/judge4c.git
synced 2025-05-17 14:56:36 +00:00
feat(store): persist submission state in dockview store
This commit is contained in:
parent
9b82088110
commit
ce4a0e64c9
@ -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,
|
||||
}),
|
||||
}
|
||||
)
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user