UNPKG

@uiw/react-split

Version:

A piece of view can be divided into areas where the width or height can be adjusted by dragging.

60 lines (59 loc) 1.74 kB
import React from 'react'; import './style/index.less'; export interface SplitProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onDragEnd'> { style?: React.CSSProperties; className?: string; prefixCls?: string; /** * 拖拽宽度/高度变化回调函数,宽度或者高度根据 mode 参数来确定 */ onDragging?: (preSize: number, nextSize: number, paneNumber: number) => void; /** * 拖拽结束的回调函数 */ onDragEnd?: (preSize: number, nextSize: number, paneNumber: number) => void; /** * 设置拖拽的工具条,为线条样式。 */ lineBar?: boolean; /** * 设置拖拽的工具条,是否可见 */ visiable?: boolean | number[]; /** * 设置拖拽的工具条,禁用 */ disable?: boolean | number[]; /** * 类型,可选值为 `horizontal` 或 `vertical` */ mode?: 'horizontal' | 'vertical'; } export interface SplitState { dragging: boolean; } export default class Split extends React.Component<SplitProps, SplitState> { static defaultProps: SplitProps; state: SplitState; warpper: HTMLDivElement | null; paneNumber: number; startX: number; startY: number; move: boolean; target: HTMLDivElement; boxWidth: number; boxHeight: number; preWidth: number; nextWidth: number; preHeight: number; nextHeight: number; preSize: number; nextSize: number; constructor(props: SplitProps); componentWillUnmount(): void; private removeEvent; onMouseDown(paneNumber: number, env: React.MouseEvent<HTMLDivElement, MouseEvent>): void; onDragging(env: Event): void; onDragEnd(): void; render(): JSX.Element; }