stream-chat-react-native-core 6.7.3-beta.2 → 6.7.3-beta.4

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.
Files changed (79) hide show
  1. package/lib/commonjs/components/Attachment/AudioAttachment.js +3 -1
  2. package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
  3. package/lib/commonjs/components/Channel/Channel.js +273 -281
  4. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  5. package/lib/commonjs/components/Channel/hooks/useMessageListPagination.js +133 -147
  6. package/lib/commonjs/components/Channel/hooks/useMessageListPagination.js.map +1 -1
  7. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +7 -12
  8. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
  9. package/lib/commonjs/components/MessageList/MessageList.js +167 -179
  10. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  11. package/lib/commonjs/components/MessageList/hooks/useMessageList.js +60 -37
  12. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  13. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +450 -459
  14. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  15. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  16. package/lib/commonjs/hooks/index.js +11 -0
  17. package/lib/commonjs/hooks/index.js.map +1 -1
  18. package/lib/commonjs/hooks/useAudioPlayer.js +1 -1
  19. package/lib/commonjs/hooks/useAudioPlayer.js.map +1 -1
  20. package/lib/commonjs/hooks/useStableCallback.js +13 -0
  21. package/lib/commonjs/hooks/useStableCallback.js.map +1 -0
  22. package/lib/commonjs/native.js.map +1 -1
  23. package/lib/commonjs/version.json +1 -1
  24. package/lib/module/components/Attachment/AudioAttachment.js +3 -1
  25. package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
  26. package/lib/module/components/Channel/Channel.js +273 -281
  27. package/lib/module/components/Channel/Channel.js.map +1 -1
  28. package/lib/module/components/Channel/hooks/useMessageListPagination.js +133 -147
  29. package/lib/module/components/Channel/hooks/useMessageListPagination.js.map +1 -1
  30. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +7 -12
  31. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
  32. package/lib/module/components/MessageList/MessageList.js +167 -179
  33. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  34. package/lib/module/components/MessageList/hooks/useMessageList.js +60 -37
  35. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  36. package/lib/module/contexts/messageInputContext/MessageInputContext.js +450 -459
  37. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  38. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  39. package/lib/module/hooks/index.js +11 -0
  40. package/lib/module/hooks/index.js.map +1 -1
  41. package/lib/module/hooks/useAudioPlayer.js +1 -1
  42. package/lib/module/hooks/useAudioPlayer.js.map +1 -1
  43. package/lib/module/hooks/useStableCallback.js +13 -0
  44. package/lib/module/hooks/useStableCallback.js.map +1 -0
  45. package/lib/module/native.js.map +1 -1
  46. package/lib/module/version.json +1 -1
  47. package/lib/typescript/components/Attachment/AudioAttachment.d.ts.map +1 -1
  48. package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
  49. package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts +3 -3
  50. package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts.map +1 -1
  51. package/lib/typescript/components/KeyboardCompatibleView/KeyboardCompatibleView.d.ts +3 -0
  52. package/lib/typescript/components/KeyboardCompatibleView/KeyboardCompatibleView.d.ts.map +1 -1
  53. package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
  54. package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +4 -0
  55. package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts.map +1 -1
  56. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts.map +1 -1
  57. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +1 -1
  58. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts.map +1 -1
  59. package/lib/typescript/hooks/index.d.ts +1 -0
  60. package/lib/typescript/hooks/index.d.ts.map +1 -1
  61. package/lib/typescript/hooks/useStableCallback.d.ts +26 -0
  62. package/lib/typescript/hooks/useStableCallback.d.ts.map +1 -0
  63. package/lib/typescript/native.d.ts +3 -1
  64. package/lib/typescript/native.d.ts.map +1 -1
  65. package/package.json +1 -1
  66. package/src/components/Attachment/AudioAttachment.tsx +2 -0
  67. package/src/components/Channel/Channel.tsx +424 -408
  68. package/src/components/Channel/hooks/useMessageListPagination.tsx +152 -147
  69. package/src/components/KeyboardCompatibleView/KeyboardCompatibleView.tsx +6 -4
  70. package/src/components/MessageList/MessageList.tsx +147 -112
  71. package/src/components/MessageList/hooks/useMessageList.ts +69 -38
  72. package/src/contexts/messageInputContext/MessageInputContext.tsx +293 -267
  73. package/src/contexts/messageInputContext/__tests__/pickFile.test.tsx +2 -1
  74. package/src/contexts/messagesContext/MessagesContext.tsx +1 -0
  75. package/src/hooks/index.ts +1 -0
  76. package/src/hooks/useAudioPlayer.ts +1 -1
  77. package/src/hooks/useStableCallback.ts +37 -0
  78. package/src/native.ts +8 -1
  79. package/src/version.json +1 -1
@@ -138,17 +138,19 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
138
138
  var _useCooldown = (0, _useCooldown2.useCooldown)(),
139
139
  cooldownEndsAt = _useCooldown.endsAt,
140
140
  startCooldown = _useCooldown.start;
141
- var onChangeText = value.onChangeText;
141
+ var onChangeText = value.onChangeText,
142
+ emojiSearchIndex = value.emojiSearchIndex,
143
+ autoCompleteTriggerSettings = value.autoCompleteTriggerSettings;
142
144
  var threadId = thread == null ? void 0 : thread.id;
143
145
  (0, _react.useEffect)(function () {
144
146
  setSendThreadMessageInChannel(false);
145
147
  }, [threadId]);
146
- var appendText = function appendText(newText) {
148
+ var appendText = useStableCallback(function (newText) {
147
149
  setText(function (prevText) {
148
150
  return "".concat(prevText).concat(newText);
149
151
  });
150
- };
151
- var isValidMessage = function isValidMessage() {
152
+ });
153
+ var isValidMessage = useStableCallback(function () {
152
154
  if (text && text.trim()) {
153
155
  return true;
154
156
  }
@@ -192,7 +194,7 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
192
194
  _iterator2.f();
193
195
  }
194
196
  return false;
195
- };
197
+ });
196
198
  var onChange = (0, _react.useCallback)(function (newText) {
197
199
  if (sending.current) {
198
200
  return;
@@ -205,19 +207,19 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
205
207
  onChangeText(newText);
206
208
  }
207
209
  }, [channel, channelCapabities.sendTypingEvents, isOnline, setText, thread == null ? void 0 : thread.id, onChangeText]);
208
- var openCommandsPicker = function openCommandsPicker() {
210
+ var openCommandsPicker = useStableCallback(function () {
209
211
  appendText('/');
210
212
  if (inputBoxRef.current) {
211
213
  inputBoxRef.current.focus();
212
214
  }
213
- };
214
- var openMentionsPicker = function openMentionsPicker() {
215
+ });
216
+ var openMentionsPicker = useStableCallback(function () {
215
217
  appendText('@');
216
218
  if (inputBoxRef.current) {
217
219
  inputBoxRef.current.focus();
218
220
  }
219
- };
220
- var takeAndUploadImage = function () {
221
+ });
222
+ var takeAndUploadImage = useStableCallback(function () {
221
223
  var _ref2 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(mediaType) {
222
224
  var photo;
223
225
  return _regenerator["default"].wrap(function _callee$(_context) {
@@ -269,90 +271,85 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
269
271
  }
270
272
  }, _callee);
271
273
  }));
272
- return function takeAndUploadImage(_x) {
274
+ return function (_x) {
273
275
  return _ref2.apply(this, arguments);
274
276
  };
275
- }();
276
- var pickAndUploadImageFromNativePicker = function () {
277
- var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
278
- var result;
279
- return _regenerator["default"].wrap(function _callee3$(_context3) {
280
- while (1) switch (_context3.prev = _context3.next) {
281
- case 0:
282
- _context3.next = 2;
283
- return _native.NativeHandlers.pickImage();
284
- case 2:
285
- result = _context3.sent;
286
- if (result.askToOpenSettings) {
287
- _reactNative.Alert.alert(t('Allow access to your Gallery'), t('Device gallery permissions is used to take photos or videos.'), [{
288
- style: 'cancel',
289
- text: t('Cancel')
290
- }, {
291
- onPress: function onPress() {
292
- return _reactNative.Linking.openSettings();
293
- },
294
- style: 'default',
295
- text: t('Open Settings')
296
- }]);
297
- }
298
- if (!(numberOfUploads >= value.maxNumberOfFiles)) {
299
- _context3.next = 7;
300
- break;
301
- }
302
- _reactNative.Alert.alert(t('Maximum number of files reached'));
303
- return _context3.abrupt("return");
304
- case 7:
305
- if (!(result.assets && result.assets.length > 0)) {
306
- _context3.next = 12;
307
- break;
308
- }
309
- if (!(result.assets.length > value.maxNumberOfFiles)) {
310
- _context3.next = 11;
311
- break;
312
- }
313
- _reactNative.Alert.alert(t('Maximum number of files reached'));
314
- return _context3.abrupt("return");
315
- case 11:
316
- result.assets.forEach(function () {
317
- var _ref4 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(asset) {
318
- return _regenerator["default"].wrap(function _callee2$(_context2) {
319
- while (1) switch (_context2.prev = _context2.next) {
320
- case 0:
321
- if (!asset.type.includes('image')) {
322
- _context2.next = 5;
323
- break;
324
- }
325
- _context2.next = 3;
326
- return uploadNewImage(asset);
327
- case 3:
328
- _context2.next = 7;
277
+ }());
278
+ var pickAndUploadImageFromNativePicker = useStableCallback((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
279
+ var result;
280
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
281
+ while (1) switch (_context3.prev = _context3.next) {
282
+ case 0:
283
+ _context3.next = 2;
284
+ return _native.NativeHandlers.pickImage();
285
+ case 2:
286
+ result = _context3.sent;
287
+ if (result.askToOpenSettings) {
288
+ _reactNative.Alert.alert(t('Allow access to your Gallery'), t('Device gallery permissions is used to take photos or videos.'), [{
289
+ style: 'cancel',
290
+ text: t('Cancel')
291
+ }, {
292
+ onPress: function onPress() {
293
+ return _reactNative.Linking.openSettings();
294
+ },
295
+ style: 'default',
296
+ text: t('Open Settings')
297
+ }]);
298
+ }
299
+ if (!(numberOfUploads >= value.maxNumberOfFiles)) {
300
+ _context3.next = 7;
301
+ break;
302
+ }
303
+ _reactNative.Alert.alert(t('Maximum number of files reached'));
304
+ return _context3.abrupt("return");
305
+ case 7:
306
+ if (!(result.assets && result.assets.length > 0)) {
307
+ _context3.next = 12;
308
+ break;
309
+ }
310
+ if (!(result.assets.length > value.maxNumberOfFiles)) {
311
+ _context3.next = 11;
312
+ break;
313
+ }
314
+ _reactNative.Alert.alert(t('Maximum number of files reached'));
315
+ return _context3.abrupt("return");
316
+ case 11:
317
+ result.assets.forEach(function () {
318
+ var _ref4 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(asset) {
319
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
320
+ while (1) switch (_context2.prev = _context2.next) {
321
+ case 0:
322
+ if (!asset.type.includes('image')) {
323
+ _context2.next = 5;
329
324
  break;
330
- case 5:
331
- _context2.next = 7;
332
- return uploadNewFile(Object.assign({}, asset, {
333
- mimeType: asset.type,
334
- type: _types.FileTypes.Video
335
- }));
336
- case 7:
337
- case "end":
338
- return _context2.stop();
339
- }
340
- }, _callee2);
341
- }));
342
- return function (_x2) {
343
- return _ref4.apply(this, arguments);
344
- };
345
- }());
346
- case 12:
347
- case "end":
348
- return _context3.stop();
349
- }
350
- }, _callee3);
351
- }));
352
- return function pickAndUploadImageFromNativePicker() {
353
- return _ref3.apply(this, arguments);
354
- };
355
- }();
325
+ }
326
+ _context2.next = 3;
327
+ return uploadNewImage(asset);
328
+ case 3:
329
+ _context2.next = 7;
330
+ break;
331
+ case 5:
332
+ _context2.next = 7;
333
+ return uploadNewFile(Object.assign({}, asset, {
334
+ mimeType: asset.type,
335
+ type: _types.FileTypes.Video
336
+ }));
337
+ case 7:
338
+ case "end":
339
+ return _context2.stop();
340
+ }
341
+ }, _callee2);
342
+ }));
343
+ return function (_x2) {
344
+ return _ref4.apply(this, arguments);
345
+ };
346
+ }());
347
+ case 12:
348
+ case "end":
349
+ return _context3.stop();
350
+ }
351
+ }, _callee3);
352
+ })));
356
353
  var openAttachmentPicker = (0, _react.useCallback)(function () {
357
354
  _reactNative.Keyboard.dismiss();
358
355
  setSelectedPicker('images');
@@ -369,66 +366,61 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
369
366
  openAttachmentPicker();
370
367
  }
371
368
  }, [closeAttachmentPicker, openAttachmentPicker, selectedPicker]);
372
- var onSelectItem = function onSelectItem(item) {
369
+ var onSelectItem = useStableCallback(function (item) {
373
370
  setMentionedUsers(function (prevMentionedUsers) {
374
371
  return [].concat((0, _toConsumableArray2["default"])(prevMentionedUsers), [item.id]);
375
372
  });
376
- };
377
- var pickFile = function () {
378
- var _ref5 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5() {
379
- var result;
380
- return _regenerator["default"].wrap(function _callee5$(_context5) {
381
- while (1) switch (_context5.prev = _context5.next) {
382
- case 0:
383
- if ((0, _native.isDocumentPickerAvailable)()) {
384
- _context5.next = 3;
385
- break;
386
- }
387
- console.log('The file picker is not installed. Check our Getting Started documentation to install it.');
388
- return _context5.abrupt("return");
389
- case 3:
390
- if (!(numberOfUploads >= value.maxNumberOfFiles)) {
391
- _context5.next = 6;
392
- break;
393
- }
394
- _reactNative.Alert.alert(t('Maximum number of files reached'));
395
- return _context5.abrupt("return");
396
- case 6:
397
- _context5.next = 8;
398
- return _native.NativeHandlers.pickDocument({
399
- maxNumberOfFiles: value.maxNumberOfFiles - numberOfUploads
400
- });
401
- case 8:
402
- result = _context5.sent;
403
- if (!result.cancelled && result.assets) {
404
- result.assets.forEach(function () {
405
- var _ref6 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(asset) {
406
- return _regenerator["default"].wrap(function _callee4$(_context4) {
407
- while (1) switch (_context4.prev = _context4.next) {
408
- case 0:
409
- _context4.next = 2;
410
- return uploadNewFile(asset);
411
- case 2:
412
- case "end":
413
- return _context4.stop();
414
- }
415
- }, _callee4);
416
- }));
417
- return function (_x3) {
418
- return _ref6.apply(this, arguments);
419
- };
420
- }());
421
- }
422
- case 10:
423
- case "end":
424
- return _context5.stop();
425
- }
426
- }, _callee5);
427
- }));
428
- return function pickFile() {
429
- return _ref5.apply(this, arguments);
430
- };
431
- }();
373
+ });
374
+ var pickFile = useStableCallback((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5() {
375
+ var result;
376
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
377
+ while (1) switch (_context5.prev = _context5.next) {
378
+ case 0:
379
+ if ((0, _native.isDocumentPickerAvailable)()) {
380
+ _context5.next = 3;
381
+ break;
382
+ }
383
+ console.log('The file picker is not installed. Check our Getting Started documentation to install it.');
384
+ return _context5.abrupt("return");
385
+ case 3:
386
+ if (!(numberOfUploads >= value.maxNumberOfFiles)) {
387
+ _context5.next = 6;
388
+ break;
389
+ }
390
+ _reactNative.Alert.alert(t('Maximum number of files reached'));
391
+ return _context5.abrupt("return");
392
+ case 6:
393
+ _context5.next = 8;
394
+ return _native.NativeHandlers.pickDocument({
395
+ maxNumberOfFiles: value.maxNumberOfFiles - numberOfUploads
396
+ });
397
+ case 8:
398
+ result = _context5.sent;
399
+ if (!result.cancelled && result.assets) {
400
+ result.assets.forEach(function () {
401
+ var _ref6 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(asset) {
402
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
403
+ while (1) switch (_context4.prev = _context4.next) {
404
+ case 0:
405
+ _context4.next = 2;
406
+ return uploadNewFile(asset);
407
+ case 2:
408
+ case "end":
409
+ return _context4.stop();
410
+ }
411
+ }, _callee4);
412
+ }));
413
+ return function (_x3) {
414
+ return _ref6.apply(this, arguments);
415
+ };
416
+ }());
417
+ }
418
+ case 10:
419
+ case "end":
420
+ return _context5.stop();
421
+ }
422
+ }, _callee5);
423
+ })));
432
424
  var removeFile = (0, _react.useCallback)(function (id) {
433
425
  if (fileUploads.some(function (file) {
434
426
  return file.id === id;
@@ -457,7 +449,7 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
457
449
  });
458
450
  }
459
451
  }, [imageUploads, setImageUploads, setNumberOfUploads]);
460
- var resetInput = function resetInput() {
452
+ var resetInput = useStableCallback(function () {
461
453
  var pendingAttachments = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
462
454
  if ((0, _native.isImageMediaLibraryAvailable)()) {
463
455
  setSelectedFiles([]);
@@ -475,8 +467,8 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
475
467
  if (value.editing) {
476
468
  value.clearEditingState();
477
469
  }
478
- };
479
- var mapImageUploadToAttachment = function mapImageUploadToAttachment(image) {
470
+ });
471
+ var mapImageUploadToAttachment = useStableCallback(function (image) {
480
472
  var mime_type = (0, _mimeTypes.lookup)(image.file.name);
481
473
  var name = image.file.name;
482
474
  return {
@@ -488,8 +480,8 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
488
480
  originalImage: image.file,
489
481
  type: _types.FileTypes.Image
490
482
  };
491
- };
492
- var mapFileUploadToAttachment = function mapFileUploadToAttachment(file) {
483
+ });
484
+ var mapFileUploadToAttachment = useStableCallback(function (file) {
493
485
  if (file.type === _types.FileTypes.Image) {
494
486
  return {
495
487
  fallback: file.file.name,
@@ -540,260 +532,258 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
540
532
  type: _types.FileTypes.File
541
533
  };
542
534
  }
543
- };
544
- var sendMessage = function () {
545
- var _ref7 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6() {
546
- var _ref8,
547
- customMessageData,
548
- linkInfos,
549
- prevText,
550
- attachments,
551
- _loop,
552
- _ret,
553
- _iterator3,
554
- _step3,
555
- image,
556
- _iterator4,
557
- _step4,
558
- file,
559
- message,
560
- updatedMessage,
561
- updateMessagePromise,
562
- _args7 = arguments;
563
- return _regenerator["default"].wrap(function _callee6$(_context7) {
564
- while (1) switch (_context7.prev = _context7.next) {
565
- case 0:
566
- _ref8 = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {}, customMessageData = _ref8.customMessageData;
567
- if (!sending.current) {
568
- _context7.next = 3;
569
- break;
570
- }
571
- return _context7.abrupt("return");
572
- case 3:
573
- linkInfos = (0, _parseLinks.parseLinksFromText)(text);
574
- if (!(!channelCapabities.sendLinks && linkInfos.length > 0)) {
575
- _context7.next = 7;
576
- break;
577
- }
578
- _reactNative.Alert.alert(t('Links are disabled'), t('Sending links is not allowed in this conversation'));
579
- return _context7.abrupt("return");
580
- case 7:
581
- sending.current = true;
582
- startCooldown();
583
- prevText = giphyEnabled && giphyActive ? "/giphy ".concat(text) : text;
584
- setText('');
585
- attachments = [];
586
- _loop = _regenerator["default"].mark(function _loop(image) {
587
- return _regenerator["default"].wrap(function _loop$(_context6) {
588
- while (1) switch (_context6.prev = _context6.next) {
589
- case 0:
590
- if (!enableOfflineSupport) {
591
- _context6.next = 5;
592
- break;
593
- }
594
- if (!(image.state === _utils2.FileState.NOT_SUPPORTED)) {
595
- _context6.next = 3;
596
- break;
597
- }
598
- return _context6.abrupt("return", {
599
- v: void 0
600
- });
601
- case 3:
602
- attachments.push(mapImageUploadToAttachment(image));
603
- return _context6.abrupt("return", 0);
604
- case 5:
605
- if (!((!image || image.state === _utils2.FileState.UPLOAD_FAILED) && !enableOfflineSupport)) {
606
- _context6.next = 7;
607
- break;
608
- }
609
- return _context6.abrupt("return", 0);
610
- case 7:
611
- if (!(image.state === _utils2.FileState.UPLOADING)) {
612
- _context6.next = 14;
613
- break;
614
- }
615
- if (!value.sendImageAsync) {
616
- _context6.next = 12;
617
- break;
618
- }
619
- setAsyncIds(function (prevAsyncIds) {
620
- return [].concat((0, _toConsumableArray2["default"])(prevAsyncIds), [image.id]);
621
- });
535
+ });
536
+ var sendMessage = useStableCallback((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6() {
537
+ var _ref8,
538
+ customMessageData,
539
+ linkInfos,
540
+ prevText,
541
+ attachments,
542
+ _loop,
543
+ _ret,
544
+ _iterator3,
545
+ _step3,
546
+ image,
547
+ _iterator4,
548
+ _step4,
549
+ file,
550
+ message,
551
+ updatedMessage,
552
+ updateMessagePromise,
553
+ _args7 = arguments;
554
+ return _regenerator["default"].wrap(function _callee6$(_context7) {
555
+ while (1) switch (_context7.prev = _context7.next) {
556
+ case 0:
557
+ _ref8 = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {}, customMessageData = _ref8.customMessageData;
558
+ if (!sending.current) {
559
+ _context7.next = 3;
560
+ break;
561
+ }
562
+ return _context7.abrupt("return");
563
+ case 3:
564
+ linkInfos = (0, _parseLinks.parseLinksFromText)(text);
565
+ if (!(!channelCapabities.sendLinks && linkInfos.length > 0)) {
566
+ _context7.next = 7;
567
+ break;
568
+ }
569
+ _reactNative.Alert.alert(t('Links are disabled'), t('Sending links is not allowed in this conversation'));
570
+ return _context7.abrupt("return");
571
+ case 7:
572
+ sending.current = true;
573
+ startCooldown();
574
+ prevText = giphyEnabled && giphyActive ? "/giphy ".concat(text) : text;
575
+ setText('');
576
+ if (inputBoxRef.current) {
577
+ inputBoxRef.current.clear();
578
+ }
579
+ attachments = [];
580
+ _loop = _regenerator["default"].mark(function _loop(image) {
581
+ return _regenerator["default"].wrap(function _loop$(_context6) {
582
+ while (1) switch (_context6.prev = _context6.next) {
583
+ case 0:
584
+ if (!enableOfflineSupport) {
585
+ _context6.next = 5;
586
+ break;
587
+ }
588
+ if (!(image.state === _utils2.FileState.NOT_SUPPORTED)) {
589
+ _context6.next = 3;
590
+ break;
591
+ }
592
+ return _context6.abrupt("return", {
593
+ v: void 0
594
+ });
595
+ case 3:
596
+ attachments.push(mapImageUploadToAttachment(image));
597
+ return _context6.abrupt("return", 0);
598
+ case 5:
599
+ if (!((!image || image.state === _utils2.FileState.UPLOAD_FAILED) && !enableOfflineSupport)) {
600
+ _context6.next = 7;
601
+ break;
602
+ }
603
+ return _context6.abrupt("return", 0);
604
+ case 7:
605
+ if (!(image.state === _utils2.FileState.UPLOADING)) {
622
606
  _context6.next = 14;
623
607
  break;
624
- case 12:
625
- sending.current = false;
626
- return _context6.abrupt("return", {
627
- v: setText(prevText)
628
- });
629
- case 14:
630
- if (image.state === _utils2.FileState.UPLOADED || image.state === _utils2.FileState.FINISHED) {
631
- attachments.push(mapImageUploadToAttachment(image));
632
- }
633
- case 15:
634
- case "end":
635
- return _context6.stop();
636
- }
637
- }, _loop);
638
- });
639
- _iterator3 = _createForOfIteratorHelper(imageUploads);
640
- _context7.prev = 14;
641
- _iterator3.s();
642
- case 16:
643
- if ((_step3 = _iterator3.n()).done) {
644
- _context7.next = 26;
645
- break;
646
- }
647
- image = _step3.value;
648
- return _context7.delegateYield(_loop(image), "t0", 19);
649
- case 19:
650
- _ret = _context7.t0;
651
- if (!(_ret === 0)) {
652
- _context7.next = 22;
653
- break;
654
- }
655
- return _context7.abrupt("continue", 24);
656
- case 22:
657
- if (!_ret) {
658
- _context7.next = 24;
659
- break;
660
- }
661
- return _context7.abrupt("return", _ret.v);
662
- case 24:
663
- _context7.next = 16;
608
+ }
609
+ if (!value.sendImageAsync) {
610
+ _context6.next = 12;
611
+ break;
612
+ }
613
+ setAsyncIds(function (prevAsyncIds) {
614
+ return [].concat((0, _toConsumableArray2["default"])(prevAsyncIds), [image.id]);
615
+ });
616
+ _context6.next = 14;
617
+ break;
618
+ case 12:
619
+ sending.current = false;
620
+ return _context6.abrupt("return", {
621
+ v: setText(prevText)
622
+ });
623
+ case 14:
624
+ if (image.state === _utils2.FileState.UPLOADED || image.state === _utils2.FileState.FINISHED) {
625
+ attachments.push(mapImageUploadToAttachment(image));
626
+ }
627
+ case 15:
628
+ case "end":
629
+ return _context6.stop();
630
+ }
631
+ }, _loop);
632
+ });
633
+ _iterator3 = _createForOfIteratorHelper(imageUploads);
634
+ _context7.prev = 15;
635
+ _iterator3.s();
636
+ case 17:
637
+ if ((_step3 = _iterator3.n()).done) {
638
+ _context7.next = 27;
664
639
  break;
665
- case 26:
666
- _context7.next = 31;
640
+ }
641
+ image = _step3.value;
642
+ return _context7.delegateYield(_loop(image), "t0", 20);
643
+ case 20:
644
+ _ret = _context7.t0;
645
+ if (!(_ret === 0)) {
646
+ _context7.next = 23;
667
647
  break;
668
- case 28:
669
- _context7.prev = 28;
670
- _context7.t1 = _context7["catch"](14);
671
- _iterator3.e(_context7.t1);
672
- case 31:
673
- _context7.prev = 31;
674
- _iterator3.f();
675
- return _context7.finish(31);
676
- case 34:
677
- _iterator4 = _createForOfIteratorHelper(fileUploads);
678
- _context7.prev = 35;
679
- _iterator4.s();
680
- case 37:
681
- if ((_step4 = _iterator4.n()).done) {
682
- _context7.next = 52;
683
- break;
684
- }
685
- file = _step4.value;
686
- if (!enableOfflineSupport) {
687
- _context7.next = 44;
688
- break;
689
- }
690
- if (!(file.state === _utils2.FileState.NOT_SUPPORTED)) {
691
- _context7.next = 42;
692
- break;
693
- }
694
- return _context7.abrupt("return");
695
- case 42:
696
- attachments.push(mapFileUploadToAttachment(file));
697
- return _context7.abrupt("continue", 50);
698
- case 44:
699
- if (!(!file || file.state === _utils2.FileState.UPLOAD_FAILED)) {
700
- _context7.next = 46;
701
- break;
702
- }
703
- return _context7.abrupt("continue", 50);
704
- case 46:
705
- if (!(file.state === _utils2.FileState.UPLOADING)) {
706
- _context7.next = 49;
707
- break;
708
- }
709
- sending.current = false;
710
- return _context7.abrupt("return");
711
- case 49:
712
- if (file.state === _utils2.FileState.UPLOADED || file.state === _utils2.FileState.FINISHED) {
713
- attachments.push(mapFileUploadToAttachment(file));
714
- }
715
- case 50:
716
- _context7.next = 37;
648
+ }
649
+ return _context7.abrupt("continue", 25);
650
+ case 23:
651
+ if (!_ret) {
652
+ _context7.next = 25;
717
653
  break;
718
- case 52:
719
- _context7.next = 57;
654
+ }
655
+ return _context7.abrupt("return", _ret.v);
656
+ case 25:
657
+ _context7.next = 17;
658
+ break;
659
+ case 27:
660
+ _context7.next = 32;
661
+ break;
662
+ case 29:
663
+ _context7.prev = 29;
664
+ _context7.t1 = _context7["catch"](15);
665
+ _iterator3.e(_context7.t1);
666
+ case 32:
667
+ _context7.prev = 32;
668
+ _iterator3.f();
669
+ return _context7.finish(32);
670
+ case 35:
671
+ _iterator4 = _createForOfIteratorHelper(fileUploads);
672
+ _context7.prev = 36;
673
+ _iterator4.s();
674
+ case 38:
675
+ if ((_step4 = _iterator4.n()).done) {
676
+ _context7.next = 53;
720
677
  break;
721
- case 54:
722
- _context7.prev = 54;
723
- _context7.t2 = _context7["catch"](35);
724
- _iterator4.e(_context7.t2);
725
- case 57:
726
- _context7.prev = 57;
727
- _iterator4.f();
728
- return _context7.finish(57);
729
- case 60:
730
- if (!(!prevText && attachments.length === 0 && !(customMessageData != null && customMessageData.poll_id))) {
731
- _context7.next = 63;
732
- break;
733
- }
734
- sending.current = false;
735
- return _context7.abrupt("return");
736
- case 63:
737
- message = value.editing;
738
- if (!(message && message.type !== 'error')) {
739
- _context7.next = 73;
740
- break;
741
- }
742
- updatedMessage = Object.assign({}, message, {
743
- attachments: attachments,
744
- mentioned_users: mentionedUsers,
745
- quoted_message: undefined,
746
- text: prevText
747
- }, customMessageData);
748
- value.clearEditingState();
749
- updateMessagePromise = value.editMessage((0, _removeReservedFields.removeReservedFields)(updatedMessage)).then(value.clearEditingState);
750
- resetInput(attachments);
751
- (0, _streamChat.logChatPromiseExecution)(updateMessagePromise, 'update message');
752
- sending.current = false;
753
- _context7.next = 89;
678
+ }
679
+ file = _step4.value;
680
+ if (!enableOfflineSupport) {
681
+ _context7.next = 45;
754
682
  break;
755
- case 73:
756
- _context7.prev = 73;
757
- if (!(message && (0, _utils2.isBouncedMessage)(message))) {
758
- _context7.next = 77;
759
- break;
760
- }
761
- _context7.next = 77;
762
- return removeMessage(message);
763
- case 77:
764
- value.sendMessage(Object.assign({
765
- attachments: attachments,
766
- mentioned_users: (0, _uniq["default"])(mentionedUsers),
767
- parent_id: thread == null ? void 0 : thread.id,
768
- quoted_message_id: value.quotedMessage ? value.quotedMessage.id : undefined,
769
- show_in_channel: sendThreadMessageInChannel || undefined,
770
- text: prevText
771
- }, customMessageData));
772
- value.clearQuotedMessageState();
773
- sending.current = false;
774
- resetInput(attachments);
775
- _context7.next = 89;
683
+ }
684
+ if (!(file.state === _utils2.FileState.NOT_SUPPORTED)) {
685
+ _context7.next = 43;
776
686
  break;
777
- case 83:
778
- _context7.prev = 83;
779
- _context7.t3 = _context7["catch"](73);
780
- sending.current = false;
781
- if (value.quotedMessage && typeof value.quotedMessage !== 'boolean') {
782
- value.setQuotedMessageState(value.quotedMessage);
783
- }
784
- setText(prevText.slice(giphyEnabled && giphyActive ? 7 : 0));
785
- console.log('Failed to send message');
786
- case 89:
787
- case "end":
788
- return _context7.stop();
789
- }
790
- }, _callee6, null, [[14, 28, 31, 34], [35, 54, 57, 60], [73, 83]]);
791
- }));
792
- return function sendMessage() {
793
- return _ref7.apply(this, arguments);
794
- };
795
- }();
796
- var sendMessageAsync = function sendMessageAsync(id) {
687
+ }
688
+ return _context7.abrupt("return");
689
+ case 43:
690
+ attachments.push(mapFileUploadToAttachment(file));
691
+ return _context7.abrupt("continue", 51);
692
+ case 45:
693
+ if (!(!file || file.state === _utils2.FileState.UPLOAD_FAILED)) {
694
+ _context7.next = 47;
695
+ break;
696
+ }
697
+ return _context7.abrupt("continue", 51);
698
+ case 47:
699
+ if (!(file.state === _utils2.FileState.UPLOADING)) {
700
+ _context7.next = 50;
701
+ break;
702
+ }
703
+ sending.current = false;
704
+ return _context7.abrupt("return");
705
+ case 50:
706
+ if (file.state === _utils2.FileState.UPLOADED || file.state === _utils2.FileState.FINISHED) {
707
+ attachments.push(mapFileUploadToAttachment(file));
708
+ }
709
+ case 51:
710
+ _context7.next = 38;
711
+ break;
712
+ case 53:
713
+ _context7.next = 58;
714
+ break;
715
+ case 55:
716
+ _context7.prev = 55;
717
+ _context7.t2 = _context7["catch"](36);
718
+ _iterator4.e(_context7.t2);
719
+ case 58:
720
+ _context7.prev = 58;
721
+ _iterator4.f();
722
+ return _context7.finish(58);
723
+ case 61:
724
+ if (!(!prevText && attachments.length === 0 && !(customMessageData != null && customMessageData.poll_id))) {
725
+ _context7.next = 64;
726
+ break;
727
+ }
728
+ sending.current = false;
729
+ return _context7.abrupt("return");
730
+ case 64:
731
+ message = value.editing;
732
+ if (!(message && message.type !== 'error')) {
733
+ _context7.next = 74;
734
+ break;
735
+ }
736
+ updatedMessage = Object.assign({}, message, {
737
+ attachments: attachments,
738
+ mentioned_users: mentionedUsers,
739
+ quoted_message: undefined,
740
+ text: prevText
741
+ }, customMessageData);
742
+ value.clearEditingState();
743
+ updateMessagePromise = value.editMessage((0, _removeReservedFields.removeReservedFields)(updatedMessage)).then(value.clearEditingState);
744
+ (0, _streamChat.logChatPromiseExecution)(updateMessagePromise, 'update message');
745
+ resetInput(attachments);
746
+ sending.current = false;
747
+ _context7.next = 90;
748
+ break;
749
+ case 74:
750
+ _context7.prev = 74;
751
+ if (!(message && (0, _utils2.isBouncedMessage)(message))) {
752
+ _context7.next = 78;
753
+ break;
754
+ }
755
+ _context7.next = 78;
756
+ return removeMessage(message);
757
+ case 78:
758
+ value.sendMessage(Object.assign({
759
+ attachments: attachments,
760
+ mentioned_users: (0, _uniq["default"])(mentionedUsers),
761
+ parent_id: thread == null ? void 0 : thread.id,
762
+ quoted_message_id: value.quotedMessage ? value.quotedMessage.id : undefined,
763
+ show_in_channel: sendThreadMessageInChannel || undefined,
764
+ text: prevText
765
+ }, customMessageData));
766
+ value.clearQuotedMessageState();
767
+ sending.current = false;
768
+ resetInput(attachments);
769
+ _context7.next = 90;
770
+ break;
771
+ case 84:
772
+ _context7.prev = 84;
773
+ _context7.t3 = _context7["catch"](74);
774
+ sending.current = false;
775
+ if (value.quotedMessage && typeof value.quotedMessage !== 'boolean') {
776
+ value.setQuotedMessageState(value.quotedMessage);
777
+ }
778
+ setText(prevText.slice(giphyEnabled && giphyActive ? 7 : 0));
779
+ console.log('Failed to send message');
780
+ case 90:
781
+ case "end":
782
+ return _context7.stop();
783
+ }
784
+ }, _callee6, null, [[15, 29, 32, 35], [36, 55, 58, 61], [74, 84]]);
785
+ })));
786
+ var sendMessageAsync = useStableCallback(function (id) {
797
787
  var image = asyncUploads[id];
798
788
  if (!image || image.state === _utils2.FileState.UPLOAD_FAILED) {
799
789
  return;
@@ -827,29 +817,29 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
827
817
  console.log('Failed');
828
818
  }
829
819
  }
830
- };
831
- var setInputBoxRef = function setInputBoxRef(ref) {
820
+ });
821
+ var setInputBoxRef = useStableCallback(function (ref) {
832
822
  inputBoxRef.current = ref;
833
823
  if (value.setInputRef) {
834
824
  value.setInputRef(ref);
835
825
  }
836
- };
837
- var getTriggerSettings = function getTriggerSettings() {
826
+ });
827
+ var triggerSettings = (0, _react.useMemo)(function () {
838
828
  try {
839
829
  var _triggerSettings = {};
840
830
  if (channel) {
841
- if (value.autoCompleteTriggerSettings) {
842
- _triggerSettings = value.autoCompleteTriggerSettings({
831
+ if (autoCompleteTriggerSettings) {
832
+ _triggerSettings = autoCompleteTriggerSettings({
843
833
  channel: channel,
844
834
  client: client,
845
- emojiSearchIndex: value.emojiSearchIndex,
835
+ emojiSearchIndex: emojiSearchIndex,
846
836
  onMentionSelectItem: onSelectItem
847
837
  });
848
838
  } else {
849
839
  _triggerSettings = (0, _ACITriggerSettings.ACITriggerSettings)({
850
840
  channel: channel,
851
841
  client: client,
852
- emojiSearchIndex: value.emojiSearchIndex,
842
+ emojiSearchIndex: emojiSearchIndex,
853
843
  onMentionSelectItem: onSelectItem
854
844
  });
855
845
  }
@@ -859,44 +849,38 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
859
849
  console.warn('Error in getting trigger settings', error);
860
850
  throw error;
861
851
  }
862
- };
863
- var triggerSettings = getTriggerSettings();
864
- var updateMessage = function () {
865
- var _ref9 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7() {
866
- return _regenerator["default"].wrap(function _callee7$(_context8) {
867
- while (1) switch (_context8.prev = _context8.next) {
868
- case 0:
869
- _context8.prev = 0;
870
- if (!value.editing) {
871
- _context8.next = 4;
872
- break;
873
- }
852
+ }, [channel, client, onSelectItem, autoCompleteTriggerSettings, emojiSearchIndex]);
853
+ var updateMessage = useStableCallback((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7() {
854
+ return _regenerator["default"].wrap(function _callee7$(_context8) {
855
+ while (1) switch (_context8.prev = _context8.next) {
856
+ case 0:
857
+ _context8.prev = 0;
858
+ if (!value.editing) {
874
859
  _context8.next = 4;
875
- return client.updateMessage(Object.assign({}, value.editing, {
876
- quoted_message: undefined,
877
- text: giphyEnabled && giphyActive ? "/giphy ".concat(text) : text
878
- }));
879
- case 4:
880
- value.clearEditingState();
881
- resetInput();
882
- _context8.next = 11;
883
860
  break;
884
- case 8:
885
- _context8.prev = 8;
886
- _context8.t0 = _context8["catch"](0);
887
- console.log(_context8.t0);
888
- case 11:
889
- case "end":
890
- return _context8.stop();
891
- }
892
- }, _callee7, null, [[0, 8]]);
893
- }));
894
- return function updateMessage() {
895
- return _ref9.apply(this, arguments);
896
- };
897
- }();
861
+ }
862
+ _context8.next = 4;
863
+ return client.updateMessage(Object.assign({}, value.editing, {
864
+ quoted_message: undefined,
865
+ text: giphyEnabled && giphyActive ? "/giphy ".concat(text) : text
866
+ }));
867
+ case 4:
868
+ value.clearEditingState();
869
+ resetInput();
870
+ _context8.next = 11;
871
+ break;
872
+ case 8:
873
+ _context8.prev = 8;
874
+ _context8.t0 = _context8["catch"](0);
875
+ console.log(_context8.t0);
876
+ case 11:
877
+ case "end":
878
+ return _context8.stop();
879
+ }
880
+ }, _callee7, null, [[0, 8]]);
881
+ })));
898
882
  var regexCondition = /File (extension \.\w{2,4}|type \S+) is not supported/;
899
- var getUploadSetStateAction = function getUploadSetStateAction(id, fileState) {
883
+ var getUploadSetStateAction = useStableCallback(function (id, fileState) {
900
884
  var extraData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
901
885
  return function (prevUploads) {
902
886
  return prevUploads.map(function (prevUpload) {
@@ -908,8 +892,8 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
908
892
  return prevUpload;
909
893
  });
910
894
  };
911
- };
912
- var handleFileOrImageUploadError = function handleFileOrImageUploadError(error, isImageError, id) {
895
+ });
896
+ var handleFileOrImageUploadError = useStableCallback(function (error, isImageError, id) {
913
897
  if (isImageError) {
914
898
  setNumberOfUploads(function (prevNumberOfUploads) {
915
899
  return prevNumberOfUploads - 1;
@@ -931,8 +915,8 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
931
915
  return setFileUploads(getUploadSetStateAction(id, _utils2.FileState.UPLOAD_FAILED));
932
916
  }
933
917
  }
934
- };
935
- var uploadFile = function () {
918
+ });
919
+ var uploadFile = useStableCallback(function () {
936
920
  var _ref11 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(_ref10) {
937
921
  var newFile, file, id, filename, response, _file$mimeType, compressedUri, extraData;
938
922
  return _regenerator["default"].wrap(function _callee8$(_context9) {
@@ -1006,11 +990,11 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1006
990
  }
1007
991
  }, _callee8, null, [[5, 31]]);
1008
992
  }));
1009
- return function uploadFile(_x4) {
993
+ return function (_x4) {
1010
994
  return _ref11.apply(this, arguments);
1011
995
  };
1012
- }();
1013
- var uploadImage = function () {
996
+ }());
997
+ var uploadImage = useStableCallback(function () {
1014
998
  var _ref13 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(_ref12) {
1015
999
  var _file$name;
1016
1000
  var newImage, _ref14, file, id, response, uri, filename, compressedUri, contentType, newImageUploads;
@@ -1110,11 +1094,11 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1110
1094
  }
1111
1095
  }, _callee9, null, [[7, 32]]);
1112
1096
  }));
1113
- return function uploadImage(_x5) {
1097
+ return function (_x5) {
1114
1098
  return _ref13.apply(this, arguments);
1115
1099
  };
1116
- }();
1117
- var uploadNewFile = function () {
1100
+ }());
1101
+ var uploadNewFile = useStableCallback(function () {
1118
1102
  var _ref15 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee10(file) {
1119
1103
  var _file$mimeType2, id, fileConfig, size_limit, isAllowed, sizeLimit, fileState, fileType, newFile;
1120
1104
  return _regenerator["default"].wrap(function _callee10$(_context11) {
@@ -1180,11 +1164,11 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1180
1164
  }
1181
1165
  }, _callee10, null, [[0, 20]]);
1182
1166
  }));
1183
- return function uploadNewFile(_x6) {
1167
+ return function (_x6) {
1184
1168
  return _ref15.apply(this, arguments);
1185
1169
  };
1186
- }();
1187
- var uploadNewImage = function () {
1170
+ }());
1171
+ var uploadNewImage = useStableCallback(function () {
1188
1172
  var _ref16 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee11(image) {
1189
1173
  var id, imageUploadConfig, size_limit, isAllowed, sizeLimit, imageState, newImage;
1190
1174
  return _regenerator["default"].wrap(function _callee11$(_context12) {
@@ -1249,11 +1233,11 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1249
1233
  }
1250
1234
  }, _callee11, null, [[0, 19]]);
1251
1235
  }));
1252
- return function uploadNewImage(_x7) {
1236
+ return function (_x7) {
1253
1237
  return _ref16.apply(this, arguments);
1254
1238
  };
1255
- }();
1256
- var openPollCreationDialog = function openPollCreationDialog() {
1239
+ }());
1240
+ var openPollCreationDialog = useStableCallback(function () {
1257
1241
  if (openPollCreationDialogFromContext) {
1258
1242
  openPollCreationDialogFromContext({
1259
1243
  sendMessage: sendMessage
@@ -1261,7 +1245,7 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1261
1245
  return;
1262
1246
  }
1263
1247
  defaultOpenPollCreationDialog();
1264
- };
1248
+ });
1265
1249
  var messageInputContext = (0, _useCreateMessageInputContext.useCreateMessageInputContext)(Object.assign({
1266
1250
  appendText: appendText,
1267
1251
  asyncIds: asyncIds,
@@ -1333,4 +1317,11 @@ var useMessageInputContext = exports.useMessageInputContext = function useMessag
1333
1317
  }
1334
1318
  return contextValue;
1335
1319
  };
1320
+ var useStableCallback = function useStableCallback(callback) {
1321
+ var ref = (0, _react.useRef)(callback);
1322
+ ref.current = callback;
1323
+ return (0, _react.useCallback)(function () {
1324
+ return ref.current.apply(ref, arguments);
1325
+ }, []);
1326
+ };
1336
1327
  //# sourceMappingURL=MessageInputContext.js.map