- const response = await this.services.groupsService.contents(userUuid, getParams(dataExplorer, searchValue));
- api.dispatch(updateResources(response.items));
- api.dispatch(setItems(response));
+ const params = getParams(dataExplorer, searchValue);
+
+ const responses = await Promise.all(sessions.map(session =>
+ this.services.groupsService.contents('', params, session)
+ ));
+
+ const initial = {
+ itemsAvailable: 0,
+ items: [] as GroupContentsResource[],
+ kind: '',
+ offset: 0,
+ limit: 10
+ };
+
+ const mergedResponse = responses.reduce((merged, current) => ({
+ ...merged,
+ itemsAvailable: merged.itemsAvailable + current.itemsAvailable,
+ items: merged.items.concat(current.items)
+ }), initial);
+
+ api.dispatch(updateResources(mergedResponse.items));
+
+ api.dispatch(criteriaChanged
+ ? setItems(mergedResponse)
+ : appendItems(mergedResponse));
+