diff --git a/packages/editor/src/components/ui/viewer-toolbar.tsx b/packages/editor/src/components/ui/viewer-toolbar.tsx index 8a45d18c..53fe873e 100644 --- a/packages/editor/src/components/ui/viewer-toolbar.tsx +++ b/packages/editor/src/components/ui/viewer-toolbar.tsx @@ -2,11 +2,17 @@ import { Icon as IconifyIcon } from '@iconify/react' import { useViewer } from '@pascal-app/viewer' -import { ChevronsLeft, ChevronsRight, Columns2, Eye, Footprints, Moon, Sun } from 'lucide-react' +import { Check, ChevronsLeft, ChevronsRight, Columns2, Eye, Footprints, Moon, Sun } from 'lucide-react' import { useCallback } from 'react' import { cn } from '../../lib/utils' import useEditor from '../../store/use-editor' import type { GridSnapStep, ViewMode } from '../../store/use-editor' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from './primitives/dropdown-menu' import { useSidebarStore } from './primitives/sidebar' import { Tooltip, TooltipContent, TooltipTrigger } from './primitives/tooltip' @@ -176,7 +182,7 @@ const levelModeLabels: Record = { const gridSnapOrder: GridSnapStep[] = [0.5, 0.25, 0.1, 0.05] const gridSnapLabels: Record = { - 0.5: '0.5', + 0.5: '0.50', 0.25: '0.25', 0.1: '0.10', 0.05: '0.05', @@ -235,22 +241,33 @@ function GridSnapToggle() { const gridSnapStep = useEditor((s) => s.gridSnapStep) const setGridSnapStep = useEditor((s) => s.setGridSnapStep) - const cycle = () => { - const idx = gridSnapOrder.indexOf(gridSnapStep) - const next = gridSnapOrder[(idx + 1) % gridSnapOrder.length] - if (next) setGridSnapStep(next) - } - return ( - - - - - Grid snap: {formatGridSnapStep(gridSnapStep)} - + + + + + + + + Grid snap: {formatGridSnapStep(gridSnapStep)} + + + {gridSnapOrder.map((step) => { + const isActive = step === gridSnapStep + return ( + setGridSnapStep(step)}> + + {formatGridSnapStep(step)} + {isActive ? : } + + + ) + })} + + ) }