import { useEffect } from 'react'; import { useViewerUrlState } from '../../hooks/useViewerUrlState'; import { useViewerStore } from '../../store/viewerStore'; import { getMachineAssetDefinition } from '../../three/assets/machineAssets'; import { DetailDrawer } from './DetailDrawer'; import { LoadingProgressOverlay } from './LoadingProgressOverlay'; import { PartListPanel } from './PartListPanel'; import { PartTooltip } from './PartTooltip'; import { UnsupportedMachinePanel } from './UnsupportedMachinePanel'; import { ViewerCanvas } from './ViewerCanvas'; import { ViewerControlsPanel } from './ViewerControlsPanel'; import { ViewerStatusBar } from './ViewerStatusBar'; import { ViewerToolbar } from './ViewerToolbar'; export interface MechanicalViewerProps { machineId: string; className?: string; } export function MechanicalViewer({ machineId, className = '' }: MechanicalViewerProps) { const assetDefinition = getMachineAssetDefinition(machineId); const { copyShareLink } = useViewerUrlState(machineId); useEffect(() => { if (!assetDefinition) { useViewerStore.getState().setActiveMachine(machineId, [], null); } }, [assetDefinition, machineId]); return (
{!assetDefinition ? : null}
); }