@@ -16,30 +16,33 @@ type Props<T> = TextInputProps & {
1616 inputContainerStyle ?: StyleProp < ViewStyle > ;
1717 listContainerStyle ?: StyleProp < ViewStyle > ;
1818 onShowResults ?: ( showResults : boolean ) => void ;
19- renderResultList ?: ( props : FlatListProps < T > ) => React . ReactNode ;
20- renderTextInput ?: ( props : TextInputProps ) => React . ReactNode ;
19+ renderResultList ?: ( props : FlatListProps < T > ) => React . ReactElement ;
20+ renderTextInput ?: ( props : TextInputProps ) => React . ReactElement ;
2121 flatListProps ?: Partial < Omit < FlatListProps < T > , 'data' > > ;
2222 data : readonly T [ ] ;
2323} ;
2424
25- function defaultKeyExtractor ( _ : unknown , index : number ) {
25+ function defaultKeyExtractor ( _ : unknown , index : number ) : string {
2626 return `key-${ index } ` ;
2727}
2828
29- function DefaultResultList < T > ( props : FlatListProps < T > ) : React . ReactNode {
29+ function DefaultResultList < T > ( props : FlatListProps < T > ) : React . ReactElement {
3030 return < FlatList { ...props } /> ;
3131}
3232
33- function DefaultTextInput ( props : TextInputProps ) : React . ReactNode {
33+ function DefaultTextInput ( props : TextInputProps ) : React . ReactElement {
3434 return < TextInput { ...props } /> ;
3535}
3636
37- function AutocompleteInputComponent < T , Ref > ( props : Props < T > , ref : React . ForwardedRef < Ref > ) {
38- const defaultRenderItems : ListRenderItem < T > = ( { item } ) => < Text > { String ( item ) } </ Text > ;
39- function renderResultList ( ) : React . ReactNode {
37+ function AutocompleteInputComponent < Item , Ref > (
38+ props : Props < Item > ,
39+ ref : React . ForwardedRef < Ref >
40+ ) : React . ReactElement {
41+ const defaultRenderItems : ListRenderItem < Item > = ( { item } ) => < Text > { String ( item ) } </ Text > ;
42+ function renderResultList ( ) : React . ReactElement {
4043 const { data, renderResultList : renderFunction = DefaultResultList , flatListProps } = props ;
4144
42- const listProps : FlatListProps < T > = {
45+ const listProps : FlatListProps < Item > = {
4346 data,
4447 renderItem : defaultRenderItems ,
4548 keyExtractor : defaultKeyExtractor ,
@@ -73,6 +76,7 @@ function AutocompleteInputComponent<T, Ref>(props: Props<T>, ref: React.Forwarde
7376
7477 const showResults = data . length > 0 ;
7578 onShowResults && onShowResults ( showResults ) ;
79+
7680 return (
7781 < View style = { [ styles . container , containerStyle ] } >
7882 < View style = { [ styles . inputContainer , inputContainerStyle ] } > { renderTextInput ( ) } </ View >
0 commit comments