persist viewer preferences

This commit is contained in:
wass08
2026-02-24 16:13:37 +09:00
parent 14708c041a
commit 63cf407cac
+17 -2
View File
@@ -10,6 +10,7 @@ import type {
import type { Object3D } from "three";
import { create } from "zustand";
import { persist } from "zustand/middleware";
type SelectionPath = {
buildingId: BuildingNode["id"] | null;
@@ -57,7 +58,9 @@ type ViewerState = {
setCameraDragging: (dragging: boolean) => void
}
const useViewer = create<ViewerState>()((set, get) => ({
const useViewer = create<ViewerState>()(
persist(
(set) => ({
selection: { buildingId: null, levelId: null, zoneId: null, selectedIds: [] },
hoveredId: null,
setHoveredId: (id) => set({ hoveredId: id }),
@@ -113,6 +116,18 @@ const useViewer = create<ViewerState>()((set, get) => ({
cameraDragging: false,
setCameraDragging: (dragging) => set({ cameraDragging: dragging }),
}));
}),
{
name: 'viewer-preferences',
partialize: (state) => ({
cameraMode: state.cameraMode,
levelMode: state.levelMode,
wallMode: state.wallMode,
showScans: state.showScans,
showGuides: state.showGuides,
}),
},
),
);
export default useViewer;