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;