summaryrefslogtreecommitdiff
path: root/apps/web/src/versions/versions-store.ts
blob: 7ae957fb8d41b21fb54d3b5460c784bbba11aeb1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import { create } from "zustand";

/**
 * UI-only state for the versions surfaces (popover + checkpoint dialog).
 * Document state lives in EditorCore's VersionsManager — never here.
 */
interface VersionsState {
	isPanelOpen: boolean;
	isCheckpointDialogOpen: boolean;
	setPanelOpen: (args: { open: boolean }) => void;
	togglePanel: () => void;
	openCheckpointDialog: () => void;
	closeCheckpointDialog: () => void;
}

export const useVersionsStore = create<VersionsState>()((set) => ({
	isPanelOpen: false,
	isCheckpointDialogOpen: false,
	setPanelOpen: ({ open }) => set({ isPanelOpen: open }),
	togglePanel: () => set((state) => ({ isPanelOpen: !state.isPanelOpen })),
	openCheckpointDialog: () => set({ isCheckpointDialogOpen: true }),
	closeCheckpointDialog: () => set({ isCheckpointDialogOpen: false }),
}));