From 8d491e1a750852f438fae75977e84f878e4b112c Mon Sep 17 00:00:00 2001 From: samsucik Date: Tue, 16 Sep 2025 18:33:30 +0200 Subject: [PATCH] feat: expose focus() method of the input component --- src/index.tsx | 8 ++++++-- src/types/index.ts | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) 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