import * as React from 'react'; import { Loader } from '../Loader'; import { ScrollView } from '../ScrollView'; import { View } from '../View'; import { ComponentClassNames } from '../shared/constants'; import { ComponentText } from '../shared/constants'; import type { ForwardRefPrimitive, Primitive, AutocompleteMenuProps, BaseAutocompleteMenuProps, } from '../types'; const AutocompleteMenuPrimitive: Primitive = ( { ariaLabel, children, Header = null, Footer = null, LoadingIndicator = null, Empty = null, isLoading, listboxId, ...rest }, ref ) => { const MenuHeader = () => { return ( Header && ( {Header} ) ); }; const MenuFooter = () => { return ( Footer && ( {Footer} ) ); }; const MenuLoading = () => { const MenuLoadingBody = LoadingIndicator ?? ( <> {ComponentText.Autocomplete.loadingText} ); return ( {MenuLoadingBody} ); }; const MenuEmpty = () => Empty ? ( {Empty} ) : ( {ComponentText.Autocomplete.emptyText} ); return ( {isLoading ? ( ) : ( <> {children.length > 0 ? ( {children} ) : ( )} )} ); }; export const AutocompleteMenu: ForwardRefPrimitive< BaseAutocompleteMenuProps, 'div' > = React.forwardRef(AutocompleteMenuPrimitive); AutocompleteMenu.displayName = 'AutocompleteMenu';