UNPKG

1.37 kBTypeScriptView Raw
1import PropTypes from 'prop-types';
2import React, { ComponentType, FocusEvent, FocusEventHandler, HTMLProps, KeyboardEvent, MouseEvent, MouseEventHandler } from 'react';
3import { Option, OptionHandler } from '../types';
4export interface UseTokenProps<T> extends Omit<HTMLProps<T>, 'onBlur'> {
5 onBlur?: (event: Event) => void;
6 onClick?: MouseEventHandler<T>;
7 onFocus?: FocusEventHandler<T>;
8 onRemove?: OptionHandler;
9 option: Option;
10}
11export declare function useToken<T extends HTMLElement>({ onBlur, onClick, onFocus, onRemove, option, ...props }: UseTokenProps<T>): {
12 active: boolean;
13 onBlur: (e: Event) => void;
14 onClick: (e: MouseEvent<T>) => void;
15 onFocus: (e: FocusEvent<T>) => void;
16 onKeyDown: (e: KeyboardEvent<T>) => void;
17 onRemove: (() => void) | undefined;
18 ref: React.Dispatch<React.SetStateAction<T | null>>;
19};
20export declare function withToken<T extends UseTokenProps<HTMLElement>>(Component: ComponentType<T>): {
21 (props: T): JSX.Element;
22 displayName: string;
23 propTypes: {
24 onBlur: PropTypes.Requireable<(...args: any[]) => any>;
25 onClick: PropTypes.Requireable<(...args: any[]) => any>;
26 onFocus: PropTypes.Requireable<(...args: any[]) => any>;
27 onRemove: PropTypes.Requireable<(...args: any[]) => any>;
28 option: PropTypes.Validator<string | object>;
29 };
30};