diff --git a/src/client/containers/SemanticPortal.js b/src/client/containers/SemanticPortal.js index 817e2ef2bef12265314e18a030fdb9f185a7f976..1c2d0f0ddd34499bb2a62bbfeef7a2dfdcece53b 100644 --- a/src/client/containers/SemanticPortal.js +++ b/src/client/containers/SemanticPortal.js @@ -669,8 +669,9 @@ const mapStateToProps = state => { perspectiveConfig.forEach(perspective => { const { id, searchMode } = perspective if (searchMode && searchMode === 'federated-search') { - const { clientFSResults, clientFSFacetValues } = filterResults(state[id]) - stateToProps.clientFSState = state[id] + const perspectiveState = state[id] + const { clientFSResults, clientFSFacetValues } = filterResults(perspectiveState) + stateToProps.clientFSState = perspectiveState stateToProps.clientFSResults = clientFSResults stateToProps.clientFSFacetValues = clientFSFacetValues } else { diff --git a/src/client/selectors/index.js b/src/client/selectors/index.js index 2538cdfad84445bee70261f094c0a87f5b16f7bc..8a30dc0eba7c2b7363c45f6aa523eb9068d6152c 100644 --- a/src/client/selectors/index.js +++ b/src/client/selectors/index.js @@ -20,12 +20,12 @@ export const filterResults = createSelector( } // Filter results by current facet selections - Object.values(facets).forEach(facet => { - const { facetID, filterType } = facet - if (filterType === 'clientFSLiteral' && facet.selectionsSet.size !== 0) { - results = results.filter(result => facet.selectionsSet.has(result[facetID])) + for (const [facetID, facet] of Object.entries(facets)) { + const { filterType, selectionsSet } = facet + if (filterType === 'clientFSLiteral' && selectionsSet.size !== 0) { + results = results.filter(result => selectionsSet.has(result[facetID])) } - }) + } results = orderBy(results, sortBy, sortDirection) // Calculate values for all facets @@ -48,8 +48,8 @@ export const filterResults = createSelector( } // Then handle all the remainder facets for (const result of results) { - Object.values(facets).forEach(facet => { - const { facetID, filterType, selectionsSet } = facet + for (const [facetID, facet] of Object.entries(facets)) { + const { filterType, selectionsSet } = facet if (facetID !== skipFacetID && filterType === 'clientFSLiteral' && has(result, facetID)) { const literalValue = result[facetID] if (!has(facetValues[facetID], literalValue)) { @@ -64,7 +64,7 @@ export const filterResults = createSelector( facetValues[facetID][literalValue].instanceCount += 1 } } - }) + } } for (const facetID in facetValues) { facetValues[facetID] = orderBy(facetValues[facetID], 'prefLabel')