49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
import React from 'react';
|
|
declare type SharedProps = {
|
|
maxHeight?: number;
|
|
maxWidth?: number;
|
|
minHeight?: number;
|
|
minWidth?: number;
|
|
lockHorizontal?: boolean;
|
|
lockVertical?: boolean;
|
|
onResize?: (values: MoveValues) => void;
|
|
onDragEnd?: (values: MoveValues) => void;
|
|
onDragStart?: (values: MoveValues) => void;
|
|
disabled?: boolean;
|
|
maintainAspectRatio?: boolean;
|
|
};
|
|
export interface ResizableProps extends SharedProps {
|
|
interval?: number;
|
|
initialHeight?: number | string;
|
|
initialWidth?: number | string;
|
|
}
|
|
export interface ResizeHandleProps extends SharedProps {
|
|
parent?: React.RefObject<HTMLElement>;
|
|
interval?: number;
|
|
reverse?: boolean;
|
|
}
|
|
export declare type MoveValues = {
|
|
newHeight: number;
|
|
heightDiff: number;
|
|
newWidth: number;
|
|
widthDiff: number;
|
|
};
|
|
export declare const useResizable: (options: ResizableProps) => {
|
|
rootRef: React.RefObject<HTMLDivElement>;
|
|
getRootProps: () => {
|
|
ref: React.RefObject<HTMLDivElement>;
|
|
style: {
|
|
height: string | number | undefined;
|
|
width: string | number | undefined;
|
|
};
|
|
};
|
|
getHandleProps: (handleProps?: ResizeHandleProps) => {
|
|
onMouseDown: (e: React.MouseEvent | React.TouchEvent) => void;
|
|
onTouchStart: (e: React.MouseEvent | React.TouchEvent) => void;
|
|
style: {
|
|
cursor: string;
|
|
};
|
|
};
|
|
};
|
|
export {};
|