'use client' import { useViewer } from '@pascal-app/viewer' import { Box, Camera, Diamond, Image, Layers, Layers2 } from 'lucide-react' import { Button } from '@/components/ui/primitives/button' import { Tooltip, TooltipContent, TooltipTrigger, } from '@/components/ui/primitives/tooltip' import { cn } from '@/lib/utils' const levelModeLabels: Record<'stacked' | 'exploded' | 'solo', string> = { stacked: 'Stacked', exploded: 'Exploded', solo: 'Solo', } const levelModeOrder: ('stacked' | 'exploded' | 'solo')[] = ['stacked', 'exploded', 'solo'] export function ViewToggles() { const cameraMode = useViewer((state) => state.cameraMode) const setCameraMode = useViewer((state) => state.setCameraMode) const levelMode = useViewer((state) => state.levelMode) const setLevelMode = useViewer((state) => state.setLevelMode) const showScans = useViewer((state) => state.showScans) const setShowScans = useViewer((state) => state.setShowScans) const showGuides = useViewer((state) => state.showGuides) const setShowGuides = useViewer((state) => state.setShowGuides) const toggleCameraMode = () => { setCameraMode(cameraMode === 'perspective' ? 'orthographic' : 'perspective') } const cycleLevelMode = () => { if (levelMode === 'manual') { setLevelMode('stacked') return } const currentIndex = levelModeOrder.indexOf(levelMode as 'stacked' | 'exploded' | 'solo') const nextIndex = (currentIndex + 1) % levelModeOrder.length const nextMode = levelModeOrder[nextIndex] if (nextMode) setLevelMode(nextMode) } return (
Camera: {cameraMode === 'perspective' ? 'Perspective' : 'Orthographic'}
Levels: {levelMode === 'manual' ? 'Manual' : levelModeLabels[levelMode as keyof typeof levelModeLabels]}
Scans: {showScans ? 'Visible' : 'Hidden'}
Guides: {showGuides ? 'Visible' : 'Hidden'}