2025-04-23 12:43:32 +00:00
|
|
|
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<SelectedEventSphereState>()(
|
|
|
|
immer((set) => ({
|
|
|
|
selectedEventSphere: null,
|
|
|
|
setSelectedEventSphere: (mesh) => {
|
|
|
|
set((state) => {
|
|
|
|
state.selectedEventSphere = mesh;
|
|
|
|
});
|
|
|
|
},
|
|
|
|
clearSelectedEventSphere: () => {
|
|
|
|
set((state) => {
|
|
|
|
state.selectedEventSphere = null;
|
|
|
|
});
|
|
|
|
},
|
|
|
|
}))
|
2025-04-24 05:37:15 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
interface SelectedProductState {
|
|
|
|
selectedProduct: { productId: string; productName: string };
|
|
|
|
setSelectedProduct: (productId: string, productName: string) => void;
|
|
|
|
clearSelectedProduct: () => void;
|
|
|
|
}
|
|
|
|
|
|
|
|
export const useSelectedProduct = create<SelectedProductState>()(
|
|
|
|
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 = '';
|
|
|
|
});
|
|
|
|
},
|
|
|
|
}))
|
2025-04-23 12:43:32 +00:00
|
|
|
);
|