UNPKG

@jgamaraalv/react-auto-complete

Version:

An amazing auto complete for your React application

33 lines (32 loc) 1.6 kB
import React from "react"; import classes from "./index.module.css"; declare type ContainerProps = React.HTMLAttributes<HTMLDivElement>; declare function Container({ children, ...props }: ContainerProps): JSX.Element; declare namespace Container { var Input: ({ onFocus, onBlur, onChange, ...props }: InputProps) => JSX.Element; var List: ({ children, ...props }: ListProps) => JSX.Element | null; var ListItem: ({ children, value, onClick, onKeyDown, ...props }: ListItemProps) => JSX.Element; } declare type InputProps = React.HTMLAttributes<HTMLInputElement>; declare type ListItemProps = Omit<React.HTMLAttributes<HTMLLIElement>, "children" | "onClick"> & { value: string; children: string; onClick?: (value: string) => void; }; declare function ListItem({ children, value, onClick, onKeyDown, ...props }: ListItemProps): JSX.Element; declare type ListProps = Omit<React.HTMLAttributes<HTMLUListElement>, "children"> & { children: React.ReactElement<ListItemProps, typeof ListItem> | Array<React.ReactElement<ListItemProps, typeof ListItem>>; }; interface AutocompleteProps { options?: Array<{ name: string; value: string; id: number; }>; onSearch?: (event: React.ChangeEvent<HTMLInputElement>) => Promise<void>; onOptionSelected?: ListItemProps["onClick"]; } declare function Autocomplete({ options, onSearch, onOptionSelected, }: AutocompleteProps): JSX.Element; export type { ContainerProps, InputProps, ListProps, ListItemProps, AutocompleteProps, }; export { Container as Autocomplete, classes }; export default Autocomplete;