UNPKG

flipper-plugin

Version:

Flipper Desktop plugin SDK and components

114 lines 3.67 kB
/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @format */ import React from 'react'; import type { Rect } from '../utils/Rect'; type CursorState = { top: number; left: number; }; type ResizingSides = { left?: boolean; top?: boolean; bottom?: boolean; right?: boolean; } | null | undefined; export type InteractiveProps = { isMovableAnchor?: (event: React.MouseEvent) => boolean; onMoveStart?: () => void; onMoveEnd?: () => void; onMove?: (top: number, left: number, event: MouseEvent) => void; id?: string; movable?: boolean; hidden?: boolean; moving?: boolean; grow?: boolean; siblings?: Partial<{ [key: string]: Rect; }>; updateCursor?: (cursor?: string | null | undefined) => void; zIndex?: number; top?: number; left?: number; minTop?: number; minLeft?: number; width?: number | string; height?: number | string; minWidth?: number; minHeight?: number; maxWidth?: number; maxHeight?: number; onCanResize?: (sides: ResizingSides) => void; onResizeStart?: () => void; onResizeEnd?: () => void; onResize?: (width: number, height: number) => void; resizing?: boolean; resizable?: boolean | ResizingSides; innerRef?: (elem: HTMLElement | null) => void; style?: Object; className?: string; children?: React.ReactNode; gutterWidth?: number; }; type InteractiveState = { moving: boolean; movingInitialProps: InteractiveProps | null | undefined; movingInitialCursor: CursorState | null | undefined; cursor: string | undefined; resizingSides: ResizingSides; couldResize: boolean; resizing: boolean; resizingInitialRect: Rect | null | undefined; resizingInitialCursor: CursorState | null | undefined; }; export declare class Interactive extends React.Component<InteractiveProps, InteractiveState> { constructor(props: InteractiveProps, context: Object); globalMouse: boolean; ref?: HTMLElement | null; nextTop?: number | null; nextLeft?: number | null; nextEvent?: MouseEvent | null; static defaultProps: { minHeight: number; minLeft: number; minTop: number; minWidth: number; }; onMouseMove: (event: MouseEvent) => void; startAction: (event: React.MouseEvent) => void; startTitleAction(event: React.MouseEvent): void; startMoving(event: React.MouseEvent): void; getPossibleTargetWindows(rect: Rect): Rect[]; startWindowAction(event: React.MouseEvent): void; startResizeAction(event: React.MouseEvent): void; componentDidUpdate(_prevProps: InteractiveProps, prevState: InteractiveState): void; resetMoving(): void; resetResizing(): void; componentWillUnmount(): void; endAction: () => void; onMouseLeave: () => void; onClick: (e: React.MouseEvent) => void; calculateMove(event: MouseEvent): void; resize(width: number, height: number): void; move(top: number, left: number, event: MouseEvent): void; calculateResize(event: MouseEvent): void; getRect(): Rect; getResizable(): ResizingSides; checkIfResizable(event: MouseEvent): { left: boolean; right: boolean; top: boolean; bottom: boolean; } | undefined; calculateResizable(event: MouseEvent): void; setRef: (ref: HTMLElement | null) => void; onLocalMouseMove: (event: React.MouseEvent) => void; render(): JSX.Element; } export {}; //# sourceMappingURL=Interactive.d.ts.map