21412: fixed nav to aonther user root project Arvados-DCO-1.1-Signed-off-by: Lisa...
[arvados.git] / services / workbench2 / src / store / breadcrumbs / breadcrumbs-actions.ts
index dc34e91b6950f75a62f95ba975f132ffb0e117e6..c3f7d8f531f8d28041b2ddb498a2f831fbffdd7c 100644 (file)
@@ -79,6 +79,14 @@ export const setSidePanelBreadcrumbs = (uuid: string) =>
                     uuid: SidePanelTreeCategory.PROJECTS,
                     icon: getSidePanelIcon(SidePanelTreeCategory.PROJECTS)
                 });
+            } else if (uuidKind === ResourceKind.USER) {
+                // Handle another user root project
+                const user = getResource<UserResource>(uuid)(getState().resources);
+                breadcrumbs.push({
+                    label: (user as any)?.fullName || user?.username || uuid,
+                    uuid: user?.uuid || uuid,
+                    icon: getSidePanelIcon(SidePanelTreeCategory.PROJECTS)
+                });
             } else if (Object.values(SidePanelTreeCategory).includes(uuid as SidePanelTreeCategory)) {
                 // Handle SidePanelTreeCategory root
                 breadcrumbs.push({
@@ -269,16 +277,11 @@ export const setUserProfileBreadcrumbs = (userUuid: string) =>
         try {
             const user = getResource<UserResource>(userUuid)(getState().resources)
                 || await services.userService.get(userUuid, false);
-                const currentCrumbs = getState().properties.breadcrumbs as Breadcrumb[]
             const userProfileBreadcrumbs: Breadcrumb[] = [
                 { label: USERS_PANEL_LABEL, uuid: USERS_PANEL_LABEL },
                 { label: user ? `${user.firstName} ${user.lastName}` : userUuid, uuid: userUuid },
             ];    
-            const breadcrumbsWithPreviousCrumbs: Breadcrumb[] = [
-                ...currentCrumbs,
-                { label: user ? `${user.firstName} ${user.lastName}` : userUuid, uuid: userUuid },
-            ];
-            dispatch(setBreadcrumbs(currentCrumbs.some(crumb => crumb.label === SidePanelTreeCategory.GROUPS) ? breadcrumbsWithPreviousCrumbs : userProfileBreadcrumbs));
+            dispatch(setBreadcrumbs(userProfileBreadcrumbs));
         } catch (e) {
             const breadcrumbs: Breadcrumb[] = [
                 { label: USERS_PANEL_LABEL, uuid: USERS_PANEL_LABEL },
@@ -306,12 +309,10 @@ export const setInstanceTypesBreadcrumbs = () =>
         ]));
     };
 
-export const VIRTUAL_MACHINES_USER_PANEL_LABEL = 'Shell Access';
-
 export const setVirtualMachinesBreadcrumbs = () =>
     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
         dispatch(setBreadcrumbs([
-            { label: VIRTUAL_MACHINES_USER_PANEL_LABEL, uuid: VIRTUAL_MACHINES_USER_PANEL_LABEL, icon: TerminalIcon },
+            { label: SidePanelTreeCategory.SHELL_ACCESS, uuid: SidePanelTreeCategory.SHELL_ACCESS, icon: TerminalIcon },
         ]));
     };