summaryrefslogtreecommitdiff
path: root/apps/web/src/versions/versions-store.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/versions/versions-store.ts')
-rw-r--r--apps/web/src/versions/versions-store.ts23
1 files changed, 23 insertions, 0 deletions
diff --git a/apps/web/src/versions/versions-store.ts b/apps/web/src/versions/versions-store.ts
new file mode 100644
index 00000000..7ae957fb
--- /dev/null
+++ b/apps/web/src/versions/versions-store.ts
@@ -0,0 +1,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 }),
+}));