From 401c084ca5cd62917f0ec723825da27de1e1a88f Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 6 Jun 2024 15:02:51 +0100 Subject: [PATCH] Bugfix: Workspace breadcrumbs, error when new at root --- ...u-tree-structure-workspace-context-base.ts | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-tree-structure-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-tree-structure-workspace-context-base.ts index 9bb012f722..59da518fa3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-tree-structure-workspace-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-tree-structure-workspace-context-base.ts @@ -58,28 +58,31 @@ export abstract class UmbMenuTreeStructureWorkspaceContextBase extends UmbContex } const isNew = this.#workspaceContext?.getIsNew(); - const uniqueObservable = isNew ? this.#workspaceContext?.parentUnique : this.#workspaceContext?.unique; + const entityTypeObservable = isNew ? this.#workspaceContext?.parentEntityType : this.#workspaceContext?.entityType; - - const unique = (await this.observe(uniqueObservable, () => {})?.asPromise()) as string; - if (!unique) throw new Error('Unique is not available'); - const entityType = (await this.observe(entityTypeObservable, () => {})?.asPromise()) as string; if (!entityType) throw new Error('Entity type is not available'); - const { data } = await treeRepository.requestTreeItemAncestors({ treeItem: { unique, entityType } }); + // If the entity type is different from the root entity type, then we can request the ancestors. + if (entityType !== root?.entityType) { + const uniqueObservable = isNew ? this.#workspaceContext?.parentUnique : this.#workspaceContext?.unique; + const unique = (await this.observe(uniqueObservable, () => {})?.asPromise()) as string; + if (!unique) throw new Error('Unique is not available'); - if (data) { - const ancestorItems = data.map((treeItem) => { - return { - unique: treeItem.unique, - entityType: treeItem.entityType, - name: treeItem.name, - isFolder: treeItem.isFolder, - }; - }); + const { data } = await treeRepository.requestTreeItemAncestors({ treeItem: { unique, entityType } }); - structureItems.push(...ancestorItems); + if (data) { + const ancestorItems = data.map((treeItem) => { + return { + unique: treeItem.unique, + entityType: treeItem.entityType, + name: treeItem.name, + isFolder: treeItem.isFolder, + }; + }); + + structureItems.push(...ancestorItems); + } } const parent = structureItems[structureItems.length - 2];