DefinitelyTyped/types/react-resizable/index.d.ts
Harry Brundage 8be301717e
Add typings for react-resizable
- Package structure created via dtsgen
 - Initial typings generated from package version 1.7 using flow2ts
 - Types and tests edited by me to be nice and crispy
 - I am using this in a project myself and I figured it's time to upstream!
2019-02-22 19:53:36 -05:00

65 lines
1.6 KiB
TypeScript

// Type definitions for react-resizable 1.7
// Project: https://github.com/STRML/react-resizable
// Definitions by: Harry Brrundage <https://github.com/airhorns>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8
import * as React from "react";
export type Axis = "both" | "x" | "y" | "none";
export interface ResizableState {
resizing: boolean;
width: number;
height: number;
slackW: number;
slackH: number;
}
export interface DragCallbackData {
node: HTMLElement;
x: number;
y: number;
deltaX: number;
deltaY: number;
lastX: number;
lastY: number;
}
export interface ResizeCallbackData {
node: HTMLElement;
size: { width: number; height: number };
}
export interface ResizableProps {
className?: string;
width: number;
height: number;
handleSize?: [number, number];
lockAspectRatio?: boolean;
axis?: Axis;
minConstraints?: [number, number];
maxConstraints?: [number, number];
onResizeStop?: (e: React.SyntheticEvent, data: ResizeCallbackData) => any;
onResizeStart?: (e: React.SyntheticEvent, data: ResizeCallbackData) => any;
onResize?: (e: React.SyntheticEvent, data: ResizeCallbackData) => any;
draggableOpts?: any;
}
export class Resizable extends React.Component<
ResizableProps,
ResizableState
> {}
export interface ResizableBoxState {
height: number;
width: number;
}
export type ResizableBoxProps = ResizableProps;
export class ResizableBox extends React.Component<
ResizableBoxProps,
ResizableBoxState
> {}