import { CircleIcon, CursorArrowIcon, DividerHorizontalIcon, DotIcon, LineHeightIcon, 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 selectSelectTool = () => state.send('SELECTED_SELECT_TOOL') const selectDrawTool = () => state.send('SELECTED_DRAW_TOOL') const selectDotTool = () => state.send('SELECTED_DOT_TOOL') const selectCircleTool = () => state.send('SELECTED_CIRCLE_TOOL') const selectEllipseTool = () => state.send('SELECTED_ELLIPSE_TOOL') const selectRayTool = () => state.send('SELECTED_RAY_TOOL') const selectLineTool = () => state.send('SELECTED_LINE_TOOL') const selectPolylineTool = () => state.send('SELECTED_POLYLINE_TOOL') const selectRectangleTool = () => state.send('SELECTED_RECTANGLE_TOOL') const selectToolLock = () => state.send('TOGGLED_TOOL_LOCK') export default function ToolsPanel() { const activeTool = useSelector((state) => state.whenIn({ selecting: 'select', dot: ShapeType.Dot, circle: ShapeType.Circle, ellipse: ShapeType.Ellipse, ray: ShapeType.Ray, line: ShapeType.Line, polyline: ShapeType.Polyline, rectangle: ShapeType.Rectangle, draw: ShapeType.Draw, }) ) 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', '& > *:nth-child(n+2)': { marginLeft: 16, }, }) const Container = styled('div', { position: 'relative', backgroundColor: '$panel', borderRadius: '4px', overflow: 'hidden', border: '1px solid $border', pointerEvents: 'all', userSelect: 'none', height: '100%', display: 'flex', padding: 4, '& svg': { strokeWidth: 0, }, })