mirror of
https://github.com/massbug/judge4c.git
synced 2025-05-17 23:12:23 +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 { create } from "zustand";
|
||||||
import type { DockviewApi } from "dockview";
|
import type { DockviewApi } from "dockview";
|
||||||
import type { Submission } from "@/generated/client";
|
import type { Submission } from "@/generated/client";
|
||||||
|
import { createJSONStorage, persist } from "zustand/middleware";
|
||||||
|
|
||||||
export type DockviewState = {
|
export type DockviewState = {
|
||||||
api: DockviewApi | null;
|
api: DockviewApi | null;
|
||||||
@ -14,9 +15,20 @@ export type DockviewActions = {
|
|||||||
|
|
||||||
export type DockviewStore = DockviewState & DockviewActions;
|
export type DockviewStore = DockviewState & DockviewActions;
|
||||||
|
|
||||||
export const useDockviewStore = create<DockviewStore>()((set) => ({
|
export const useDockviewStore = create<DockviewStore>()(
|
||||||
api: null,
|
persist(
|
||||||
submission: null,
|
(set) => ({
|
||||||
setApi: (api) => set({ api }),
|
api: null,
|
||||||
setSubmission: (submission) => set({ submission }),
|
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