import { useStore, toolTips, Selections } 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 { SetAbsDistance } from './components/Toolbar/SetAbsDistance' import { SetAngleBetween } from './components/Toolbar/SetAngleBetween' import { Fragment, useEffect } from 'react' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faSearch, faX } from '@fortawesome/free-solid-svg-icons' import { Popover, Transition } from '@headlessui/react' import styles from './Toolbar.module.css' import { v4 as uuidv4 } from 'uuid' import { useAppMode } from 'hooks/useAppMode' export const Toolbar = () => { const { setGuiMode, guiMode, selectionRanges, ast, updateAst, programMemory, engineCommandManager, } = useStore((s) => ({ guiMode: s.guiMode, setGuiMode: s.setGuiMode, selectionRanges: s.selectionRanges, ast: s.ast, updateAst: s.updateAst, programMemory: s.programMemory, engineCommandManager: s.engineCommandManager, })) useAppMode() useEffect(() => { console.log('guiMode', guiMode) }, [guiMode]) function ToolbarButtons() { return ( {guiMode.mode === 'default' && ( )} {guiMode.mode === 'canEditExtrude' && ( )} {guiMode.mode === 'canEditSketch' && ( )} {guiMode.mode === 'canEditSketch' && ( <> )} {guiMode.mode === 'sketch' && ( )} {toolTips .filter( // (sketchFnName) => !['angledLineThatIntersects'].includes(sketchFnName) (sketchFnName) => ['sketch_line', 'move'].includes(sketchFnName) ) .map((sketchFnName) => { if ( guiMode.mode !== 'sketch' || !('isTooltip' in guiMode || guiMode.sketchMode === 'sketchEdit') ) return null return ( ) })} ) } return (
{guiMode.mode === 'sketch' ? '2D' : '3D'}

You're in {guiMode.mode === 'sketch' ? '2D' : '3D'}

) }