@@ -16,10 +16,14 @@ export interface TreeNodeItem extends ObjectItem {
1616 isUserDefinedLeafNode : boolean ;
1717}
1818
19+ export interface InfoTreeNodeItem {
20+ Message : string ;
21+ }
22+
1923export interface TreeNodeProps extends Pick < TreeNodeContainerProps , "tabIndex" > {
2024 class : string ;
2125 style ?: CSSProperties ;
22- items : TreeNodeItem [ ] | null ;
26+ items : TreeNodeItem [ ] | InfoTreeNodeItem | null ;
2327 startExpanded : TreeNodeBranchProps [ "startExpanded" ] ;
2428 showCustomIcon : boolean ;
2529 iconPlacement : TreeNodeBranchProps [ "iconPlacement" ] ;
@@ -62,11 +66,11 @@ export function TreeNode({
6266 return treeNodeElement ?. parentElement ?. className . includes ( treeNodeBranchUtils . bodyClassName ) ?? false ;
6367 } , [ treeNodeElement ] ) ;
6468
65- useInformParentContextOfChildNodes ( items ? .length ?? 0 , isInsideAnotherTreeNode ) ;
69+ useInformParentContextOfChildNodes ( Array . isArray ( items ) ? items . length : 0 , isInsideAnotherTreeNode ) ;
6670
6771 const changeTreeNodeBranchHeaderFocus = useTreeNodeFocusChangeHandler ( ) ;
6872
69- if ( items === null || items . length === 0 ) {
73+ if ( items === null || ( Array . isArray ( items ) && items . length === 0 ) ) {
7074 return null ;
7175 }
7276
@@ -78,25 +82,26 @@ export function TreeNode({
7882 data-focusindex = { tabIndex || 0 }
7983 role = { level === 0 ? "tree" : "group" }
8084 >
81- { items . map ( item => {
82- const { id, headerContent, bodyContent, isUserDefinedLeafNode } = item ;
83- return (
84- < TreeNodeBranch
85- key = { id }
86- id = { id }
87- headerContent = { headerContent }
88- isUserDefinedLeafNode = { isUserDefinedLeafNode }
89- startExpanded = { startExpanded }
90- iconPlacement = { iconPlacement }
91- renderHeaderIcon = { renderHeaderIconCallback }
92- changeFocus = { changeTreeNodeBranchHeaderFocus }
93- animateTreeNodeContent = { animateTreeNodeContent }
94- openNodeOn = { openNodeOn }
95- >
96- { bodyContent }
97- </ TreeNodeBranch >
98- ) ;
99- } ) }
85+ { Array . isArray ( items ) &&
86+ items . map ( item => {
87+ const { id, headerContent, bodyContent, isUserDefinedLeafNode } = item ;
88+ return (
89+ < TreeNodeBranch
90+ key = { id }
91+ id = { id }
92+ headerContent = { headerContent }
93+ isUserDefinedLeafNode = { isUserDefinedLeafNode }
94+ startExpanded = { startExpanded }
95+ iconPlacement = { iconPlacement }
96+ renderHeaderIcon = { renderHeaderIconCallback }
97+ changeFocus = { changeTreeNodeBranchHeaderFocus }
98+ animateTreeNodeContent = { animateTreeNodeContent }
99+ openNodeOn = { openNodeOn }
100+ >
101+ { bodyContent }
102+ </ TreeNodeBranch >
103+ ) ;
104+ } ) }
100105 </ ul >
101106 ) ;
102107}
0 commit comments