stream-chat-react-native-core 5.23.0-beta.4 → 5.23.0-beta.5

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 (55) hide show
  1. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +2 -11
  2. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  3. package/lib/commonjs/components/MessageInput/MessageInput.js +51 -28
  4. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  5. package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -0
  6. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  7. package/lib/commonjs/i18n/en.json +1 -1
  8. package/lib/commonjs/i18n/fr.json +32 -32
  9. package/lib/commonjs/i18n/hi.json +32 -32
  10. package/lib/commonjs/i18n/it.json +32 -32
  11. package/lib/commonjs/i18n/nl.json +32 -32
  12. package/lib/commonjs/i18n/ru.json +32 -32
  13. package/lib/commonjs/i18n/tr.json +32 -32
  14. package/lib/commonjs/utils/utils.js +2 -2
  15. package/lib/commonjs/utils/utils.js.map +1 -1
  16. package/lib/commonjs/version.json +1 -1
  17. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +2 -11
  18. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  19. package/lib/module/components/MessageInput/MessageInput.js +51 -28
  20. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  21. package/lib/module/contexts/themeContext/utils/theme.js +1 -0
  22. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  23. package/lib/module/i18n/en.json +1 -1
  24. package/lib/module/i18n/fr.json +32 -32
  25. package/lib/module/i18n/hi.json +32 -32
  26. package/lib/module/i18n/it.json +32 -32
  27. package/lib/module/i18n/nl.json +32 -32
  28. package/lib/module/i18n/ru.json +32 -32
  29. package/lib/module/i18n/tr.json +32 -32
  30. package/lib/module/utils/utils.js +2 -2
  31. package/lib/module/utils/utils.js.map +1 -1
  32. package/lib/module/version.json +1 -1
  33. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +1 -1
  34. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
  35. package/lib/typescript/i18n/en.json +1 -1
  36. package/lib/typescript/i18n/fr.json +32 -32
  37. package/lib/typescript/i18n/hi.json +32 -32
  38. package/lib/typescript/i18n/it.json +32 -32
  39. package/lib/typescript/i18n/nl.json +32 -32
  40. package/lib/typescript/i18n/ru.json +32 -32
  41. package/lib/typescript/i18n/tr.json +32 -32
  42. package/package.json +1 -1
  43. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +0 -10
  44. package/src/components/MessageInput/MessageInput.tsx +33 -3
  45. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +2 -0
  46. package/src/contexts/themeContext/utils/theme.ts +2 -0
  47. package/src/i18n/en.json +1 -1
  48. package/src/i18n/fr.json +32 -32
  49. package/src/i18n/hi.json +32 -32
  50. package/src/i18n/it.json +32 -32
  51. package/src/i18n/nl.json +32 -32
  52. package/src/i18n/ru.json +32 -32
  53. package/src/i18n/tr.json +32 -32
  54. package/src/utils/utils.ts +3 -2
  55. package/src/version.json +1 -1
@@ -114,6 +114,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
114
114
  SendButton = props.SendButton,
115
115
  sending = props.sending,
116
116
  sendMessageAsync = props.sendMessageAsync,
117
+ setShowMoreOptions = props.setShowMoreOptions,
117
118
  ShowThreadMessageInChannelButton = props.ShowThreadMessageInChannelButton,
118
119
  suggestions = props.suggestions,
119
120
  thread = props.thread,
@@ -140,6 +141,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
140
141
  autoCompleteInputContainer = _useTheme$theme$messa.autoCompleteInputContainer,
141
142
  composerContainer = _useTheme$theme$messa.composerContainer,
142
143
  container = _useTheme$theme$messa.container,
144
+ focusedInputBoxContainer = _useTheme$theme$messa.focusedInputBoxContainer,
143
145
  inputBoxContainer = _useTheme$theme$messa.inputBoxContainer,
144
146
  optionsContainer = _useTheme$theme$messa.optionsContainer,
145
147
  replyContainer = _useTheme$theme$messa.replyContainer,
@@ -169,6 +171,10 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
169
171
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
170
172
  hasResetFiles = _useState6[0],
171
173
  setHasResetFiles = _useState6[1];
174
+ var _useState7 = (0, _react.useState)(false),
175
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
176
+ focused = _useState8[0],
177
+ setFocused = _useState8[1];
172
178
  var selectedImagesLength = hasResetImages ? selectedImages.length : 0;
173
179
  var imageUploadsLength = hasResetImages ? imageUploads.length : 0;
174
180
  var selectedFilesLength = hasResetFiles ? selectedFiles.length : 0;
@@ -381,6 +387,23 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
381
387
  var additionalTextInputContainerProps = (0, _extends2["default"])({
382
388
  editable: disabled ? false : undefined
383
389
  }, additionalTextInputProps);
390
+ var memoizedAdditionalTextInputProps = (0, _react.useMemo)(function () {
391
+ return (0, _extends2["default"])({}, additionalTextInputProps, {
392
+ onBlur: function onBlur(event) {
393
+ if (additionalTextInputProps != null && additionalTextInputProps.onBlur) {
394
+ additionalTextInputProps == null ? void 0 : additionalTextInputProps.onBlur(event);
395
+ }
396
+ if (setFocused) setFocused(false);
397
+ setShowMoreOptions(true);
398
+ },
399
+ onFocus: function onFocus(event) {
400
+ if (additionalTextInputProps != null && additionalTextInputProps.onFocus) {
401
+ additionalTextInputProps.onFocus(event);
402
+ }
403
+ if (setFocused) setFocused(true);
404
+ }
405
+ });
406
+ }, [additionalTextInputProps]);
384
407
  return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_reactNative.View, {
385
408
  onLayout: function onLayout(_ref2) {
386
409
  var newHeight = _ref2.nativeEvent.layout.height;
@@ -393,21 +416,21 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
393
416
  __self: _this,
394
417
  __source: {
395
418
  fileName: _jsxFileName,
396
- lineNumber: 518,
419
+ lineNumber: 547,
397
420
  columnNumber: 7
398
421
  }
399
422
  }, editing && _react["default"].createElement(InputEditingStateHeader, {
400
423
  __self: _this,
401
424
  __source: {
402
425
  fileName: _jsxFileName,
403
- lineNumber: 526,
426
+ lineNumber: 555,
404
427
  columnNumber: 21
405
428
  }
406
429
  }), quotedMessage && _react["default"].createElement(InputReplyStateHeader, {
407
430
  __self: _this,
408
431
  __source: {
409
432
  fileName: _jsxFileName,
410
- lineNumber: 527,
433
+ lineNumber: 556,
411
434
  columnNumber: 27
412
435
  }
413
436
  }), _react["default"].createElement(_reactNative.View, {
@@ -415,7 +438,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
415
438
  __self: _this,
416
439
  __source: {
417
440
  fileName: _jsxFileName,
418
- lineNumber: 528,
441
+ lineNumber: 557,
419
442
  columnNumber: 9
420
443
  }
421
444
  }, Input ? _react["default"].createElement(Input, {
@@ -424,7 +447,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
424
447
  __self: _this,
425
448
  __source: {
426
449
  fileName: _jsxFileName,
427
- lineNumber: 530,
450
+ lineNumber: 559,
428
451
  columnNumber: 13
429
452
  }
430
453
  }) : _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_reactNative.View, {
@@ -432,25 +455,25 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
432
455
  __self: _this,
433
456
  __source: {
434
457
  fileName: _jsxFileName,
435
- lineNumber: 536,
458
+ lineNumber: 565,
436
459
  columnNumber: 15
437
460
  }
438
461
  }, InputButtons && _react["default"].createElement(InputButtons, {
439
462
  __self: _this,
440
463
  __source: {
441
464
  fileName: _jsxFileName,
442
- lineNumber: 537,
465
+ lineNumber: 566,
443
466
  columnNumber: 34
444
467
  }
445
468
  })), _react["default"].createElement(_reactNative.View, {
446
469
  style: [styles.inputBoxContainer, {
447
470
  borderColor: grey_whisper,
448
471
  paddingVertical: giphyActive ? 8 : 12
449
- }, inputBoxContainer],
472
+ }, inputBoxContainer, focused ? focusedInputBoxContainer : null],
450
473
  __self: _this,
451
474
  __source: {
452
475
  fileName: _jsxFileName,
453
- lineNumber: 539,
476
+ lineNumber: 568,
454
477
  columnNumber: 15
455
478
  }
456
479
  }, (typeof editing !== 'boolean' && (editing == null ? void 0 : editing.quoted_message) || quotedMessage) && _react["default"].createElement(_reactNative.View, {
@@ -458,21 +481,21 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
458
481
  __self: _this,
459
482
  __source: {
460
483
  fileName: _jsxFileName,
461
- lineNumber: 550,
484
+ lineNumber: 580,
462
485
  columnNumber: 19
463
486
  }
464
487
  }, _react["default"].createElement(Reply, {
465
488
  __self: _this,
466
489
  __source: {
467
490
  fileName: _jsxFileName,
468
- lineNumber: 551,
491
+ lineNumber: 581,
469
492
  columnNumber: 21
470
493
  }
471
494
  })), imageUploads.length ? _react["default"].createElement(ImageUploadPreview, {
472
495
  __self: _this,
473
496
  __source: {
474
497
  fileName: _jsxFileName,
475
- lineNumber: 554,
498
+ lineNumber: 584,
476
499
  columnNumber: 40
477
500
  }
478
501
  }) : null, imageUploads.length && fileUploads.length ? _react["default"].createElement(_reactNative.View, {
@@ -483,14 +506,14 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
483
506
  __self: _this,
484
507
  __source: {
485
508
  fileName: _jsxFileName,
486
- lineNumber: 556,
509
+ lineNumber: 586,
487
510
  columnNumber: 19
488
511
  }
489
512
  }) : null, fileUploads.length ? _react["default"].createElement(FileUploadPreview, {
490
513
  __self: _this,
491
514
  __source: {
492
515
  fileName: _jsxFileName,
493
- lineNumber: 566,
516
+ lineNumber: 596,
494
517
  columnNumber: 39
495
518
  }
496
519
  }) : null, giphyActive ? _react["default"].createElement(InputGiphySearch, {
@@ -498,7 +521,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
498
521
  __self: _this,
499
522
  __source: {
500
523
  fileName: _jsxFileName,
501
- lineNumber: 568,
524
+ lineNumber: 598,
502
525
  columnNumber: 19
503
526
  }
504
527
  }) : _react["default"].createElement(_reactNative.View, {
@@ -506,16 +529,16 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
506
529
  __self: _this,
507
530
  __source: {
508
531
  fileName: _jsxFileName,
509
- lineNumber: 570,
532
+ lineNumber: 600,
510
533
  columnNumber: 19
511
534
  }
512
535
  }, _react["default"].createElement(_AutoCompleteInput.AutoCompleteInput, {
513
- additionalTextInputProps: additionalTextInputProps,
536
+ additionalTextInputProps: memoizedAdditionalTextInputProps,
514
537
  cooldownActive: !!cooldownRemainingSeconds,
515
538
  __self: _this,
516
539
  __source: {
517
540
  fileName: _jsxFileName,
518
- lineNumber: 571,
541
+ lineNumber: 601,
519
542
  columnNumber: 21
520
543
  }
521
544
  }))), _react["default"].createElement(_reactNative.View, {
@@ -523,7 +546,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
523
546
  __self: _this,
524
547
  __source: {
525
548
  fileName: _jsxFileName,
526
- lineNumber: 578,
549
+ lineNumber: 608,
527
550
  columnNumber: 15
528
551
  }
529
552
  }, cooldownRemainingSeconds ? _react["default"].createElement(CooldownTimer, {
@@ -531,7 +554,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
531
554
  __self: _this,
532
555
  __source: {
533
556
  fileName: _jsxFileName,
534
- lineNumber: 580,
557
+ lineNumber: 610,
535
558
  columnNumber: 19
536
559
  }
537
560
  }) : _react["default"].createElement(SendButton, {
@@ -539,7 +562,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
539
562
  __self: _this,
540
563
  __source: {
541
564
  fileName: _jsxFileName,
542
- lineNumber: 582,
565
+ lineNumber: 612,
543
566
  columnNumber: 19
544
567
  }
545
568
  })))), _react["default"].createElement(ShowThreadMessageInChannelButton, {
@@ -547,7 +570,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
547
570
  __self: _this,
548
571
  __source: {
549
572
  fileName: _jsxFileName,
550
- lineNumber: 592,
573
+ lineNumber: 622,
551
574
  columnNumber: 9
552
575
  }
553
576
  })), triggerType && suggestions ? _react["default"].createElement(_reactNative.View, {
@@ -558,7 +581,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
558
581
  __self: _this,
559
582
  __source: {
560
583
  fileName: _jsxFileName,
561
- lineNumber: 596,
584
+ lineNumber: 626,
562
585
  columnNumber: 9
563
586
  }
564
587
  }, _react["default"].createElement(AutoCompleteSuggestionList, {
@@ -570,7 +593,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
570
593
  __self: _this,
571
594
  __source: {
572
595
  fileName: _jsxFileName,
573
- lineNumber: 603,
596
+ lineNumber: 633,
574
597
  columnNumber: 11
575
598
  }
576
599
  })) : null, selectedPicker && _react["default"].createElement(_reactNative.View, {
@@ -581,14 +604,14 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
581
604
  __self: _this,
582
605
  __source: {
583
606
  fileName: _jsxFileName,
584
- lineNumber: 613,
607
+ lineNumber: 643,
585
608
  columnNumber: 9
586
609
  }
587
610
  }, _react["default"].createElement(_AttachmentSelectionBar.AttachmentSelectionBar, {
588
611
  __self: _this,
589
612
  __source: {
590
613
  fileName: _jsxFileName,
591
- lineNumber: 625,
614
+ lineNumber: 655,
592
615
  columnNumber: 11
593
616
  }
594
617
  })));
@@ -735,7 +758,7 @@ var MessageInput = function MessageInput(props) {
735
758
  __self: _this,
736
759
  __source: {
737
760
  fileName: _jsxFileName,
738
- lineNumber: 831,
761
+ lineNumber: 861,
739
762
  columnNumber: 12
740
763
  }
741
764
  });
@@ -794,7 +817,7 @@ var MessageInput = function MessageInput(props) {
794
817
  __self: _this,
795
818
  __source: {
796
819
  fileName: _jsxFileName,
797
- lineNumber: 835,
820
+ lineNumber: 865,
798
821
  columnNumber: 5
799
822
  }
800
823
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCountdown2","_contexts","_AttachmentPickerContext","_ChannelContext","_MessageInputContext","_MessagesContext","_OwnCapabilitiesContext","_SuggestionsContext","_ThemeContext","_ThreadContext","_TranslationContext","_AttachmentSelectionBar","_AutoCompleteInput","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","from","test","arr","len","arr2","styles","StyleSheet","create","attachmentSeparator","borderBottomWidth","marginBottom","autoCompleteInputContainer","alignItems","flexDirection","paddingLeft","paddingRight","composerContainer","container","borderTopWidth","padding","inputBoxContainer","borderRadius","borderWidth","flex","optionsContainer","paddingBottom","replyContainer","paddingHorizontal","sendButtonContainer","suggestionsListContainer","elevation","left","position","right","shadowOffset","height","width","shadowOpacity","MessageInputWithContext","props","additionalTextInputProps","asyncIds","asyncUploads","AutoCompleteSuggestionList","closeAttachmentPicker","cooldownEndsAt","CooldownTimer","disabled","editing","FileUploadPreview","fileUploads","giphyActive","ImageUploadPreview","imageUploads","Input","inputBoxRef","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","isOnline","isValidMessage","maxNumberOfFiles","members","mentionedUsers","numberOfUploads","quotedMessage","removeFile","removeImage","Reply","resetInput","SendButton","sending","sendMessageAsync","ShowThreadMessageInChannelButton","suggestions","thread","threadList","triggerType","uploadNewFile","uploadNewImage","watchers","_useState","useState","_useState2","_slicedToArray2","setHeight","_useTranslationContex","useTranslationContext","t","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","border","grey_whisper","white","white_smoke","_useTheme$theme$messa","messageInput","attachmentSelectionBar","suggestionListContainer","_useAttachmentPickerC","useAttachmentPickerContext","attachmentPickerBottomSheetHeight","attachmentSelectionBarHeight","bottomInset","selectedFiles","selectedImages","selectedPicker","setMaxNumberOfFiles","setSelectedFiles","setSelectedImages","_useCountdown","useCountdown","cooldownRemainingSeconds","seconds","useEffect","_useState3","_useState4","hasResetImages","setHasResetImages","_useState5","_useState6","hasResetFiles","setHasResetFiles","selectedImagesLength","imageUploadsLength","selectedFilesLength","fileUploadsLength","imagesForInput","forEach","image","id","file","MEGA_BYTES_TO_BYTES","MAX_FILE_SIZE_TO_UPLOAD_IN_MB","uploadImagesHandler","imageToUpload","find","selectedImage","uploadedImage","imageUpload","uri","url","Number","size","Alert","alert","filter","removeImagesHandler","imagesToRemove","fileToUpload","selectedFile","uploadedFile","fileUpload","filesToRemove","updatedSelectedImages","map","source","Boolean","updatedSelectedFiles","duration","mimeType","editingExists","current","focus","asyncIdsString","join","asyncUploadsString","values","_ref","state","keys","getMembers","result","member","user","push","getUsers","users","concat","_toConsumableArray2","getWatchers","uniqueUsers","_iterator","_step","usersArray","apply","additionalTextInputContainerProps","_extends2","editable","undefined","createElement","Fragment","View","onLayout","_ref2","newHeight","nativeEvent","layout","style","backgroundColor","borderColor","__self","__source","fileName","lineNumber","columnNumber","paddingVertical","quoted_message","borderBottomColor","marginHorizontal","AutoCompleteInput","cooldownActive","bottom","active","data","onSelect","queryText","AttachmentSelectionBar","areEqual","prevProps","nextProps","prevAdditionalTextInputProps","prevAsyncUploads","prevDisabled","prevEditing","prevFileUploads","prevGiphyActive","prevImageUploads","prevIsOnline","prevIsValidMessage","prevMentionedUsers","prevQuotedMessage","prevSending","prevShowMoreOptions","showMoreOptions","prevSuggestions","prevT","prevThread","prevThreadList","nextAdditionalTextInputProps","nextAsyncUploads","nextDisabled","nextEditing","nextFileUploads","nextGiphyActive","nextImageUploads","nextIsOnline","nextIsValidMessage","nextMentionedUsers","nextQuotedMessage","nextSending","nextShowMoreOptions","nextSuggestions","nextT","nextThread","nextThreadList","tEqual","additionalTextInputPropsEven","disabledEqual","editingEqual","imageUploadsEqual","giphyActiveEqual","quotedMessageEqual","sendingEqual","showMoreOptionsEqual","isOnlineEqual","isValidMessageEqual","asyncUploadsEqual","every","fileUploadsEqual","mentionedUsersEqual","suggestionsEqual","_ref3","index","threadEqual","text","reply_count","threadListEqual","MemoizedMessageInput","React","memo","MessageInput","_useChatContext","useChatContext","ownCapabilities","useOwnCapabilitiesContext","_useChannelContext","useChannelContext","_useChannelContext$di","_useMessageInputConte","useMessageInputContext","clearEditingState","clearQuotedMessageState","SendMessageDisallowedIndicator","setGiphyActive","setShowMoreOptions","_useMessagesContext","useMessagesContext","_useSuggestionsContex","useSuggestionsContext","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","_useThreadContext","useThreadContext","_useTranslationContex2","sendMessage","exports","displayName"],"sources":["MessageInput.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Alert, StyleSheet, View } from 'react-native';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { useCountdown } from './hooks/useCountdown';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport {\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { Asset, DefaultStreamChatGenerics } from '../../types/types';\nimport { AttachmentSelectionBar } from '../AttachmentPicker/components/AttachmentSelectionBar';\nimport { AutoCompleteInput } from '../AutoCompleteInput/AutoCompleteInput';\n\nconst styles = StyleSheet.create({\n attachmentSeparator: {\n borderBottomWidth: 1,\n marginBottom: 10,\n },\n autoCompleteInputContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 16,\n paddingRight: 16,\n },\n composerContainer: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n container: {\n borderTopWidth: 1,\n padding: 10,\n },\n inputBoxContainer: {\n borderRadius: 20,\n borderWidth: 1,\n flex: 1,\n },\n optionsContainer: {\n flexDirection: 'row',\n paddingBottom: 10,\n paddingRight: 10,\n },\n replyContainer: { paddingBottom: 12, paddingHorizontal: 8 },\n sendButtonContainer: { paddingBottom: 10, paddingLeft: 10 },\n suggestionsListContainer: {\n borderRadius: 10,\n elevation: 3,\n left: 8,\n position: 'absolute',\n right: 8,\n shadowOffset: { height: 1, width: 0 },\n shadowOpacity: 0.15,\n },\n});\n\ntype MessageInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'isOnline'> &\n Pick<ChannelContextValue<StreamChatGenerics>, 'disabled' | 'members' | 'watchers'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'asyncIds'\n | 'asyncUploads'\n | 'cooldownEndsAt'\n | 'CooldownTimer'\n | 'clearEditingState'\n | 'clearQuotedMessageState'\n | 'closeAttachmentPicker'\n | 'editing'\n | 'FileUploadPreview'\n | 'fileUploads'\n | 'giphyActive'\n | 'ImageUploadPreview'\n | 'imageUploads'\n | 'Input'\n | 'inputBoxRef'\n | 'InputButtons'\n | 'InputEditingStateHeader'\n | 'InputGiphySearch'\n | 'InputReplyStateHeader'\n | 'isValidMessage'\n | 'maxNumberOfFiles'\n | 'mentionedUsers'\n | 'numberOfUploads'\n | 'quotedMessage'\n | 'resetInput'\n | 'SendButton'\n | 'sending'\n | 'sendMessageAsync'\n | 'setShowMoreOptions'\n | 'setGiphyActive'\n | 'showMoreOptions'\n | 'ShowThreadMessageInChannelButton'\n | 'removeFile'\n | 'removeImage'\n | 'uploadNewFile'\n | 'uploadNewImage'\n > &\n Pick<MessagesContextValue<StreamChatGenerics>, 'Reply'> &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n | 'AutoCompleteSuggestionHeader'\n | 'AutoCompleteSuggestionItem'\n | 'AutoCompleteSuggestionList'\n | 'suggestions'\n | 'triggerType'\n > &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'> &\n Pick<TranslationContextValue, 't'> & {\n threadList?: boolean;\n };\n\nconst MessageInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionList,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n ShowThreadMessageInChannelButton,\n suggestions,\n thread,\n threadList,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n } = props;\n\n const [height, setHeight] = useState(0);\n const { t } = useTranslationContext();\n\n const {\n theme: {\n colors: { border, grey_whisper, white, white_smoke },\n messageInput: {\n attachmentSelectionBar,\n autoCompleteInputContainer,\n composerContainer,\n container,\n inputBoxContainer,\n optionsContainer,\n replyContainer,\n sendButtonContainer,\n suggestionsListContainer: { container: suggestionListContainer },\n },\n },\n } = useTheme();\n\n const {\n attachmentPickerBottomSheetHeight,\n attachmentSelectionBarHeight,\n bottomInset,\n selectedFiles,\n selectedImages,\n selectedPicker,\n setMaxNumberOfFiles,\n setSelectedFiles,\n setSelectedImages,\n } = useAttachmentPickerContext();\n\n const { seconds: cooldownRemainingSeconds } = useCountdown(cooldownEndsAt);\n\n /**\n * Mounting and un-mounting logic are un-related in following useEffect.\n * While mounting we want to pass maxNumberOfFiles (which is prop on Channel component)\n * to AttachmentPicker (on OverlayProvider)\n *\n * While un-mounting, we want to close the picker e.g., while navigating away.\n */\n useEffect(() => {\n setMaxNumberOfFiles(maxNumberOfFiles ?? 10);\n\n return closeAttachmentPicker;\n }, []);\n\n const [hasResetImages, setHasResetImages] = useState(false);\n const [hasResetFiles, setHasResetFiles] = useState(false);\n const selectedImagesLength = hasResetImages ? selectedImages.length : 0;\n const imageUploadsLength = hasResetImages ? imageUploads.length : 0;\n const selectedFilesLength = hasResetFiles ? selectedFiles.length : 0;\n const fileUploadsLength = hasResetFiles ? fileUploads.length : 0;\n const imagesForInput = (!!thread && !!threadList) || (!thread && !threadList);\n\n useEffect(() => {\n setSelectedImages([]);\n if (imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n return () => setSelectedImages([]);\n }, []);\n\n useEffect(() => {\n setSelectedFiles([]);\n if (fileUploads.length) {\n fileUploads.forEach((file) => removeFile(file.id));\n }\n return () => setSelectedFiles([]);\n }, []);\n\n useEffect(() => {\n if (hasResetImages === false && imageUploadsLength === 0 && selectedImagesLength === 0) {\n setHasResetImages(true);\n }\n }, [imageUploadsLength, selectedImagesLength]);\n\n useEffect(() => {\n if (hasResetFiles === false && fileUploadsLength === 0 && selectedFilesLength === 0) {\n setHasResetFiles(true);\n }\n }, [fileUploadsLength, selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput === false && imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n }, [imagesForInput]);\n\n const MEGA_BYTES_TO_BYTES = 1024 * 1024;\n const MAX_FILE_SIZE_TO_UPLOAD_IN_MB = 100;\n\n const uploadImagesHandler = () => {\n const imageToUpload = selectedImages.find((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return !uploadedImage;\n });\n // Check if the file size of the image exceeds the threshold of 100MB\n if (\n imageToUpload &&\n Number(imageToUpload.size) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB\n ) {\n Alert.alert(\n t(\n `Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.`,\n { MAX_FILE_SIZE_TO_UPLOAD_IN_MB },\n ),\n );\n setSelectedImages(\n selectedImages.filter((selectedImage) => selectedImage.uri !== imageToUpload.uri),\n );\n } else {\n if (imageToUpload) uploadNewImage(imageToUpload);\n }\n };\n\n const removeImagesHandler = () => {\n const imagesToRemove = imageUploads.filter(\n (imageUpload) =>\n !selectedImages.find(\n (selectedImage) =>\n selectedImage.uri === imageUpload.file.uri || selectedImage.uri === imageUpload.url,\n ),\n );\n imagesToRemove.forEach((image) => removeImage(image.id));\n };\n\n useEffect(() => {\n if (imagesForInput) {\n if (selectedImagesLength > imageUploadsLength) {\n /** User selected an image in bottom sheet attachment picker */\n uploadImagesHandler();\n } else {\n /** User de-selected an image in bottom sheet attachment picker */\n removeImagesHandler();\n }\n }\n }, [selectedImagesLength]);\n\n useEffect(() => {\n if (selectedFilesLength > fileUploadsLength) {\n /** User selected a video in bottom sheet attachment picker */\n const fileToUpload = selectedFiles.find((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return !uploadedFile;\n });\n // Check if the file size exceeds the threshold of 100MB\n if (\n fileToUpload &&\n Number(fileToUpload.size) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB\n ) {\n Alert.alert(\n t(\n `Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.`,\n { MAX_FILE_SIZE_TO_UPLOAD_IN_MB },\n ),\n );\n setSelectedFiles(\n selectedFiles.filter((selectedFile) => selectedFile.uri !== fileToUpload.uri),\n );\n } else {\n if (fileToUpload) uploadNewFile(fileToUpload);\n }\n } else {\n /** User de-selected a video in bottom sheet attachment picker */\n const filesToRemove = fileUploads.filter(\n (fileUpload) =>\n !selectedFiles.find(\n (selectedFile) =>\n selectedFile.uri === fileUpload.file.uri || selectedFile.uri === fileUpload.url,\n ),\n );\n filesToRemove.forEach((file) => removeFile(file.id));\n }\n }, [selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput) {\n if (imageUploadsLength < selectedImagesLength) {\n /** User removed some image from seleted images within ImageUploadPreview. */\n const updatedSelectedImages = selectedImages.filter((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return uploadedImage;\n });\n setSelectedImages(updatedSelectedImages);\n } else if (imageUploadsLength > selectedImagesLength) {\n /**\n * User is editing some message which contains image attachments OR\n * image attachment is added from custom image picker (other than the default bottomsheet image picker)\n * using `uploadNewImage` function from `MessageInputContext`.\n **/\n setSelectedImages(\n imageUploads\n .map((imageUpload) => ({\n height: imageUpload.file.height,\n source: imageUpload.file.source,\n uri: imageUpload.url || imageUpload.file.uri,\n width: imageUpload.file.width,\n }))\n .filter(Boolean) as Asset[],\n );\n }\n }\n }, [imageUploadsLength]);\n\n useEffect(() => {\n if (fileUploadsLength < selectedFilesLength) {\n /** User removed some video from seleted files within ImageUploadPreview. */\n const updatedSelectedFiles = selectedFiles.filter((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return uploadedFile;\n });\n setSelectedFiles(updatedSelectedFiles);\n } else if (fileUploadsLength > selectedFilesLength) {\n /**\n * User is editing some message which contains video attachments OR\n * video attachment is added from custom image picker (other than the default bottom-sheet image picker)\n * using `uploadNewFile` function from `MessageInputContext`.\n **/\n setSelectedFiles(\n fileUploads.map((fileUpload) => ({\n duration: fileUpload.file.duration,\n mimeType: fileUpload.file.mimeType,\n name: fileUpload.file.name,\n size: fileUpload.file.size,\n uri: fileUpload.file.uri,\n })),\n );\n }\n }, [fileUploadsLength]);\n\n const editingExists = !!editing;\n useEffect(() => {\n if (editing && inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n\n /**\n * Make sure to test `initialValue` functionality, if you are modifying following condition.\n *\n * We have the following condition, to make sure - when user comes out of \"editing message\" state,\n * we wipe out all the state around message input such as text, mentioned users, image uploads etc.\n * But it also means, this condition will be fired up on first render, which may result in clearing\n * the initial value set on input box, through the prop - `initialValue`.\n * This prop generally gets used for the case of draft message functionality.\n */\n if (\n !editing &&\n (giphyActive ||\n fileUploads.length > 0 ||\n mentionedUsers.length > 0 ||\n imageUploads.length > 0 ||\n numberOfUploads > 0)\n ) {\n resetInput();\n }\n }, [editingExists]);\n\n const asyncIdsString = asyncIds.join();\n const asyncUploadsString = Object.values(asyncUploads)\n .map(({ state, url }) => `${state}${url}`)\n .join();\n useEffect(() => {\n if (Object.keys(asyncUploads).length) {\n /**\n * When successful image upload response occurs after hitting send,\n * send a follow up message with the image\n */\n sending.current = true;\n asyncIds.forEach((id) => sendMessageAsync(id));\n sending.current = false;\n }\n }, [asyncIdsString, asyncUploadsString, sendMessageAsync]);\n\n const getMembers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (members && Object.values(members).length) {\n Object.values(members).forEach((member) => {\n if (member.user) {\n result.push(member.user);\n }\n });\n }\n\n return result;\n };\n\n const getUsers = () => {\n const users = [...getMembers(), ...getWatchers()];\n\n // make sure we don't list users twice\n const uniqueUsers: { [key: string]: UserResponse<StreamChatGenerics> } = {};\n for (const user of users) {\n if (user && !uniqueUsers[user.id]) {\n uniqueUsers[user.id] = user;\n }\n }\n const usersArray = Object.values(uniqueUsers);\n\n return usersArray;\n };\n\n const getWatchers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (watchers && Object.values(watchers).length) {\n result.push(...Object.values(watchers));\n }\n\n return result;\n };\n\n const additionalTextInputContainerProps = {\n editable: disabled ? false : undefined,\n ...additionalTextInputProps,\n };\n\n return (\n <>\n <View\n onLayout={({\n nativeEvent: {\n layout: { height: newHeight },\n },\n }) => setHeight(newHeight)}\n style={[styles.container, { backgroundColor: white, borderColor: border }, container]}\n >\n {editing && <InputEditingStateHeader />}\n {quotedMessage && <InputReplyStateHeader />}\n <View style={[styles.composerContainer, composerContainer]}>\n {Input ? (\n <Input\n additionalTextInputProps={additionalTextInputContainerProps}\n getUsers={getUsers}\n />\n ) : (\n <>\n <View style={[styles.optionsContainer, optionsContainer]}>\n {InputButtons && <InputButtons />}\n </View>\n <View\n style={[\n styles.inputBoxContainer,\n {\n borderColor: grey_whisper,\n paddingVertical: giphyActive ? 8 : 12,\n },\n inputBoxContainer,\n ]}\n >\n {((typeof editing !== 'boolean' && editing?.quoted_message) || quotedMessage) && (\n <View style={[styles.replyContainer, replyContainer]}>\n <Reply />\n </View>\n )}\n {imageUploads.length ? <ImageUploadPreview /> : null}\n {imageUploads.length && fileUploads.length ? (\n <View\n style={[\n styles.attachmentSeparator,\n {\n borderBottomColor: grey_whisper,\n marginHorizontal: giphyActive ? 8 : 12,\n },\n ]}\n />\n ) : null}\n {fileUploads.length ? <FileUploadPreview /> : null}\n {giphyActive ? (\n <InputGiphySearch disabled={!isOnline} />\n ) : (\n <View style={[styles.autoCompleteInputContainer, autoCompleteInputContainer]}>\n <AutoCompleteInput<StreamChatGenerics>\n additionalTextInputProps={additionalTextInputProps}\n cooldownActive={!!cooldownRemainingSeconds}\n />\n </View>\n )}\n </View>\n <View style={[styles.sendButtonContainer, sendButtonContainer]}>\n {cooldownRemainingSeconds ? (\n <CooldownTimer seconds={cooldownRemainingSeconds} />\n ) : (\n <SendButton\n disabled={\n disabled || sending.current || !isValidMessage() || (giphyActive && !isOnline)\n }\n />\n )}\n </View>\n </>\n )}\n </View>\n <ShowThreadMessageInChannelButton threadList={threadList} />\n </View>\n\n {triggerType && suggestions ? (\n <View\n style={[\n suggestionListContainer,\n styles.suggestionsListContainer,\n { backgroundColor: white, bottom: height },\n ]}\n >\n <AutoCompleteSuggestionList\n active={!!suggestions}\n data={suggestions.data}\n onSelect={suggestions.onSelect}\n queryText={suggestions.queryText}\n triggerType={triggerType}\n />\n </View>\n ) : null}\n {selectedPicker && (\n <View\n style={[\n {\n backgroundColor: white_smoke,\n height:\n (attachmentPickerBottomSheetHeight\n ? attachmentPickerBottomSheetHeight + (attachmentSelectionBarHeight ?? 52)\n : 360) - bottomInset,\n },\n attachmentSelectionBar,\n ]}\n >\n <AttachmentSelectionBar />\n </View>\n )}\n </>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageInputPropsWithContext<StreamChatGenerics>,\n nextProps: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps: prevAdditionalTextInputProps,\n asyncUploads: prevAsyncUploads,\n disabled: prevDisabled,\n editing: prevEditing,\n fileUploads: prevFileUploads,\n giphyActive: prevGiphyActive,\n imageUploads: prevImageUploads,\n isOnline: prevIsOnline,\n isValidMessage: prevIsValidMessage,\n mentionedUsers: prevMentionedUsers,\n quotedMessage: prevQuotedMessage,\n sending: prevSending,\n showMoreOptions: prevShowMoreOptions,\n suggestions: prevSuggestions,\n t: prevT,\n thread: prevThread,\n threadList: prevThreadList,\n } = prevProps;\n const {\n additionalTextInputProps: nextAdditionalTextInputProps,\n asyncUploads: nextAsyncUploads,\n disabled: nextDisabled,\n editing: nextEditing,\n fileUploads: nextFileUploads,\n giphyActive: nextGiphyActive,\n imageUploads: nextImageUploads,\n isOnline: nextIsOnline,\n isValidMessage: nextIsValidMessage,\n mentionedUsers: nextMentionedUsers,\n quotedMessage: nextQuotedMessage,\n sending: nextSending,\n showMoreOptions: nextShowMoreOptions,\n suggestions: nextSuggestions,\n t: nextT,\n thread: nextThread,\n threadList: nextThreadList,\n } = nextProps;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const additionalTextInputPropsEven =\n prevAdditionalTextInputProps === nextAdditionalTextInputProps;\n if (!additionalTextInputPropsEven) return false;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const editingEqual = !!prevEditing === !!nextEditing;\n if (!editingEqual) return false;\n\n const imageUploadsEqual = prevImageUploads.length === nextImageUploads.length;\n if (!imageUploadsEqual) return false;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const quotedMessageEqual =\n !!prevQuotedMessage &&\n !!nextQuotedMessage &&\n typeof prevQuotedMessage !== 'boolean' &&\n typeof nextQuotedMessage !== 'boolean'\n ? prevQuotedMessage.id === nextQuotedMessage.id\n : !!prevQuotedMessage === !!nextQuotedMessage;\n if (!quotedMessageEqual) return false;\n\n const sendingEqual = prevSending.current === nextSending.current;\n if (!sendingEqual) return false;\n\n const showMoreOptionsEqual = prevShowMoreOptions === nextShowMoreOptions;\n if (!showMoreOptionsEqual) return false;\n\n const isOnlineEqual = prevIsOnline === nextIsOnline;\n if (!isOnlineEqual) return false;\n\n const isValidMessageEqual = prevIsValidMessage() === nextIsValidMessage();\n if (!isValidMessageEqual) return false;\n\n const asyncUploadsEqual = Object.keys(prevAsyncUploads).every(\n (key) =>\n prevAsyncUploads[key].state === nextAsyncUploads[key].state &&\n prevAsyncUploads[key].url === nextAsyncUploads[key].url,\n );\n if (!asyncUploadsEqual) return false;\n\n const fileUploadsEqual = prevFileUploads.length === nextFileUploads.length;\n if (!fileUploadsEqual) return false;\n\n const mentionedUsersEqual = prevMentionedUsers.length === nextMentionedUsers.length;\n if (!mentionedUsersEqual) return false;\n\n const suggestionsEqual =\n !!prevSuggestions?.data && !!nextSuggestions?.data\n ? prevSuggestions.data.length === nextSuggestions.data.length &&\n prevSuggestions.data.every(({ name }, index) => name === nextSuggestions.data[index].name)\n : !!prevSuggestions === !!nextSuggestions;\n if (!suggestionsEqual) return false;\n\n const threadEqual =\n prevThread?.id === nextThread?.id &&\n prevThread?.text === nextThread?.text &&\n prevThread?.reply_count === nextThread?.reply_count;\n if (!threadEqual) return false;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageInput = React.memo(\n MessageInputWithContext,\n areEqual,\n) as typeof MessageInputWithContext;\n\nexport type MessageInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageInputPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI Component for message input\n * It's a consumer of\n * [Channel Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/channel-context/),\n * [Chat Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/chat-context/),\n * [MessageInput Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/message-input-context/),\n * [Suggestions Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/suggestions-context/), and\n * [Translation Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/translation-context/)\n */\nexport const MessageInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputProps<StreamChatGenerics>,\n) => {\n const { isOnline } = useChatContext();\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const { disabled = false, members, watchers } = useChannelContext<StreamChatGenerics>();\n\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxNumberOfFiles,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n uploadNewFile,\n uploadNewImage,\n } = useMessageInputContext<StreamChatGenerics>();\n\n const { Reply } = useMessagesContext<StreamChatGenerics>();\n\n const {\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n suggestions,\n triggerType,\n } = useSuggestionsContext<StreamChatGenerics>();\n\n const { thread } = useThreadContext<StreamChatGenerics>();\n\n const { t } = useTranslationContext();\n\n if (!ownCapabilities.sendMessage && SendMessageDisallowedIndicator) {\n return <SendMessageDisallowedIndicator />;\n }\n\n return (\n <MemoizedMessageInput\n {...{\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n suggestions,\n t,\n thread,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n }}\n {...props}\n />\n );\n};\n\nMessageInput.displayName = 'MessageInput{messageInput}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCountdown2","_contexts","_AttachmentPickerContext","_ChannelContext","_MessageInputContext","_MessagesContext","_OwnCapabilitiesContext","_SuggestionsContext","_ThemeContext","_ThreadContext","_TranslationContext","_AttachmentSelectionBar","_AutoCompleteInput","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","from","test","arr","len","arr2","styles","StyleSheet","create","attachmentSeparator","borderBottomWidth","marginBottom","autoCompleteInputContainer","alignItems","flexDirection","paddingLeft","paddingRight","composerContainer","container","borderTopWidth","padding","inputBoxContainer","borderRadius","borderWidth","flex","optionsContainer","paddingBottom","replyContainer","paddingHorizontal","sendButtonContainer","suggestionsListContainer","elevation","left","position","right","shadowOffset","height","width","shadowOpacity","MessageInputWithContext","props","additionalTextInputProps","asyncIds","asyncUploads","AutoCompleteSuggestionList","closeAttachmentPicker","cooldownEndsAt","CooldownTimer","disabled","editing","FileUploadPreview","fileUploads","giphyActive","ImageUploadPreview","imageUploads","Input","inputBoxRef","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","isOnline","isValidMessage","maxNumberOfFiles","members","mentionedUsers","numberOfUploads","quotedMessage","removeFile","removeImage","Reply","resetInput","SendButton","sending","sendMessageAsync","setShowMoreOptions","ShowThreadMessageInChannelButton","suggestions","thread","threadList","triggerType","uploadNewFile","uploadNewImage","watchers","_useState","useState","_useState2","_slicedToArray2","setHeight","_useTranslationContex","useTranslationContext","t","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","border","grey_whisper","white","white_smoke","_useTheme$theme$messa","messageInput","attachmentSelectionBar","focusedInputBoxContainer","suggestionListContainer","_useAttachmentPickerC","useAttachmentPickerContext","attachmentPickerBottomSheetHeight","attachmentSelectionBarHeight","bottomInset","selectedFiles","selectedImages","selectedPicker","setMaxNumberOfFiles","setSelectedFiles","setSelectedImages","_useCountdown","useCountdown","cooldownRemainingSeconds","seconds","useEffect","_useState3","_useState4","hasResetImages","setHasResetImages","_useState5","_useState6","hasResetFiles","setHasResetFiles","_useState7","_useState8","focused","setFocused","selectedImagesLength","imageUploadsLength","selectedFilesLength","fileUploadsLength","imagesForInput","forEach","image","id","file","MEGA_BYTES_TO_BYTES","MAX_FILE_SIZE_TO_UPLOAD_IN_MB","uploadImagesHandler","imageToUpload","find","selectedImage","uploadedImage","imageUpload","uri","url","Number","size","Alert","alert","filter","removeImagesHandler","imagesToRemove","fileToUpload","selectedFile","uploadedFile","fileUpload","filesToRemove","updatedSelectedImages","map","source","Boolean","updatedSelectedFiles","duration","mimeType","editingExists","current","focus","asyncIdsString","join","asyncUploadsString","values","_ref","state","keys","getMembers","result","member","user","push","getUsers","users","concat","_toConsumableArray2","getWatchers","uniqueUsers","_iterator","_step","usersArray","apply","additionalTextInputContainerProps","_extends2","editable","undefined","memoizedAdditionalTextInputProps","useMemo","onBlur","event","onFocus","createElement","Fragment","View","onLayout","_ref2","newHeight","nativeEvent","layout","style","backgroundColor","borderColor","__self","__source","fileName","lineNumber","columnNumber","paddingVertical","quoted_message","borderBottomColor","marginHorizontal","AutoCompleteInput","cooldownActive","bottom","active","data","onSelect","queryText","AttachmentSelectionBar","areEqual","prevProps","nextProps","prevAdditionalTextInputProps","prevAsyncUploads","prevDisabled","prevEditing","prevFileUploads","prevGiphyActive","prevImageUploads","prevIsOnline","prevIsValidMessage","prevMentionedUsers","prevQuotedMessage","prevSending","prevShowMoreOptions","showMoreOptions","prevSuggestions","prevT","prevThread","prevThreadList","nextAdditionalTextInputProps","nextAsyncUploads","nextDisabled","nextEditing","nextFileUploads","nextGiphyActive","nextImageUploads","nextIsOnline","nextIsValidMessage","nextMentionedUsers","nextQuotedMessage","nextSending","nextShowMoreOptions","nextSuggestions","nextT","nextThread","nextThreadList","tEqual","additionalTextInputPropsEven","disabledEqual","editingEqual","imageUploadsEqual","giphyActiveEqual","quotedMessageEqual","sendingEqual","showMoreOptionsEqual","isOnlineEqual","isValidMessageEqual","asyncUploadsEqual","every","fileUploadsEqual","mentionedUsersEqual","suggestionsEqual","_ref3","index","threadEqual","text","reply_count","threadListEqual","MemoizedMessageInput","React","memo","MessageInput","_useChatContext","useChatContext","ownCapabilities","useOwnCapabilitiesContext","_useChannelContext","useChannelContext","_useChannelContext$di","_useMessageInputConte","useMessageInputContext","clearEditingState","clearQuotedMessageState","SendMessageDisallowedIndicator","setGiphyActive","_useMessagesContext","useMessagesContext","_useSuggestionsContex","useSuggestionsContext","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","_useThreadContext","useThreadContext","_useTranslationContex2","sendMessage","exports","displayName"],"sources":["MessageInput.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport {\n Alert,\n NativeSyntheticEvent,\n StyleSheet,\n TextInputFocusEventData,\n View,\n} from 'react-native';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { useCountdown } from './hooks/useCountdown';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport {\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { Asset, DefaultStreamChatGenerics } from '../../types/types';\nimport { AttachmentSelectionBar } from '../AttachmentPicker/components/AttachmentSelectionBar';\nimport { AutoCompleteInput } from '../AutoCompleteInput/AutoCompleteInput';\n\nconst styles = StyleSheet.create({\n attachmentSeparator: {\n borderBottomWidth: 1,\n marginBottom: 10,\n },\n autoCompleteInputContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 16,\n paddingRight: 16,\n },\n composerContainer: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n container: {\n borderTopWidth: 1,\n padding: 10,\n },\n inputBoxContainer: {\n borderRadius: 20,\n borderWidth: 1,\n flex: 1,\n },\n optionsContainer: {\n flexDirection: 'row',\n paddingBottom: 10,\n paddingRight: 10,\n },\n replyContainer: { paddingBottom: 12, paddingHorizontal: 8 },\n sendButtonContainer: { paddingBottom: 10, paddingLeft: 10 },\n suggestionsListContainer: {\n borderRadius: 10,\n elevation: 3,\n left: 8,\n position: 'absolute',\n right: 8,\n shadowOffset: { height: 1, width: 0 },\n shadowOpacity: 0.15,\n },\n});\n\ntype MessageInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'isOnline'> &\n Pick<ChannelContextValue<StreamChatGenerics>, 'disabled' | 'members' | 'watchers'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'asyncIds'\n | 'asyncUploads'\n | 'cooldownEndsAt'\n | 'CooldownTimer'\n | 'clearEditingState'\n | 'clearQuotedMessageState'\n | 'closeAttachmentPicker'\n | 'editing'\n | 'FileUploadPreview'\n | 'fileUploads'\n | 'giphyActive'\n | 'ImageUploadPreview'\n | 'imageUploads'\n | 'Input'\n | 'inputBoxRef'\n | 'InputButtons'\n | 'InputEditingStateHeader'\n | 'InputGiphySearch'\n | 'InputReplyStateHeader'\n | 'isValidMessage'\n | 'maxNumberOfFiles'\n | 'mentionedUsers'\n | 'numberOfUploads'\n | 'quotedMessage'\n | 'resetInput'\n | 'SendButton'\n | 'sending'\n | 'sendMessageAsync'\n | 'setShowMoreOptions'\n | 'setGiphyActive'\n | 'showMoreOptions'\n | 'ShowThreadMessageInChannelButton'\n | 'removeFile'\n | 'removeImage'\n | 'uploadNewFile'\n | 'uploadNewImage'\n > &\n Pick<MessagesContextValue<StreamChatGenerics>, 'Reply'> &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n | 'AutoCompleteSuggestionHeader'\n | 'AutoCompleteSuggestionItem'\n | 'AutoCompleteSuggestionList'\n | 'suggestions'\n | 'triggerType'\n > &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'> &\n Pick<TranslationContextValue, 't'> & {\n threadList?: boolean;\n };\n\nconst MessageInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionList,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n setShowMoreOptions,\n ShowThreadMessageInChannelButton,\n suggestions,\n thread,\n threadList,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n } = props;\n\n const [height, setHeight] = useState(0);\n const { t } = useTranslationContext();\n\n const {\n theme: {\n colors: { border, grey_whisper, white, white_smoke },\n messageInput: {\n attachmentSelectionBar,\n autoCompleteInputContainer,\n composerContainer,\n container,\n focusedInputBoxContainer,\n inputBoxContainer,\n optionsContainer,\n replyContainer,\n sendButtonContainer,\n suggestionsListContainer: { container: suggestionListContainer },\n },\n },\n } = useTheme();\n\n const {\n attachmentPickerBottomSheetHeight,\n attachmentSelectionBarHeight,\n bottomInset,\n selectedFiles,\n selectedImages,\n selectedPicker,\n setMaxNumberOfFiles,\n setSelectedFiles,\n setSelectedImages,\n } = useAttachmentPickerContext();\n\n const { seconds: cooldownRemainingSeconds } = useCountdown(cooldownEndsAt);\n\n /**\n * Mounting and un-mounting logic are un-related in following useEffect.\n * While mounting we want to pass maxNumberOfFiles (which is prop on Channel component)\n * to AttachmentPicker (on OverlayProvider)\n *\n * While un-mounting, we want to close the picker e.g., while navigating away.\n */\n useEffect(() => {\n setMaxNumberOfFiles(maxNumberOfFiles ?? 10);\n\n return closeAttachmentPicker;\n }, []);\n\n const [hasResetImages, setHasResetImages] = useState(false);\n const [hasResetFiles, setHasResetFiles] = useState(false);\n const [focused, setFocused] = useState(false);\n const selectedImagesLength = hasResetImages ? selectedImages.length : 0;\n const imageUploadsLength = hasResetImages ? imageUploads.length : 0;\n const selectedFilesLength = hasResetFiles ? selectedFiles.length : 0;\n const fileUploadsLength = hasResetFiles ? fileUploads.length : 0;\n const imagesForInput = (!!thread && !!threadList) || (!thread && !threadList);\n\n useEffect(() => {\n setSelectedImages([]);\n if (imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n return () => setSelectedImages([]);\n }, []);\n\n useEffect(() => {\n setSelectedFiles([]);\n if (fileUploads.length) {\n fileUploads.forEach((file) => removeFile(file.id));\n }\n return () => setSelectedFiles([]);\n }, []);\n\n useEffect(() => {\n if (hasResetImages === false && imageUploadsLength === 0 && selectedImagesLength === 0) {\n setHasResetImages(true);\n }\n }, [imageUploadsLength, selectedImagesLength]);\n\n useEffect(() => {\n if (hasResetFiles === false && fileUploadsLength === 0 && selectedFilesLength === 0) {\n setHasResetFiles(true);\n }\n }, [fileUploadsLength, selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput === false && imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n }, [imagesForInput]);\n\n const MEGA_BYTES_TO_BYTES = 1024 * 1024;\n const MAX_FILE_SIZE_TO_UPLOAD_IN_MB = 100;\n\n const uploadImagesHandler = () => {\n const imageToUpload = selectedImages.find((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return !uploadedImage;\n });\n // Check if the file size of the image exceeds the threshold of 100MB\n if (\n imageToUpload &&\n Number(imageToUpload.size) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB\n ) {\n Alert.alert(\n t(\n `Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.`,\n { MAX_FILE_SIZE_TO_UPLOAD_IN_MB },\n ),\n );\n setSelectedImages(\n selectedImages.filter((selectedImage) => selectedImage.uri !== imageToUpload.uri),\n );\n } else {\n if (imageToUpload) uploadNewImage(imageToUpload);\n }\n };\n\n const removeImagesHandler = () => {\n const imagesToRemove = imageUploads.filter(\n (imageUpload) =>\n !selectedImages.find(\n (selectedImage) =>\n selectedImage.uri === imageUpload.file.uri || selectedImage.uri === imageUpload.url,\n ),\n );\n imagesToRemove.forEach((image) => removeImage(image.id));\n };\n\n useEffect(() => {\n if (imagesForInput) {\n if (selectedImagesLength > imageUploadsLength) {\n /** User selected an image in bottom sheet attachment picker */\n uploadImagesHandler();\n } else {\n /** User de-selected an image in bottom sheet attachment picker */\n removeImagesHandler();\n }\n }\n }, [selectedImagesLength]);\n\n useEffect(() => {\n if (selectedFilesLength > fileUploadsLength) {\n /** User selected a video in bottom sheet attachment picker */\n const fileToUpload = selectedFiles.find((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return !uploadedFile;\n });\n // Check if the file size exceeds the threshold of 100MB\n if (\n fileToUpload &&\n Number(fileToUpload.size) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB\n ) {\n Alert.alert(\n t(\n `Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.`,\n { MAX_FILE_SIZE_TO_UPLOAD_IN_MB },\n ),\n );\n setSelectedFiles(\n selectedFiles.filter((selectedFile) => selectedFile.uri !== fileToUpload.uri),\n );\n } else {\n if (fileToUpload) uploadNewFile(fileToUpload);\n }\n } else {\n /** User de-selected a video in bottom sheet attachment picker */\n const filesToRemove = fileUploads.filter(\n (fileUpload) =>\n !selectedFiles.find(\n (selectedFile) =>\n selectedFile.uri === fileUpload.file.uri || selectedFile.uri === fileUpload.url,\n ),\n );\n filesToRemove.forEach((file) => removeFile(file.id));\n }\n }, [selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput) {\n if (imageUploadsLength < selectedImagesLength) {\n /** User removed some image from seleted images within ImageUploadPreview. */\n const updatedSelectedImages = selectedImages.filter((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return uploadedImage;\n });\n setSelectedImages(updatedSelectedImages);\n } else if (imageUploadsLength > selectedImagesLength) {\n /**\n * User is editing some message which contains image attachments OR\n * image attachment is added from custom image picker (other than the default bottomsheet image picker)\n * using `uploadNewImage` function from `MessageInputContext`.\n **/\n setSelectedImages(\n imageUploads\n .map((imageUpload) => ({\n height: imageUpload.file.height,\n source: imageUpload.file.source,\n uri: imageUpload.url || imageUpload.file.uri,\n width: imageUpload.file.width,\n }))\n .filter(Boolean) as Asset[],\n );\n }\n }\n }, [imageUploadsLength]);\n\n useEffect(() => {\n if (fileUploadsLength < selectedFilesLength) {\n /** User removed some video from seleted files within ImageUploadPreview. */\n const updatedSelectedFiles = selectedFiles.filter((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return uploadedFile;\n });\n setSelectedFiles(updatedSelectedFiles);\n } else if (fileUploadsLength > selectedFilesLength) {\n /**\n * User is editing some message which contains video attachments OR\n * video attachment is added from custom image picker (other than the default bottom-sheet image picker)\n * using `uploadNewFile` function from `MessageInputContext`.\n **/\n setSelectedFiles(\n fileUploads.map((fileUpload) => ({\n duration: fileUpload.file.duration,\n mimeType: fileUpload.file.mimeType,\n name: fileUpload.file.name,\n size: fileUpload.file.size,\n uri: fileUpload.file.uri,\n })),\n );\n }\n }, [fileUploadsLength]);\n\n const editingExists = !!editing;\n useEffect(() => {\n if (editing && inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n\n /**\n * Make sure to test `initialValue` functionality, if you are modifying following condition.\n *\n * We have the following condition, to make sure - when user comes out of \"editing message\" state,\n * we wipe out all the state around message input such as text, mentioned users, image uploads etc.\n * But it also means, this condition will be fired up on first render, which may result in clearing\n * the initial value set on input box, through the prop - `initialValue`.\n * This prop generally gets used for the case of draft message functionality.\n */\n if (\n !editing &&\n (giphyActive ||\n fileUploads.length > 0 ||\n mentionedUsers.length > 0 ||\n imageUploads.length > 0 ||\n numberOfUploads > 0)\n ) {\n resetInput();\n }\n }, [editingExists]);\n\n const asyncIdsString = asyncIds.join();\n const asyncUploadsString = Object.values(asyncUploads)\n .map(({ state, url }) => `${state}${url}`)\n .join();\n useEffect(() => {\n if (Object.keys(asyncUploads).length) {\n /**\n * When successful image upload response occurs after hitting send,\n * send a follow up message with the image\n */\n sending.current = true;\n asyncIds.forEach((id) => sendMessageAsync(id));\n sending.current = false;\n }\n }, [asyncIdsString, asyncUploadsString, sendMessageAsync]);\n\n const getMembers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (members && Object.values(members).length) {\n Object.values(members).forEach((member) => {\n if (member.user) {\n result.push(member.user);\n }\n });\n }\n\n return result;\n };\n\n const getUsers = () => {\n const users = [...getMembers(), ...getWatchers()];\n\n // make sure we don't list users twice\n const uniqueUsers: { [key: string]: UserResponse<StreamChatGenerics> } = {};\n for (const user of users) {\n if (user && !uniqueUsers[user.id]) {\n uniqueUsers[user.id] = user;\n }\n }\n const usersArray = Object.values(uniqueUsers);\n\n return usersArray;\n };\n\n const getWatchers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (watchers && Object.values(watchers).length) {\n result.push(...Object.values(watchers));\n }\n\n return result;\n };\n\n const additionalTextInputContainerProps = {\n editable: disabled ? false : undefined,\n ...additionalTextInputProps,\n };\n\n const memoizedAdditionalTextInputProps = useMemo(\n () => ({\n ...additionalTextInputProps,\n onBlur: (event: NativeSyntheticEvent<TextInputFocusEventData>) => {\n if (additionalTextInputProps?.onBlur) {\n additionalTextInputProps?.onBlur(event);\n }\n if (setFocused) setFocused(false);\n setShowMoreOptions(true);\n },\n onFocus: (event: NativeSyntheticEvent<TextInputFocusEventData>) => {\n if (additionalTextInputProps?.onFocus) {\n additionalTextInputProps.onFocus(event);\n }\n if (setFocused) setFocused(true);\n },\n }),\n [additionalTextInputProps],\n );\n\n return (\n <>\n <View\n onLayout={({\n nativeEvent: {\n layout: { height: newHeight },\n },\n }) => setHeight(newHeight)}\n style={[styles.container, { backgroundColor: white, borderColor: border }, container]}\n >\n {editing && <InputEditingStateHeader />}\n {quotedMessage && <InputReplyStateHeader />}\n <View style={[styles.composerContainer, composerContainer]}>\n {Input ? (\n <Input\n additionalTextInputProps={additionalTextInputContainerProps}\n getUsers={getUsers}\n />\n ) : (\n <>\n <View style={[styles.optionsContainer, optionsContainer]}>\n {InputButtons && <InputButtons />}\n </View>\n <View\n style={[\n styles.inputBoxContainer,\n {\n borderColor: grey_whisper,\n paddingVertical: giphyActive ? 8 : 12,\n },\n inputBoxContainer,\n focused ? focusedInputBoxContainer : null,\n ]}\n >\n {((typeof editing !== 'boolean' && editing?.quoted_message) || quotedMessage) && (\n <View style={[styles.replyContainer, replyContainer]}>\n <Reply />\n </View>\n )}\n {imageUploads.length ? <ImageUploadPreview /> : null}\n {imageUploads.length && fileUploads.length ? (\n <View\n style={[\n styles.attachmentSeparator,\n {\n borderBottomColor: grey_whisper,\n marginHorizontal: giphyActive ? 8 : 12,\n },\n ]}\n />\n ) : null}\n {fileUploads.length ? <FileUploadPreview /> : null}\n {giphyActive ? (\n <InputGiphySearch disabled={!isOnline} />\n ) : (\n <View style={[styles.autoCompleteInputContainer, autoCompleteInputContainer]}>\n <AutoCompleteInput<StreamChatGenerics>\n additionalTextInputProps={memoizedAdditionalTextInputProps}\n cooldownActive={!!cooldownRemainingSeconds}\n />\n </View>\n )}\n </View>\n <View style={[styles.sendButtonContainer, sendButtonContainer]}>\n {cooldownRemainingSeconds ? (\n <CooldownTimer seconds={cooldownRemainingSeconds} />\n ) : (\n <SendButton\n disabled={\n disabled || sending.current || !isValidMessage() || (giphyActive && !isOnline)\n }\n />\n )}\n </View>\n </>\n )}\n </View>\n <ShowThreadMessageInChannelButton threadList={threadList} />\n </View>\n\n {triggerType && suggestions ? (\n <View\n style={[\n suggestionListContainer,\n styles.suggestionsListContainer,\n { backgroundColor: white, bottom: height },\n ]}\n >\n <AutoCompleteSuggestionList\n active={!!suggestions}\n data={suggestions.data}\n onSelect={suggestions.onSelect}\n queryText={suggestions.queryText}\n triggerType={triggerType}\n />\n </View>\n ) : null}\n {selectedPicker && (\n <View\n style={[\n {\n backgroundColor: white_smoke,\n height:\n (attachmentPickerBottomSheetHeight\n ? attachmentPickerBottomSheetHeight + (attachmentSelectionBarHeight ?? 52)\n : 360) - bottomInset,\n },\n attachmentSelectionBar,\n ]}\n >\n <AttachmentSelectionBar />\n </View>\n )}\n </>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageInputPropsWithContext<StreamChatGenerics>,\n nextProps: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps: prevAdditionalTextInputProps,\n asyncUploads: prevAsyncUploads,\n disabled: prevDisabled,\n editing: prevEditing,\n fileUploads: prevFileUploads,\n giphyActive: prevGiphyActive,\n imageUploads: prevImageUploads,\n isOnline: prevIsOnline,\n isValidMessage: prevIsValidMessage,\n mentionedUsers: prevMentionedUsers,\n quotedMessage: prevQuotedMessage,\n sending: prevSending,\n showMoreOptions: prevShowMoreOptions,\n suggestions: prevSuggestions,\n t: prevT,\n thread: prevThread,\n threadList: prevThreadList,\n } = prevProps;\n const {\n additionalTextInputProps: nextAdditionalTextInputProps,\n asyncUploads: nextAsyncUploads,\n disabled: nextDisabled,\n editing: nextEditing,\n fileUploads: nextFileUploads,\n giphyActive: nextGiphyActive,\n imageUploads: nextImageUploads,\n isOnline: nextIsOnline,\n isValidMessage: nextIsValidMessage,\n mentionedUsers: nextMentionedUsers,\n quotedMessage: nextQuotedMessage,\n sending: nextSending,\n showMoreOptions: nextShowMoreOptions,\n suggestions: nextSuggestions,\n t: nextT,\n thread: nextThread,\n threadList: nextThreadList,\n } = nextProps;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const additionalTextInputPropsEven =\n prevAdditionalTextInputProps === nextAdditionalTextInputProps;\n if (!additionalTextInputPropsEven) return false;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const editingEqual = !!prevEditing === !!nextEditing;\n if (!editingEqual) return false;\n\n const imageUploadsEqual = prevImageUploads.length === nextImageUploads.length;\n if (!imageUploadsEqual) return false;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const quotedMessageEqual =\n !!prevQuotedMessage &&\n !!nextQuotedMessage &&\n typeof prevQuotedMessage !== 'boolean' &&\n typeof nextQuotedMessage !== 'boolean'\n ? prevQuotedMessage.id === nextQuotedMessage.id\n : !!prevQuotedMessage === !!nextQuotedMessage;\n if (!quotedMessageEqual) return false;\n\n const sendingEqual = prevSending.current === nextSending.current;\n if (!sendingEqual) return false;\n\n const showMoreOptionsEqual = prevShowMoreOptions === nextShowMoreOptions;\n if (!showMoreOptionsEqual) return false;\n\n const isOnlineEqual = prevIsOnline === nextIsOnline;\n if (!isOnlineEqual) return false;\n\n const isValidMessageEqual = prevIsValidMessage() === nextIsValidMessage();\n if (!isValidMessageEqual) return false;\n\n const asyncUploadsEqual = Object.keys(prevAsyncUploads).every(\n (key) =>\n prevAsyncUploads[key].state === nextAsyncUploads[key].state &&\n prevAsyncUploads[key].url === nextAsyncUploads[key].url,\n );\n if (!asyncUploadsEqual) return false;\n\n const fileUploadsEqual = prevFileUploads.length === nextFileUploads.length;\n if (!fileUploadsEqual) return false;\n\n const mentionedUsersEqual = prevMentionedUsers.length === nextMentionedUsers.length;\n if (!mentionedUsersEqual) return false;\n\n const suggestionsEqual =\n !!prevSuggestions?.data && !!nextSuggestions?.data\n ? prevSuggestions.data.length === nextSuggestions.data.length &&\n prevSuggestions.data.every(({ name }, index) => name === nextSuggestions.data[index].name)\n : !!prevSuggestions === !!nextSuggestions;\n if (!suggestionsEqual) return false;\n\n const threadEqual =\n prevThread?.id === nextThread?.id &&\n prevThread?.text === nextThread?.text &&\n prevThread?.reply_count === nextThread?.reply_count;\n if (!threadEqual) return false;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageInput = React.memo(\n MessageInputWithContext,\n areEqual,\n) as typeof MessageInputWithContext;\n\nexport type MessageInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageInputPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI Component for message input\n * It's a consumer of\n * [Channel Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/channel-context/),\n * [Chat Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/chat-context/),\n * [MessageInput Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/message-input-context/),\n * [Suggestions Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/suggestions-context/), and\n * [Translation Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/translation-context/)\n */\nexport const MessageInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputProps<StreamChatGenerics>,\n) => {\n const { isOnline } = useChatContext();\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const { disabled = false, members, watchers } = useChannelContext<StreamChatGenerics>();\n\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxNumberOfFiles,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n uploadNewFile,\n uploadNewImage,\n } = useMessageInputContext<StreamChatGenerics>();\n\n const { Reply } = useMessagesContext<StreamChatGenerics>();\n\n const {\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n suggestions,\n triggerType,\n } = useSuggestionsContext<StreamChatGenerics>();\n\n const { thread } = useThreadContext<StreamChatGenerics>();\n\n const { t } = useTranslationContext();\n\n if (!ownCapabilities.sendMessage && SendMessageDisallowedIndicator) {\n return <SendMessageDisallowedIndicator />;\n }\n\n return (\n <MemoizedMessageInput\n {...{\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n suggestions,\n t,\n thread,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n }}\n {...props}\n />\n );\n};\n\nMessageInput.displayName = 'MessageInput{messageInput}';\n"],"mappings":"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"}
@@ -233,6 +233,7 @@ var defaultTheme = {
233
233
  fileTextContainer: {},
234
234
  flatList: {}
235
235
  },
236
+ focusedInputBoxContainer: {},
236
237
  giphyCommandInput: {
237
238
  giphyContainer: {},
238
239
  giphyText: {}