@@ -104,9 +104,10 @@ export const AutocompleteDropdown = memo<
104104 content,
105105 setContent,
106106 activeInputContainerRef,
107- controllerRef ,
107+ activeControllerRef ,
108108 direction = directionProp ,
109109 setDirection,
110+ controllerRefs,
110111 } = useContext ( AutocompleteDropdownContext )
111112 const themeName = useColorScheme ( ) || 'light'
112113 const styles = useMemo ( ( ) => getStyles ( themeName ) , [ themeName ] )
@@ -220,18 +221,31 @@ export const AutocompleteDropdown = memo<
220221 setSelectedItem ( item )
221222 } , [ ] )
222223
224+ useEffect ( ( ) => {
225+ if ( activeControllerRef ?. current ) {
226+ controllerRefs ?. current . push ( activeControllerRef ?. current )
227+ }
228+ // eslint-disable-next-line react-hooks/exhaustive-deps
229+ } , [ ] )
230+
231+ const closeAll = useCallback ( ( ) => {
232+ controllerRefs ?. current . forEach ( c => {
233+ c ?. close ?.( )
234+ } )
235+ } , [ controllerRefs ] )
236+
223237 /** expose controller methods */
224238 useEffect ( ( ) => {
225- const methods = controllerRef ? { close, blur, open, toggle, clear, setInputText, setItem } : null
226- if ( controllerRef ) {
227- controllerRef . current = methods
239+ const methods = activeControllerRef ? { close, blur, open, toggle, clear, setInputText, setItem } : null
240+ if ( activeControllerRef ) {
241+ activeControllerRef . current = methods
228242 }
229243 if ( typeof controller === 'function' ) {
230244 controller ( methods )
231245 } else if ( controller ) {
232246 controller . current = methods
233247 }
234- } , [ blur , clear , close , controller , controllerRef , open , setInputText , setItem , toggle ] )
248+ } , [ blur , clear , close , controller , activeControllerRef , open , setInputText , setItem , toggle ] )
235249
236250 useEffect ( ( ) => {
237251 if ( selectedItem ) {
@@ -377,9 +391,10 @@ export const AutocompleteDropdown = memo<
377391 if ( typeof onFocusProp === 'function' ) {
378392 onFocusProp ( e )
379393 }
394+ closeAll ( )
380395 open ( )
381396 } ,
382- [ clearOnFocus , onFocusProp , open ] ,
397+ [ clearOnFocus , closeAll , onFocusProp , open ] ,
383398 )
384399
385400 const onBlur = useCallback (
0 commit comments