import React from 'react' import { Breadcrumb } from 'antd' import { useCurrentNode, useSelection, usePrefix, useHover } from '../../hooks' import { IconWidget } from '../IconWidget' import { NodeTitleWidget } from '../NodeTitleWidget' import { observer } from '@formily/reactive-react' import './styles.less' export interface INodePathWidgetProps { workspaceId?: string maxItems?: number } export const NodePathWidget: React.FC = observer( (props) => { const selected = useCurrentNode(props.workspaceId) const selection = useSelection(props.workspaceId) const hover = useHover(props.workspaceId) const prefix = usePrefix('node-path') if (!selected) return const maxItems = props.maxItems ?? 3 const nodes = selected .getParents() .slice(0, maxItems - 1) .reverse() .concat(selected) return ( {nodes.map((node, key) => { return ( {key === 0 && ( )} { hover.setHover(node) }} onClick={(e) => { e.stopPropagation() e.preventDefault() selection.select(node) }} > ) })} ) } )