import OperateDropdown from '@/components/operate-dropdown'; import { CopyOutlined } from '@ant-design/icons'; import { Flex, MenuProps } from 'antd'; import { useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import { Operator } from '../../constant'; import { useDuplicateNode } from '../../hooks'; import useGraphStore from '../../store'; interface IProps { id: string; iconFontColor?: string; label: string; } const NodeDropdown = ({ id, iconFontColor, label }: IProps) => { const { t } = useTranslation(); const deleteNodeById = useGraphStore((store) => store.deleteNodeById); const deleteIterationNodeById = useGraphStore( (store) => store.deleteIterationNodeById, ); const deleteNode = useCallback(() => { if (label === Operator.Iteration) { deleteIterationNodeById(id); } else { deleteNodeById(id); } }, [label, deleteIterationNodeById, id, deleteNodeById]); const duplicateNode = useDuplicateNode(); const items: MenuProps['items'] = [ { key: '2', onClick: () => duplicateNode(id, label), label: ( {t('common.copy')} ), }, ]; return ( ); }; export default NodeDropdown;