import React from 'react' import { Space, Typography, Divider, TypographyProps } from 'antd' import { observer } from '@formily/reactive-react' import { usePrefix, useTreeNode, useSelected } from '../../hooks' import { IconWidget } from '../IconWidget' import { TextWidget } from '../TextWidget' import cls from 'classnames' import './styles.less' export interface INodeActionsWidgetProps { className?: string style?: React.CSSProperties activeShown?: boolean } export interface INodeActionsWidgetActionProps extends Omit, 'title' | 'type' | 'ref'>, Partial { className?: string style?: React.CSSProperties title: React.ReactNode icon?: React.ReactNode } export const NodeActionsWidget: React.FC & { Action?: React.FC } = observer((props) => { const node = useTreeNode() const prefix = usePrefix('node-actions') const selected = useSelected() if (selected.indexOf(node.id) === -1 && props.activeShown) return null return (
}>{props.children}
) }) NodeActionsWidget.Action = ({ icon, title, ...props }) => { const prefix = usePrefix('node-actions-item') return ( {title} ) }