Skip to content

Commit f5b321f

Browse files
authored
Merge pull request #1988 from umbraco/v14/bugfix/workspace-breadcrumbs-new-at-root
Bugfix: Workspace breadcrumbs, error when new at root
2 parents 09064b0 + 970f7e6 commit f5b321f

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

src/packages/core/menu/menu-tree-structure-workspace-context-base.ts

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -58,28 +58,31 @@ export abstract class UmbMenuTreeStructureWorkspaceContextBase extends UmbContex
5858
}
5959

6060
const isNew = this.#workspaceContext?.getIsNew();
61-
const uniqueObservable = isNew ? this.#workspaceContext?.parentUnique : this.#workspaceContext?.unique;
62-
const entityTypeObservable = isNew ? this.#workspaceContext?.parentEntityType : this.#workspaceContext?.entityType;
63-
64-
const unique = (await this.observe(uniqueObservable, () => {})?.asPromise()) as string;
65-
if (!unique) throw new Error('Unique is not available');
6661

62+
const entityTypeObservable = isNew ? this.#workspaceContext?.parentEntityType : this.#workspaceContext?.entityType;
6763
const entityType = (await this.observe(entityTypeObservable, () => {})?.asPromise()) as string;
6864
if (!entityType) throw new Error('Entity type is not available');
6965

70-
const { data } = await treeRepository.requestTreeItemAncestors({ treeItem: { unique, entityType } });
71-
72-
if (data) {
73-
const ancestorItems = data.map((treeItem) => {
74-
return {
75-
unique: treeItem.unique,
76-
entityType: treeItem.entityType,
77-
name: treeItem.name,
78-
isFolder: treeItem.isFolder,
79-
};
80-
});
81-
82-
structureItems.push(...ancestorItems);
66+
// If the entity type is different from the root entity type, then we can request the ancestors.
67+
if (entityType !== root?.entityType) {
68+
const uniqueObservable = isNew ? this.#workspaceContext?.parentUnique : this.#workspaceContext?.unique;
69+
const unique = (await this.observe(uniqueObservable, () => {})?.asPromise()) as string;
70+
if (!unique) throw new Error('Unique is not available');
71+
72+
const { data } = await treeRepository.requestTreeItemAncestors({ treeItem: { unique, entityType } });
73+
74+
if (data) {
75+
const ancestorItems = data.map((treeItem) => {
76+
return {
77+
unique: treeItem.unique,
78+
entityType: treeItem.entityType,
79+
name: treeItem.name,
80+
isFolder: treeItem.isFolder,
81+
};
82+
});
83+
84+
structureItems.push(...ancestorItems);
85+
}
8386
}
8487

8588
const parent = structureItems[structureItems.length - 2];

0 commit comments

Comments
 (0)