Skip to content

Commit 95fdfb4

Browse files
authored
Merge pull request #1788 from HuanFengYeh/fix_clean_refienments_for_hierarchicalMenu
Fix the HierarchicalMenu clean refinement logic
2 parents 6d0165e + 18f528d commit 95fdfb4

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

components/search/HierarchicalMenuWidget.tsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -309,14 +309,18 @@ const MultiselectHierarchicalMenuItem = ({
309309

310310
const onButtonClick = useCallback(() => {
311311
if (isOpen) {
312-
// Clear all refinements
313-
levels.forEach(level => {
314-
level.items.forEach(subItem => {
315-
if (subItem.isRefined) {
316-
level.refine(subItem.name)
317-
}
318-
})
319-
})
312+
const currentLevel = levels[index]
313+
const subLevel = levels[index + 1]
314+
if (item.isRefined) {
315+
currentLevel.refine(item.name)
316+
}
317+
if (subLevel) {
318+
subLevel.items
319+
.filter(
320+
subItem => subItem.name.startsWith(item.name) && subItem.isRefined
321+
)
322+
.forEach(subItem => subLevel.refine(subItem.name))
323+
}
320324
}
321325
setIsOpen(!isOpen)
322326
}, [isOpen, levels])

0 commit comments

Comments
 (0)