@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
50 lines (49 loc) • 2.1 kB
TypeScript
import React, { DragEvent as ReactDragEvent, DragEventHandler as ReactDragEventHandler } from 'react';
export declare type TDropEffects = 'copy' | 'move' | 'link' | 'none';
export interface IFileDropProps {
className?: string;
targetClassName?: string;
draggingOverFrameClassName?: string;
draggingOverTargetClassName?: string;
frame?: HTMLElement | Document;
onFrameDragEnter?: (event: DragEvent) => void;
onFrameDragLeave?: (event: DragEvent) => void;
onFrameDrop?: (event: DragEvent) => void;
onDragOver?: ReactDragEventHandler<HTMLDivElement>;
onDragLeave?: ReactDragEventHandler<HTMLDivElement>;
onDrop?: (files: FileList | null, event: ReactDragEvent<HTMLDivElement>) => any;
dropEffect?: TDropEffects;
}
export interface IFileDropState {
draggingOverFrame: boolean;
draggingOverTarget: boolean;
}
declare class FileDrop extends React.PureComponent<IFileDropProps, IFileDropState> {
static defaultProps: {
dropEffect: TDropEffects;
frame: Document;
className: string;
targetClassName: string;
draggingOverFrameClassName: string;
draggingOverTargetClassName: string;
};
frameDragCounter: number;
constructor(props: IFileDropProps);
static isIE: () => boolean;
static eventHasFiles: (event: DragEvent | ReactDragEvent<HTMLElement>) => boolean;
resetDragging: () => void;
handleWindowDragOverOrDrop: (event: DragEvent) => void;
handleFrameDrag: (event: DragEvent) => void;
handleFrameDrop: (event: DragEvent) => void;
handleDragOver: ReactDragEventHandler<HTMLDivElement>;
handleDragLeave: ReactDragEventHandler<HTMLDivElement>;
handleDrop: ReactDragEventHandler<HTMLDivElement>;
handleMouseOver: (event: any) => void;
stopFrameListeners: (frame: IFileDropProps['frame']) => void;
startFrameListeners: (frame: IFileDropProps['frame']) => void;
componentWillReceiveProps(nextProps: IFileDropProps): void;
componentDidMount(): void;
componentWillUnmount(): void;
render(): JSX.Element;
}
export default FileDrop;