From 9805521379a72c9b20a981ed650c2eaaecd27b62 Mon Sep 17 00:00:00 2001 From: Harsh Zalavadiya Date: Wed, 8 Sep 2021 08:28:07 +0000 Subject: [PATCH] fix: :bug: filter selection --- README.md | 1 - src/hooks/use-multi-select.tsx | 1 + src/lib/interfaces.ts | 1 - src/select-panel/index.tsx | 7 ++----- 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 474f3d3..f1746c2 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,6 @@ More examples can be found [here ↗](./docs/recipes) | `overrideStrings` | [localization ↗](docs/recipes/localization.md) | `object` | | | `onChange` | onChange callback | `function` | | | `disabled` | disable dropdown | `boolean` | `false` | -| `selectAllLabel` | _select all_ label | `string` | | | `disableSearch` | hide search textbox | `boolean` | `false` | | `filterOptions` | [custom filter options (async supported) ↗](docs/recipes/custom-filter.md) | `function` | Fuzzy Search | | `className` | class name for parent component | `string` | `multi-select` | diff --git a/src/hooks/use-multi-select.tsx b/src/hooks/use-multi-select.tsx index aef5264..9bb2833 100644 --- a/src/hooks/use-multi-select.tsx +++ b/src/hooks/use-multi-select.tsx @@ -10,6 +10,7 @@ const defaultStrings = { noOptions: "No options", search: "Search", selectAll: "Select All", + selectAllFiltered: "Select All (Filtered)", selectSomeItems: "Select...", create: "Create", }; diff --git a/src/lib/interfaces.ts b/src/lib/interfaces.ts index d22e147..7a7dd23 100644 --- a/src/lib/interfaces.ts +++ b/src/lib/interfaces.ts @@ -14,7 +14,6 @@ export interface ISelectProps { valueRenderer?: (selected: Option[], options: Option[]) => ReactNode; ItemRenderer?; ArrowRenderer?: ({ expanded }) => JSX.Element; - selectAllLabel?: string; isLoading?: boolean; disabled?: boolean; disableSearch?: boolean; diff --git a/src/select-panel/index.tsx b/src/select-panel/index.tsx index f6dda07..d57fbb8 100644 --- a/src/select-panel/index.tsx +++ b/src/select-panel/index.tsx @@ -33,7 +33,6 @@ const SelectPanel = () => { setOptions, value, filterOptions: customFilterOptions, - selectAllLabel, ItemRenderer, disabled, disableSearch, @@ -65,7 +64,7 @@ const SelectPanel = () => { }, [disableSearch, hasSelectAll]); const selectAllOption = { - label: selectAllLabel || t("selectAll"), + label: searchText ? t("selectAllFiltered") : t("selectAll"), value: "", }; @@ -78,9 +77,7 @@ const SelectPanel = () => { const selectedValues = value.map((o) => o.value); const finalSelectedValues = [...selectedValues, ...filteredValues]; - return filteredOptions.filter((o) => - finalSelectedValues.includes(o.value) - ); + return options.filter((o) => finalSelectedValues.includes(o.value)); } return value.filter((o) => !filteredValues.includes(o.value));