import React, { useEffect, useState } from "react"; import { Button, Tooltip, Divider, Dropdown } from "antd"; import { DownOutlined } from "@ant-design/icons"; import { useModel } from "umi"; import TodoDrawer from "./TodoDrawer"; import AICreator from "./AICreator"; export default function Toolbar() { const { addTable, addTopicArea, addRemark, graph, canRedo, canUndo, onRedo, onUndo, project, setProject, onSave, onCreateByAi } = useModel("erModel"); const todoRef = React.useRef<{ open: () => void }>(); const scaleMenu = { style: { width: 200, }, items: [ { key: "1", label: "25%", onClick: () => { handleZoom(25); }, }, { key: "2", label: "50%", onClick: () => { handleZoom(50); }, }, { key: "3", label: "75%", onClick: () => { handleZoom(75); }, }, { key: "4", label: "100%", onClick: () => { handleZoom(100); }, }, { key: "5", label: "150%", onClick: () => { handleZoom(150); }, }, { key: "6", label: "200%", onClick: () => { handleZoom(200); }, }, ], }; const [scale, setScale] = useState(100); useEffect(() => { graph?.on("scale", (scaleInfo) => { setScale(parseInt(scaleInfo.sx * 100 + "")); }); }, [graph]); const handleZoom = (value: number) => { if (value > 200) { graph?.zoomTo(2); return; } if (value < 20) { graph?.zoomTo(0.2); return; } graph?.zoomTo(value / 100); }; const handleChangeShowMenu = () => { setProject({ ...project, setting: { ...project.setting, showMenu: !project.setting.showMenu }, }); }; return (