persist viewer preferences
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user