diff --git a/packages/canary-web-components/src/components/ic-tree-item/ic-tree-item.tsx b/packages/canary-web-components/src/components/ic-tree-item/ic-tree-item.tsx index e45f2e8ea9..518b92dee3 100644 --- a/packages/canary-web-components/src/components/ic-tree-item/ic-tree-item.tsx +++ b/packages/canary-web-components/src/components/ic-tree-item/ic-tree-item.tsx @@ -169,12 +169,16 @@ export class TreeItem { childList: true, }); } - - componentDidUpdate(): void { - // Truncation is run here because truncateTreeItem prop gets applied on second render - // if being passed down from parent tree view + componentDidRender(): void { this.truncateTreeItem && this.truncateTreeItemLabel(this.el); + if (this.expanded) { + this.childTreeItems.forEach((child: HTMLIcTreeItemElement) => { + child.truncateTreeItem && this.truncateTreeItemLabel(child); + }); + } + } + componentDidUpdate(): void { if (this.hasParentExpanded) { this.childTreeItems.forEach((child: HTMLIcTreeItemElement) => { child.truncateTreeItem && this.truncateTreeItemLabel(child); diff --git a/packages/canary-web-components/src/components/ic-tree-view/ic-tree-view.tsx b/packages/canary-web-components/src/components/ic-tree-view/ic-tree-view.tsx index 476b23e509..cd348c53b3 100644 --- a/packages/canary-web-components/src/components/ic-tree-view/ic-tree-view.tsx +++ b/packages/canary-web-components/src/components/ic-tree-view/ic-tree-view.tsx @@ -98,17 +98,20 @@ export class TreeView { this.hostMutationObserver?.disconnect(); } - - componentDidLoad(): void { + componentWillLoad(): void { this.setTreeItems(); this.watchSizeHandler(); this.watchFocusInsetHandler(); this.watchThemeHandler(); this.watchTruncateTreeItemsHandler(); + } + componentDidRender(): void { this.truncateHeading && this.truncateTreeViewHeading(); + } + componentDidLoad(): void { this.addSlotChangeListener(); this.hostMutationObserver = new MutationObserver((mutationList) => @@ -295,15 +298,7 @@ export class TreeView { }; render() { - const { - focusInset, - heading, - isLoaded, - size, - theme, - truncateHeading, - truncateTreeItems, - } = this; + const { heading, isLoaded, size, theme, truncateHeading } = this; return ( )} -
- -
+ +
); }