import { HtmlCompositeAttributes } from '@cleartrip/ct-design-types'; import { ReactNode } from 'react'; export type ClickAwayMouseEventHandler = 'onClick' | 'onMouseDown' | 'onMouseUp' | 'onPointerDown' | 'onPointerUp'; export type ClickAwayTouchEventHandler = 'onTouchStart' | 'onTouchEnd'; export interface OutsideClickHandlerProps { /** * click handler for outside event */ onOutsideClick: (event: MouseEvent | TouchEvent) => void; /** * check if outside click event is disabled * @default false */ disabled?: boolean; /** * the mouse event it should listen to * @default 'onCLick' */ mouseEvent?: ClickAwayMouseEventHandler; /** * touch event it should listen * @default 'onTouchEnd' */ touchEvent?: ClickAwayTouchEventHandler; /** * children */ children: ReactNode; wrapperProps?: HtmlCompositeAttributes; } export interface OldOutsideClickHandlerProps extends OutsideClickHandlerProps { className?: string; }