diff --git a/lib/static/modules/selectors/tree.js b/lib/static/modules/selectors/tree.js index 3b53d4b26..625952f89 100644 --- a/lib/static/modules/selectors/tree.js +++ b/lib/static/modules/selectors/tree.js @@ -192,10 +192,20 @@ export const getSelectedBrowserIds = createSelector( } ); -const getAcceptableOrRevertableImages = (browserIds, browsersById, resultsById, imagesById, isStaticImageAccepterEnabled, gui) => { +const getExpandedTreeNodesById = (state) => (state.ui.suitesPage.expandedTreeNodesById); +const getTreeEntityId = (result) => result.suitePath.join('/'); + +const getAcceptableOrRevertableImages = ( + browserIds, browsersById, resultsById, imagesById, isStaticImageAccepterEnabled, gui, expandedTreeNodesById +) => { const visibleResultIds = browserIds.map(browserId => last(browsersById[browserId].resultIds)); - return visibleResultIds.flatMap(resultId => { + return visibleResultIds.flatMap((resultId) => { + const suitePath = getTreeEntityId(resultsById[resultId]); + if (expandedTreeNodesById && !expandedTreeNodesById[suitePath]) { + return []; + } + return resultsById[resultId].imageIds .map(imageId => imagesById[imageId]) .filter(image => isAcceptable(image) || isScreenRevertable({ @@ -209,6 +219,7 @@ const getAcceptableOrRevertableImages = (browserIds, browsersById, resultsById, export const getVisibleImages = createSelector( getVisibleBrowserIds, getBrowsers, getResults, getImages, getIsStaticImageAccepterEnabled, getIsGui, + getExpandedTreeNodesById, getAcceptableOrRevertableImages );