mirror of
https://github.com/Unleash/unleash.git
synced 2025-03-27 00:19:39 +01:00
fix: avoid duplicate unselected filters (#5633)
This commit is contained in:
parent
c552f3ae72
commit
bcf0e6b7a3
@ -63,29 +63,32 @@ export const Filters: VFC<IFilterProps> = ({
|
||||
firstArray: string[],
|
||||
secondArray: string[],
|
||||
): string[] => {
|
||||
const resultArray: string[] = [...firstArray];
|
||||
const elementsSet = new Set(firstArray);
|
||||
|
||||
secondArray.forEach((element) => {
|
||||
if (!elementsSet.has(element)) {
|
||||
firstArray.push(element);
|
||||
resultArray.push(element);
|
||||
}
|
||||
});
|
||||
|
||||
return firstArray;
|
||||
return resultArray;
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
const newSelectedFilters = availableFilters
|
||||
.filter((field) => Boolean(state[field.filterKey]))
|
||||
.map((field) => field.label);
|
||||
const allSelectedFilters = mergeArraysKeepingOrder(
|
||||
selectedFilters,
|
||||
newSelectedFilters,
|
||||
);
|
||||
setSelectedFilters(allSelectedFilters);
|
||||
|
||||
const newUnselectedFilters = availableFilters
|
||||
.filter((field) => !state[field.filterKey])
|
||||
.filter((item) => !allSelectedFilters.includes(item.label))
|
||||
.map((field) => field.label)
|
||||
.sort();
|
||||
|
||||
setSelectedFilters(
|
||||
mergeArraysKeepingOrder(selectedFilters, newSelectedFilters),
|
||||
);
|
||||
setUnselectedFilters(newUnselectedFilters);
|
||||
}, [JSON.stringify(state), JSON.stringify(availableFilters)]);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user