import { create } from 'zustand'; import { immer } from 'zustand/middleware/immer'; import * as THREE from 'three'; interface SelectedEventSphereState { selectedEventSphere: THREE.Mesh | null; setSelectedEventSphere: (mesh: THREE.Mesh | null) => void; clearSelectedEventSphere: () => void; } export const useSelectedEventSphere = create()( immer((set) => ({ selectedEventSphere: null, setSelectedEventSphere: (mesh) => { set((state) => { state.selectedEventSphere = mesh; }); }, clearSelectedEventSphere: () => { set((state) => { state.selectedEventSphere = null; }); }, })) ); interface SelectedProductState { selectedProduct: { productId: string; productName: string }; setSelectedProduct: (productId: string, productName: string) => void; clearSelectedProduct: () => void; } export const useSelectedProduct = create()( immer((set) => ({ selectedProduct: { productId: '', productName: '' }, setSelectedProduct: (productId, productName) => { set((state) => { state.selectedProduct.productId = productId; state.selectedProduct.productName = productName; }); }, clearSelectedProduct: () => { set((state) => { state.selectedProduct.productId = ''; state.selectedProduct.productName = ''; }); }, })) );