Skip to content

Commit 67ae035

Browse files
Maxime Jantonbobylito
authored andcommitted
fix(connectors): check facet is refined before removing it. hierarchicalMenu / menu
* fix(hierarchicalMenu): check is facet refined first * fix(connectMenu): check facet refined is applied before removing it * refactor(dispose): initialize with `state = nextState`
1 parent 2b7d747 commit 67ae035

File tree

2 files changed

+23
-6
lines changed

2 files changed

+23
-6
lines changed

src/connectors/hierarchical-menu/connectHierarchicalMenu.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,9 +197,15 @@ export default function connectHierarchicalMenu(renderFn, unmountFn) {
197197
unmountFn();
198198

199199
// compute nextState for the search
200-
const nextState = state
201-
.removeHierarchicalFacetRefinement(hierarchicalFacetName)
202-
.removeHierarchicalFacet(hierarchicalFacetName);
200+
let nextState = state;
201+
202+
if (state.isHierarchicalFacetRefined(hierarchicalFacetName)) {
203+
nextState = state.removeHierarchicalFacetRefinement(
204+
hierarchicalFacetName
205+
);
206+
}
207+
208+
nextState = nextState.removeHierarchicalFacet(hierarchicalFacetName);
203209

204210
if (nextState.maxValuesPerFacet === limit) {
205211
nextState.setQueryParameters('maxValuesPerFacet', undefined);

src/connectors/menu/connectMenu.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,20 @@ export default function connectMenu(renderFn, unmountFn) {
233233
dispose({ state }) {
234234
unmountFn();
235235

236-
const nextState = state
237-
.removeHierarchicalFacetRefinement(attributeName)
238-
.removeHierarchicalFacet(attributeName);
236+
let nextState = state;
237+
238+
if (state.isHierarchicalFacetRefined(attributeName)) {
239+
nextState = state.removeHierarchicalFacetRefinement(attributeName);
240+
}
241+
242+
nextState = nextState.removeHierarchicalFacet(attributeName);
243+
244+
if (
245+
nextState.maxValuesPerFacet === limit ||
246+
(showMoreLimit && nextState.maxValuesPerFacet === showMoreLimit)
247+
) {
248+
nextState.setQueryParameters('maxValuesPerFacet', undefined);
249+
}
239250

240251
return nextState;
241252
},

0 commit comments

Comments
 (0)