Skip to content

Commit 3ba16f7

Browse files
fix(hierarchical): Hierarchical facets clearing (#252)
* fix issues with hierarchical facets clearing
1 parent 6862a7e commit 3ba16f7

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

Sources/InstantSearchCore/FilterState/GroupStorage.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,10 @@ extension GroupsStorage: FiltersWritable {
147147
for groupID in groupIDs {
148148
switch groupID {
149149
case .hierarchical:
150-
filterGroups[groupID] = filterGroups[groupID]?.withFilters([])
150+
if var cleanHierarchicalGroup = filterGroups[groupID]?.withFilters([]) as? FilterGroup.Hierarchical {
151+
cleanHierarchicalGroup.hierarchicalFilters.removeAll()
152+
filterGroups[groupID] = cleanHierarchicalGroup
153+
}
151154
default:
152155
filterGroups.removeValue(forKey: groupID)
153156
}
@@ -182,7 +185,7 @@ extension GroupsStorage: FiltersWritable {
182185
}
183186

184187
mutating func removeAll() {
185-
filterGroups.removeAll()
188+
removeAll(fromGroupWithIDs: Array(getGroupIDs()))
186189
}
187190

188191
}

Sources/InstantSearchCore/Hierarchical/HierarchicalInteractor+FilterState.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,10 @@ public extension HierarchicalInteractor {
3939

4040
}
4141

42-
filterState.onChange.subscribePast(with: interactor) { _, _ in
43-
// TODO
42+
filterState.onChange.subscribePast(with: interactor) { interactor, filterState in
43+
if filterState[hierarchical: groupName].isEmpty {
44+
interactor.selections = []
45+
}
4446
}
4547

4648
}

0 commit comments

Comments
 (0)