UNPKG

@tdb/util

Version:
49 lines (43 loc) 1.19 kB
import { Observable } from 'rxjs'; import { React } from '../../libs'; export type MouseEventType = | 'DOWN' | 'UP' | 'ENTER' | 'LEAVE' | 'CLICK' | 'DOUBLE_CLICK'; /** * A roll up of all possible mouse events into a single event stream. */ export type MouseEvent = { type: MouseEventType; button: 'LEFT' | 'RIGHT'; cancel: () => void; }; export type MouseEventHandler = (e: MouseEvent) => void; /** * An interface for a component that exposes * all (or some) mouse related properties. */ export type IMouseEventProps = { onMouse?: MouseEventHandler; onClick?: React.MouseEventHandler; onDoubleClick?: React.MouseEventHandler; onMouseDown?: React.MouseEventHandler; onMouseUp?: React.MouseEventHandler; onMouseEnter?: React.MouseEventHandler; onMouseLeave?: React.MouseEventHandler; }; export type IMouseHandlers = { isActive: boolean; events$: Observable<MouseEvent>; events: { onClick?: React.MouseEventHandler; onDoubleClick?: React.MouseEventHandler; onMouseDown?: React.MouseEventHandler; onMouseUp?: React.MouseEventHandler; onMouseEnter?: React.MouseEventHandler; onMouseLeave?: React.MouseEventHandler; }; };