import { MenuOutlined } from '@ant-design/icons'; import { CSS } from '@dnd-kit/utilities'; import { useSortable } from '@dnd-kit/sortable'; import { Children, cloneElement } from 'react'; interface RowProps extends React.HTMLAttributes { 'data-row-key': string; } export const ActionListRow = ({ children, ...props }: RowProps) => { const { attributes, listeners, setNodeRef, setActivatorNodeRef, transform, transition, isDragging } = useSortable({ id: props['data-row-key'], }); const style: React.CSSProperties = { ...props.style, transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }), transition, ...(isDragging ? { position: 'relative' } : {}), }; return ( {Children.map(children, (child) => { if ((child as React.ReactElement).key === 'sort') { return cloneElement(child as React.ReactElement, { children: ( ), }); } return child; })} ); };