@@ -579,6 +579,64 @@ const MultiSelectAddNewItem = () => {
579579render (< MultiSelectAddNewItem / > )
580580```
581581
582+ #### Rendered with ` Autocomplete.Context `
583+
584+ The ` Autocomplete.Context ` can be used to control the menu open/closed state and customize certain ` Autocomplete ` behaviors
585+
586+ ``` javascript live noinline
587+ export function AutocompleteWithContext () {
588+ return (
589+ < Autocomplete>
590+ < AutocompleteWithContextInternal / >
591+ < / Autocomplete>
592+ )
593+ }
594+
595+ export function AutocompleteWithContextInternal () {
596+ const autocompleteContext = useContext (Autocomplete .Context )
597+ if (autocompleteContext === null ) {
598+ throw new Error (' AutocompleteContext returned null values' )
599+ }
600+
601+ const {setShowMenu , showMenu } = autocompleteContext
602+ const inputRef = useRef < HTMLInputElement > null
603+ const [filterText , setFilterText ] = useState (' ' )
604+
605+ useEffect (() => {
606+ if (! showMenu) {
607+ // keep the menu open
608+ setShowMenu (true )
609+ }
610+ }, [showMenu, setShowMenu])
611+
612+ const change = event => setFilterText? .(event .target .value )
613+
614+ return (
615+ < Autocomplete .Context .Provider
616+ value= {{... autocompleteContext, autocompleteSuggestion: ' ' , setAutocompleteSuggestion : () => false }}
617+ >
618+ < Autocomplete .Input ref= {inputRef} value= {filterText} onChange= {change} / >
619+ < Autocomplete .Overlay >
620+ < Autocomplete .Menu
621+ items= {[
622+ {text: ' main' , id: 0 },
623+ {text: ' autocomplete-tests' , id: 1 },
624+ {text: ' a11y-improvements' , id: 2 },
625+ {text: ' button-bug-fixes' , id: 3 },
626+ {text: ' radio-input-component' , id: 4 },
627+ {text: ' release-1.0.0' , id: 5 },
628+ {text: ' text-input-implementation' , id: 6 },
629+ {text: ' visual-design-tweaks' , id: 7 }
630+ ]}
631+ selectedItemIds= {[]}
632+ selectionVariant= " single"
633+ / >
634+ < / Autocomplete .Overlay >
635+ < / Autocomplete .Context .Provider >
636+ )
637+ }
638+ ` ` `
639+
582640## Props
583641
584642### Autocomplete.Input
0 commit comments