import { useStore, toolTips } from './useStore' import { extrudeSketch, sketchOnExtrudedFace } from './lang/modifyAst' import { getNodePathFromSourceRange } from './lang/queryAst' import { HorzVert } from './components/Toolbar/HorzVert' import { RemoveConstrainingValues } from './components/Toolbar/RemoveConstrainingValues' import { EqualLength } from './components/Toolbar/EqualLength' import { EqualAngle } from './components/Toolbar/EqualAngle' import { Intersect } from './components/Toolbar/Intersect' import { SetHorzVertDistance } from './components/Toolbar/SetHorzVertDistance' import { SetAngleLength } from './components/Toolbar/SetAngleLength' import { ConvertToVariable } from './components/Toolbar/ConvertVariable' import { SetAbsDistance } from './components/Toolbar/SetAbsDistance' export const Toolbar = () => { const { setGuiMode, guiMode, selectionRanges, ast, updateAst, programMemory, } = useStore((s) => ({ guiMode: s.guiMode, setGuiMode: s.setGuiMode, selectionRanges: s.selectionRanges, ast: s.ast, updateAst: s.updateAst, programMemory: s.programMemory, })) return (
{guiMode.mode === 'default' && ( )} {guiMode.mode === 'canEditExtrude' && ( )} {(guiMode.mode === 'canEditSketch' || false) && ( )} {guiMode.mode === 'canEditSketch' && ( <> )} {guiMode.mode === 'sketch' && ( )} {toolTips .filter( // (sketchFnName) => !['angledLineThatIntersects'].includes(sketchFnName) (sketchFnName) => ['line'].includes(sketchFnName) ) .map((sketchFnName) => { if ( guiMode.mode !== 'sketch' || !('isTooltip' in guiMode || guiMode.sketchMode === 'sketchEdit') ) return null return ( ) })}

) }