diff --git a/src/index.tsx b/src/index.tsx index 9b43cea..aecc560 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -146,6 +146,10 @@ export const AutocompleteDropdown = memo((props: IAutocompleteDropdownProps) => inputRef.current?.blur() }, []) + const focus = useCallback(() => { + inputRef.current?.focus() + }, []) + const open = useCallback(async () => { if (directionProp) { setDirection(directionProp) @@ -228,7 +232,7 @@ export const AutocompleteDropdown = memo((props: IAutocompleteDropdownProps) => /** expose controller methods */ useEffect(() => { - const methods = activeControllerRef ? { close, blur, open, toggle, clear, setInputText, setItem } : null + const methods = activeControllerRef ? { close, blur, focus, open, toggle, clear, setInputText, setItem } : null if (activeControllerRef) { activeControllerRef.current = methods } @@ -237,7 +241,7 @@ export const AutocompleteDropdown = memo((props: IAutocompleteDropdownProps) => } else if (controller) { controller.current = methods } - }, [blur, clear, close, controller, activeControllerRef, open, setInputText, setItem, toggle]) + }, [blur, focus, clear, close, controller, activeControllerRef, open, setInputText, setItem, toggle]) useEffect(() => { if (selectedItem) { diff --git a/src/types/index.ts b/src/types/index.ts index 44e20e6..a11378a 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -10,6 +10,7 @@ export interface IAutocompleteDropdownRef { clear: () => void close: () => void blur: () => void + focus: () => void open: () => Promise setInputText: (text: string) => void toggle: () => void