Skip to content

Commit 8e7b857

Browse files
yordan-stgjulivan
authored andcommitted
refactor: simplify filter handler setup and improve selector initialization
1 parent 7e0a041 commit 8e7b857

File tree

2 files changed

+7
-16
lines changed

2 files changed

+7
-16
lines changed

packages/pluggableWidgets/combobox-web/src/hooks/useDownshiftMultiSelectProps.ts

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
useCombobox,
88
useMultipleSelection
99
} from "downshift";
10-
import { useCallback, useMemo, useRef, useEffect } from "react";
10+
import { useCallback, useMemo } from "react";
1111
import { A11yStatusMessage, MultiSelector } from "../helpers/types";
1212

1313
export type UseDownshiftMultiSelectPropsReturnValue = UseMultipleSelectionReturnValue<string> &
@@ -37,12 +37,6 @@ export function useDownshiftMultiSelectProps(
3737
options: Options,
3838
a11yStatusMessage: A11yStatusMessage
3939
): UseDownshiftMultiSelectPropsReturnValue {
40-
const isInitializing = useRef(true);
41-
42-
useEffect(() => {
43-
isInitializing.current = false;
44-
}, []);
45-
4640
const {
4741
getSelectedItemProps,
4842
getDropdownProps,
@@ -97,7 +91,6 @@ export function useDownshiftMultiSelectProps(
9791
removeSelectedItem,
9892
setSelectedItems,
9993
a11yStatusMessage,
100-
isInitializing,
10194
options
10295
)
10396
);
@@ -147,7 +140,6 @@ function useComboboxProps(
147140
removeSelectedItem: (item: string) => void,
148141
setSelectedItems: (item: string[]) => void,
149142
a11yStatusMessage: A11yStatusMessage,
150-
isInitializing: React.MutableRefObject<boolean>,
151143
options?: Options
152144
): UseComboboxProps<string> {
153145
return useMemo(() => {
@@ -156,13 +148,9 @@ function useComboboxProps(
156148
selectedItem: null,
157149
inputId: options?.inputId,
158150
labelId: options?.labelId,
159-
onInputValueChange({ inputValue, type }) {
151+
onInputValueChange({ inputValue }) {
160152
selector.options.setSearchTerm(inputValue!);
161-
if (
162-
!isInitializing.current &&
163-
type === useCombobox.stateChangeTypes.InputChange &&
164-
selector.onFilterInputChange
165-
) {
153+
if (selector.onFilterInputChange) {
166154
selector.onFilterInputChange(inputValue);
167155
}
168156
},

packages/pluggableWidgets/combobox-web/src/hooks/useGetSelector.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,11 @@ export function useGetSelector(props: ComboboxContainerProps): Selector {
3232
if (!selectorRef.current) {
3333
selectorRef.current = getSelector(props);
3434
selectorRef.current.options.onAfterSearchTermChange(() => setInput({}));
35+
} else {
36+
if (!selectorRef.current.onFilterInputChange) {
37+
selectorRef.current.onFilterInputChange = onFilterChangeDebounce;
38+
}
3539
}
36-
selectorRef.current.onFilterInputChange = onFilterChangeDebounce;
3740
selectorRef.current.updateProps(props);
3841

3942
return selectorRef.current;

0 commit comments

Comments
 (0)