stream-chat-react-native-core 5.4.2-beta.1 → 5.4.2-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +122 -433
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +358 -0
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -0
- package/lib/commonjs/components/MessageList/NetworkDownIndicator.js +14 -6
- package/lib/commonjs/components/MessageList/NetworkDownIndicator.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +134 -85
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +39 -17
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/commonjs/hooks/useAppStateListener.js +9 -15
- package/lib/commonjs/hooks/useAppStateListener.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +122 -433
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +358 -0
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -0
- package/lib/module/components/MessageList/NetworkDownIndicator.js +14 -6
- package/lib/module/components/MessageList/NetworkDownIndicator.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +134 -85
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayProvider.js +39 -17
- package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/module/hooks/useAppStateListener.js +9 -15
- package/lib/module/hooks/useAppStateListener.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/AttachmentPicker/AttachmentPicker.d.ts +0 -11
- package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerItem.d.ts +16 -0
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +1 -1
- package/lib/typescript/hooks/__tests__/useAppStateListener.test.d.ts +1 -0
- package/package.json +2 -2
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +79 -322
- package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +245 -0
- package/src/components/MessageList/NetworkDownIndicator.tsx +13 -10
- package/src/contexts/messageInputContext/MessageInputContext.tsx +27 -25
- package/src/contexts/overlayContext/OverlayProvider.tsx +28 -4
- package/src/hooks/__tests__/useAppStateListener.test.tsx +41 -0
- package/src/hooks/useAppStateListener.ts +9 -12
- package/src/version.json +1 -1
|
@@ -9,12 +9,12 @@ exports.AttachmentPicker = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
11
|
|
|
12
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
-
|
|
14
12
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
13
|
|
|
16
14
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
15
|
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
+
|
|
18
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
19
|
|
|
20
20
|
var _reactNative = require("react-native");
|
|
@@ -25,14 +25,12 @@ var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
|
25
25
|
|
|
26
26
|
var _duration = _interopRequireDefault(require("dayjs/plugin/duration"));
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _AttachmentPickerItem = require("./components/AttachmentPickerItem");
|
|
29
29
|
|
|
30
30
|
var _AttachmentPickerContext = require("../../contexts/attachmentPickerContext/AttachmentPickerContext");
|
|
31
31
|
|
|
32
32
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
33
33
|
|
|
34
|
-
var _icons = require("../../icons");
|
|
35
|
-
|
|
36
34
|
var _native = require("../../native");
|
|
37
35
|
|
|
38
36
|
var _utils = require("../../utils/utils");
|
|
@@ -49,22 +47,6 @@ _dayjs["default"].extend(_duration["default"]);
|
|
|
49
47
|
var styles = _reactNative.StyleSheet.create({
|
|
50
48
|
container: {
|
|
51
49
|
flexGrow: 1
|
|
52
|
-
},
|
|
53
|
-
durationText: {
|
|
54
|
-
fontWeight: 'bold'
|
|
55
|
-
},
|
|
56
|
-
overlay: {
|
|
57
|
-
alignItems: 'flex-end',
|
|
58
|
-
flex: 1
|
|
59
|
-
},
|
|
60
|
-
videoView: {
|
|
61
|
-
bottom: 5,
|
|
62
|
-
display: 'flex',
|
|
63
|
-
flexDirection: 'row',
|
|
64
|
-
justifyContent: 'space-between',
|
|
65
|
-
paddingHorizontal: 5,
|
|
66
|
-
position: 'absolute',
|
|
67
|
-
width: '100%'
|
|
68
50
|
}
|
|
69
51
|
});
|
|
70
52
|
|
|
@@ -72,302 +54,7 @@ var screenHeight = (0, _utils.vh)(100);
|
|
|
72
54
|
|
|
73
55
|
var fullScreenHeight = _reactNative.Dimensions.get('window').height;
|
|
74
56
|
|
|
75
|
-
var AttachmentVideo = function AttachmentVideo(props) {
|
|
76
|
-
var asset = props.asset,
|
|
77
|
-
ImageOverlaySelectedComponent = props.ImageOverlaySelectedComponent,
|
|
78
|
-
maxNumberOfFiles = props.maxNumberOfFiles,
|
|
79
|
-
numberOfAttachmentPickerImageColumns = props.numberOfAttachmentPickerImageColumns,
|
|
80
|
-
numberOfUploads = props.numberOfUploads,
|
|
81
|
-
selected = props.selected,
|
|
82
|
-
setSelectedFiles = props.setSelectedFiles;
|
|
83
|
-
|
|
84
|
-
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
85
|
-
_useTheme$theme = _useTheme.theme,
|
|
86
|
-
_useTheme$theme$attac = _useTheme$theme.attachmentPicker,
|
|
87
|
-
durationText = _useTheme$theme$attac.durationText,
|
|
88
|
-
image = _useTheme$theme$attac.image,
|
|
89
|
-
imageOverlay = _useTheme$theme$attac.imageOverlay,
|
|
90
|
-
_useTheme$theme$color = _useTheme$theme.colors,
|
|
91
|
-
overlay = _useTheme$theme$color.overlay,
|
|
92
|
-
white = _useTheme$theme$color.white;
|
|
93
|
-
|
|
94
|
-
var duration = asset.duration,
|
|
95
|
-
playableDuration = asset.playableDuration,
|
|
96
|
-
uri = asset.uri;
|
|
97
|
-
var videoDuration = duration ? duration : playableDuration;
|
|
98
|
-
var ONE_HOUR_IN_SECONDS = 3600;
|
|
99
|
-
var durationLabel = '00:00';
|
|
100
|
-
|
|
101
|
-
if (videoDuration) {
|
|
102
|
-
var isDurationLongerThanHour = videoDuration / ONE_HOUR_IN_SECONDS >= 1;
|
|
103
|
-
var formattedDurationParam = isDurationLongerThanHour ? 'HH:mm:ss' : 'mm:ss';
|
|
104
|
-
|
|
105
|
-
var formattedVideoDuration = _dayjs["default"].duration(videoDuration, 'second').format(formattedDurationParam);
|
|
106
|
-
|
|
107
|
-
durationLabel = formattedVideoDuration;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
var size = (0, _utils.vw)(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;
|
|
111
|
-
|
|
112
|
-
var onPressVideo = function () {
|
|
113
|
-
var _ref = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
|
|
114
|
-
var localAssetURI;
|
|
115
|
-
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
116
|
-
while (1) {
|
|
117
|
-
switch (_context.prev = _context.next) {
|
|
118
|
-
case 0:
|
|
119
|
-
_context.t0 = asset.id;
|
|
120
|
-
|
|
121
|
-
if (!_context.t0) {
|
|
122
|
-
_context.next = 5;
|
|
123
|
-
break;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
_context.next = 4;
|
|
127
|
-
return (0, _native.getLocalAssetUri)(asset.id);
|
|
128
|
-
|
|
129
|
-
case 4:
|
|
130
|
-
_context.t0 = _context.sent;
|
|
131
|
-
|
|
132
|
-
case 5:
|
|
133
|
-
localAssetURI = _context.t0;
|
|
134
|
-
|
|
135
|
-
if (selected) {
|
|
136
|
-
setSelectedFiles(function (files) {
|
|
137
|
-
return files.filter(function (file) {
|
|
138
|
-
return file.uri !== asset.uri;
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
} else {
|
|
142
|
-
setSelectedFiles(function (files) {
|
|
143
|
-
if (numberOfUploads >= maxNumberOfFiles) {
|
|
144
|
-
_reactNative.Alert.alert('Maximum number of files reached');
|
|
145
|
-
|
|
146
|
-
return files;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
return [].concat((0, _toConsumableArray2["default"])(files), [{
|
|
150
|
-
duration: durationLabel,
|
|
151
|
-
name: asset.filename,
|
|
152
|
-
size: asset.fileSize,
|
|
153
|
-
type: 'video',
|
|
154
|
-
uri: localAssetURI || asset.uri
|
|
155
|
-
}]);
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
case 7:
|
|
160
|
-
case "end":
|
|
161
|
-
return _context.stop();
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}, _callee);
|
|
165
|
-
}));
|
|
166
|
-
|
|
167
|
-
return function onPressVideo() {
|
|
168
|
-
return _ref.apply(this, arguments);
|
|
169
|
-
};
|
|
170
|
-
}();
|
|
171
|
-
|
|
172
|
-
return _react["default"].createElement(_bottomSheet.TouchableOpacity, {
|
|
173
|
-
onPress: onPressVideo,
|
|
174
|
-
__self: _this,
|
|
175
|
-
__source: {
|
|
176
|
-
fileName: _jsxFileName,
|
|
177
|
-
lineNumber: 138,
|
|
178
|
-
columnNumber: 5
|
|
179
|
-
}
|
|
180
|
-
}, _react["default"].createElement(_reactNative.ImageBackground, {
|
|
181
|
-
source: {
|
|
182
|
-
uri: uri
|
|
183
|
-
},
|
|
184
|
-
style: [{
|
|
185
|
-
height: size,
|
|
186
|
-
margin: 1,
|
|
187
|
-
width: size
|
|
188
|
-
}, image],
|
|
189
|
-
__self: _this,
|
|
190
|
-
__source: {
|
|
191
|
-
fileName: _jsxFileName,
|
|
192
|
-
lineNumber: 139,
|
|
193
|
-
columnNumber: 7
|
|
194
|
-
}
|
|
195
|
-
}, selected && _react["default"].createElement(_reactNative.View, {
|
|
196
|
-
style: [styles.overlay, {
|
|
197
|
-
backgroundColor: overlay
|
|
198
|
-
}, imageOverlay],
|
|
199
|
-
__self: _this,
|
|
200
|
-
__source: {
|
|
201
|
-
fileName: _jsxFileName,
|
|
202
|
-
lineNumber: 151,
|
|
203
|
-
columnNumber: 11
|
|
204
|
-
}
|
|
205
|
-
}, _react["default"].createElement(ImageOverlaySelectedComponent, {
|
|
206
|
-
__self: _this,
|
|
207
|
-
__source: {
|
|
208
|
-
fileName: _jsxFileName,
|
|
209
|
-
lineNumber: 152,
|
|
210
|
-
columnNumber: 13
|
|
211
|
-
}
|
|
212
|
-
})), _react["default"].createElement(_reactNative.View, {
|
|
213
|
-
style: styles.videoView,
|
|
214
|
-
__self: _this,
|
|
215
|
-
__source: {
|
|
216
|
-
fileName: _jsxFileName,
|
|
217
|
-
lineNumber: 155,
|
|
218
|
-
columnNumber: 9
|
|
219
|
-
}
|
|
220
|
-
}, _react["default"].createElement(_icons.Recorder, {
|
|
221
|
-
height: 20,
|
|
222
|
-
pathFill: white,
|
|
223
|
-
width: 25,
|
|
224
|
-
__self: _this,
|
|
225
|
-
__source: {
|
|
226
|
-
fileName: _jsxFileName,
|
|
227
|
-
lineNumber: 156,
|
|
228
|
-
columnNumber: 11
|
|
229
|
-
}
|
|
230
|
-
}), videoDuration ? _react["default"].createElement(_reactNative.Text, {
|
|
231
|
-
style: [styles.durationText, durationText, {
|
|
232
|
-
color: white
|
|
233
|
-
}],
|
|
234
|
-
__self: _this,
|
|
235
|
-
__source: {
|
|
236
|
-
fileName: _jsxFileName,
|
|
237
|
-
lineNumber: 158,
|
|
238
|
-
columnNumber: 13
|
|
239
|
-
}
|
|
240
|
-
}, durationLabel) : null)));
|
|
241
|
-
};
|
|
242
|
-
|
|
243
|
-
var AttachmentImage = function AttachmentImage(props) {
|
|
244
|
-
var asset = props.asset,
|
|
245
|
-
ImageOverlaySelectedComponent = props.ImageOverlaySelectedComponent,
|
|
246
|
-
maxNumberOfFiles = props.maxNumberOfFiles,
|
|
247
|
-
numberOfAttachmentPickerImageColumns = props.numberOfAttachmentPickerImageColumns,
|
|
248
|
-
numberOfUploads = props.numberOfUploads,
|
|
249
|
-
selected = props.selected,
|
|
250
|
-
setSelectedImages = props.setSelectedImages;
|
|
251
|
-
|
|
252
|
-
var _useTheme2 = (0, _ThemeContext.useTheme)(),
|
|
253
|
-
_useTheme2$theme = _useTheme2.theme,
|
|
254
|
-
_useTheme2$theme$atta = _useTheme2$theme.attachmentPicker,
|
|
255
|
-
image = _useTheme2$theme$atta.image,
|
|
256
|
-
imageOverlay = _useTheme2$theme$atta.imageOverlay,
|
|
257
|
-
overlay = _useTheme2$theme.colors.overlay;
|
|
258
|
-
|
|
259
|
-
var size = (0, _utils.vw)(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;
|
|
260
|
-
var uri = asset.uri;
|
|
261
|
-
|
|
262
|
-
var onPressImage = function onPressImage() {
|
|
263
|
-
if (selected) {
|
|
264
|
-
setSelectedImages(function (images) {
|
|
265
|
-
return images.filter(function (image) {
|
|
266
|
-
return image.uri !== asset.uri;
|
|
267
|
-
});
|
|
268
|
-
});
|
|
269
|
-
} else {
|
|
270
|
-
setSelectedImages(function (images) {
|
|
271
|
-
if (numberOfUploads >= maxNumberOfFiles) {
|
|
272
|
-
_reactNative.Alert.alert('Maximum number of files reached');
|
|
273
|
-
|
|
274
|
-
return images;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
return [].concat((0, _toConsumableArray2["default"])(images), [asset]);
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
};
|
|
281
|
-
|
|
282
|
-
return _react["default"].createElement(_bottomSheet.TouchableOpacity, {
|
|
283
|
-
onPress: onPressImage,
|
|
284
|
-
__self: _this,
|
|
285
|
-
__source: {
|
|
286
|
-
fileName: _jsxFileName,
|
|
287
|
-
lineNumber: 204,
|
|
288
|
-
columnNumber: 5
|
|
289
|
-
}
|
|
290
|
-
}, _react["default"].createElement(_reactNative.ImageBackground, {
|
|
291
|
-
source: {
|
|
292
|
-
uri: uri
|
|
293
|
-
},
|
|
294
|
-
style: [{
|
|
295
|
-
height: size,
|
|
296
|
-
margin: 1,
|
|
297
|
-
width: size
|
|
298
|
-
}, image],
|
|
299
|
-
__self: _this,
|
|
300
|
-
__source: {
|
|
301
|
-
fileName: _jsxFileName,
|
|
302
|
-
lineNumber: 205,
|
|
303
|
-
columnNumber: 7
|
|
304
|
-
}
|
|
305
|
-
}, selected && _react["default"].createElement(_reactNative.View, {
|
|
306
|
-
style: [styles.overlay, {
|
|
307
|
-
backgroundColor: overlay
|
|
308
|
-
}, imageOverlay],
|
|
309
|
-
__self: _this,
|
|
310
|
-
__source: {
|
|
311
|
-
fileName: _jsxFileName,
|
|
312
|
-
lineNumber: 217,
|
|
313
|
-
columnNumber: 11
|
|
314
|
-
}
|
|
315
|
-
}, _react["default"].createElement(ImageOverlaySelectedComponent, {
|
|
316
|
-
__self: _this,
|
|
317
|
-
__source: {
|
|
318
|
-
fileName: _jsxFileName,
|
|
319
|
-
lineNumber: 218,
|
|
320
|
-
columnNumber: 13
|
|
321
|
-
}
|
|
322
|
-
}))));
|
|
323
|
-
};
|
|
324
|
-
|
|
325
|
-
var renderItem = function renderItem(_ref2) {
|
|
326
|
-
var item = _ref2.item;
|
|
327
|
-
var asset = item.asset,
|
|
328
|
-
ImageOverlaySelectedComponent = item.ImageOverlaySelectedComponent,
|
|
329
|
-
maxNumberOfFiles = item.maxNumberOfFiles,
|
|
330
|
-
numberOfAttachmentPickerImageColumns = item.numberOfAttachmentPickerImageColumns,
|
|
331
|
-
numberOfUploads = item.numberOfUploads,
|
|
332
|
-
selected = item.selected,
|
|
333
|
-
setSelectedFiles = item.setSelectedFiles,
|
|
334
|
-
setSelectedImages = item.setSelectedImages;
|
|
335
|
-
var contentType = (0, _mimeTypes.lookup)(asset.filename) || 'multipart/form-data';
|
|
336
|
-
var fileType = asset.filename ? contentType.startsWith('image/') ? 'image' : 'video' : asset.type === 'video' ? 'video' : 'image';
|
|
337
|
-
return fileType === 'image' ? _react["default"].createElement(AttachmentImage, {
|
|
338
|
-
asset: asset,
|
|
339
|
-
ImageOverlaySelectedComponent: ImageOverlaySelectedComponent,
|
|
340
|
-
maxNumberOfFiles: maxNumberOfFiles,
|
|
341
|
-
numberOfAttachmentPickerImageColumns: numberOfAttachmentPickerImageColumns,
|
|
342
|
-
numberOfUploads: numberOfUploads,
|
|
343
|
-
selected: selected,
|
|
344
|
-
setSelectedImages: setSelectedImages,
|
|
345
|
-
__self: _this,
|
|
346
|
-
__source: {
|
|
347
|
-
fileName: _jsxFileName,
|
|
348
|
-
lineNumber: 249,
|
|
349
|
-
columnNumber: 5
|
|
350
|
-
}
|
|
351
|
-
}) : _react["default"].createElement(AttachmentVideo, {
|
|
352
|
-
asset: asset,
|
|
353
|
-
ImageOverlaySelectedComponent: ImageOverlaySelectedComponent,
|
|
354
|
-
maxNumberOfFiles: maxNumberOfFiles,
|
|
355
|
-
numberOfAttachmentPickerImageColumns: numberOfAttachmentPickerImageColumns,
|
|
356
|
-
numberOfUploads: numberOfUploads,
|
|
357
|
-
selected: selected,
|
|
358
|
-
setSelectedFiles: setSelectedFiles,
|
|
359
|
-
__self: _this,
|
|
360
|
-
__source: {
|
|
361
|
-
fileName: _jsxFileName,
|
|
362
|
-
lineNumber: 259,
|
|
363
|
-
columnNumber: 5
|
|
364
|
-
}
|
|
365
|
-
});
|
|
366
|
-
};
|
|
367
|
-
|
|
368
57
|
var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
369
|
-
var _StatusBar$currentHei, _StatusBar$currentHei2;
|
|
370
|
-
|
|
371
58
|
var AttachmentPickerBottomSheetHandle = props.AttachmentPickerBottomSheetHandle,
|
|
372
59
|
attachmentPickerBottomSheetHandleHeight = props.attachmentPickerBottomSheetHandleHeight,
|
|
373
60
|
attachmentPickerBottomSheetHeight = props.attachmentPickerBottomSheetHeight,
|
|
@@ -380,10 +67,10 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
380
67
|
numberOfAttachmentPickerImageColumns = props.numberOfAttachmentPickerImageColumns,
|
|
381
68
|
translucentStatusBar = props.translucentStatusBar;
|
|
382
69
|
|
|
383
|
-
var
|
|
384
|
-
|
|
385
|
-
bottomSheetContentContainer =
|
|
386
|
-
white =
|
|
70
|
+
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
71
|
+
_useTheme$theme = _useTheme.theme,
|
|
72
|
+
bottomSheetContentContainer = _useTheme$theme.attachmentPicker.bottomSheetContentContainer,
|
|
73
|
+
white = _useTheme$theme.colors.white;
|
|
387
74
|
|
|
388
75
|
var _useAttachmentPickerC = (0, _AttachmentPickerContext.useAttachmentPickerContext)(),
|
|
389
76
|
closePicker = _useAttachmentPickerC.closePicker,
|
|
@@ -401,89 +88,72 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
401
88
|
currentIndex = _useState2[0],
|
|
402
89
|
setCurrentIndex = _useState2[1];
|
|
403
90
|
|
|
404
|
-
var
|
|
91
|
+
var endCursorRef = (0, _react.useRef)();
|
|
92
|
+
|
|
93
|
+
var _useState3 = (0, _react.useState)(false),
|
|
405
94
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
406
|
-
|
|
407
|
-
|
|
95
|
+
photoError = _useState4[0],
|
|
96
|
+
setPhotoError = _useState4[1];
|
|
97
|
+
|
|
98
|
+
var hasNextPageRef = (0, _react.useRef)(true);
|
|
408
99
|
|
|
409
100
|
var _useState5 = (0, _react.useState)(false),
|
|
410
101
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
411
|
-
|
|
412
|
-
|
|
102
|
+
loadingPhotos = _useState6[0],
|
|
103
|
+
setLoadingPhotos = _useState6[1];
|
|
413
104
|
|
|
414
|
-
var _useState7 = (0, _react.useState)(
|
|
105
|
+
var _useState7 = (0, _react.useState)([]),
|
|
415
106
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
var
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
var bottomSheetCloseOnKeyboardShowTimeout = (0, _react.useRef)();
|
|
430
|
-
|
|
431
|
-
var getMorePhotos = function () {
|
|
432
|
-
var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2() {
|
|
433
|
-
var results;
|
|
434
|
-
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
435
|
-
while (1) {
|
|
436
|
-
switch (_context2.prev = _context2.next) {
|
|
437
|
-
case 0:
|
|
438
|
-
if (!(hasNextPage && !loadingPhotos && currentIndex > -1 && selectedPicker === 'images')) {
|
|
439
|
-
_context2.next = 16;
|
|
440
|
-
break;
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
setLoadingPhotos(true);
|
|
444
|
-
_context2.prev = 2;
|
|
445
|
-
_context2.next = 5;
|
|
446
|
-
return (0, _native.getPhotos)({
|
|
447
|
-
after: endCursor,
|
|
448
|
-
first: numberOfAttachmentImagesToLoadPerCall != null ? numberOfAttachmentImagesToLoadPerCall : 60
|
|
449
|
-
});
|
|
450
|
-
|
|
451
|
-
case 5:
|
|
452
|
-
results = _context2.sent;
|
|
453
|
-
|
|
454
|
-
if (endCursor) {
|
|
455
|
-
setPhotos([].concat((0, _toConsumableArray2["default"])(photos), (0, _toConsumableArray2["default"])(results.assets)));
|
|
456
|
-
} else {
|
|
457
|
-
setPhotos(results.assets);
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
setEndCursor(results.endCursor);
|
|
461
|
-
setHasNextPage(results.hasNextPage || false);
|
|
462
|
-
_context2.next = 15;
|
|
107
|
+
photos = _useState8[0],
|
|
108
|
+
setPhotos = _useState8[1];
|
|
109
|
+
|
|
110
|
+
var attemptedToLoadPhotosOnOpenRef = (0, _react.useRef)(false);
|
|
111
|
+
var getMorePhotos = (0, _react.useCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
|
|
112
|
+
var endCursor, results;
|
|
113
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
114
|
+
while (1) {
|
|
115
|
+
switch (_context.prev = _context.next) {
|
|
116
|
+
case 0:
|
|
117
|
+
if (!(hasNextPageRef.current && !loadingPhotos && currentIndex > -1 && selectedPicker === 'images')) {
|
|
118
|
+
_context.next = 17;
|
|
463
119
|
break;
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
setPhotoError(false);
|
|
123
|
+
setLoadingPhotos(true);
|
|
124
|
+
endCursor = endCursorRef.current;
|
|
125
|
+
_context.prev = 4;
|
|
126
|
+
_context.next = 7;
|
|
127
|
+
return (0, _native.getPhotos)({
|
|
128
|
+
after: endCursor,
|
|
129
|
+
first: numberOfAttachmentImagesToLoadPerCall != null ? numberOfAttachmentImagesToLoadPerCall : 60
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
case 7:
|
|
133
|
+
results = _context.sent;
|
|
134
|
+
endCursorRef.current = results.endCursor;
|
|
135
|
+
setPhotos(function (prevPhotos) {
|
|
136
|
+
return endCursor ? [].concat((0, _toConsumableArray2["default"])(prevPhotos), (0, _toConsumableArray2["default"])(results.assets)) : results.assets;
|
|
137
|
+
});
|
|
138
|
+
hasNextPageRef.current = !!results.hasNextPage;
|
|
139
|
+
_context.next = 16;
|
|
140
|
+
break;
|
|
141
|
+
|
|
142
|
+
case 13:
|
|
143
|
+
_context.prev = 13;
|
|
144
|
+
_context.t0 = _context["catch"](4);
|
|
145
|
+
setPhotoError(true);
|
|
146
|
+
|
|
147
|
+
case 16:
|
|
148
|
+
setLoadingPhotos(false);
|
|
149
|
+
|
|
150
|
+
case 17:
|
|
151
|
+
case "end":
|
|
152
|
+
return _context.stop();
|
|
478
153
|
}
|
|
479
|
-
}
|
|
480
|
-
})
|
|
481
|
-
|
|
482
|
-
return function getMorePhotos() {
|
|
483
|
-
return _ref3.apply(this, arguments);
|
|
484
|
-
};
|
|
485
|
-
}();
|
|
486
|
-
|
|
154
|
+
}
|
|
155
|
+
}, _callee, null, [[4, 13]]);
|
|
156
|
+
})), [currentIndex, selectedPicker, loadingPhotos]);
|
|
487
157
|
(0, _react.useEffect)(function () {
|
|
488
158
|
var backAction = function backAction() {
|
|
489
159
|
if (selectedPicker) {
|
|
@@ -500,55 +170,39 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
500
170
|
return function () {
|
|
501
171
|
return backHandler.remove();
|
|
502
172
|
};
|
|
503
|
-
}, [selectedPicker]);
|
|
173
|
+
}, [selectedPicker, closePicker]);
|
|
504
174
|
(0, _react.useEffect)(function () {
|
|
505
|
-
var
|
|
506
|
-
if (bottomSheetCloseOnKeyboardShowTimeout.current) {
|
|
507
|
-
clearTimeout(bottomSheetCloseOnKeyboardShowTimeout.current);
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
setSelectedPicker(undefined);
|
|
511
|
-
bottomSheetCloseOnKeyboardShowTimeout.current = setTimeout(function () {
|
|
512
|
-
var _current;
|
|
175
|
+
var keyboardShowEvent = _reactNative.Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow';
|
|
513
176
|
|
|
514
|
-
|
|
515
|
-
}, 150);
|
|
516
|
-
};
|
|
177
|
+
var keyboardSubscription = _reactNative.Keyboard.addListener(keyboardShowEvent, closePicker);
|
|
517
178
|
|
|
518
|
-
var keyboardSubscription = _reactNative.Platform.OS === 'ios' ? _reactNative.Keyboard.addListener('keyboardWillShow', hideAttachmentPicker) : _reactNative.Keyboard.addListener('keyboardDidShow', hideAttachmentPicker);
|
|
519
179
|
return function () {
|
|
520
180
|
if (keyboardSubscription != null && keyboardSubscription.remove) {
|
|
521
181
|
keyboardSubscription.remove();
|
|
522
182
|
return;
|
|
523
183
|
}
|
|
524
184
|
|
|
525
|
-
|
|
526
|
-
_reactNative.Keyboard.removeListener('keyboardWillShow', hideAttachmentPicker);
|
|
527
|
-
} else {
|
|
528
|
-
_reactNative.Keyboard.removeListener('keyboardDidShow', hideAttachmentPicker);
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
if (bottomSheetCloseOnKeyboardShowTimeout.current) {
|
|
532
|
-
clearTimeout(bottomSheetCloseOnKeyboardShowTimeout.current);
|
|
533
|
-
}
|
|
185
|
+
_reactNative.Keyboard.removeListener(keyboardShowEvent, closePicker);
|
|
534
186
|
};
|
|
535
|
-
}, []);
|
|
187
|
+
}, [closePicker]);
|
|
536
188
|
(0, _react.useEffect)(function () {
|
|
537
189
|
if (currentIndex < 0) {
|
|
538
190
|
setSelectedPicker(undefined);
|
|
539
191
|
|
|
540
192
|
if (!loadingPhotos) {
|
|
541
|
-
|
|
542
|
-
|
|
193
|
+
endCursorRef.current = undefined;
|
|
194
|
+
hasNextPageRef.current = true;
|
|
195
|
+
attemptedToLoadPhotosOnOpenRef.current = false;
|
|
196
|
+
setPhotoError(false);
|
|
543
197
|
}
|
|
544
198
|
}
|
|
545
|
-
}, [currentIndex]);
|
|
199
|
+
}, [currentIndex, loadingPhotos]);
|
|
546
200
|
(0, _react.useEffect)(function () {
|
|
547
|
-
if (selectedPicker === 'images' &&
|
|
548
|
-
setPhotoError(false);
|
|
201
|
+
if (!attemptedToLoadPhotosOnOpenRef.current && selectedPicker === 'images' && endCursorRef.current === undefined && currentIndex > -1 && !loadingPhotos) {
|
|
549
202
|
getMorePhotos();
|
|
203
|
+
attemptedToLoadPhotosOnOpenRef.current = true;
|
|
550
204
|
}
|
|
551
|
-
}, [currentIndex, selectedPicker]);
|
|
205
|
+
}, [currentIndex, selectedPicker, getMorePhotos, loadingPhotos]);
|
|
552
206
|
var selectedPhotos = photos.map(function (asset) {
|
|
553
207
|
return {
|
|
554
208
|
asset: asset,
|
|
@@ -566,10 +220,45 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
566
220
|
};
|
|
567
221
|
});
|
|
568
222
|
var handleHeight = attachmentPickerBottomSheetHandleHeight || 20;
|
|
569
|
-
|
|
570
|
-
var
|
|
571
|
-
|
|
572
|
-
|
|
223
|
+
|
|
224
|
+
var getAndroidBottomBarHeightAdjustment = function getAndroidBottomBarHeightAdjustment() {
|
|
225
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
226
|
+
var _StatusBar$currentHei;
|
|
227
|
+
|
|
228
|
+
var statusBarHeight = (_StatusBar$currentHei = _reactNative.StatusBar.currentHeight) != null ? _StatusBar$currentHei : 0;
|
|
229
|
+
var bottomBarHeight = fullScreenHeight - screenHeight - statusBarHeight;
|
|
230
|
+
|
|
231
|
+
if (bottomBarHeight === statusBarHeight) {
|
|
232
|
+
return translucentStatusBar ? 0 : statusBarHeight;
|
|
233
|
+
} else {
|
|
234
|
+
if (translucentStatusBar) {
|
|
235
|
+
if (bottomBarHeight > statusBarHeight) {
|
|
236
|
+
return -bottomBarHeight + statusBarHeight;
|
|
237
|
+
} else {
|
|
238
|
+
return bottomBarHeight > 0 ? -statusBarHeight : 0;
|
|
239
|
+
}
|
|
240
|
+
} else {
|
|
241
|
+
return bottomBarHeight > 0 ? 0 : statusBarHeight;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
return 0;
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
var getInitialSnapPoint = function getInitialSnapPoint() {
|
|
250
|
+
if (attachmentPickerBottomSheetHeight !== undefined) {
|
|
251
|
+
return attachmentPickerBottomSheetHeight;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
255
|
+
return 308 + (fullScreenHeight - screenHeight + getAndroidBottomBarHeightAdjustment()) - handleHeight;
|
|
256
|
+
} else {
|
|
257
|
+
return 308 + (fullScreenHeight - screenHeight);
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
var initialSnapPoint = getInitialSnapPoint();
|
|
573
262
|
var finalSnapPoint = _reactNative.Platform.OS === 'android' ? fullScreenHeight - topInset - handleHeight : fullScreenHeight - topInset;
|
|
574
263
|
var snapPoints = (0, _react.useMemo)(function () {
|
|
575
264
|
return [initialSnapPoint, finalSnapPoint];
|
|
@@ -586,7 +275,7 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
586
275
|
__self: _this,
|
|
587
276
|
__source: {
|
|
588
277
|
fileName: _jsxFileName,
|
|
589
|
-
lineNumber:
|
|
278
|
+
lineNumber: 264,
|
|
590
279
|
columnNumber: 9
|
|
591
280
|
}
|
|
592
281
|
}, _react["default"].createElement(_bottomSheet.BottomSheetFlatList, {
|
|
@@ -601,22 +290,22 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
601
290
|
},
|
|
602
291
|
numColumns: numberOfAttachmentPickerImageColumns != null ? numberOfAttachmentPickerImageColumns : 3,
|
|
603
292
|
onEndReached: getMorePhotos,
|
|
604
|
-
renderItem:
|
|
293
|
+
renderItem: _AttachmentPickerItem.renderAttachmentPickerItem,
|
|
605
294
|
__self: _this,
|
|
606
295
|
__source: {
|
|
607
296
|
fileName: _jsxFileName,
|
|
608
|
-
lineNumber:
|
|
297
|
+
lineNumber: 280,
|
|
609
298
|
columnNumber: 11
|
|
610
299
|
}
|
|
611
300
|
})), selectedPicker === 'images' && photoError && _react["default"].createElement(AttachmentPickerError, {
|
|
612
|
-
attachmentPickerBottomSheetHeight:
|
|
301
|
+
attachmentPickerBottomSheetHeight: initialSnapPoint,
|
|
613
302
|
attachmentPickerErrorButtonText: attachmentPickerErrorButtonText,
|
|
614
303
|
AttachmentPickerErrorImage: AttachmentPickerErrorImage,
|
|
615
304
|
attachmentPickerErrorText: attachmentPickerErrorText,
|
|
616
305
|
__self: _this,
|
|
617
306
|
__source: {
|
|
618
307
|
fileName: _jsxFileName,
|
|
619
|
-
lineNumber:
|
|
308
|
+
lineNumber: 295,
|
|
620
309
|
columnNumber: 11
|
|
621
310
|
}
|
|
622
311
|
}));
|