17782: Fixes 'no-mixed-operators' compile warnings.
[arvados.git] / src / store / breadcrumbs / breadcrumbs-actions.ts
index 04b5689c5e7aaaf7d24c7ee5e165ad3b4150b630..72e908aa83c91ffe5480532ad08113c36012005e 100644 (file)
@@ -3,19 +3,20 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { Breadcrumb } from '~/components/breadcrumbs/breadcrumbs';
-import { getResource } from '~/store/resources/resources';
+import { RootState } from 'store/store';
+import { getUserUuid } from "common/getuser";
+import { Breadcrumb } from 'components/breadcrumbs/breadcrumbs';
+import { getResource } from 'store/resources/resources';
 import { TreePicker } from '../tree-picker/tree-picker';
 import { getSidePanelTreeBranch, getSidePanelTreeNodeAncestorsIds } from '../side-panel-tree/side-panel-tree-actions';
 import { propertiesActions } from '../properties/properties-actions';
-import { getProcess } from '~/store/processes/process';
-import { ServiceRepository } from '~/services/services';
-import { SidePanelTreeCategory, activateSidePanelTreeItem } from '~/store/side-panel-tree/side-panel-tree-actions';
+import { getProcess } from 'store/processes/process';
+import { ServiceRepository } from 'services/services';
+import { SidePanelTreeCategory, activateSidePanelTreeItem } from 'store/side-panel-tree/side-panel-tree-actions';
 import { updateResources } from '../resources/resources-actions';
-import { ResourceKind } from '~/models/resource';
-import { GroupResource } from '~/models/group';
-import { extractUuidKind } from '~/models/resource';
+import { ResourceKind } from 'models/resource';
+import { GroupResource } from 'models/group';
+import { extractUuidKind } from 'models/resource';
 
 export const BREADCRUMBS = 'breadcrumbs';
 
@@ -42,14 +43,14 @@ const getSidePanelTreeBreadcrumbs = (uuid: string) => (treePicker: TreePicker):
 
 export const setSidePanelBreadcrumbs = (uuid: string) =>
     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
-        const { treePicker } = getState();
+        const { treePicker, collectionPanel: { item } } = getState();
         const breadcrumbs = getSidePanelTreeBreadcrumbs(uuid)(treePicker);
         const path = getState().router.location!.pathname;
         const currentUuid = path.split('/')[2];
         const uuidKind = extractUuidKind(currentUuid);
-        
+
         if (uuidKind === ResourceKind.COLLECTION) {
-            const collectionItem = await services.collectionService.get(currentUuid);
+            const collectionItem = item ? item : await services.collectionService.get(currentUuid);
             dispatch(setBreadcrumbs(breadcrumbs, collectionItem));
         } else if (uuidKind === ResourceKind.PROCESS) {
             const processItem = await services.containerRequestService.get(currentUuid);
@@ -64,13 +65,14 @@ export const setSharedWithMeBreadcrumbs = (uuid: string) =>
 export const setTrashBreadcrumbs = (uuid: string) =>
     setCategoryBreadcrumbs(uuid, SidePanelTreeCategory.TRASH);
 
-export const setCategoryBreadcrumbs = (uuid: string, category: SidePanelTreeCategory) =>
+export const setCategoryBreadcrumbs = (uuid: string, category: string) =>
     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
         const ancestors = await services.ancestorsService.ancestors(uuid, '');
         dispatch(updateResources(ancestors));
         const initialBreadcrumbs: ResourceBreadcrumb[] = [
             { label: category, uuid: category }
         ];
+        const { collectionPanel: { item } } = getState();
         const path = getState().router.location!.pathname;
         const currentUuid = path.split('/')[2];
         const uuidKind = extractUuidKind(currentUuid);
@@ -80,7 +82,7 @@ export const setCategoryBreadcrumbs = (uuid: string, category: SidePanelTreeCate
                 : breadcrumbs,
             initialBreadcrumbs);
         if (uuidKind === ResourceKind.COLLECTION) {
-            const collectionItem = await services.collectionService.get(currentUuid);
+            const collectionItem = item ? item : await services.collectionService.get(currentUuid);
             dispatch(setBreadcrumbs(breadcrumbs, collectionItem));
         } else if (uuidKind === ResourceKind.PROCESS) {
             const processItem = await services.containerRequestService.get(currentUuid);
@@ -92,7 +94,7 @@ export const setCategoryBreadcrumbs = (uuid: string, category: SidePanelTreeCate
 export const setProjectBreadcrumbs = (uuid: string) =>
     (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
         const ancestors = getSidePanelTreeNodeAncestorsIds(uuid)(getState().treePicker);
-        const rootUuid = services.authService.getUuid();
+        const rootUuid = getUserUuid(getState());
         if (uuid === rootUuid || ancestors.find(uuid => uuid === rootUuid)) {
             dispatch(setSidePanelBreadcrumbs(uuid));
         } else {