diff --git a/src/TreeNode.tsx b/src/TreeNode.tsx index 919931f8..20e1c3fa 100644 --- a/src/TreeNode.tsx +++ b/src/TreeNode.tsx @@ -430,6 +430,7 @@ const TreeNode: React.FC> = props => { 'drag-over-gap-top': !isDisabled && dragOverGapTop, 'drag-over-gap-bottom': !isDisabled && dragOverGapBottom, 'filter-node': context.filterTreeNode?.(convertNodePropsToEventData(props)), + [`${context.prefixCls}-treenode-leaf`]: memoizedIsLeaf, })} style={style} // Draggable config diff --git a/tests/Tree.spec.tsx b/tests/Tree.spec.tsx index 0ee77750..fe1125a7 100644 --- a/tests/Tree.spec.tsx +++ b/tests/Tree.spec.tsx @@ -1312,4 +1312,27 @@ describe('Tree Basic', () => { expect(getByRole('treeitem', { name: 'leaf 2' })).toHaveClass('rc-tree-treenode-disabled'); }); }); + it('leaf className', () => { + const data = [ + { + title: '0-0', + key: '0-0', + children: [ + { title: '0-0-0', key: '0-0-0' }, + { + title: '0-0-1', + key: '0-0-1', + children: [ + { title: '0-0-1-0', key: '0-0-1-0' }, + { title: '0-0-1-1', key: '0-0-1-1' }, + ], + }, + ], + }, + { title: '0-1', key: '0-1' }, + ]; + const { container } = render(); + const treeNodes = container.querySelectorAll('.rc-tree-treenode-leaf'); + expect(treeNodes.length).toBe(4); + }); }); diff --git a/tests/__snapshots__/Tree.spec.tsx.snap b/tests/__snapshots__/Tree.spec.tsx.snap index 0385139a..60bd9998 100644 --- a/tests/__snapshots__/Tree.spec.tsx.snap +++ b/tests/__snapshots__/Tree.spec.tsx.snap @@ -73,7 +73,7 @@ exports[`Tree Basic check basic render 1`] = `