Skip to content

Commit 3a43568

Browse files
committed
chore: allow expression on has children variables
1 parent 22872ad commit 3a43568

File tree

5 files changed

+7
-7
lines changed

5 files changed

+7
-7
lines changed

packages/pluggableWidgets/tree-node-web/src/TreeNode.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,10 @@
4747
<caption>Header caption</caption>
4848
<description />
4949
</property>
50-
<property key="hasChildren" type="boolean" defaultValue="true">
50+
<property key="hasChildren" type="expression" dataSource="datasource">
5151
<caption>Has children</caption>
5252
<description>Indicate whether the node has children or is an end node. When set to yes, a composable region becomes available to define the child nodes.</description>
53+
<returnType type="Boolean" />
5354
</property>
5455
<property key="startExpanded" type="boolean" defaultValue="false">
5556
<caption>Start expanded</caption>

packages/pluggableWidgets/tree-node-web/src/components/TreeNodeBranch.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ export function TreeNodeBranch({
121121
});
122122
}
123123
},
124-
[captureElementHeight, eventTargetIsNotCurrentBranch, isActualLeafNode]
124+
[captureElementHeight, eventTargetIsNotCurrentBranch, isActualLeafNode, fetchChildren, item]
125125
);
126126

127127
const onHeaderKeyDown = useTreeNodeBranchKeyboardHandler(

packages/pluggableWidgets/tree-node-web/src/components/TreeNodeComponent.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ export function TreeNodeComponent(props: TreeNodeComponentProps): ReactElement |
5959
isInfiniteMode
6060
} = props;
6161
const [treeNodeElement, updateTreeNodeElement] = useTreeNodeRef();
62-
const isUserDefinedLeafNode = hasChildren === false;
6362
const showIconAnimation = animate && animateIcon;
6463

6564
const renderHeaderIconCallback = useCallback<TreeNodeHeaderIcon>(
@@ -98,7 +97,7 @@ export function TreeNodeComponent(props: TreeNodeComponentProps): ReactElement |
9897
key={item.id}
9998
id={item.id}
10099
headerContent={headerType === "text" ? headerCaption?.get(item).value : headerContent?.get(item)}
101-
isUserDefinedLeafNode={isUserDefinedLeafNode}
100+
isUserDefinedLeafNode={hasChildren?.get(item).value === false}
102101
startExpanded={startExpanded}
103102
iconPlacement={showIcon}
104103
renderHeaderIcon={renderHeaderIconCallback}

packages/pluggableWidgets/tree-node-web/src/components/hooks/lazyLoading.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export const useTreeNodeLazyLoading = (
1010
hasNestedTreeNode: () => boolean;
1111
} => {
1212
const hasNestedTreeNode = useCallback(
13-
() => treeNodeBranchBody.current?.lastElementChild?.className.includes("widget-tree-node") ?? true,
13+
() => treeNodeBranchBody.current?.lastElementChild?.className.includes("widget-tree-node") ?? false,
1414
[]
1515
);
1616

packages/pluggableWidgets/tree-node-web/typings/TreeNodeProps.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export interface TreeNodeContainerProps {
2424
openNodeOn: OpenNodeOnEnum;
2525
headerContent?: ListWidgetValue;
2626
headerCaption?: ListExpressionValue<string>;
27-
hasChildren: boolean;
27+
hasChildren: ListExpressionValue<boolean>;
2828
startExpanded: boolean;
2929
children?: ListWidgetValue;
3030
animate: boolean;
@@ -52,7 +52,7 @@ export interface TreeNodePreviewProps {
5252
openNodeOn: OpenNodeOnEnum;
5353
headerContent: { widgetCount: number; renderer: ComponentType<{ children: ReactNode; caption?: string }> };
5454
headerCaption: string;
55-
hasChildren: boolean;
55+
hasChildren: string;
5656
startExpanded: boolean;
5757
children: { widgetCount: number; renderer: ComponentType<{ children: ReactNode; caption?: string }> };
5858
animate: boolean;

0 commit comments

Comments
 (0)