packages/react/src/widgets/AuxToolWidget/DragHandler.tsx (26 lines of code) (raw):

import React from 'react' import { TreeNode } from '@designable/core' import { observer } from '@formily/reactive-react' import { IconWidget } from '../IconWidget' import { useDesigner, usePrefix } from '../../hooks' import { Button } from 'antd' export interface IDragHandlerProps { node: TreeNode style?: React.CSSProperties } export const DragHandler: React.FC<IDragHandlerProps> = observer( ({ node, style }) => { const designer = useDesigner() const prefix = usePrefix('aux-drag-handler') if (node === node.root || !node.allowDrag()) return null const handlerProps = { [designer.props.nodeDragHandlerAttrName]: 'true', } return ( <Button {...handlerProps} className={prefix} style={style} type="primary"> <IconWidget infer="Move" /> </Button> ) } ) DragHandler.displayName = 'DragHandler'