UNPKG

3.52 kBTypeScriptView Raw
1/// <reference types="react" />
2import { Component } from 'react';
3import { ViewProperties } from 'react-native';
4export interface PropsDefine extends ViewProperties {
5 /**
6 * 单击的回调
7 */
8 onClick?: () => void;
9 /**
10 * 操作区域宽度
11 */
12 cropWidth: number;
13 /**
14 * 操作区域高度
15 */
16 cropHeight: number;
17 /**
18 * 图片宽度
19 */
20 imageWidth: number;
21 /**
22 * 图片高度
23 */
24 imageHeight: number;
25 /**
26 * 单手是否能移动图片
27 */
28 panToMove?: boolean;
29 /**
30 * 多手指是否能缩放
31 */
32 pinchToZoom?: boolean;
33 /**
34 * 手指按住少于多少毫秒认为是退出
35 */
36 leaveStayTime?: number;
37 /**
38 * 手指按住后位移少于多少认为是退出
39 */
40 leaveDistance?: number;
41 /**
42 * 横向超出的距离,父级做图片切换时,可以监听这个函数
43 * 当此函数触发时,可以做切换操作
44 */
45 horizontalOuterRangeOffset?: (offsetX?: number) => void;
46 /**
47 * 触发想切换到左边的图,向左滑动速度超出阈值时触发
48 */
49 onDragLeft?: () => void;
50 /**
51 * 松手但是没有取消看图的回调
52 */
53 responderRelease?: (vx?: number, scale?: number) => void;
54 /**
55 * 最大滑动阈值
56 */
57 maxOverflow?: number;
58 /**
59 * 长按的阈值(毫秒)
60 */
61 longPressTime?: number;
62 /**
63 * 长按的回调
64 */
65 onLongPress?: () => void;
66 /**
67 * 双击的回调
68 */
69 onDoubleClick?: () => void;
70 /**
71 * 透传
72 */
73 others?: any;
74}
75export declare class PropsGaea {
76 gaeaName: string;
77 gaeaIcon: string;
78 gaeaUniqueKey: string;
79}
80export declare class Props extends PropsGaea implements PropsDefine {
81 onClick: () => void;
82 onLongPress: () => void;
83 panToMove: boolean;
84 pinchToZoom: boolean;
85 cropWidth: number;
86 cropHeight: number;
87 imageWidth: number;
88 imageHeight: number;
89 source: string;
90 longPressTime: number;
91 leaveStayTime: number;
92 leaveDistance: number;
93 maxOverflow: number;
94 horizontalOuterRangeOffset: () => void;
95 responderRelease: () => void;
96 onDoubleClick: () => void;
97}
98export interface StateDefine {
99 /**
100 * 中心 x 坐标````
101 */
102 centerX?: number;
103 /**
104 * 中心 y 坐标
105 */
106 centerY?: number;
107}
108export declare class State implements StateDefine {
109 centerX: number;
110 centerY: number;
111}
112export default class ImageViewer extends Component<PropsDefine, StateDefine> {
113 static defaultProps: PropsDefine;
114 state: StateDefine;
115 private lastPositionX;
116 private positionX;
117 private animatedPositionX;
118 private lastPositionY;
119 private positionY;
120 private animatedPositionY;
121 private scale;
122 private animatedScale;
123 private zoomLastDistance;
124 private zoomCurrentDistance;
125 private imagePanResponder;
126 private lastTouchStartTime;
127 private horizontalWholeOuterCounter;
128 private horizontalWholeCounter;
129 private verticalWholeCounter;
130 private centerDiffX;
131 private centerDiffY;
132 private longPressTimeout;
133 private lastClickTime;
134 private doubleClickX;
135 private doubleClickY;
136 private isDoubleClickScale;
137 componentWillMount(): void;
138 /**
139 * 图片区域视图渲染完毕
140 * event: LayoutChangeEvent
141 */
142 handleLayout: () => {};
143 /**
144 * 重置大小和位置
145 */
146 reset(): void;
147 render(): JSX.Element;
148}