import { ArrowTopRightIcon, CircleIcon, CursorArrowIcon, DividerHorizontalIcon, DotIcon, LockClosedIcon, LockOpen1Icon, Pencil1Icon, Pencil2Icon, SewingPinIcon, SquareIcon, } from '@radix-ui/react-icons' import { IconButton } from 'components/shared' import React from 'react' import state, { useSelector } from 'state' import styled from 'styles' import { ShapeType } from 'types' import UndoRedo from './undo-redo' import Zoom from './zoom' const selectArrowTool = () => state.send('SELECTED_ARROW_TOOL') const selectCircleTool = () => state.send('SELECTED_CIRCLE_TOOL') const selectDotTool = () => state.send('SELECTED_DOT_TOOL') const selectDrawTool = () => state.send('SELECTED_DRAW_TOOL') const selectEllipseTool = () => state.send('SELECTED_ELLIPSE_TOOL') const selectLineTool = () => state.send('SELECTED_LINE_TOOL') const selectPolylineTool = () => state.send('SELECTED_POLYLINE_TOOL') const selectRayTool = () => state.send('SELECTED_RAY_TOOL') const selectRectangleTool = () => state.send('SELECTED_RECTANGLE_TOOL') const selectSelectTool = () => state.send('SELECTED_SELECT_TOOL') const selectToolLock = () => state.send('TOGGLED_TOOL_LOCK') export default function ToolsPanel() { const activeTool = useSelector((state) => state.whenIn({ arrow: ShapeType.Arrow, circle: ShapeType.Circle, dot: ShapeType.Dot, draw: ShapeType.Draw, ellipse: ShapeType.Ellipse, line: ShapeType.Line, polyline: ShapeType.Polyline, ray: ShapeType.Ray, rectangle: ShapeType.Rectangle, selecting: 'select', }) ) const isToolLocked = useSelector((s) => s.data.settings.isToolLocked) const isPenLocked = useSelector((s) => s.data.settings.isPenLocked) return ( {/* */} {/* */} {isToolLocked ? : } {isPenLocked && ( )} ) } const OuterContainer = styled('div', { position: 'fixed', bottom: 40, left: 0, right: 0, padding: '0 8px 12px 8px', width: '100%', display: 'flex', alignItems: 'center', justifyContent: 'center', flexWrap: 'wrap', gap: 16, zIndex: 200, }) const Flex = styled('div', { display: 'flex', justifyContent: 'space-between', width: '100%', padding: '0 4px', variants: { size: { small: { width: 'auto', padding: '0', '& > *:nth-child(n+2)': { marginLeft: 16, }, }, }, }, }) const Container = styled('div', { position: 'relative', backgroundColor: '$panel', borderRadius: '4px', overflow: 'hidden', border: '1px solid $panel', pointerEvents: 'all', userSelect: 'none', height: '100%', display: 'flex', padding: 4, boxShadow: '0px 2px 4px rgba(0,0,0,.12)', '& svg': { strokeWidth: 0, }, })