21448: removed move to from processes Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa...
[arvados.git] / services / workbench2 / src / store / side-panel-tree / side-panel-tree-actions.ts
index 031a7fda535bd1745e5b52695aaa450a13f6bfd4..d900c77abbc009707a223947c4b84cbe05e67eae 100644 (file)
@@ -154,7 +154,7 @@ export const loadFavoritesTree = () => async (dispatch: Dispatch, getState: () =
         treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({
             id: SidePanelTreeCategory.FAVORITES,
             pickerId: SIDE_PANEL_TREE,
-            nodes: items.map(item => initTreeNode({ id: item.headUuid, value: item })),
+            nodes: items.map(item => initTreeNode({ id: item.headUuid, value: item.name })),
         })
     );
 
@@ -163,30 +163,26 @@ export const loadFavoritesTree = () => async (dispatch: Dispatch, getState: () =
 
 const setFaves = async(links: LinkResource[], dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
 
-    const responseLinks = await services.linkService.list({
-        filters: new FilterBuilder()
-            .addEqual("link_class", LinkClass.STAR)
-            .addEqual('tail_uuid', getUserUuid(getState()))
-            .addEqual('tail_kind', ResourceKind.USER)
-            .getFilters()
-    }).then(results => results);
-    const uuids = responseLinks.items.map(it => it.headUuid);
-    const groupItems: any = await services.groupsService.list({
+    const uuids = links.map(it => it.headUuid);
+    const groupItems: Promise<any> = services.groupsService.list({
         filters: new FilterBuilder()
             .addIn("uuid", uuids)
             .getFilters()
     });
-    const collectionItems: any = await services.collectionService.list({
+    const collectionItems: Promise<any> = services.collectionService.list({
         filters: new FilterBuilder()
             .addIn("uuid", uuids)
             .getFilters()
     });
-    const processItems: any = await services.containerRequestService.list({
+    const processItems: Promise<any> = services.containerRequestService.list({
         filters: new FilterBuilder()
             .addIn("uuid", uuids)
             .getFilters()
     });
-    const responseItems = groupItems.items.concat(collectionItems.items).concat(processItems.items);
+
+    const resolvedItems = await Promise.all([groupItems, collectionItems, processItems]);
+
+    const responseItems = resolvedItems.reduce((acc, response) => acc.concat(response.items), []);
 
     //setting resources here so they won't be re-fetched in validation step
     dispatch(resourcesActions.SET_RESOURCES(responseItems));
@@ -224,26 +220,28 @@ export const loadPublicFavoritesTree = () => async (dispatch: Dispatch, getState
     const { items } = await services.linkService.list(params);
 
     const uuids = items.map(it => it.headUuid);
-    const groupItems: any = await services.groupsService.list({
+    const groupItems: Promise<any> = services.groupsService.list({
         filters: new FilterBuilder()
             .addIn("uuid", uuids)
             .addIsA("uuid", typeFilters)
             .getFilters()
     });
-    const collectionItems: any = await services.collectionService.list({
+    const collectionItems: Promise<any> = services.collectionService.list({
         filters: new FilterBuilder()
             .addIn("uuid", uuids)
             .addIsA("uuid", typeFilters)
             .getFilters()
     });
-    const processItems: any = await services.containerRequestService.list({
+    const processItems: Promise<any> = services.containerRequestService.list({
         filters: new FilterBuilder()
             .addIn("uuid", uuids)
             .addIsA("uuid", typeFilters)
             .getFilters()
     });
 
-    const responseItems = groupItems.items.concat(collectionItems.items).concat(processItems.items);
+    const resolvedItems = await Promise.all([groupItems, collectionItems, processItems]);
+
+    const responseItems = resolvedItems.reduce((acc, response) => acc.concat(response.items), []);
 
     const filteredItems = items.filter(item => responseItems.some(responseItem => responseItem.uuid === item.headUuid));