From de871e06380e0b94ce5f249c8b01a2727c6e8dc0 Mon Sep 17 00:00:00 2001 From: esikkala <esko.ikkala@aalto.fi> Date: Tue, 28 Dec 2021 16:57:10 +0200 Subject: [PATCH] Update clientFS selector --- src/client/containers/SemanticPortal.js | 5 +++-- src/client/selectors/index.js | 16 ++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/client/containers/SemanticPortal.js b/src/client/containers/SemanticPortal.js index 817e2ef2..1c2d0f0d 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 2538cdfa..8a30dc0e 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') -- GitLab