@orca-fe/pocket
Version:
UI components by orca-team
63 lines (62 loc) • 1.95 kB
TypeScript
import type { ReactElement, RefObject } from 'react';
import React from 'react';
import type { UseViewportType, Viewport } from './useViewport';
import useViewport from './useViewport';
export declare const ViewportSensorContext: React.Context<Viewport>;
export declare const GetViewportContext: React.Context<() => {
viewport: Viewport;
mousePoint: [number, number];
}>;
export interface ViewportSensorProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
/**
* 中心点位置
*/
center?: [number, number];
/**
* 缩放级别
*/
zoom?: number;
/**
* 鼠标按下事件之前,允许 `return false` 终止拖拽行为
*/
beforePointerDown?: UseViewportType['onPointerDown'];
/**
* center/zoom 发生变化时触发
*/
onPropsChange?: (viewport: Viewport) => void;
/**
* 最大缩放级别
*/
maxZoom?: UseViewportType['maxZoom'];
/**
* 最大缩放步进(防止触摸板滚动过快)
*/
maxZoomStep?: UseViewportType['maxZoomStep'];
/**
* 缩放步进
*/
zoomStep?: UseViewportType['zoomStep'];
/**
* 最小缩放级别
*/
minZoom?: UseViewportType['minZoom'];
/**
* 当触发鼠标滚轮时,实际的行为
*/
wheelMode?: UseViewportType['wheelMode'];
/**
* 允许传入回调函数进行渲染
* 如果是传入回调函数的方式,则表示手动处理其 refs
*/
children?: React.HTMLAttributes<HTMLDivElement>['children'] | ((ref: RefObject<Element>) => ReactElement);
}
declare const ViewportSensor: {
(props: ViewportSensorProps): import("react/jsx-runtime").JSX.Element;
GetViewportContext: React.Context<() => {
viewport: Viewport;
mousePoint: [number, number];
}>;
ViewportSensorContext: React.Context<Viewport>;
useViewport: typeof useViewport;
};
export default ViewportSensor;