@ant-design/pro-flow
Version:
A React based Flow components
57 lines • 1.59 kB
JavaScript
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import { ZoomInOutlined, ZoomOutOutlined } from '@ant-design/icons';
import { BoxSelectIcon, ClipboardList } from 'lucide-react';
import { useMemo } from 'react';
import { useReactFlow } from 'reactflow';
import { useStore } from "../../store";
import { jsx as _jsx } from "react/jsx-runtime";
var size = 16;
export var useMenuActions = function useMenuActions() {
var instance = useReactFlow();
var _useStore = useStore(function (s) {
return [s.selectAll];
}),
_useStore2 = _slicedToArray(_useStore, 1),
selectAll = _useStore2[0];
return useMemo(function () {
return {
DIVIDER: {
type: 'divider'
},
paste: {
key: 'paste',
label: '粘贴',
onClick: selectAll,
icon: /*#__PURE__*/_jsx(ClipboardList, {
size: size
}),
shortcut: ['meta', 'V']
},
selectAll: {
key: 'selectAll',
label: '选择全部',
icon: /*#__PURE__*/_jsx(BoxSelectIcon, {
size: size
}),
onClick: selectAll,
shortcut: ['meta', 'A']
},
zoomIn: {
label: '放大',
icon: /*#__PURE__*/_jsx(ZoomInOutlined, {}),
onClick: function onClick() {
instance.zoomIn();
},
key: 'zoomIn'
},
zoomOut: {
label: '缩小',
icon: /*#__PURE__*/_jsx(ZoomOutOutlined, {}),
onClick: function onClick() {
instance.zoomOut();
},
key: 'zoomOut'
}
};
}, []);
};