UNPKG

4.98 kBTypeScriptView Raw
1import * as React from 'react';
2import { ViewStyle } from 'react-native';
3interface IOnMove {
4 type: string;
5 positionX: number;
6 positionY: number;
7 scale: number;
8 zoomCurrentDistance: number;
9}
10export declare class Props {
11 /**
12 * 是否显示
13 */
14 show?: boolean;
15 /**
16 * 图片数组
17 */
18 imageUrls: IImageInfo[];
19 /**
20 * 滑动到下一页的X阈值
21 */
22 flipThreshold?: number;
23 /**
24 * 当前页能滑到下一页X位置最大值
25 */
26 maxOverflow?: number;
27 /**
28 * 初始显示第几张图
29 */
30 index?: number;
31 /**
32 * 加载失败的图
33 */
34 failImageSource?: IImageInfo;
35 /**
36 * 背景颜色
37 */
38 backgroundColor?: string;
39 /**
40 * style props for the footer container
41 */
42 footerContainerStyle?: object;
43 /**
44 * Menu Context Values
45 */
46 menuContext?: any;
47 /**
48 * 是否开启长按保存到本地的功能
49 */
50 saveToLocalByLongPress?: boolean;
51 /**
52 * 是否允许缩放图片
53 */
54 enableImageZoom?: boolean;
55 style?: ViewStyle;
56 /**
57 * Enable swipe down to close image viewer.
58 * When swipe down, will trigger onCancel.
59 */
60 enableSwipeDown?: boolean;
61 /**
62 * threshold for firing swipe down function
63 */
64 swipeDownThreshold?: number;
65 doubleClickInterval?: number;
66 /**
67 * Min and Max scale for zooming
68 */
69 minScale?: number;
70 maxScale?: number;
71 /**
72 * 是否预加载图片
73 */
74 enablePreload?: boolean;
75 /**
76 * 翻页时的动画时间
77 */
78 pageAnimateTime?: number;
79 /**
80 * 是否启用原生动画驱动
81 * Whether to use the native code to perform animations.
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 * 针对安卓不支持 saveToCameraRoll 远程图片,可以在安卓调用此回调,调用安卓原生接口
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 * Render image component
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 * function that fires when user swipes down
136 */
137 onSwipeDown?: () => void;
138 /**
139 * 渲染loading元素
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}
152export declare class State {
153 /**
154 * 是否显示
155 */
156 show?: boolean;
157 /**
158 * 当前显示第几个
159 */
160 currentShowIndex?: number;
161 /**
162 * Used to detect if parent component applied new index prop
163 */
164 prevIndexProp?: number;
165 /**
166 * 图片拉取是否完毕了
167 */
168 imageLoaded?: boolean;
169 /**
170 * 图片长宽列表
171 */
172 imageSizes?: IImageSize[];
173 /**
174 * 是否出现功能菜单
175 */
176 isShowMenu?: boolean;
177}
178export interface IImageInfo {
179 url: string;
180 /**
181 * 没有的话会自动拉取
182 */
183 width?: number;
184 /**
185 * 没有的话会自动拉取
186 */
187 height?: number;
188 /**
189 * 图片字节大小(kb为单位)
190 */
191 sizeKb?: number;
192 /**
193 * 原图字节大小(kb为单位)
194 * 如果设置了这个字段,并且有原图url,则显示查看原图按钮
195 */
196 originSizeKb?: number;
197 /**
198 * 原图url地址
199 */
200 originUrl?: string;
201 /**
202 * Pass to image props
203 */
204 props?: any;
205 /**
206 * 初始是否不超高 TODO:
207 */
208 freeHeight?: boolean;
209 /**
210 * 初始是否不超高 TODO:
211 */
212 freeWidth?: boolean;
213}
214export interface IImageSize {
215 width: number;
216 height: number;
217 status: 'loading' | 'success' | 'fail';
218}
219export {};