import { useState, useEffect } from 'react'; import { StyledEdgelessToolbar, StyledToolbarWrapper, StyledToolbarItem, } from './style'; import { SelectIcon, TextIcon, ShapeIcon, PenIcon, StickerIcon, ConnectorIcon, UndoIcon, RedoIcon, } from './icons'; import { Tooltip } from '@/ui/tooltip'; import Slide from '@mui/material/Slide'; import { useEditor } from '@/providers/editor-provider'; const toolbarList1 = [ { flavor: 'select', icon: , toolTip: 'Select', disable: false, callback: () => { window.dispatchEvent( new CustomEvent('affine.switch-mouse-mode', { detail: { type: 'default', }, }) ); }, }, { flavor: 'text', icon: , toolTip: 'Text (coming soon)', disable: true, }, { flavor: 'shape', icon: , toolTip: 'Shape', disable: false, callback: () => { window.dispatchEvent( new CustomEvent('affine.switch-mouse-mode', { detail: { type: 'shape', color: 'black', shape: 'rectangle', }, }) ); }, }, { flavor: 'sticky', icon: , toolTip: 'Sticky (coming soon)', disable: true, }, { flavor: 'pen', icon: , toolTip: 'Pen (coming soon)', disable: true, }, { flavor: 'connector', icon: , toolTip: 'Connector (coming soon)', disable: true, }, ]; const toolbarList2 = [ { flavor: 'undo', icon: , toolTip: 'Undo', disable: false, }, { flavor: 'redo', icon: , toolTip: 'Redo', disable: false, }, ]; const UndoRedo = () => { const [canUndo, setCanUndo] = useState(false); const [canRedo, setCanRedo] = useState(false); const { onHistoryUpdated, page } = useEditor(); useEffect(() => { onHistoryUpdated(page => { setCanUndo(page.canUndo); setCanRedo(page.canRedo); }); }, [onHistoryUpdated]); return ( { page?.undo(); }} > { page?.redo(); }} > ); }; export const EdgelessToolbar = () => { const { mode } = useEditor(); return ( {toolbarList1.map( ({ icon, toolTip, flavor, disable, callback }, index) => { return ( { console.log('click toolbar button:', flavor); callback?.(); }} > {icon} ); } )} ); }; export default EdgelessToolbar;