UNPKG

lucid-ui

Version:

A UI component library from AppNexus.

80 lines (79 loc) 2.87 kB
import React from 'react'; import { StandardProps, Overwrite } from '../../util/component-types'; export interface IDragCaptureZonePropsRaw extends StandardProps { /** Called as the user drags the mouse. */ onDrag: ({ dX, dY, pageX, pageY, }: { dX: number; dY: number; pageX: number; pageY: number; }, { event, props, }: { event: MouseEvent | TouchEvent; props: IDragCaptureZoneProps; }) => void; /** Called when the user releases the mouse button after having dragged. */ onDragEnd: ({ dX, dY, pageX, pageY, }: { dX: number; dY: number; pageX: number; pageY: number; }, { event, props, }: { event: MouseEvent | TouchEvent; props: IDragCaptureZoneProps; }) => void; /** Called when the user presses the mouse button down while over the component. */ onDragStart: ({ dX, dY, pageX, pageY, }: { dX: number; dY: number; pageX: number; pageY: number; }, { event, props, }: { event: React.MouseEvent<HTMLDivElement, MouseEvent> | React.TouchEvent<HTMLDivElement>; props: IDragCaptureZoneProps; }) => void; /** Called when the drag event is canceled due to user interaction. * For example: if a system alert pops up during a touch event. */ onDragCancel: ({ event, props, }: { event: MouseEvent | TouchEvent; props: IDragCaptureZoneProps; }) => void; } export declare type IDragCaptureZoneProps = Overwrite<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, IDragCaptureZonePropsRaw>; interface IDragCaptureZoneState { pageX: number; pageY: number; } declare class DragCaptureZone extends React.Component<IDragCaptureZoneProps, IDragCaptureZoneState, {}> { static displayName: string; static peek: { description: string; categories: string[]; }; static propTypes: { className: any; onDrag: any; onDragEnd: any; onDragStart: any; onDragCancel: any; }; private elementRef; state: { pageX: number; pageY: number; }; static defaultProps: { onDrag: (...args: any[]) => void; onDragEnd: (...args: any[]) => void; onDragStart: (...args: any[]) => void; onDragCancel: (...args: any[]) => void; }; handleDrag: (event: MouseEvent | TouchEvent) => void; handleMouseDragStart: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void; handleTouchDragStart: (event: React.TouchEvent<HTMLDivElement>) => void; handleDragEnd: (event: MouseEvent | TouchEvent) => void; handleDragCancel: (event: MouseEvent | TouchEvent) => void; componentDidMount(): void; componentWillUnmount(): void; render(): React.ReactNode; } export default DragCaptureZone;