(props: AutocompleteProps<T>)
| 74 | * An autocomplete allows users to search or filter a list of suggestions. |
| 75 | */ |
| 76 | export function Autocomplete<T>(props: AutocompleteProps<T>): JSX.Element { |
| 77 | let ctx = useSlottedContext(AutocompleteContext, props.slot); |
| 78 | props = mergeProps(ctx, props); |
| 79 | let {filter, disableAutoFocusFirst} = props; |
| 80 | let state = useAutocompleteState(props); |
| 81 | let inputRef = useRef<HTMLInputElement | null>(null); |
| 82 | let collectionRef = useRef<HTMLElement>(null); |
| 83 | let { |
| 84 | inputProps, |
| 85 | collectionProps, |
| 86 | collectionRef: mergedCollectionRef, |
| 87 | filter: filterFn |
| 88 | } = useAutocomplete( |
| 89 | { |
| 90 | ...removeDataAttributes(props), |
| 91 | filter, |
| 92 | disableAutoFocusFirst, |
| 93 | inputRef, |
| 94 | collectionRef |
| 95 | }, |
| 96 | state |
| 97 | ); |
| 98 | |
| 99 | return ( |
| 100 | <Provider |
| 101 | values={[ |
| 102 | [AutocompleteStateContext, state], |
| 103 | [ |
| 104 | FieldInputContext, |
| 105 | { |
| 106 | ...inputProps, |
| 107 | ref: inputRef |
| 108 | } |
| 109 | ], |
| 110 | [ |
| 111 | SelectableCollectionContext, |
| 112 | { |
| 113 | ...collectionProps, |
| 114 | filter: filterFn, |
| 115 | ref: mergedCollectionRef |
| 116 | } |
| 117 | ] |
| 118 | ]}> |
| 119 | {props.children} |
| 120 | </Provider> |
| 121 | ); |
| 122 | } |
nothing calls this directly
no test coverage detected