From 202ed11030ca3083dfa49ab698b6ff7a05b68b30 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 6 Mar 2024 10:09:47 +0100 Subject: [PATCH] handle root items --- .../core/tree/default/default-tree.context.ts | 19 +++++++++++++++++++ .../tree-item-base/tree-item-context-base.ts | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.context.ts index a1f8e8d8fb..c77f4437e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.context.ts @@ -57,6 +57,25 @@ export class UmbDefaultTreeContext // listen for page changes on the pagination manager this.pagination.addEventListener(UmbChangeEvent.TYPE, this.#onPageChange); + + /* TODO: revisit. This is a temp solution to notify the parent it needs to reload its children + there might be a better way to do this through a tree item parent context. + It does not look like there is a way to have a "dynamic" parent context that will stop when a + specific parent is reached (a tree item unique that matches the parentUnique of this item) */ + const hostElement = this.getHostElement(); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + hostElement.addEventListener('reload-tree-item-parent', (event: CustomEvent) => { + const treeRoot = this.#treeRoot.getValue(); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + const unique = treeRoot.unique; + if (event.detail.unique === unique) { + event.stopPropagation(); + this.loadRootItems(); + } + }); + this.loadTreeRoot(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts index 26bfee1d5e..f2fe716d6b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts @@ -97,8 +97,8 @@ export abstract class UmbTreeItemContextBase