1
0
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:
Mateusz Kwasniewski 2023-12-13 13:01:55 +01:00 committed by GitHub
parent c552f3ae72
commit bcf0e6b7a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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)]);