import React from 'react'; import classnames from 'classnames'; import { Input, Space } from 'antd'; import { EditOutlined, DeleteOutlined } from '@easyv/react-icons'; export interface MenuItemDataSource { key: string; label: string; desc?: string; } export interface MenuItemProp { dataSource: MenuItemDataSource; isActive: boolean; showExtend?: boolean; className?: string; canEdit?: boolean; onClick: (key: string) => void; onDropProject?: (key: string) => void; onEditName?: (id: string, name: string) => void; onRomove?: (key: string) => void; } const MenuItem: React.FC = function ({ dataSource, isActive, showExtend, className, canEdit = true, onClick, onDropProject, onEditName, onRomove, }) { const [editing, setEditing] = React.useState(false); return (
onClick(dataSource.key)} onDrop={() => onDropProject?.(dataSource.key)} onDragOver={(e) => { e.preventDefault(); }}> {editing ? (
{ value && onEditName?.(dataSource.key, value); setEditing(false); }} onBlur={({ currentTarget: { value } }) => { value && onEditName?.(dataSource.key, value); setEditing(false); }} />
) : ( <> canEdit && setEditing(true)}> {dataSource.label} {dataSource.desc && ( {dataSource.desc} )} {showExtend && ( { e.stopPropagation(); canEdit && setEditing(true); }} /> { e.stopPropagation(); onRomove?.(dataSource.key); }} /> )} )}
); }; export default MenuItem;