Skip to content

Commit c5d42dd

Browse files
authored
[fix] Fix multiple field filtering in setFilterUpdater (#2821)
Signed-off-by: Ihor Dykhta <[email protected]>
1 parent c4d1cff commit c5d42dd

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/reducers/src/vis-state-updaters.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1033,7 +1033,17 @@ export function setFilterUpdater<S extends VisState>(
10331033
for (let i = 0; i < props.length; i++) {
10341034
const prop = props[i];
10351035
const value = values[i];
1036-
const res = _updateFilterProp(newState, newFilter, prop, value, valueIndex);
1036+
// We currently do not support passing in name as an array into _updateFilterProp, so we call it multiple times with each name
1037+
// See the comment in there as to what should be addressed
1038+
let res;
1039+
if (prop === 'name' && Array.isArray(value)) {
1040+
// eslint-disable-next-line no-loop-func
1041+
res = value.reduce((accu, v) => {
1042+
return _updateFilterProp(accu, newFilter, prop, v, valueIndex);
1043+
}, newState);
1044+
} else {
1045+
res = _updateFilterProp(newState, newFilter, prop, value, valueIndex);
1046+
}
10371047
newFilter = res.filter;
10381048
newState = res.state;
10391049
datasetIdsToFilter = datasetIdsToFilter.concat(res.datasetIdsToFilter);

0 commit comments

Comments
 (0)