UNPKG

1.98 kBTypeScriptView Raw
1import React, { Component, ReactNode } from 'react';
2import type { DebouncedFunc } from 'lodash-es';
3interface Props {
4 position: 'left' | 'right' | 'top' | 'bottom';
5 zIndex: number;
6 fluid: boolean;
7 size?: number;
8 defaultSize: number;
9 dimMode: 'none' | 'transparent' | 'opaque';
10 isVisible?: boolean;
11 onVisibleChange?: (isVisible: boolean) => void;
12 onSizeChange?: (size: number) => void;
13 dimStyle?: React.CSSProperties | null;
14 dockStyle?: React.CSSProperties | null;
15 dockHiddenStyle?: React.CSSProperties | null;
16 duration: number;
17 children?: React.FunctionComponent<{
18 position: 'left' | 'right' | 'top' | 'bottom';
19 isResizing: boolean | undefined;
20 size: number;
21 isVisible: boolean | undefined;
22 }> | ReactNode;
23}
24interface State {
25 isControlled: boolean;
26 size: number;
27 isDimHidden: boolean;
28 fullWidth: number;
29 fullHeight: number;
30 isTransitionStarted: boolean;
31 isWindowResizing: unknown;
32 isResizing?: boolean;
33}
34export default class Dock extends Component<Props, State> {
35 state: State;
36 static defaultProps: {
37 position: string;
38 zIndex: number;
39 fluid: boolean;
40 defaultSize: number;
41 dimMode: string;
42 duration: number;
43 };
44 componentDidMount(): void;
45 componentWillUnmount(): void;
46 UNSAFE_componentWillReceiveProps(nextProps: Props): void;
47 updateSize(props: Props): void;
48 componentDidUpdate(prevProps: Props): void;
49 transitionEnd: () => void;
50 hideDim: () => void;
51 render(): React.JSX.Element;
52 handleDimClick: () => void;
53 handleResize: () => void;
54 updateWindowSize: (windowResize?: true) => void;
55 updateWindowSizeEnd: () => void;
56 debouncedUpdateWindowSizeEnd: DebouncedFunc<() => void>;
57 handleWrapperLeave: () => void;
58 handleMouseDown: () => void;
59 handleMouseUp: () => void;
60 handleMouseMove: (e: MouseEvent | TouchEvent) => void;
61}
62export {};