@jgamaraalv/react-auto-complete
Version:
An amazing auto complete for your React application
33 lines (32 loc) • 1.6 kB
TypeScript
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;