Changes
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
import { create } from 'zustand';
|
||||
|
||||
interface ModelInfo {
|
||||
fileName: string;
|
||||
fileSize: number;
|
||||
url: string;
|
||||
}
|
||||
|
||||
interface FineTuning {
|
||||
posX: number;
|
||||
posY: number;
|
||||
posZ: number;
|
||||
rotY: number;
|
||||
}
|
||||
|
||||
type AnchorMode = 'tracking' | 'manual' | 'fine-tuning';
|
||||
type InspectionResult = 'pending' | 'approved' | 'rejected';
|
||||
|
||||
interface ModelStore {
|
||||
model: ModelInfo | null;
|
||||
setModel: (model: ModelInfo | null) => void;
|
||||
|
||||
fineTuning: FineTuning;
|
||||
setFineTuning: (ft: Partial<FineTuning>) => void;
|
||||
resetFineTuning: () => void;
|
||||
|
||||
anchorMode: AnchorMode;
|
||||
setAnchorMode: (mode: AnchorMode) => void;
|
||||
|
||||
inspectionResult: InspectionResult;
|
||||
setInspectionResult: (result: InspectionResult) => void;
|
||||
|
||||
xrSupported: boolean | null;
|
||||
setXrSupported: (supported: boolean | null) => void;
|
||||
}
|
||||
|
||||
const defaultFineTuning: FineTuning = { posX: 0, posY: 0, posZ: 0, rotY: 0 };
|
||||
|
||||
export const useModelStore = create<ModelStore>((set) => ({
|
||||
model: null,
|
||||
setModel: (model) => set({ model }),
|
||||
|
||||
fineTuning: { ...defaultFineTuning },
|
||||
setFineTuning: (ft) => set((state) => ({ fineTuning: { ...state.fineTuning, ...ft } })),
|
||||
resetFineTuning: () => set({ fineTuning: { ...defaultFineTuning } }),
|
||||
|
||||
anchorMode: 'manual',
|
||||
setAnchorMode: (anchorMode) => set({ anchorMode }),
|
||||
|
||||
inspectionResult: 'pending',
|
||||
setInspectionResult: (inspectionResult) => set({ inspectionResult }),
|
||||
|
||||
xrSupported: null,
|
||||
setXrSupported: (xrSupported) => set({ xrSupported }),
|
||||
}));
|
||||
Reference in New Issue
Block a user