Skip to content

Commit afda2e6

Browse files
EmilyyyLiu刘欢claude
authored
fix: DirectoryTree not forwarding defaultExpandParent (ant-design#58068)
* fix: forward defaultExpandParent to Tree component Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: forward defaultExpandParent to Tree component Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * test: add test for defaultExpandParent=false Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: 刘欢 <lh01217311@antgroup.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 7835883 commit afda2e6

3 files changed

Lines changed: 185 additions & 1 deletion

File tree

components/tree/DirectoryTree.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ function getTreeData({ treeData, children }: DirectoryTreeProps) {
4141
}
4242

4343
const DirectoryTree = React.forwardRef<RcTree, DirectoryTreeProps>((oriProps, ref) => {
44-
const { defaultExpandAll, defaultExpandParent, defaultExpandedKeys, ...props } = oriProps;
44+
const { defaultExpandAll, defaultExpandParent = true, defaultExpandedKeys, ...props } = oriProps;
4545

4646
// Shift click usage
4747
const lastSelectedKeyRef = React.useRef<React.Key>(null);
@@ -192,6 +192,7 @@ const DirectoryTree = React.forwardRef<RcTree, DirectoryTreeProps>((oriProps, re
192192
expandAction={expandAction}
193193
prefixCls={prefixCls}
194194
className={connectClassName}
195+
defaultExpandParent={defaultExpandParent}
195196
expandedKeys={expandedKeys}
196197
selectedKeys={selectedKeys}
197198
onSelect={onSelect}

components/tree/__tests__/__snapshots__/directory.test.tsx.snap

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,6 +806,184 @@ exports[`Directory Tree defaultExpandParent 1`] = `
806806
</div>
807807
`;
808808

809+
exports[`Directory Tree defaultExpandParent with false 1`] = `
810+
<div
811+
class="ant-tree ant-tree-block-node ant-tree-directory css-var-root"
812+
>
813+
<div
814+
aria-hidden="true"
815+
class="ant-tree-treenode"
816+
style="position: absolute; pointer-events: none; visibility: hidden; height: 0px; overflow: hidden; border: 0px; padding: 0px;"
817+
>
818+
<div
819+
class="ant-tree-indent"
820+
>
821+
<div
822+
class="ant-tree-indent-unit"
823+
/>
824+
</div>
825+
</div>
826+
<div
827+
class="ant-tree-list"
828+
role="tree"
829+
style="position: relative;"
830+
tabindex="0"
831+
>
832+
<div
833+
class="ant-tree-list-holder"
834+
>
835+
<div>
836+
<div
837+
class="ant-tree-list-holder-inner"
838+
style="display: flex; flex-direction: column;"
839+
>
840+
<div
841+
aria-disabled="false"
842+
aria-expanded="false"
843+
aria-selected="false"
844+
class="ant-tree-treenode ant-tree-treenode-switcher-close"
845+
draggable="false"
846+
id="test-id-0-0"
847+
role="treeitem"
848+
>
849+
<span
850+
aria-hidden="true"
851+
class="ant-tree-indent"
852+
/>
853+
<span
854+
class="ant-tree-switcher ant-tree-switcher_close"
855+
>
856+
<span
857+
aria-label="caret-down"
858+
class="anticon anticon-caret-down ant-tree-switcher-icon"
859+
role="img"
860+
>
861+
<svg
862+
aria-hidden="true"
863+
data-icon="caret-down"
864+
fill="currentColor"
865+
focusable="false"
866+
height="1em"
867+
viewBox="0 0 1024 1024"
868+
width="1em"
869+
>
870+
<path
871+
d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"
872+
/>
873+
</svg>
874+
</span>
875+
</span>
876+
<span
877+
class="ant-tree-node-content-wrapper ant-tree-node-content-wrapper-close"
878+
title="---"
879+
>
880+
<span
881+
class="ant-tree-iconEle ant-tree-icon__customize"
882+
>
883+
<span
884+
aria-label="folder"
885+
class="anticon anticon-folder"
886+
role="img"
887+
>
888+
<svg
889+
aria-hidden="true"
890+
data-icon="folder"
891+
fill="currentColor"
892+
focusable="false"
893+
height="1em"
894+
viewBox="64 64 896 896"
895+
width="1em"
896+
>
897+
<path
898+
d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"
899+
/>
900+
</svg>
901+
</span>
902+
</span>
903+
<span
904+
class="ant-tree-title"
905+
>
906+
---
907+
</span>
908+
</span>
909+
</div>
910+
<div
911+
aria-disabled="false"
912+
aria-expanded="false"
913+
aria-selected="false"
914+
class="ant-tree-treenode ant-tree-treenode-switcher-close ant-tree-treenode-leaf-last"
915+
draggable="false"
916+
id="test-id-0-1"
917+
role="treeitem"
918+
>
919+
<span
920+
aria-hidden="true"
921+
class="ant-tree-indent"
922+
/>
923+
<span
924+
class="ant-tree-switcher ant-tree-switcher_close"
925+
>
926+
<span
927+
aria-label="caret-down"
928+
class="anticon anticon-caret-down ant-tree-switcher-icon"
929+
role="img"
930+
>
931+
<svg
932+
aria-hidden="true"
933+
data-icon="caret-down"
934+
fill="currentColor"
935+
focusable="false"
936+
height="1em"
937+
viewBox="0 0 1024 1024"
938+
width="1em"
939+
>
940+
<path
941+
d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"
942+
/>
943+
</svg>
944+
</span>
945+
</span>
946+
<span
947+
class="ant-tree-node-content-wrapper ant-tree-node-content-wrapper-close"
948+
title="---"
949+
>
950+
<span
951+
class="ant-tree-iconEle ant-tree-icon__customize"
952+
>
953+
<span
954+
aria-label="folder"
955+
class="anticon anticon-folder"
956+
role="img"
957+
>
958+
<svg
959+
aria-hidden="true"
960+
data-icon="folder"
961+
fill="currentColor"
962+
focusable="false"
963+
height="1em"
964+
viewBox="64 64 896 896"
965+
width="1em"
966+
>
967+
<path
968+
d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"
969+
/>
970+
</svg>
971+
</span>
972+
</span>
973+
<span
974+
class="ant-tree-title"
975+
>
976+
---
977+
</span>
978+
</span>
979+
</div>
980+
</div>
981+
</div>
982+
</div>
983+
</div>
984+
</div>
985+
`;
986+
809987
exports[`Directory Tree expand with state control click 1`] = `
810988
<div
811989
class="ant-tree ant-tree-block-node ant-tree-directory css-var-root"

components/tree/__tests__/directory.test.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,11 @@ describe('Directory Tree', () => {
175175
expect(asFragment().firstChild).toMatchSnapshot();
176176
});
177177

178+
it('defaultExpandParent with false', () => {
179+
const { asFragment } = render(createTree({ defaultExpandParent: false }));
180+
expect(asFragment().firstChild).toMatchSnapshot();
181+
});
182+
178183
it('expandedKeys update', async () => {
179184
const { rerender, asFragment } = render(createTree());
180185
rerender(createTree({ expandedKeys: ['0-1'] }));

0 commit comments

Comments
 (0)