1 | import * as React from 'react';
|
2 | import { ViewStyle } from 'react-native';
|
3 | interface IOnMove {
|
4 | type: string;
|
5 | positionX: number;
|
6 | positionY: number;
|
7 | scale: number;
|
8 | zoomCurrentDistance: number;
|
9 | }
|
10 | export declare class Props {
|
11 | |
12 |
|
13 |
|
14 | show?: boolean;
|
15 | |
16 |
|
17 |
|
18 | imageUrls: IImageInfo[];
|
19 | |
20 |
|
21 |
|
22 | flipThreshold?: number;
|
23 | |
24 |
|
25 |
|
26 | maxOverflow?: number;
|
27 | |
28 |
|
29 |
|
30 | index?: number;
|
31 | |
32 |
|
33 |
|
34 | failImageSource?: IImageInfo;
|
35 | |
36 |
|
37 |
|
38 | backgroundColor?: string;
|
39 | |
40 |
|
41 |
|
42 | footerContainerStyle?: object;
|
43 | |
44 |
|
45 |
|
46 | menuContext?: any;
|
47 | |
48 |
|
49 |
|
50 | saveToLocalByLongPress?: boolean;
|
51 | |
52 |
|
53 |
|
54 | enableImageZoom?: boolean;
|
55 | style?: ViewStyle;
|
56 | |
57 |
|
58 |
|
59 |
|
60 | enableSwipeDown?: boolean;
|
61 | |
62 |
|
63 |
|
64 | swipeDownThreshold?: number;
|
65 | doubleClickInterval?: number;
|
66 | |
67 |
|
68 |
|
69 | minScale?: number;
|
70 | maxScale?: number;
|
71 | |
72 |
|
73 |
|
74 | enablePreload?: boolean;
|
75 | |
76 |
|
77 |
|
78 | pageAnimateTime?: number;
|
79 | |
80 |
|
81 |
|
82 |
|
83 | useNativeDriver?: boolean;
|
84 | |
85 |
|
86 |
|
87 | onLongPress?: (image?: IImageInfo) => void;
|
88 | |
89 |
|
90 |
|
91 | onClick?: (close?: () => any, currentShowIndex?: number) => void;
|
92 | |
93 |
|
94 |
|
95 | onDoubleClick?: (close?: () => any) => void;
|
96 | |
97 |
|
98 |
|
99 |
|
100 | onSave?: (url: string) => void;
|
101 | onMove?: (position?: IOnMove) => void;
|
102 | |
103 |
|
104 |
|
105 | renderHeader?: (currentIndex?: number) => React.ReactElement<any>;
|
106 | |
107 |
|
108 |
|
109 | renderFooter?: (currentIndex: number) => React.ReactElement<any>;
|
110 | |
111 |
|
112 |
|
113 | renderIndicator?: (currentIndex?: number, allSize?: number) => React.ReactElement<any>;
|
114 | |
115 |
|
116 |
|
117 | renderImage?: (props: any) => React.ReactElement<any>;
|
118 | |
119 |
|
120 |
|
121 | renderArrowLeft?: () => React.ReactElement<any>;
|
122 | |
123 |
|
124 |
|
125 | renderArrowRight?: () => React.ReactElement<any>;
|
126 | |
127 |
|
128 |
|
129 | onShowModal?: (content?: any) => void;
|
130 | |
131 |
|
132 |
|
133 | onCancel?: () => void;
|
134 | |
135 |
|
136 |
|
137 | onSwipeDown?: () => void;
|
138 | |
139 |
|
140 |
|
141 | loadingRender?: () => React.ReactElement<any>;
|
142 | |
143 |
|
144 |
|
145 | onSaveToCamera?: (index?: number) => void;
|
146 | |
147 |
|
148 |
|
149 | onChange?: (index?: number) => void;
|
150 | menus?: ({ cancel, saveToLocal }: any) => React.ReactElement<any>;
|
151 | }
|
152 | export declare class State {
|
153 | |
154 |
|
155 |
|
156 | show?: boolean;
|
157 | |
158 |
|
159 |
|
160 | currentShowIndex?: number;
|
161 | |
162 |
|
163 |
|
164 | prevIndexProp?: number;
|
165 | |
166 |
|
167 |
|
168 | imageLoaded?: boolean;
|
169 | |
170 |
|
171 |
|
172 | imageSizes?: IImageSize[];
|
173 | |
174 |
|
175 |
|
176 | isShowMenu?: boolean;
|
177 | }
|
178 | export interface IImageInfo {
|
179 | url: string;
|
180 | |
181 |
|
182 |
|
183 | width?: number;
|
184 | |
185 |
|
186 |
|
187 | height?: number;
|
188 | |
189 |
|
190 |
|
191 | sizeKb?: number;
|
192 | |
193 |
|
194 |
|
195 |
|
196 | originSizeKb?: number;
|
197 | |
198 |
|
199 |
|
200 | originUrl?: string;
|
201 | |
202 |
|
203 |
|
204 | props?: any;
|
205 | |
206 |
|
207 |
|
208 | freeHeight?: boolean;
|
209 | |
210 |
|
211 |
|
212 | freeWidth?: boolean;
|
213 | }
|
214 | export interface IImageSize {
|
215 | width: number;
|
216 | height: number;
|
217 | status: 'loading' | 'success' | 'fail';
|
218 | }
|
219 | export {};
|