stream-chat-react-native-core 5.15.1-beta.1 → 5.15.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (685) hide show
  1. package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
  2. package/lib/commonjs/components/Attachment/AttachmentActions.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
  4. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  6. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
  7. package/lib/commonjs/components/Attachment/FileIcon.js.map +1 -1
  8. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  9. package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
  10. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  11. package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js.map +1 -1
  12. package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js.map +1 -1
  13. package/lib/commonjs/components/Attachment/ImageReloadIndicator.js.map +1 -1
  14. package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
  15. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -1
  16. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -1
  17. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -1
  18. package/lib/commonjs/components/Attachment/utils/getAspectRatio.js.map +1 -1
  19. package/lib/commonjs/components/Attachment/utils/getGalleryImageBorderRadius.js.map +1 -1
  20. package/lib/commonjs/components/Attachment/utils/openUrlSafely.js.map +1 -1
  21. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  22. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js.map +1 -1
  23. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerError.js.map +1 -1
  24. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerErrorImage.js.map +1 -1
  25. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +14 -16
  26. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
  27. package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
  28. package/lib/commonjs/components/AttachmentPicker/components/CameraSelectorIcon.js.map +1 -1
  29. package/lib/commonjs/components/AttachmentPicker/components/FileSelectorIcon.js.map +1 -1
  30. package/lib/commonjs/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js.map +1 -1
  31. package/lib/commonjs/components/AttachmentPicker/components/ImageSelectorIcon.js.map +1 -1
  32. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  33. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -1
  34. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -1
  35. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
  36. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  37. package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
  38. package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
  39. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  40. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  41. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  42. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  43. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
  44. package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
  45. package/lib/commonjs/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
  46. package/lib/commonjs/components/Channel/hooks/useCreateTypingContext.js.map +1 -1
  47. package/lib/commonjs/components/Channel/hooks/useTargetedMessage.js.map +1 -1
  48. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  49. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
  50. package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js.map +1 -1
  51. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
  52. package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js.map +1 -1
  53. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
  54. package/lib/commonjs/components/ChannelList/Skeleton.js.map +1 -1
  55. package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  56. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  57. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  58. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  59. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  60. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  61. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  62. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  63. package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  64. package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  65. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  66. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  67. package/lib/commonjs/components/ChannelList/utils.js.map +1 -1
  68. package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js.map +1 -1
  69. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  70. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  71. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  72. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -1
  73. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
  74. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  75. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  76. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  77. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  78. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
  79. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  80. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  81. package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +1 -1
  82. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  83. package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
  84. package/lib/commonjs/components/Chat/hooks/useMutedUsers.js.map +1 -1
  85. package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js.map +1 -1
  86. package/lib/commonjs/components/ImageBackground.js.map +1 -1
  87. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  88. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  89. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  90. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  91. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  92. package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
  93. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  94. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  95. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
  96. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  97. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js.map +1 -1
  98. package/lib/commonjs/components/Indicators/LoadingDot.js.map +1 -1
  99. package/lib/commonjs/components/Indicators/LoadingDots.js.map +1 -1
  100. package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js.map +1 -1
  101. package/lib/commonjs/components/Indicators/LoadingIndicator.js.map +1 -1
  102. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
  103. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js.map +1 -1
  104. package/lib/commonjs/components/Message/Message.js.map +1 -1
  105. package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
  106. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  107. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  108. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  109. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -1
  110. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js.map +1 -1
  111. package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
  112. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  113. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  114. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  115. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
  116. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
  117. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  118. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js.map +1 -1
  119. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  120. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  121. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
  122. package/lib/commonjs/components/MessageInput/AttachButton.js.map +1 -1
  123. package/lib/commonjs/components/MessageInput/CommandsButton.js.map +1 -1
  124. package/lib/commonjs/components/MessageInput/CooldownTimer.js.map +1 -1
  125. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  126. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  127. package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
  128. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  129. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js.map +1 -1
  130. package/lib/commonjs/components/MessageInput/SendButton.js.map +1 -1
  131. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -1
  132. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  133. package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js.map +1 -1
  134. package/lib/commonjs/components/MessageInput/components/InputEditingStateHeader.js.map +1 -1
  135. package/lib/commonjs/components/MessageInput/components/InputGiphySearch.js.map +1 -1
  136. package/lib/commonjs/components/MessageInput/components/InputReplyStateHeader.js.map +1 -1
  137. package/lib/commonjs/components/MessageInput/hooks/useCooldown.js.map +1 -1
  138. package/lib/commonjs/components/MessageList/DateHeader.js.map +1 -1
  139. package/lib/commonjs/components/MessageList/InlineDateSeparator.js.map +1 -1
  140. package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js.map +1 -1
  141. package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js.map +1 -1
  142. package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js.map +1 -1
  143. package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js.map +1 -1
  144. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  145. package/lib/commonjs/components/MessageList/MessageSystem.js.map +1 -1
  146. package/lib/commonjs/components/MessageList/NetworkDownIndicator.js.map +1 -1
  147. package/lib/commonjs/components/MessageList/ScrollToBottomButton.js.map +1 -1
  148. package/lib/commonjs/components/MessageList/TypingIndicator.js.map +1 -1
  149. package/lib/commonjs/components/MessageList/TypingIndicatorContainer.js.map +1 -1
  150. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  151. package/lib/commonjs/components/MessageList/hooks/useTypingString.js.map +1 -1
  152. package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
  153. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
  154. package/lib/commonjs/components/MessageList/utils/getReadStates.js.map +1 -1
  155. package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -1
  156. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  157. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  158. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js.map +1 -1
  159. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  160. package/lib/commonjs/components/MessageOverlay/OverlayReactions.js.map +1 -1
  161. package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js.map +1 -1
  162. package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -1
  163. package/lib/commonjs/components/ProgressControl/ProgressControl.js.map +1 -1
  164. package/lib/commonjs/components/RTLComponents/WritingDirectionAwareText.js.map +1 -1
  165. package/lib/commonjs/components/Reply/Reply.js.map +1 -1
  166. package/lib/commonjs/components/Spinner/Spinner.js.map +1 -1
  167. package/lib/commonjs/components/Thread/Thread.js.map +1 -1
  168. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  169. package/lib/commonjs/components/docs/data.js.map +1 -1
  170. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -1
  171. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  172. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  173. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  174. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
  175. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -1
  176. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  177. package/lib/commonjs/contexts/debugContext/DebugContext.js.map +1 -1
  178. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  179. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js.map +1 -1
  180. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  181. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  182. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  183. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  184. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  185. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.js.map +1 -1
  186. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -1
  187. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  188. package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
  189. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  190. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -1
  191. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  192. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  193. package/lib/commonjs/contexts/themeContext/ThemeContext.js.map +1 -1
  194. package/lib/commonjs/contexts/threadContext/ThreadContext.js.map +1 -1
  195. package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
  196. package/lib/commonjs/contexts/typingContext/TypingContext.js.map +1 -1
  197. package/lib/commonjs/emoji-data/compile.js.map +1 -1
  198. package/lib/commonjs/emoji-data/index.js.map +1 -1
  199. package/lib/commonjs/hooks/useAppStateListener.js.map +1 -1
  200. package/lib/commonjs/hooks/useIsMountedRef.js.map +1 -1
  201. package/lib/commonjs/hooks/useLoadingImage.js.map +1 -1
  202. package/lib/commonjs/hooks/useStreami18n.js.map +1 -1
  203. package/lib/commonjs/hooks/useTranslatedMessage.js.map +1 -1
  204. package/lib/commonjs/icons/ArrowRight.js.map +1 -1
  205. package/lib/commonjs/icons/AtMentions.js.map +1 -1
  206. package/lib/commonjs/icons/Attach.js.map +1 -1
  207. package/lib/commonjs/icons/Audio.js.map +1 -1
  208. package/lib/commonjs/icons/CSV.js.map +1 -1
  209. package/lib/commonjs/icons/Camera.js.map +1 -1
  210. package/lib/commonjs/icons/Check.js.map +1 -1
  211. package/lib/commonjs/icons/CheckAll.js.map +1 -1
  212. package/lib/commonjs/icons/CheckSend.js.map +1 -1
  213. package/lib/commonjs/icons/CircleClose.js.map +1 -1
  214. package/lib/commonjs/icons/CirclePlus.js.map +1 -1
  215. package/lib/commonjs/icons/CircleRight.js.map +1 -1
  216. package/lib/commonjs/icons/Close.js.map +1 -1
  217. package/lib/commonjs/icons/Copy.js.map +1 -1
  218. package/lib/commonjs/icons/CurveLineLeftUp.js.map +1 -1
  219. package/lib/commonjs/icons/DOC.js.map +1 -1
  220. package/lib/commonjs/icons/DOCX.js.map +1 -1
  221. package/lib/commonjs/icons/Delete.js.map +1 -1
  222. package/lib/commonjs/icons/Down.js.map +1 -1
  223. package/lib/commonjs/icons/DownloadArrow.js.map +1 -1
  224. package/lib/commonjs/icons/DownloadCloud.js.map +1 -1
  225. package/lib/commonjs/icons/Edit.js.map +1 -1
  226. package/lib/commonjs/icons/Error.js.map +1 -1
  227. package/lib/commonjs/icons/Eye.js.map +1 -1
  228. package/lib/commonjs/icons/Flag.js.map +1 -1
  229. package/lib/commonjs/icons/Folder.js.map +1 -1
  230. package/lib/commonjs/icons/GenericFile.js.map +1 -1
  231. package/lib/commonjs/icons/GiphyIcon.js.map +1 -1
  232. package/lib/commonjs/icons/Grid.js.map +1 -1
  233. package/lib/commonjs/icons/Group.js.map +1 -1
  234. package/lib/commonjs/icons/HTML.js.map +1 -1
  235. package/lib/commonjs/icons/Imgur.js.map +1 -1
  236. package/lib/commonjs/icons/LOLReaction.js.map +1 -1
  237. package/lib/commonjs/icons/Lightning.js.map +1 -1
  238. package/lib/commonjs/icons/Link.js.map +1 -1
  239. package/lib/commonjs/icons/Loading.js.map +1 -1
  240. package/lib/commonjs/icons/Logo.js.map +1 -1
  241. package/lib/commonjs/icons/LoveReaction.js.map +1 -1
  242. package/lib/commonjs/icons/MD.js.map +1 -1
  243. package/lib/commonjs/icons/MailOpen.js.map +1 -1
  244. package/lib/commonjs/icons/MenuPointHorizontal.js.map +1 -1
  245. package/lib/commonjs/icons/MenuPointVertical.js.map +1 -1
  246. package/lib/commonjs/icons/MessageFlag.js.map +1 -1
  247. package/lib/commonjs/icons/MessageIcon.js.map +1 -1
  248. package/lib/commonjs/icons/Mute.js.map +1 -1
  249. package/lib/commonjs/icons/Notification.js.map +1 -1
  250. package/lib/commonjs/icons/ODT.js.map +1 -1
  251. package/lib/commonjs/icons/PDF.js.map +1 -1
  252. package/lib/commonjs/icons/PPT.js.map +1 -1
  253. package/lib/commonjs/icons/PPTX.js.map +1 -1
  254. package/lib/commonjs/icons/Pause.js.map +1 -1
  255. package/lib/commonjs/icons/Picture.js.map +1 -1
  256. package/lib/commonjs/icons/Pin.js.map +1 -1
  257. package/lib/commonjs/icons/PinHeader.js.map +1 -1
  258. package/lib/commonjs/icons/Play.js.map +1 -1
  259. package/lib/commonjs/icons/RAR.js.map +1 -1
  260. package/lib/commonjs/icons/RTF.js.map +1 -1
  261. package/lib/commonjs/icons/Recorder.js.map +1 -1
  262. package/lib/commonjs/icons/Refresh.js.map +1 -1
  263. package/lib/commonjs/icons/SEVEN_Z.js.map +1 -1
  264. package/lib/commonjs/icons/Search.js.map +1 -1
  265. package/lib/commonjs/icons/SendRight.js.map +1 -1
  266. package/lib/commonjs/icons/SendUp.js.map +1 -1
  267. package/lib/commonjs/icons/Share.js.map +1 -1
  268. package/lib/commonjs/icons/ShareRightArrow.js.map +1 -1
  269. package/lib/commonjs/icons/Smile.js.map +1 -1
  270. package/lib/commonjs/icons/Sound.js.map +1 -1
  271. package/lib/commonjs/icons/TAR.js.map +1 -1
  272. package/lib/commonjs/icons/TXT.js.map +1 -1
  273. package/lib/commonjs/icons/ThreadReply.js.map +1 -1
  274. package/lib/commonjs/icons/ThumbsDownReaction.js.map +1 -1
  275. package/lib/commonjs/icons/ThumbsUpReaction.js.map +1 -1
  276. package/lib/commonjs/icons/Time.js.map +1 -1
  277. package/lib/commonjs/icons/Unknown.js.map +1 -1
  278. package/lib/commonjs/icons/Unpin.js.map +1 -1
  279. package/lib/commonjs/icons/User.js.map +1 -1
  280. package/lib/commonjs/icons/UserAdd.js.map +1 -1
  281. package/lib/commonjs/icons/UserAdmin.js.map +1 -1
  282. package/lib/commonjs/icons/UserDelete.js.map +1 -1
  283. package/lib/commonjs/icons/UserMinus.js.map +1 -1
  284. package/lib/commonjs/icons/Video.js.map +1 -1
  285. package/lib/commonjs/icons/Warning.js.map +1 -1
  286. package/lib/commonjs/icons/WutReaction.js.map +1 -1
  287. package/lib/commonjs/icons/XLS.js.map +1 -1
  288. package/lib/commonjs/icons/XLSX.js.map +1 -1
  289. package/lib/commonjs/icons/ZIP.js.map +1 -1
  290. package/lib/commonjs/icons/utils/base.js.map +1 -1
  291. package/lib/commonjs/init.js.map +1 -1
  292. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  293. package/lib/commonjs/mock-builders/api/deleteMessage.js.map +1 -1
  294. package/lib/commonjs/mock-builders/api/deleteReaction.js.map +1 -1
  295. package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
  296. package/lib/commonjs/mock-builders/api/sendReaction.js.map +1 -1
  297. package/lib/commonjs/mock-builders/api/useMockedApis.js.map +1 -1
  298. package/lib/commonjs/mock-builders/event/messageRead.js.map +1 -1
  299. package/lib/commonjs/mock-builders/generator/attachment.js.map +1 -1
  300. package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
  301. package/lib/commonjs/mock-builders/generator/member.js.map +1 -1
  302. package/lib/commonjs/mock-builders/generator/message.js.map +1 -1
  303. package/lib/commonjs/mock-builders/generator/reaction.js.map +1 -1
  304. package/lib/commonjs/mock-builders/generator/user.js.map +1 -1
  305. package/lib/commonjs/mock-builders/mock.js.map +1 -1
  306. package/lib/commonjs/native.js.map +1 -1
  307. package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
  308. package/lib/commonjs/store/apis/deleteReactions.js.map +1 -1
  309. package/lib/commonjs/store/apis/getAllChannelIds.js.map +1 -1
  310. package/lib/commonjs/store/apis/getAppSettings.js.map +1 -1
  311. package/lib/commonjs/store/apis/getChannelMessages.js.map +1 -1
  312. package/lib/commonjs/store/apis/getLastSyncedAt.js.map +1 -1
  313. package/lib/commonjs/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -1
  314. package/lib/commonjs/store/apis/queries/selectChannels.js.map +1 -1
  315. package/lib/commonjs/store/apis/queries/selectMembersForChannels.js.map +1 -1
  316. package/lib/commonjs/store/apis/queries/selectMessagesForChannels.js.map +1 -1
  317. package/lib/commonjs/store/apis/queries/selectReactionsForMessages.js.map +1 -1
  318. package/lib/commonjs/store/apis/queries/selectReadsForChannels.js.map +1 -1
  319. package/lib/commonjs/store/apis/updateMessage.js.map +1 -1
  320. package/lib/commonjs/store/apis/updateReaction.js.map +1 -1
  321. package/lib/commonjs/store/apis/upsertChannels.js.map +1 -1
  322. package/lib/commonjs/store/apis/upsertMembers.js.map +1 -1
  323. package/lib/commonjs/store/apis/upsertReads.js.map +1 -1
  324. package/lib/commonjs/store/apis/utils/convertFilterSortToQuery.js.map +1 -1
  325. package/lib/commonjs/store/mappers/mapDateTimeToStorable.js.map +1 -1
  326. package/lib/commonjs/store/mappers/mapTaskToStorable.js.map +1 -1
  327. package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js.map +1 -1
  328. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  329. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  330. package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -1
  331. package/lib/commonjs/types/types.js.map +1 -1
  332. package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
  333. package/lib/commonjs/utils/Streami18n.js.map +1 -1
  334. package/lib/commonjs/utils/addReactionToLocalState.js.map +1 -1
  335. package/lib/commonjs/utils/date.js.map +1 -1
  336. package/lib/commonjs/utils/getResizedImageUrl.js.map +1 -1
  337. package/lib/commonjs/utils/patchMessageTextCommand.js.map +1 -1
  338. package/lib/commonjs/utils/removeReactionFromLocalState.js.map +1 -1
  339. package/lib/commonjs/utils/utils.js.map +1 -1
  340. package/lib/commonjs/version.json +1 -1
  341. package/lib/module/components/Attachment/Attachment.js.map +1 -1
  342. package/lib/module/components/Attachment/AttachmentActions.js.map +1 -1
  343. package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
  344. package/lib/module/components/Attachment/Card.js.map +1 -1
  345. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  346. package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
  347. package/lib/module/components/Attachment/FileIcon.js.map +1 -1
  348. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  349. package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
  350. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  351. package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js.map +1 -1
  352. package/lib/module/components/Attachment/ImageLoadingIndicator.js.map +1 -1
  353. package/lib/module/components/Attachment/ImageReloadIndicator.js.map +1 -1
  354. package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
  355. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -1
  356. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -1
  357. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -1
  358. package/lib/module/components/Attachment/utils/getAspectRatio.js.map +1 -1
  359. package/lib/module/components/Attachment/utils/getGalleryImageBorderRadius.js.map +1 -1
  360. package/lib/module/components/Attachment/utils/openUrlSafely.js.map +1 -1
  361. package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  362. package/lib/module/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js.map +1 -1
  363. package/lib/module/components/AttachmentPicker/components/AttachmentPickerError.js.map +1 -1
  364. package/lib/module/components/AttachmentPicker/components/AttachmentPickerErrorImage.js.map +1 -1
  365. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +14 -16
  366. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
  367. package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
  368. package/lib/module/components/AttachmentPicker/components/CameraSelectorIcon.js.map +1 -1
  369. package/lib/module/components/AttachmentPicker/components/FileSelectorIcon.js.map +1 -1
  370. package/lib/module/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js.map +1 -1
  371. package/lib/module/components/AttachmentPicker/components/ImageSelectorIcon.js.map +1 -1
  372. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  373. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -1
  374. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -1
  375. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
  376. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  377. package/lib/module/components/Avatar/Avatar.js.map +1 -1
  378. package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
  379. package/lib/module/components/Channel/Channel.js.map +1 -1
  380. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  381. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  382. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  383. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
  384. package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
  385. package/lib/module/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
  386. package/lib/module/components/Channel/hooks/useCreateTypingContext.js.map +1 -1
  387. package/lib/module/components/Channel/hooks/useTargetedMessage.js.map +1 -1
  388. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  389. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
  390. package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js.map +1 -1
  391. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
  392. package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js.map +1 -1
  393. package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
  394. package/lib/module/components/ChannelList/Skeleton.js.map +1 -1
  395. package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  396. package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  397. package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  398. package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  399. package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  400. package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  401. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  402. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  403. package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  404. package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  405. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  406. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  407. package/lib/module/components/ChannelList/utils.js.map +1 -1
  408. package/lib/module/components/ChannelPreview/ChannelAvatar.js.map +1 -1
  409. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  410. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  411. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  412. package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -1
  413. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
  414. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  415. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  416. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  417. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  418. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
  419. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  420. package/lib/module/components/Chat/Chat.js.map +1 -1
  421. package/lib/module/components/Chat/hooks/useAppSettings.js.map +1 -1
  422. package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  423. package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
  424. package/lib/module/components/Chat/hooks/useMutedUsers.js.map +1 -1
  425. package/lib/module/components/Chat/hooks/useSyncDatabase.js.map +1 -1
  426. package/lib/module/components/ImageBackground.js.map +1 -1
  427. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  428. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  429. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  430. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  431. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  432. package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
  433. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  434. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  435. package/lib/module/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
  436. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  437. package/lib/module/components/Indicators/EmptyStateIndicator.js.map +1 -1
  438. package/lib/module/components/Indicators/LoadingDot.js.map +1 -1
  439. package/lib/module/components/Indicators/LoadingDots.js.map +1 -1
  440. package/lib/module/components/Indicators/LoadingErrorIndicator.js.map +1 -1
  441. package/lib/module/components/Indicators/LoadingIndicator.js.map +1 -1
  442. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
  443. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js.map +1 -1
  444. package/lib/module/components/Message/Message.js.map +1 -1
  445. package/lib/module/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
  446. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  447. package/lib/module/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  448. package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  449. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -1
  450. package/lib/module/components/Message/MessageSimple/MessageReplies.js.map +1 -1
  451. package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
  452. package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  453. package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  454. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  455. package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
  456. package/lib/module/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
  457. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  458. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js.map +1 -1
  459. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  460. package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  461. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
  462. package/lib/module/components/MessageInput/AttachButton.js.map +1 -1
  463. package/lib/module/components/MessageInput/CommandsButton.js.map +1 -1
  464. package/lib/module/components/MessageInput/CooldownTimer.js.map +1 -1
  465. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  466. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  467. package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
  468. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  469. package/lib/module/components/MessageInput/MoreOptionsButton.js.map +1 -1
  470. package/lib/module/components/MessageInput/SendButton.js.map +1 -1
  471. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -1
  472. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  473. package/lib/module/components/MessageInput/UploadProgressIndicator.js.map +1 -1
  474. package/lib/module/components/MessageInput/components/InputEditingStateHeader.js.map +1 -1
  475. package/lib/module/components/MessageInput/components/InputGiphySearch.js.map +1 -1
  476. package/lib/module/components/MessageInput/components/InputReplyStateHeader.js.map +1 -1
  477. package/lib/module/components/MessageInput/hooks/useCooldown.js.map +1 -1
  478. package/lib/module/components/MessageList/DateHeader.js.map +1 -1
  479. package/lib/module/components/MessageList/InlineDateSeparator.js.map +1 -1
  480. package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js.map +1 -1
  481. package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js.map +1 -1
  482. package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js.map +1 -1
  483. package/lib/module/components/MessageList/InlineUnreadIndicator.js.map +1 -1
  484. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  485. package/lib/module/components/MessageList/MessageSystem.js.map +1 -1
  486. package/lib/module/components/MessageList/NetworkDownIndicator.js.map +1 -1
  487. package/lib/module/components/MessageList/ScrollToBottomButton.js.map +1 -1
  488. package/lib/module/components/MessageList/TypingIndicator.js.map +1 -1
  489. package/lib/module/components/MessageList/TypingIndicatorContainer.js.map +1 -1
  490. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  491. package/lib/module/components/MessageList/hooks/useTypingString.js.map +1 -1
  492. package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
  493. package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
  494. package/lib/module/components/MessageList/utils/getReadStates.js.map +1 -1
  495. package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -1
  496. package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  497. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  498. package/lib/module/components/MessageOverlay/OverlayBackdrop.js.map +1 -1
  499. package/lib/module/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  500. package/lib/module/components/MessageOverlay/OverlayReactions.js.map +1 -1
  501. package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js.map +1 -1
  502. package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -1
  503. package/lib/module/components/ProgressControl/ProgressControl.js.map +1 -1
  504. package/lib/module/components/RTLComponents/WritingDirectionAwareText.js.map +1 -1
  505. package/lib/module/components/Reply/Reply.js.map +1 -1
  506. package/lib/module/components/Spinner/Spinner.js.map +1 -1
  507. package/lib/module/components/Thread/Thread.js.map +1 -1
  508. package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  509. package/lib/module/components/docs/data.js.map +1 -1
  510. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -1
  511. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  512. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  513. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  514. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
  515. package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -1
  516. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  517. package/lib/module/contexts/debugContext/DebugContext.js.map +1 -1
  518. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  519. package/lib/module/contexts/keyboardContext/KeyboardContext.js.map +1 -1
  520. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  521. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  522. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  523. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  524. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  525. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.js.map +1 -1
  526. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -1
  527. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  528. package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
  529. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  530. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -1
  531. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  532. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  533. package/lib/module/contexts/themeContext/ThemeContext.js.map +1 -1
  534. package/lib/module/contexts/threadContext/ThreadContext.js.map +1 -1
  535. package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
  536. package/lib/module/contexts/typingContext/TypingContext.js.map +1 -1
  537. package/lib/module/emoji-data/compile.js.map +1 -1
  538. package/lib/module/emoji-data/index.js.map +1 -1
  539. package/lib/module/hooks/useAppStateListener.js.map +1 -1
  540. package/lib/module/hooks/useIsMountedRef.js.map +1 -1
  541. package/lib/module/hooks/useLoadingImage.js.map +1 -1
  542. package/lib/module/hooks/useStreami18n.js.map +1 -1
  543. package/lib/module/hooks/useTranslatedMessage.js.map +1 -1
  544. package/lib/module/icons/ArrowRight.js.map +1 -1
  545. package/lib/module/icons/AtMentions.js.map +1 -1
  546. package/lib/module/icons/Attach.js.map +1 -1
  547. package/lib/module/icons/Audio.js.map +1 -1
  548. package/lib/module/icons/CSV.js.map +1 -1
  549. package/lib/module/icons/Camera.js.map +1 -1
  550. package/lib/module/icons/Check.js.map +1 -1
  551. package/lib/module/icons/CheckAll.js.map +1 -1
  552. package/lib/module/icons/CheckSend.js.map +1 -1
  553. package/lib/module/icons/CircleClose.js.map +1 -1
  554. package/lib/module/icons/CirclePlus.js.map +1 -1
  555. package/lib/module/icons/CircleRight.js.map +1 -1
  556. package/lib/module/icons/Close.js.map +1 -1
  557. package/lib/module/icons/Copy.js.map +1 -1
  558. package/lib/module/icons/CurveLineLeftUp.js.map +1 -1
  559. package/lib/module/icons/DOC.js.map +1 -1
  560. package/lib/module/icons/DOCX.js.map +1 -1
  561. package/lib/module/icons/Delete.js.map +1 -1
  562. package/lib/module/icons/Down.js.map +1 -1
  563. package/lib/module/icons/DownloadArrow.js.map +1 -1
  564. package/lib/module/icons/DownloadCloud.js.map +1 -1
  565. package/lib/module/icons/Edit.js.map +1 -1
  566. package/lib/module/icons/Error.js.map +1 -1
  567. package/lib/module/icons/Eye.js.map +1 -1
  568. package/lib/module/icons/Flag.js.map +1 -1
  569. package/lib/module/icons/Folder.js.map +1 -1
  570. package/lib/module/icons/GenericFile.js.map +1 -1
  571. package/lib/module/icons/GiphyIcon.js.map +1 -1
  572. package/lib/module/icons/Grid.js.map +1 -1
  573. package/lib/module/icons/Group.js.map +1 -1
  574. package/lib/module/icons/HTML.js.map +1 -1
  575. package/lib/module/icons/Imgur.js.map +1 -1
  576. package/lib/module/icons/LOLReaction.js.map +1 -1
  577. package/lib/module/icons/Lightning.js.map +1 -1
  578. package/lib/module/icons/Link.js.map +1 -1
  579. package/lib/module/icons/Loading.js.map +1 -1
  580. package/lib/module/icons/Logo.js.map +1 -1
  581. package/lib/module/icons/LoveReaction.js.map +1 -1
  582. package/lib/module/icons/MD.js.map +1 -1
  583. package/lib/module/icons/MailOpen.js.map +1 -1
  584. package/lib/module/icons/MenuPointHorizontal.js.map +1 -1
  585. package/lib/module/icons/MenuPointVertical.js.map +1 -1
  586. package/lib/module/icons/MessageFlag.js.map +1 -1
  587. package/lib/module/icons/MessageIcon.js.map +1 -1
  588. package/lib/module/icons/Mute.js.map +1 -1
  589. package/lib/module/icons/Notification.js.map +1 -1
  590. package/lib/module/icons/ODT.js.map +1 -1
  591. package/lib/module/icons/PDF.js.map +1 -1
  592. package/lib/module/icons/PPT.js.map +1 -1
  593. package/lib/module/icons/PPTX.js.map +1 -1
  594. package/lib/module/icons/Pause.js.map +1 -1
  595. package/lib/module/icons/Picture.js.map +1 -1
  596. package/lib/module/icons/Pin.js.map +1 -1
  597. package/lib/module/icons/PinHeader.js.map +1 -1
  598. package/lib/module/icons/Play.js.map +1 -1
  599. package/lib/module/icons/RAR.js.map +1 -1
  600. package/lib/module/icons/RTF.js.map +1 -1
  601. package/lib/module/icons/Recorder.js.map +1 -1
  602. package/lib/module/icons/Refresh.js.map +1 -1
  603. package/lib/module/icons/SEVEN_Z.js.map +1 -1
  604. package/lib/module/icons/Search.js.map +1 -1
  605. package/lib/module/icons/SendRight.js.map +1 -1
  606. package/lib/module/icons/SendUp.js.map +1 -1
  607. package/lib/module/icons/Share.js.map +1 -1
  608. package/lib/module/icons/ShareRightArrow.js.map +1 -1
  609. package/lib/module/icons/Smile.js.map +1 -1
  610. package/lib/module/icons/Sound.js.map +1 -1
  611. package/lib/module/icons/TAR.js.map +1 -1
  612. package/lib/module/icons/TXT.js.map +1 -1
  613. package/lib/module/icons/ThreadReply.js.map +1 -1
  614. package/lib/module/icons/ThumbsDownReaction.js.map +1 -1
  615. package/lib/module/icons/ThumbsUpReaction.js.map +1 -1
  616. package/lib/module/icons/Time.js.map +1 -1
  617. package/lib/module/icons/Unknown.js.map +1 -1
  618. package/lib/module/icons/Unpin.js.map +1 -1
  619. package/lib/module/icons/User.js.map +1 -1
  620. package/lib/module/icons/UserAdd.js.map +1 -1
  621. package/lib/module/icons/UserAdmin.js.map +1 -1
  622. package/lib/module/icons/UserDelete.js.map +1 -1
  623. package/lib/module/icons/UserMinus.js.map +1 -1
  624. package/lib/module/icons/Video.js.map +1 -1
  625. package/lib/module/icons/Warning.js.map +1 -1
  626. package/lib/module/icons/WutReaction.js.map +1 -1
  627. package/lib/module/icons/XLS.js.map +1 -1
  628. package/lib/module/icons/XLSX.js.map +1 -1
  629. package/lib/module/icons/ZIP.js.map +1 -1
  630. package/lib/module/icons/utils/base.js.map +1 -1
  631. package/lib/module/init.js.map +1 -1
  632. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  633. package/lib/module/mock-builders/api/deleteMessage.js.map +1 -1
  634. package/lib/module/mock-builders/api/deleteReaction.js.map +1 -1
  635. package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
  636. package/lib/module/mock-builders/api/sendReaction.js.map +1 -1
  637. package/lib/module/mock-builders/api/useMockedApis.js.map +1 -1
  638. package/lib/module/mock-builders/event/messageRead.js.map +1 -1
  639. package/lib/module/mock-builders/generator/attachment.js.map +1 -1
  640. package/lib/module/mock-builders/generator/channel.js.map +1 -1
  641. package/lib/module/mock-builders/generator/member.js.map +1 -1
  642. package/lib/module/mock-builders/generator/message.js.map +1 -1
  643. package/lib/module/mock-builders/generator/reaction.js.map +1 -1
  644. package/lib/module/mock-builders/generator/user.js.map +1 -1
  645. package/lib/module/mock-builders/mock.js.map +1 -1
  646. package/lib/module/native.js.map +1 -1
  647. package/lib/module/store/QuickSqliteClient.js.map +1 -1
  648. package/lib/module/store/apis/deleteReactions.js.map +1 -1
  649. package/lib/module/store/apis/getAllChannelIds.js.map +1 -1
  650. package/lib/module/store/apis/getAppSettings.js.map +1 -1
  651. package/lib/module/store/apis/getChannelMessages.js.map +1 -1
  652. package/lib/module/store/apis/getLastSyncedAt.js.map +1 -1
  653. package/lib/module/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -1
  654. package/lib/module/store/apis/queries/selectChannels.js.map +1 -1
  655. package/lib/module/store/apis/queries/selectMembersForChannels.js.map +1 -1
  656. package/lib/module/store/apis/queries/selectMessagesForChannels.js.map +1 -1
  657. package/lib/module/store/apis/queries/selectReactionsForMessages.js.map +1 -1
  658. package/lib/module/store/apis/queries/selectReadsForChannels.js.map +1 -1
  659. package/lib/module/store/apis/updateMessage.js.map +1 -1
  660. package/lib/module/store/apis/updateReaction.js.map +1 -1
  661. package/lib/module/store/apis/upsertChannels.js.map +1 -1
  662. package/lib/module/store/apis/upsertMembers.js.map +1 -1
  663. package/lib/module/store/apis/upsertReads.js.map +1 -1
  664. package/lib/module/store/apis/utils/convertFilterSortToQuery.js.map +1 -1
  665. package/lib/module/store/mappers/mapDateTimeToStorable.js.map +1 -1
  666. package/lib/module/store/mappers/mapTaskToStorable.js.map +1 -1
  667. package/lib/module/store/sqlite-utils/appendOrderByClause.js.map +1 -1
  668. package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  669. package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  670. package/lib/module/test-utils/BetterSqlite.js.map +1 -1
  671. package/lib/module/types/types.js.map +1 -1
  672. package/lib/module/utils/DBSyncManager.js.map +1 -1
  673. package/lib/module/utils/Streami18n.js.map +1 -1
  674. package/lib/module/utils/addReactionToLocalState.js.map +1 -1
  675. package/lib/module/utils/date.js.map +1 -1
  676. package/lib/module/utils/getResizedImageUrl.js.map +1 -1
  677. package/lib/module/utils/patchMessageTextCommand.js.map +1 -1
  678. package/lib/module/utils/removeReactionFromLocalState.js.map +1 -1
  679. package/lib/module/utils/utils.js.map +1 -1
  680. package/lib/module/version.json +1 -1
  681. package/lib/typescript/types/types.d.ts +1 -2
  682. package/package.json +1 -1
  683. package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +1 -3
  684. package/src/types/types.ts +1 -2
  685. package/src/version.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useMessageList","_InlineLoadingMoreIndicator","_InlineLoadingMoreRecentIndicator","_InlineLoadingMoreThreadIndicator","_getLastReceivedMessage","_AttachmentPickerContext","_ChannelContext","_ChatContext","_DebugContext","_ImageGalleryContext","_MessagesContext","_OverlayContext","_PaginatedMessageListContext","_ThemeContext","_ThreadContext","_TranslationContext","_excluded","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","container","alignItems","flex","width","contentContainer","flexGrow","paddingBottom","invert","transform","scaleY","invertAndroid","scaleX","listContainer","messagePadding","paddingHorizontal","stickyHeader","position","top","InvertedCellRendererComponent","props","createElement","View","_extends2","style","__self","__source","fileName","lineNumber","columnNumber","keyExtractor","item","id","created_at","toISOString","Date","now","toString","flatListViewabilityConfig","viewAreaCoveragePercentThreshold","MessageListWithContext","_getLastReceivedMessa","LoadingMoreIndicator","threadList","InlineLoadingMoreThreadIndicator","InlineLoadingMoreIndicator","additionalFlatListProps","channel","client","closePicker","DateHeader","disabled","disableTypingIndicator","EmptyStateIndicator","FlatList","_props$FooterComponen","FooterComponent","hasNoMoreRecentMessagesToLoad","_props$HeaderComponen","HeaderComponent","InlineLoadingMoreRecentIndicator","hideStickyDateHeader","initialScrollToFirstUnreadMessage","InlineDateSeparator","InlineUnreadIndicator","_props$inverted","inverted","_props$isListActive","isListActive","legacyImageViewerSwipeBehaviour","loadChannelAroundMessage","loading","LoadingIndicator","loadMore","loadMoreRecent","loadMoreThread","markRead","Message","MessageSystem","myMessageTheme","NetworkDownIndicator","noGroupByUser","onListScroll","onThreadSelect","overlay","reloadChannel","ScrollToBottomButton","selectedPicker","setFlatListRef","setMessages","setSelectedPicker","setTargetedMessage","StickyHeader","targetedMessage","tDateTimeParser","thread","_props$threadList","TypingIndicator","TypingIndicatorContainer","_useTheme","useTheme","theme","white_snow","colors","_theme$messageList","messageList","modifiedTheme","useMemo","mergeThemes","useMessageList","messageListLengthBeforeUpdate","useRef","messageListLengthAfterUpdate","length","topMessageBeforeUpdate","topMessageAfterUpdate","_useState","useState","_useState2","_slicedToArray2","autoscrollToTop","setAutoscrollToTop","onStartReachedTracker","onEndReachedTracker","onStartReachedInPromise","onEndReachedInPromise","flatListRef","_useState3","_useState4","isInitialScrollDone","setInitialScrollDone","channelResyncScrollSet","scrollToDebounceTimeoutRef","initialScrollSettingTimeoutRef","messageIdToScrollToRef","messageIdLastScrolledToRef","_useState5","_useState6","hasMoved","setHasMoved","_useState7","getLastReceivedMessage","_useState8","lastReceivedId","setLastReceivedId","_useState9","_useState10","scrollToBottomButtonVisible","setScrollToBottomButtonVisible","_useState11","_useState12","stickyHeaderDate","setStickyHeaderDate","stickyHeaderDateRef","channelRef","current","updateStickyHeaderDateIfNeeded","viewableItems","_lastItem$item","_stickyHeaderDateRef$","lastItem","pop","isMessageTypeDeleted","type","toDateString","onViewableItemsChanged","_ref","Platform","OS","resetPaginationTrackersRef","useEffect","getShouldMarkReadAutomatically","countUnread","_lastReceivedMessage$","lastReceivedMessage","hasNewMessage","isMyMessage","user","userID","scrollToBottomIfNeeded","_topMessageBeforeUpda","setTimeout","_flatListRef$current","scrollToOffset","offset","maybeCallOnStartReached","shouldApplyAndroidWorkaround","renderItem","_ref2","_message$user","index","message","initialized","offlineMode","lastRead","isMessageUnread","messageArrayIndex","msg","isCurrentMessageUnread","showUnreadUnderlay","insertInlineUnreadIndicator","Fragment","testID","wrapMessageInTheme","isMessageWithStylesReadByAndDateSeparator","dateSeparator","date","ThemeProvider","mergedStyle","goToMessage","groupStyles","isTargetedMessage","undefined","quoted_message_id","_ref3","_asyncToGenerator2","_regenerator","mark","_callee","limit","callback","onError","wrap","_callee$","_context","prev","next","abrupt","Promise","resolve","then","stop","_x","apply","arguments","maybeCallOnEndReached","_ref4","_callee2","_callee2$","_context2","handleScroll","event","nativeEvent","contentOffset","y","visibleLength","layoutMeasurement","height","contentLength","contentSize","isScrollAtStart","isScrollAtEnd","isScrollAtBottom","showScrollToBottomButton","shouldMarkRead","goToNewMessages","_ref5","_callee3","_callee3$","_context3","onScrollToIndexFailedRef","info","animated","averageItemLength","_flatListRef$current2","scrollToIndex","viewPosition","useCallback","messageId","indexOfParentInMessageList","findIndex","messageIdToScroll","clearTimeout","messagesWithImages","filter","attachments","some","attachment","title_link","og_scrape_url","image_url","thumb_url","imageString","map","_message$attachments","join","numberOfMessagesWithImages","threadExists","stickyHeaderFormatDate","getFullYear","tStickyHeaderDate","stickyHeaderDateString","isDayOrMoment","format","dismissImagePicker","onScrollBeginDrag","onScrollEndDrag","refCallback","ref","debugRef","useDebugContext","isDebugModeEnabled","__DEV__","setEventType","setSendEventParams","action","data","renderListEmptyComponent","listType","ListFooterComponent","ListHeaderComponent","StickyHeaderComponent","dateString","additionalFlatListPropsExcludingStyle","contentContainerStyle","rest","_objectWithoutProperties2","backgroundColor","CellRendererComponent","extraData","keyboardShouldPersistTaps","ListEmptyComponent","maintainVisibleContentPosition","autoscrollToTopThreshold","minIndexForVisible","maxToRenderPerBatch","onScroll","onScrollToIndexFailed","onTouchEnd","scrollEnabled","showsVerticalScrollIndicator","viewabilityConfig","onPress","showNotification","unreadCount","MessageList","_useAttachmentPickerC","useAttachmentPickerContext","_useChannelContext","useChannelContext","enableMessageGroupingByUser","error","isChannelActive","scrollToFirstUnreadThreshold","_useChatContext","useChatContext","_useImageGalleryConte","useImageGalleryContext","_useMessagesContext","useMessagesContext","_usePaginatedMessageL","usePaginatedMessageListContext","_useOverlayContext","useOverlayContext","_useThreadContext","useThreadContext","_useTranslationContex","useTranslationContext","t","exports"],"sources":["MessageList.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n FlatListProps,\n FlatList as FlatListType,\n Platform,\n ScrollViewProps,\n StyleSheet,\n View,\n ViewToken,\n} from 'react-native';\n\nimport {\n isMessageWithStylesReadByAndDateSeparator,\n MessageType,\n useMessageList,\n} from './hooks/useMessageList';\nimport { InlineLoadingMoreIndicator } from './InlineLoadingMoreIndicator';\nimport { InlineLoadingMoreRecentIndicator } from './InlineLoadingMoreRecentIndicator';\nimport { InlineLoadingMoreThreadIndicator } from './InlineLoadingMoreThreadIndicator';\nimport { getLastReceivedMessage } from './utils/getLastReceivedMessage';\n\nimport {\n AttachmentPickerContextValue,\n useAttachmentPickerContext,\n} from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { useDebugContext } from '../../contexts/debugContext/DebugContext';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport {\n PaginatedMessageListContextValue,\n usePaginatedMessageListContext,\n} from '../../contexts/paginatedMessageListContext/PaginatedMessageListContext';\nimport { mergeThemes, ThemeProvider, useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n isDayOrMoment,\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flex: 1,\n width: '100%',\n },\n contentContainer: {\n flexGrow: 1,\n /**\n * paddingBottom is set to 4 to account for the default date\n * header and inline indicator alignment. The top margin is 8\n * on the header but 4 on the inline date, this adjusts the spacing\n * to allow the \"first\" inline date to align with the date header.\n */\n paddingBottom: 4,\n },\n flex: { flex: 1 },\n invert: { transform: [{ scaleY: -1 }] },\n invertAndroid: {\n // Invert the Y AND X axis to prevent a react native issue that can lead to ANRs on android 13\n // details: https://github.com/Expensify/App/pull/12820\n transform: [{ scaleX: -1 }, { scaleY: -1 }],\n },\n listContainer: {\n flex: 1,\n width: '100%',\n },\n messagePadding: {\n paddingHorizontal: 8,\n },\n stickyHeader: {\n position: 'absolute',\n top: 0,\n },\n});\n\nconst InvertedCellRendererComponent = (props: React.PropsWithChildren<unknown>) => (\n <View {...props} style={styles.invertAndroid} />\n);\n\nconst keyExtractor = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n item: MessageType<StreamChatGenerics>,\n) => {\n if (item.id) return item.id;\n if (item.created_at)\n return typeof item.created_at === 'string' ? item.created_at : item.created_at.toISOString();\n return Date.now().toString();\n};\n\nconst flatListViewabilityConfig = {\n viewAreaCoveragePercentThreshold: 1,\n};\n\ntype MessageListPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<AttachmentPickerContextValue, 'closePicker' | 'selectedPicker' | 'setSelectedPicker'> &\n Pick<\n ChannelContextValue<StreamChatGenerics>,\n | 'channel'\n | 'disabled'\n | 'EmptyStateIndicator'\n | 'hideStickyDateHeader'\n | 'loadChannelAroundMessage'\n | 'loading'\n | 'LoadingIndicator'\n | 'markRead'\n | 'NetworkDownIndicator'\n | 'reloadChannel'\n | 'scrollToFirstUnreadThreshold'\n | 'setTargetedMessage'\n | 'StickyHeader'\n | 'targetedMessage'\n > &\n Pick<ChatContextValue<StreamChatGenerics>, 'client'> &\n Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setMessages'> &\n Pick<\n PaginatedMessageListContextValue<StreamChatGenerics>,\n 'hasNoMoreRecentMessagesToLoad' | 'loadMore' | 'loadMoreRecent'\n > &\n Pick<OverlayContextValue, 'overlay'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'DateHeader'\n | 'disableTypingIndicator'\n | 'FlatList'\n | 'initialScrollToFirstUnreadMessage'\n | 'InlineDateSeparator'\n | 'InlineUnreadIndicator'\n | 'legacyImageViewerSwipeBehaviour'\n | 'Message'\n | 'ScrollToBottomButton'\n | 'MessageSystem'\n | 'myMessageTheme'\n | 'TypingIndicator'\n | 'TypingIndicatorContainer'\n > &\n Pick<ThreadContextValue<StreamChatGenerics>, 'loadMoreThread' | 'thread'> &\n Pick<TranslationContextValue, 't' | 'tDateTimeParser'> & {\n /**\n * Besides existing (default) UX behavior of underlying FlatList of MessageList component, if you want\n * to attach some additional props to underlying FlatList, you can add it to following prop.\n *\n * You can find list of all the available FlatList props here - https://facebook.github.io/react-native/docs/flatlist#props\n *\n * **NOTE** Don't use `additionalFlatListProps` to get access to ref of flatlist. Use `setFlatListRef` instead.\n *\n * e.g.\n * ```js\n * <MessageList\n * additionalFlatListProps={{ bounces: true, keyboardDismissMode: true }} />\n * ```\n */\n additionalFlatListProps?: Partial<FlatListProps<MessageType<StreamChatGenerics>>>;\n /**\n * UI component for footer of message list. By default message list will use `InlineLoadingMoreIndicator`\n * as FooterComponent. If you want to implement your own inline loading indicator, you can access `loadingMore`\n * from context.\n *\n * This is a [ListHeaderComponent](https://facebook.github.io/react-native/docs/flatlist#listheadercomponent) of FlatList\n * used in MessageList. Should be used for header by default if inverted is true or defaulted\n */\n FooterComponent?: React.ComponentType;\n /**\n * UI component for header of message list. By default message list will use `InlineLoadingMoreRecentIndicator`\n * as HeaderComponent. If you want to implement your own inline loading indicator, you can access `loadingMoreRecent`\n * from context.\n *\n * This is a [ListFooterComponent](https://facebook.github.io/react-native/docs/flatlist#listheadercomponent) of FlatList\n * used in MessageList. Should be used for header if inverted is false\n */\n HeaderComponent?: React.ComponentType;\n /** Whether or not the FlatList is inverted. Defaults to true */\n inverted?: boolean;\n isListActive?: boolean;\n /** Turn off grouping of messages by user */\n noGroupByUser?: boolean;\n onListScroll?: ScrollViewProps['onScroll'];\n /**\n * Handler to open the thread on message. This is callback for touch event for replies button.\n *\n * @param message A message object to open the thread upon.\n */\n onThreadSelect?: (message: ThreadContextValue<StreamChatGenerics>['thread']) => void;\n /**\n * Use `setFlatListRef` to get access to ref to inner FlatList.\n *\n * e.g.\n * ```js\n * <MessageList\n * setFlatListRef={(ref) => {\n * // Use ref for your own good\n * }}\n * ```\n */\n setFlatListRef?: (ref: FlatListType<MessageType<StreamChatGenerics>> | null) => void;\n /**\n * Boolean whether or not the Messages in the MessageList are part of a Thread\n **/\n threadList?: boolean;\n };\n\n/**\n * The message list component renders a list of messages. It consumes the following contexts:\n *\n * [ChannelContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/channel-context/)\n * [ChatContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/chat-context/)\n * [MessagesContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/messages-context/)\n * [ThreadContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/thread-context/)\n * [TranslationContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/translation-context/)\n */\nconst MessageListWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageListPropsWithContext<StreamChatGenerics>,\n) => {\n const LoadingMoreIndicator = props.threadList\n ? InlineLoadingMoreThreadIndicator\n : InlineLoadingMoreIndicator;\n const {\n additionalFlatListProps,\n channel,\n client,\n closePicker,\n DateHeader,\n disabled,\n disableTypingIndicator,\n EmptyStateIndicator,\n FlatList,\n FooterComponent = LoadingMoreIndicator,\n hasNoMoreRecentMessagesToLoad,\n HeaderComponent = InlineLoadingMoreRecentIndicator,\n hideStickyDateHeader,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n inverted = true,\n isListActive = false,\n legacyImageViewerSwipeBehaviour,\n loadChannelAroundMessage,\n loading,\n LoadingIndicator,\n loadMore,\n loadMoreRecent,\n loadMoreThread,\n markRead,\n Message,\n MessageSystem,\n myMessageTheme,\n NetworkDownIndicator,\n noGroupByUser,\n onListScroll,\n onThreadSelect,\n overlay,\n reloadChannel,\n ScrollToBottomButton,\n selectedPicker,\n setFlatListRef,\n setMessages,\n setSelectedPicker,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n tDateTimeParser,\n thread,\n threadList = false,\n TypingIndicator,\n TypingIndicatorContainer,\n } = props;\n\n const { theme } = useTheme();\n\n const {\n colors: { white_snow },\n messageList: { container, contentContainer, listContainer },\n } = theme;\n\n const modifiedTheme = useMemo(\n () => mergeThemes({ style: myMessageTheme, theme }),\n [myMessageTheme, theme],\n );\n\n const messageList = useMessageList<StreamChatGenerics>({\n noGroupByUser,\n threadList,\n });\n const messageListLengthBeforeUpdate = useRef(0);\n const messageListLengthAfterUpdate = messageList.length;\n\n /**\n * We need topMessage and channelLastRead values to set the initial scroll position.\n * So these values only get used if `initialScrollToFirstUnreadMessage` prop is true.\n */\n const topMessageBeforeUpdate = useRef<MessageType<StreamChatGenerics>>();\n const topMessageAfterUpdate = messageList[messageList.length - 1];\n\n const [autoscrollToTop, setAutoscrollToTop] = useState(false);\n\n /**\n * We want to call onEndReached and onStartReached only once, per content length.\n * We keep track of calls to these functions per content length, with following trackers.\n */\n const onStartReachedTracker = useRef<Record<number, boolean>>({});\n const onEndReachedTracker = useRef<Record<number, boolean>>({});\n\n const onStartReachedInPromise = useRef<Promise<void> | null>(null);\n const onEndReachedInPromise = useRef<Promise<void> | null>(null);\n\n const flatListRef = useRef<FlatListType<MessageType<StreamChatGenerics>> | null>(null);\n\n /**\n * Flag to track if the initial scroll has been set\n * If the prop `initialScrollToFirstUnreadMessage` was enabled, then we scroll to the unread msg and set it to true\n * If not, the default offset of 0 for flatList means that it has been set already\n */\n const [isInitialScrollDone, setInitialScrollDone] = useState(!initialScrollToFirstUnreadMessage);\n const channelResyncScrollSet = useRef<boolean>(true);\n\n /**\n * The timeout id used to debounce our scrollToIndex calls on messageList updates\n */\n const scrollToDebounceTimeoutRef = useRef<NodeJS.Timeout>();\n\n /**\n * The timeout id used to lazier load the initial scroll set flag\n */\n const initialScrollSettingTimeoutRef = useRef<NodeJS.Timeout>();\n\n /**\n * If a messageId was requested to scroll to but was unloaded,\n * this flag keeps track of it to scroll to it after loading the message\n */\n const messageIdToScrollToRef = useRef<string>();\n /**\n * Last messageID that was scrolled to after loading a new message list,\n * this flag keeps track of it so that we dont scroll to it again on target message set\n */\n const messageIdLastScrolledToRef = useRef<string>();\n const [hasMoved, setHasMoved] = useState(false);\n const [lastReceivedId, setLastReceivedId] = useState(getLastReceivedMessage(messageList)?.id);\n const [scrollToBottomButtonVisible, setScrollToBottomButtonVisible] = useState(false);\n\n const [stickyHeaderDate, setStickyHeaderDate] = useState<Date | undefined>();\n const stickyHeaderDateRef = useRef<Date | undefined>();\n\n // ref for channel to use in useEffect without triggering it on channel change\n const channelRef = useRef(channel);\n channelRef.current = channel;\n\n const updateStickyHeaderDateIfNeeded = (viewableItems: ViewToken[]) => {\n if (viewableItems.length) {\n const lastItem = viewableItems.pop() as {\n item: MessageType<StreamChatGenerics>;\n };\n\n const isMessageTypeDeleted = lastItem.item.type === 'deleted';\n\n if (\n lastItem?.item?.created_at &&\n !isMessageTypeDeleted &&\n typeof lastItem.item.created_at !== 'string' &&\n lastItem.item.created_at.toDateString() !== stickyHeaderDateRef.current?.toDateString()\n ) {\n stickyHeaderDateRef.current = lastItem.item.created_at;\n setStickyHeaderDate(lastItem.item.created_at);\n }\n }\n };\n\n /**\n * FlatList doesn't accept changeable function for onViewableItemsChanged prop.\n * Thus useRef.\n */\n const onViewableItemsChanged = useRef(\n ({ viewableItems }: { viewableItems: ViewToken[] | undefined }) => {\n /**\n * When a new message comes in, list scrolls down to the bottom automatically (using prop `maintainVisibleContentPosition`)\n * and we mark the channel as read from handleScroll function.\n * Although this logic is dependent on the fact that `onScroll` event gets triggered during this process.\n * But for Android, this event is not triggered when messages length is lesser than visible screen height.\n *\n * And thus we need to check if the message list length is lesser than visible screen height and mark the channel as read.\n */\n if (\n Platform.OS === 'android' &&\n viewableItems?.length &&\n viewableItems?.length >= messageListLengthBeforeUpdate.current\n ) {\n channel.markRead();\n }\n\n if (viewableItems && !hideStickyDateHeader) {\n updateStickyHeaderDateIfNeeded(viewableItems);\n }\n },\n );\n\n /**\n * Resets the pagination trackers, doing so cancels currently scheduled loading more calls\n */\n const resetPaginationTrackersRef = useRef(() => {\n onStartReachedTracker.current = {};\n onEndReachedTracker.current = {};\n });\n\n useEffect(() => {\n setScrollToBottomButtonVisible(false);\n }, [disabled]);\n\n useEffect(() => {\n const getShouldMarkReadAutomatically = (): boolean => {\n if (loading || !channel) {\n // nothing to do\n return false;\n } else if (channel.countUnread() > 0) {\n if (!initialScrollToFirstUnreadMessage) {\n /*\n * In this case MessageList won't scroll to first unread message when opened, so we can mark\n * the channel as read right after opening.\n * */\n return true;\n } else {\n /*\n * In this case MessageList will be opened to first unread message.\n * But if there are were not enough unread messages, so that scrollToBottom button was not shown\n * then MessageList won't need to scroll up. So we can safely mark the channel as read right after opening.\n *\n * NOTE: we must ensure that initial scroll is done, otherwise we do not wait till the unread scroll is finished\n * */\n if (scrollToBottomButtonVisible) return false;\n /* if scrollToBottom button was not visible, wait till\n * - initial scroll is done (indicates that if scrolling to index was needed it was triggered)\n * */\n return isInitialScrollDone;\n }\n }\n return false;\n };\n\n if (getShouldMarkReadAutomatically()) {\n markRead();\n }\n }, [loading, scrollToBottomButtonVisible, isInitialScrollDone]);\n\n useEffect(() => {\n const lastReceivedMessage = getLastReceivedMessage(messageList);\n\n const hasNewMessage = lastReceivedId !== lastReceivedMessage?.id;\n const isMyMessage = lastReceivedMessage?.user?.id === client.userID;\n\n setLastReceivedId(lastReceivedMessage?.id);\n\n /**\n * Scroll down when\n * 1. you send a new message to channel\n * 2. new message list is small than the one before update - channel has resynced\n * 3. created_at timestamp of top message before update is lesser than created_at timestamp of top message after update - channel has resynced\n */\n const scrollToBottomIfNeeded = () => {\n if (!client || !channel || messageList.length === 0) {\n return;\n }\n if (\n (hasNewMessage && isMyMessage) ||\n messageListLengthAfterUpdate < messageListLengthBeforeUpdate.current ||\n (topMessageBeforeUpdate.current?.created_at &&\n topMessageAfterUpdate?.created_at &&\n topMessageBeforeUpdate.current.created_at < topMessageAfterUpdate.created_at)\n ) {\n channelResyncScrollSet.current = false;\n setScrollToBottomButtonVisible(false);\n resetPaginationTrackersRef.current();\n\n setTimeout(() => {\n flatListRef.current?.scrollToOffset({\n offset: 0,\n });\n }, 50);\n setTimeout(() => {\n channelResyncScrollSet.current = true;\n if (channel.countUnread() > 0) {\n markRead();\n }\n }, 500);\n }\n };\n\n if (threadList || hasNoMoreRecentMessagesToLoad) {\n scrollToBottomIfNeeded();\n } else {\n setScrollToBottomButtonVisible(true);\n }\n\n if (\n !hasNoMoreRecentMessagesToLoad &&\n flatListRef.current &&\n messageListLengthBeforeUpdate.current === 0 &&\n messageListLengthAfterUpdate < 10\n ) {\n /**\n * Trigger onStartReached on first load, if messages are not enough to fill the screen.\n * This is important especially for android, where you can't overscroll.\n */\n maybeCallOnStartReached(10);\n }\n\n messageListLengthBeforeUpdate.current = messageListLengthAfterUpdate;\n topMessageBeforeUpdate.current = topMessageAfterUpdate;\n }, [messageListLengthAfterUpdate, topMessageAfterUpdate?.id]);\n\n useEffect(() => {\n setAutoscrollToTop(hasNoMoreRecentMessagesToLoad);\n }, [messageList, hasNoMoreRecentMessagesToLoad]);\n\n const shouldApplyAndroidWorkaround = inverted && Platform.OS === 'android';\n\n const renderItem = ({\n index,\n item: message,\n }: {\n index: number;\n item: MessageType<StreamChatGenerics>;\n }) => {\n if (!channel || (!channel.initialized && !channel.offlineMode)) return null;\n\n const lastRead = channel.lastRead();\n\n function isMessageUnread(messageArrayIndex: number): boolean {\n const msg = messageList?.[messageArrayIndex];\n if (lastRead && msg?.created_at) {\n return lastRead < msg.created_at;\n }\n return false;\n }\n const isCurrentMessageUnread = isMessageUnread(index);\n const showUnreadUnderlay = isCurrentMessageUnread && scrollToBottomButtonVisible;\n const insertInlineUnreadIndicator = showUnreadUnderlay && !isMessageUnread(index + 1); // show only if previous message is read\n\n if (message.type === 'system') {\n return (\n <>\n <View testID={`message-list-item-${index}`}>\n <MessageSystem message={message} style={styles.messagePadding} />\n </View>\n {insertInlineUnreadIndicator && <InlineUnreadIndicator />}\n </>\n );\n }\n\n const wrapMessageInTheme = client.userID === message.user?.id && !!myMessageTheme;\n return wrapMessageInTheme ? (\n <>\n {shouldApplyAndroidWorkaround &&\n isMessageWithStylesReadByAndDateSeparator(message) &&\n message.dateSeparator && <InlineDateSeparator date={message.dateSeparator} />}\n <ThemeProvider mergedStyle={modifiedTheme}>\n <View testID={`message-list-item-${index}`}>\n <Message\n goToMessage={goToMessage}\n groupStyles={\n isMessageWithStylesReadByAndDateSeparator(message) ? message.groupStyles : []\n }\n isTargetedMessage={targetedMessage === message.id}\n lastReceivedId={lastReceivedId === message.id ? lastReceivedId : undefined}\n message={message}\n onThreadSelect={onThreadSelect}\n showUnreadUnderlay={showUnreadUnderlay}\n style={styles.messagePadding}\n threadList={threadList}\n />\n </View>\n </ThemeProvider>\n {!shouldApplyAndroidWorkaround &&\n isMessageWithStylesReadByAndDateSeparator(message) &&\n message.dateSeparator && <InlineDateSeparator date={message.dateSeparator} />}\n {/* Adding indicator below the messages, since the list is inverted */}\n {insertInlineUnreadIndicator && <InlineUnreadIndicator />}\n </>\n ) : (\n <>\n <View testID={`message-list-item-${index}`}>\n {shouldApplyAndroidWorkaround &&\n isMessageWithStylesReadByAndDateSeparator(message) &&\n message.dateSeparator && <InlineDateSeparator date={message.dateSeparator} />}\n <Message\n goToMessage={goToMessage}\n groupStyles={\n isMessageWithStylesReadByAndDateSeparator(message) ? message.groupStyles : []\n }\n isTargetedMessage={targetedMessage === message.id}\n lastReceivedId={\n lastReceivedId === message.id || message.quoted_message_id\n ? lastReceivedId\n : undefined\n }\n message={message}\n onThreadSelect={onThreadSelect}\n showUnreadUnderlay={showUnreadUnderlay}\n style={styles.messagePadding}\n threadList={threadList}\n />\n </View>\n {!shouldApplyAndroidWorkaround &&\n isMessageWithStylesReadByAndDateSeparator(message) &&\n message.dateSeparator && <InlineDateSeparator date={message.dateSeparator} />}\n {/* Adding indicator below the messages, since the list is inverted */}\n {insertInlineUnreadIndicator && <InlineUnreadIndicator />}\n </>\n );\n };\n\n /**\n * We are keeping full control on message pagination, and not relying on react-native for it.\n * The reasons being,\n * 1. FlatList doesn't support onStartReached prop\n * 2. `onEndReached` function prop available on react-native, gets executed\n * once per content length (and thats actually a nice optimization strategy).\n * But it also means, we always need to prioritize onEndReached above our\n * logic for `onStartReached`.\n * 3. `onEndReachedThreshold` prop decides - at which scroll position to call `onEndReached`.\n * Its a factor of content length (which is necessary for \"real\" infinite scroll). But on\n * the other hand, it also makes calls to `onEndReached` (and this `channel.query`) way\n * too early during scroll, which we don't really need. So we are going to instead\n * keep some fixed offset distance, to decide when to call `loadMore` or `loadMoreRecent`.\n *\n * We are still gonna keep the optimization, which react-native does - only call onEndReached\n * once per content length.\n */\n\n /**\n * 1. Makes a call to `loadMoreRecent` function, which queries more recent messages.\n * 2. Ensures that we call `loadMoreRecent`, once per content length\n * 3. If the call to `loadMore` is in progress, we wait for it to finish to make sure scroll doesn't jump.\n */\n const maybeCallOnStartReached = async (limit?: number) => {\n // If onStartReached has already been called for given data length, then ignore.\n if (messageList?.length && onStartReachedTracker.current[messageList.length]) {\n return;\n }\n\n if (messageList?.length) {\n onStartReachedTracker.current[messageList.length] = true;\n }\n\n const callback = () => {\n onStartReachedInPromise.current = null;\n\n return Promise.resolve();\n };\n\n const onError = () => {\n /** Release the onStartReached trigger after 2 seconds, to try again */\n setTimeout(() => {\n onStartReachedTracker.current = {};\n }, 2000);\n };\n\n // If onEndReached is in progress, better to wait for it to finish for smooth UX\n if (onEndReachedInPromise.current) {\n await onEndReachedInPromise.current;\n onStartReachedInPromise.current = loadMoreRecent(limit).then(callback).catch(onError);\n } else {\n onStartReachedInPromise.current = loadMoreRecent(limit).then(callback).catch(onError);\n }\n };\n\n /**\n * 1. Makes a call to `loadMore` function, which queries more older messages.\n * 2. Ensures that we call `loadMore`, once per content length\n * 3. If the call to `loadMoreRecent` is in progress, we wait for it to finish to make sure scroll doesn't jump.\n */\n const maybeCallOnEndReached = async () => {\n // If onEndReached has already been called for given messageList length, then ignore.\n if (messageList?.length && onEndReachedTracker.current[messageList.length]) {\n return;\n }\n\n if (messageList?.length) {\n onEndReachedTracker.current[messageList.length] = true;\n }\n\n const callback = () => {\n onEndReachedInPromise.current = null;\n return Promise.resolve();\n };\n\n const onError = () => {\n /** Release the onEndReachedTracker trigger after 2 seconds, to try again */\n setTimeout(() => {\n onEndReachedTracker.current = {};\n }, 2000);\n };\n\n // If onStartReached is in progress, better to wait for it to finish for smooth UX\n if (onStartReachedInPromise.current) {\n await onStartReachedInPromise.current;\n onEndReachedInPromise.current = (threadList ? loadMoreThread() : loadMore())\n .then(callback)\n .catch(onError);\n } else {\n onEndReachedInPromise.current = (threadList ? loadMoreThread() : loadMore())\n .then(callback)\n .catch(onError);\n }\n };\n\n /**\n * Following if condition covers following cases:\n * 1. If I scroll up -> show scrollToBottom button.\n * 2. If I scroll to bottom of screen\n * |-> hide scrollToBottom button.\n * |-> if channel is unread, call markRead().\n */\n const handleScroll: ScrollViewProps['onScroll'] = (event) => {\n if (!channel || !channelResyncScrollSet.current) {\n return;\n }\n\n const offset = event.nativeEvent.contentOffset.y;\n const visibleLength = event.nativeEvent.layoutMeasurement.height;\n const contentLength = event.nativeEvent.contentSize.height;\n // Check if scroll has reached either start of end of list.\n const isScrollAtStart = offset < 100;\n const isScrollAtEnd = contentLength - visibleLength - offset < 100;\n\n if (isScrollAtStart) {\n maybeCallOnStartReached();\n }\n\n if (isScrollAtEnd) {\n maybeCallOnEndReached();\n }\n\n // Show scrollToBottom button once scroll position goes beyond 150.\n const isScrollAtBottom = offset <= 150;\n const showScrollToBottomButton = !isScrollAtBottom || !hasNoMoreRecentMessagesToLoad;\n\n const shouldMarkRead =\n !threadList && offset <= 0 && hasNoMoreRecentMessagesToLoad && channel.countUnread() > 0;\n\n if (shouldMarkRead) {\n markRead();\n }\n\n setScrollToBottomButtonVisible(showScrollToBottomButton);\n\n if (onListScroll) {\n onListScroll(event);\n }\n };\n\n const goToNewMessages = async () => {\n if (!hasNoMoreRecentMessagesToLoad) {\n resetPaginationTrackersRef.current();\n await reloadChannel();\n } else if (flatListRef.current) {\n flatListRef.current.scrollToOffset({\n offset: 0,\n });\n }\n\n setScrollToBottomButtonVisible(false);\n if (!threadList) {\n markRead();\n }\n };\n\n const onScrollToIndexFailedRef = useRef<\n FlatListProps<MessageType<StreamChatGenerics>>['onScrollToIndexFailed']\n >((info) => {\n // We got a failure as we tried to scroll to an item that was outside the render length\n if (flatListRef.current) {\n // we dont know the actual size of all items but we can see the average, so scroll to the closest offset\n flatListRef.current.scrollToOffset({\n animated: false,\n offset: info.averageItemLength * info.index,\n });\n // since we used only an average offset.. we wont go to the center of the item yet\n // with a little delay to wait for scroll to offset to complete, we can then scroll to the index\n setTimeout(() => {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: info.index,\n viewPosition: 0.5, // try to place message in the center of the screen\n });\n if (messageIdLastScrolledToRef.current) {\n setTargetedMessage(messageIdLastScrolledToRef.current);\n }\n }, 150);\n }\n });\n\n const goToMessage = useCallback(\n (messageId: string) => {\n const indexOfParentInMessageList = messageList.findIndex(\n (message) => message?.id === messageId,\n );\n if (indexOfParentInMessageList !== -1 && flatListRef.current) {\n flatListRef.current.scrollToIndex({\n animated: true,\n index: indexOfParentInMessageList,\n viewPosition: 0.5, // try to place message in the center of the screen\n });\n // keep track of this messageId, so that we dont scroll to again in useEffect for targeted message change\n messageIdLastScrolledToRef.current = messageId;\n setTargetedMessage(messageId);\n return;\n }\n messageIdToScrollToRef.current = messageId; // keep track of the id to scroll afterwards\n loadChannelAroundMessage({ messageId }); // now try to load the message and whats around it\n resetPaginationTrackersRef.current();\n },\n [messageList],\n );\n\n /**\n * Check if a messageId needs to be scrolled to after list loads, and scroll to it\n * Note: This effect fires on every list change with a small debounce so that scrolling isnt abrupted by an immediate rerender\n */\n useEffect(() => {\n scrollToDebounceTimeoutRef.current = setTimeout(() => {\n if (initialScrollToFirstUnreadMessage) {\n initialScrollSettingTimeoutRef.current = setTimeout(() => {\n // small timeout to ensure that handleScroll is called after scrollToIndex to set this flag\n setInitialScrollDone(true);\n }, 500);\n }\n // goToMessage method might have requested to scroll to a message\n let messageIdToScroll: string | undefined = messageIdToScrollToRef.current;\n if (targetedMessage && messageIdLastScrolledToRef.current !== targetedMessage) {\n // if some messageId was targeted but not scrolledTo yet\n // we have scroll to there after loading completes\n messageIdToScroll = targetedMessage;\n }\n if (!messageIdToScroll) return;\n const indexOfParentInMessageList = messageList.findIndex(\n (message) => message?.id === messageIdToScroll,\n );\n if (indexOfParentInMessageList !== -1 && flatListRef.current) {\n flatListRef.current.scrollToIndex({\n animated: false,\n index: indexOfParentInMessageList,\n viewPosition: 0.5, // try to place message in the center of the screen\n });\n // reset the messageId tracker to not scroll to that again\n messageIdToScrollToRef.current = undefined;\n // keep track of this messageId, so that we dont scroll to again for targeted message change\n messageIdLastScrolledToRef.current = messageIdToScroll;\n }\n }, 150);\n return () => {\n clearTimeout(scrollToDebounceTimeoutRef.current);\n clearTimeout(initialScrollSettingTimeoutRef.current);\n };\n }, [targetedMessage, initialScrollToFirstUnreadMessage, messageList]);\n\n const messagesWithImages =\n legacyImageViewerSwipeBehaviour &&\n messageList.filter((message) => {\n const isMessageTypeDeleted = message.type === 'deleted';\n if (!isMessageTypeDeleted && message.attachments) {\n return message.attachments.some(\n (attachment) =>\n attachment.type === 'image' &&\n !attachment.title_link &&\n !attachment.og_scrape_url &&\n (attachment.image_url || attachment.thumb_url),\n );\n }\n return false;\n });\n\n /**\n * This is for the useEffect to run again in the case that a message\n * gets edited with more or the same number of images\n */\n const imageString =\n legacyImageViewerSwipeBehaviour &&\n messagesWithImages &&\n messagesWithImages\n .map((message) =>\n message.attachments\n ?.map((attachment) => attachment.image_url || attachment.thumb_url || '')\n .join(),\n )\n .join();\n\n const numberOfMessagesWithImages =\n legacyImageViewerSwipeBehaviour && messagesWithImages && messagesWithImages.length;\n const threadExists = !!thread;\n\n useEffect(() => {\n if (\n legacyImageViewerSwipeBehaviour &&\n isListActive &&\n ((threadList && thread) || (!threadList && !thread))\n ) {\n setMessages(messagesWithImages as MessageType<StreamChatGenerics>[]);\n }\n }, [\n imageString,\n isListActive,\n legacyImageViewerSwipeBehaviour,\n numberOfMessagesWithImages,\n threadExists,\n threadList,\n ]);\n\n const stickyHeaderFormatDate =\n stickyHeaderDate?.getFullYear() === new Date().getFullYear() ? 'MMM D' : 'MMM D, YYYY';\n const tStickyHeaderDate =\n stickyHeaderDate && !hideStickyDateHeader ? tDateTimeParser(stickyHeaderDate) : null;\n\n const stickyHeaderDateString = useMemo(() => {\n if (tStickyHeaderDate === null || hideStickyDateHeader) return null;\n if (isDayOrMoment(tStickyHeaderDate)) return tStickyHeaderDate.format(stickyHeaderFormatDate);\n\n return new Date(tStickyHeaderDate).toDateString();\n }, [tStickyHeaderDate, stickyHeaderFormatDate, hideStickyDateHeader]);\n\n const dismissImagePicker = () => {\n if (!hasMoved && selectedPicker) {\n setSelectedPicker(undefined);\n closePicker();\n }\n };\n const onScrollBeginDrag = () => !hasMoved && selectedPicker && setHasMoved(true);\n const onScrollEndDrag = () => hasMoved && selectedPicker && setHasMoved(false);\n\n const refCallback = (ref: FlatListType<MessageType<StreamChatGenerics>>) => {\n flatListRef.current = ref;\n\n if (setFlatListRef) {\n setFlatListRef(ref);\n }\n };\n\n const debugRef = useDebugContext();\n\n const isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;\n\n if (isDebugModeEnabled) {\n if (debugRef.current.setEventType) debugRef.current.setEventType('send');\n if (debugRef.current.setSendEventParams)\n debugRef.current.setSendEventParams({\n action: thread ? 'ThreadList' : 'Messages',\n data: messageList,\n });\n }\n\n const renderListEmptyComponent = useCallback(\n () => (\n <View\n style={[styles.flex, shouldApplyAndroidWorkaround ? styles.invertAndroid : styles.invert]}\n testID='empty-state'\n >\n <EmptyStateIndicator listType='message' />\n </View>\n ),\n [EmptyStateIndicator, shouldApplyAndroidWorkaround],\n );\n\n const ListFooterComponent = useCallback(\n () => (\n <View style={shouldApplyAndroidWorkaround ? styles.invertAndroid : undefined}>\n <FooterComponent />\n </View>\n ),\n [shouldApplyAndroidWorkaround, FooterComponent],\n );\n\n const ListHeaderComponent = useCallback(\n () => (\n <View style={shouldApplyAndroidWorkaround ? styles.invertAndroid : undefined}>\n <HeaderComponent />\n </View>\n ),\n [shouldApplyAndroidWorkaround, HeaderComponent],\n );\n\n if (!FlatList) return null;\n\n if (loading) {\n return (\n <View style={styles.flex}>\n <LoadingIndicator listType='message' />\n </View>\n );\n }\n\n const StickyHeaderComponent = () => {\n if (!stickyHeaderDateString) return null;\n if (StickyHeader) return <StickyHeader dateString={stickyHeaderDateString} />;\n if (messageListLengthAfterUpdate) return <DateHeader dateString={stickyHeaderDateString} />;\n return null;\n };\n\n // We need to omit the style related props from the additionalFlatListProps and add them directly instead of spreading\n let additionalFlatListPropsExcludingStyle:\n | Omit<NonNullable<typeof additionalFlatListProps>, 'style' | 'contentContainerStyle'>\n | undefined;\n\n if (additionalFlatListProps) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { contentContainerStyle, style, ...rest } = additionalFlatListProps;\n additionalFlatListPropsExcludingStyle = rest;\n }\n\n return (\n <View\n style={[styles.container, { backgroundColor: white_snow }, container]}\n testID='message-flat-list-wrapper'\n >\n <FlatList\n CellRendererComponent={\n shouldApplyAndroidWorkaround ? InvertedCellRendererComponent : undefined\n }\n contentContainerStyle={[\n styles.contentContainer,\n additionalFlatListProps?.contentContainerStyle,\n contentContainer,\n ]}\n data={messageList}\n /** Disables the MessageList UI. Which means, message actions, reactions won't work. */\n extraData={disabled || !hasNoMoreRecentMessagesToLoad}\n inverted={shouldApplyAndroidWorkaround ? false : inverted}\n keyboardShouldPersistTaps='handled'\n keyExtractor={keyExtractor}\n ListEmptyComponent={renderListEmptyComponent}\n ListFooterComponent={ListFooterComponent}\n ListHeaderComponent={ListHeaderComponent}\n maintainVisibleContentPosition={{\n autoscrollToTopThreshold: autoscrollToTop ? 10 : undefined,\n minIndexForVisible: 1,\n }}\n maxToRenderPerBatch={30}\n onScroll={handleScroll}\n onScrollBeginDrag={onScrollBeginDrag}\n onScrollEndDrag={onScrollEndDrag}\n onScrollToIndexFailed={onScrollToIndexFailedRef.current}\n onTouchEnd={dismissImagePicker}\n onViewableItemsChanged={onViewableItemsChanged.current}\n ref={refCallback}\n renderItem={renderItem}\n scrollEnabled={overlay === 'none'}\n showsVerticalScrollIndicator={!shouldApplyAndroidWorkaround}\n style={[\n styles.listContainer,\n listContainer,\n additionalFlatListProps?.style,\n shouldApplyAndroidWorkaround ? styles.invertAndroid : undefined,\n ]}\n testID='message-flat-list'\n viewabilityConfig={flatListViewabilityConfig}\n {...additionalFlatListPropsExcludingStyle}\n />\n {!loading && (\n <>\n <View style={styles.stickyHeader}>\n <StickyHeaderComponent />\n </View>\n {!disableTypingIndicator && TypingIndicator && (\n <TypingIndicatorContainer>\n <TypingIndicator />\n </TypingIndicatorContainer>\n )}\n <ScrollToBottomButton\n onPress={goToNewMessages}\n showNotification={scrollToBottomButtonVisible}\n unreadCount={threadList ? 0 : channel?.countUnread()}\n />\n </>\n )}\n <NetworkDownIndicator />\n </View>\n );\n};\n\nexport type MessageListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageListPropsWithContext<StreamChatGenerics>>;\n\nexport const MessageList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageListProps<StreamChatGenerics>,\n) => {\n const { closePicker, selectedPicker, setSelectedPicker } = useAttachmentPickerContext();\n const {\n channel,\n disabled,\n EmptyStateIndicator,\n enableMessageGroupingByUser,\n error,\n hideStickyDateHeader,\n isChannelActive,\n loadChannelAroundMessage,\n loading,\n LoadingIndicator,\n markRead,\n NetworkDownIndicator,\n reloadChannel,\n scrollToFirstUnreadThreshold,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n } = useChannelContext<StreamChatGenerics>();\n const { client } = useChatContext<StreamChatGenerics>();\n const { setMessages } = useImageGalleryContext<StreamChatGenerics>();\n const {\n DateHeader,\n disableTypingIndicator,\n FlatList,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n legacyImageViewerSwipeBehaviour,\n Message,\n MessageSystem,\n myMessageTheme,\n ScrollToBottomButton,\n TypingIndicator,\n TypingIndicatorContainer,\n } = useMessagesContext<StreamChatGenerics>();\n const { hasNoMoreRecentMessagesToLoad, loadMore, loadMoreRecent } =\n usePaginatedMessageListContext<StreamChatGenerics>();\n const { overlay } = useOverlayContext();\n const { loadMoreThread, thread } = useThreadContext<StreamChatGenerics>();\n const { t, tDateTimeParser } = useTranslationContext();\n\n return (\n <MessageListWithContext\n {...{\n channel,\n client,\n closePicker,\n DateHeader,\n disabled,\n disableTypingIndicator,\n EmptyStateIndicator,\n enableMessageGroupingByUser,\n error,\n FlatList,\n hasNoMoreRecentMessagesToLoad,\n hideStickyDateHeader,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n isListActive: isChannelActive,\n legacyImageViewerSwipeBehaviour,\n loadChannelAroundMessage,\n loading,\n LoadingIndicator,\n loadMore,\n loadMoreRecent,\n loadMoreThread,\n markRead,\n Message,\n MessageSystem,\n myMessageTheme,\n NetworkDownIndicator,\n overlay,\n reloadChannel,\n ScrollToBottomButton,\n scrollToFirstUnreadThreshold,\n selectedPicker,\n setMessages,\n setSelectedPicker,\n setTargetedMessage,\n StickyHeader,\n t,\n targetedMessage,\n tDateTimeParser,\n thread,\n TypingIndicator,\n TypingIndicatorContainer,\n }}\n {...props}\n noGroupByUser={!enableMessageGroupingByUser || props.noGroupByUser}\n />\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useMessageList","_InlineLoadingMoreIndicator","_InlineLoadingMoreRecentIndicator","_InlineLoadingMoreThreadIndicator","_getLastReceivedMessage","_AttachmentPickerContext","_ChannelContext","_ChatContext","_DebugContext","_ImageGalleryContext","_MessagesContext","_OverlayContext","_PaginatedMessageListContext","_ThemeContext","_ThreadContext","_TranslationContext","_excluded","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","container","alignItems","flex","width","contentContainer","flexGrow","paddingBottom","invert","transform","scaleY","invertAndroid","scaleX","listContainer","messagePadding","paddingHorizontal","stickyHeader","position","top","InvertedCellRendererComponent","props","createElement","View","_extends2","style","__self","__source","fileName","lineNumber","columnNumber","keyExtractor","item","id","created_at","toISOString","Date","now","toString","flatListViewabilityConfig","viewAreaCoveragePercentThreshold","MessageListWithContext","_getLastReceivedMessa","LoadingMoreIndicator","threadList","InlineLoadingMoreThreadIndicator","InlineLoadingMoreIndicator","additionalFlatListProps","channel","client","closePicker","DateHeader","disabled","disableTypingIndicator","EmptyStateIndicator","FlatList","_props$FooterComponen","FooterComponent","hasNoMoreRecentMessagesToLoad","_props$HeaderComponen","HeaderComponent","InlineLoadingMoreRecentIndicator","hideStickyDateHeader","initialScrollToFirstUnreadMessage","InlineDateSeparator","InlineUnreadIndicator","_props$inverted","inverted","_props$isListActive","isListActive","legacyImageViewerSwipeBehaviour","loadChannelAroundMessage","loading","LoadingIndicator","loadMore","loadMoreRecent","loadMoreThread","markRead","Message","MessageSystem","myMessageTheme","NetworkDownIndicator","noGroupByUser","onListScroll","onThreadSelect","overlay","reloadChannel","ScrollToBottomButton","selectedPicker","setFlatListRef","setMessages","setSelectedPicker","setTargetedMessage","StickyHeader","targetedMessage","tDateTimeParser","thread","_props$threadList","TypingIndicator","TypingIndicatorContainer","_useTheme","useTheme","theme","white_snow","colors","_theme$messageList","messageList","modifiedTheme","useMemo","mergeThemes","useMessageList","messageListLengthBeforeUpdate","useRef","messageListLengthAfterUpdate","length","topMessageBeforeUpdate","topMessageAfterUpdate","_useState","useState","_useState2","_slicedToArray2","autoscrollToTop","setAutoscrollToTop","onStartReachedTracker","onEndReachedTracker","onStartReachedInPromise","onEndReachedInPromise","flatListRef","_useState3","_useState4","isInitialScrollDone","setInitialScrollDone","channelResyncScrollSet","scrollToDebounceTimeoutRef","initialScrollSettingTimeoutRef","messageIdToScrollToRef","messageIdLastScrolledToRef","_useState5","_useState6","hasMoved","setHasMoved","_useState7","getLastReceivedMessage","_useState8","lastReceivedId","setLastReceivedId","_useState9","_useState10","scrollToBottomButtonVisible","setScrollToBottomButtonVisible","_useState11","_useState12","stickyHeaderDate","setStickyHeaderDate","stickyHeaderDateRef","channelRef","current","updateStickyHeaderDateIfNeeded","viewableItems","_lastItem$item","_stickyHeaderDateRef$","lastItem","pop","isMessageTypeDeleted","type","toDateString","onViewableItemsChanged","_ref","Platform","OS","resetPaginationTrackersRef","useEffect","getShouldMarkReadAutomatically","countUnread","_lastReceivedMessage$","lastReceivedMessage","hasNewMessage","isMyMessage","user","userID","scrollToBottomIfNeeded","_topMessageBeforeUpda","setTimeout","_flatListRef$current","scrollToOffset","offset","maybeCallOnStartReached","shouldApplyAndroidWorkaround","renderItem","_ref2","_message$user","index","message","initialized","offlineMode","lastRead","isMessageUnread","messageArrayIndex","msg","isCurrentMessageUnread","showUnreadUnderlay","insertInlineUnreadIndicator","Fragment","testID","wrapMessageInTheme","isMessageWithStylesReadByAndDateSeparator","dateSeparator","date","ThemeProvider","mergedStyle","goToMessage","groupStyles","isTargetedMessage","undefined","quoted_message_id","_ref3","_asyncToGenerator2","_regenerator","mark","_callee","limit","callback","onError","wrap","_callee$","_context","prev","next","abrupt","Promise","resolve","then","stop","_x","apply","arguments","maybeCallOnEndReached","_ref4","_callee2","_callee2$","_context2","handleScroll","event","nativeEvent","contentOffset","y","visibleLength","layoutMeasurement","height","contentLength","contentSize","isScrollAtStart","isScrollAtEnd","isScrollAtBottom","showScrollToBottomButton","shouldMarkRead","goToNewMessages","_ref5","_callee3","_callee3$","_context3","onScrollToIndexFailedRef","info","animated","averageItemLength","_flatListRef$current2","scrollToIndex","viewPosition","useCallback","messageId","indexOfParentInMessageList","findIndex","messageIdToScroll","clearTimeout","messagesWithImages","filter","attachments","some","attachment","title_link","og_scrape_url","image_url","thumb_url","imageString","map","_message$attachments","join","numberOfMessagesWithImages","threadExists","stickyHeaderFormatDate","getFullYear","tStickyHeaderDate","stickyHeaderDateString","isDayOrMoment","format","dismissImagePicker","onScrollBeginDrag","onScrollEndDrag","refCallback","ref","debugRef","useDebugContext","isDebugModeEnabled","__DEV__","setEventType","setSendEventParams","action","data","renderListEmptyComponent","listType","ListFooterComponent","ListHeaderComponent","StickyHeaderComponent","dateString","additionalFlatListPropsExcludingStyle","contentContainerStyle","rest","_objectWithoutProperties2","backgroundColor","CellRendererComponent","extraData","keyboardShouldPersistTaps","ListEmptyComponent","maintainVisibleContentPosition","autoscrollToTopThreshold","minIndexForVisible","maxToRenderPerBatch","onScroll","onScrollToIndexFailed","onTouchEnd","scrollEnabled","showsVerticalScrollIndicator","viewabilityConfig","onPress","showNotification","unreadCount","MessageList","_useAttachmentPickerC","useAttachmentPickerContext","_useChannelContext","useChannelContext","enableMessageGroupingByUser","error","isChannelActive","scrollToFirstUnreadThreshold","_useChatContext","useChatContext","_useImageGalleryConte","useImageGalleryContext","_useMessagesContext","useMessagesContext","_usePaginatedMessageL","usePaginatedMessageListContext","_useOverlayContext","useOverlayContext","_useThreadContext","useThreadContext","_useTranslationContex","useTranslationContext","t","exports"],"sources":["MessageList.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n FlatListProps,\n FlatList as FlatListType,\n Platform,\n ScrollViewProps,\n StyleSheet,\n View,\n ViewToken,\n} from 'react-native';\n\nimport {\n isMessageWithStylesReadByAndDateSeparator,\n MessageType,\n useMessageList,\n} from './hooks/useMessageList';\nimport { InlineLoadingMoreIndicator } from './InlineLoadingMoreIndicator';\nimport { InlineLoadingMoreRecentIndicator } from './InlineLoadingMoreRecentIndicator';\nimport { InlineLoadingMoreThreadIndicator } from './InlineLoadingMoreThreadIndicator';\nimport { getLastReceivedMessage } from './utils/getLastReceivedMessage';\n\nimport {\n AttachmentPickerContextValue,\n useAttachmentPickerContext,\n} from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { useDebugContext } from '../../contexts/debugContext/DebugContext';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport {\n PaginatedMessageListContextValue,\n usePaginatedMessageListContext,\n} from '../../contexts/paginatedMessageListContext/PaginatedMessageListContext';\nimport { mergeThemes, ThemeProvider, useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n isDayOrMoment,\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flex: 1,\n width: '100%',\n },\n contentContainer: {\n flexGrow: 1,\n /**\n * paddingBottom is set to 4 to account for the default date\n * header and inline indicator alignment. The top margin is 8\n * on the header but 4 on the inline date, this adjusts the spacing\n * to allow the \"first\" inline date to align with the date header.\n */\n paddingBottom: 4,\n },\n flex: { flex: 1 },\n invert: { transform: [{ scaleY: -1 }] },\n invertAndroid: {\n // Invert the Y AND X axis to prevent a react native issue that can lead to ANRs on android 13\n // details: https://github.com/Expensify/App/pull/12820\n transform: [{ scaleX: -1 }, { scaleY: -1 }],\n },\n listContainer: {\n flex: 1,\n width: '100%',\n },\n messagePadding: {\n paddingHorizontal: 8,\n },\n stickyHeader: {\n position: 'absolute',\n top: 0,\n },\n});\n\nconst InvertedCellRendererComponent = (props: React.PropsWithChildren<unknown>) => (\n <View {...props} style={styles.invertAndroid} />\n);\n\nconst keyExtractor = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n item: MessageType<StreamChatGenerics>,\n) => {\n if (item.id) return item.id;\n if (item.created_at)\n return typeof item.created_at === 'string' ? item.created_at : item.created_at.toISOString();\n return Date.now().toString();\n};\n\nconst flatListViewabilityConfig = {\n viewAreaCoveragePercentThreshold: 1,\n};\n\ntype MessageListPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<AttachmentPickerContextValue, 'closePicker' | 'selectedPicker' | 'setSelectedPicker'> &\n Pick<\n ChannelContextValue<StreamChatGenerics>,\n | 'channel'\n | 'disabled'\n | 'EmptyStateIndicator'\n | 'hideStickyDateHeader'\n | 'loadChannelAroundMessage'\n | 'loading'\n | 'LoadingIndicator'\n | 'markRead'\n | 'NetworkDownIndicator'\n | 'reloadChannel'\n | 'scrollToFirstUnreadThreshold'\n | 'setTargetedMessage'\n | 'StickyHeader'\n | 'targetedMessage'\n > &\n Pick<ChatContextValue<StreamChatGenerics>, 'client'> &\n Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setMessages'> &\n Pick<\n PaginatedMessageListContextValue<StreamChatGenerics>,\n 'hasNoMoreRecentMessagesToLoad' | 'loadMore' | 'loadMoreRecent'\n > &\n Pick<OverlayContextValue, 'overlay'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'DateHeader'\n | 'disableTypingIndicator'\n | 'FlatList'\n | 'initialScrollToFirstUnreadMessage'\n | 'InlineDateSeparator'\n | 'InlineUnreadIndicator'\n | 'legacyImageViewerSwipeBehaviour'\n | 'Message'\n | 'ScrollToBottomButton'\n | 'MessageSystem'\n | 'myMessageTheme'\n | 'TypingIndicator'\n | 'TypingIndicatorContainer'\n > &\n Pick<ThreadContextValue<StreamChatGenerics>, 'loadMoreThread' | 'thread'> &\n Pick<TranslationContextValue, 't' | 'tDateTimeParser'> & {\n /**\n * Besides existing (default) UX behavior of underlying FlatList of MessageList component, if you want\n * to attach some additional props to underlying FlatList, you can add it to following prop.\n *\n * You can find list of all the available FlatList props here - https://facebook.github.io/react-native/docs/flatlist#props\n *\n * **NOTE** Don't use `additionalFlatListProps` to get access to ref of flatlist. Use `setFlatListRef` instead.\n *\n * e.g.\n * ```js\n * <MessageList\n * additionalFlatListProps={{ bounces: true, keyboardDismissMode: true }} />\n * ```\n */\n additionalFlatListProps?: Partial<FlatListProps<MessageType<StreamChatGenerics>>>;\n /**\n * UI component for footer of message list. By default message list will use `InlineLoadingMoreIndicator`\n * as FooterComponent. If you want to implement your own inline loading indicator, you can access `loadingMore`\n * from context.\n *\n * This is a [ListHeaderComponent](https://facebook.github.io/react-native/docs/flatlist#listheadercomponent) of FlatList\n * used in MessageList. Should be used for header by default if inverted is true or defaulted\n */\n FooterComponent?: React.ComponentType;\n /**\n * UI component for header of message list. By default message list will use `InlineLoadingMoreRecentIndicator`\n * as HeaderComponent. If you want to implement your own inline loading indicator, you can access `loadingMoreRecent`\n * from context.\n *\n * This is a [ListFooterComponent](https://facebook.github.io/react-native/docs/flatlist#listheadercomponent) of FlatList\n * used in MessageList. Should be used for header if inverted is false\n */\n HeaderComponent?: React.ComponentType;\n /** Whether or not the FlatList is inverted. Defaults to true */\n inverted?: boolean;\n isListActive?: boolean;\n /** Turn off grouping of messages by user */\n noGroupByUser?: boolean;\n onListScroll?: ScrollViewProps['onScroll'];\n /**\n * Handler to open the thread on message. This is callback for touch event for replies button.\n *\n * @param message A message object to open the thread upon.\n */\n onThreadSelect?: (message: ThreadContextValue<StreamChatGenerics>['thread']) => void;\n /**\n * Use `setFlatListRef` to get access to ref to inner FlatList.\n *\n * e.g.\n * ```js\n * <MessageList\n * setFlatListRef={(ref) => {\n * // Use ref for your own good\n * }}\n * ```\n */\n setFlatListRef?: (ref: FlatListType<MessageType<StreamChatGenerics>> | null) => void;\n /**\n * Boolean whether or not the Messages in the MessageList are part of a Thread\n **/\n threadList?: boolean;\n };\n\n/**\n * The message list component renders a list of messages. It consumes the following contexts:\n *\n * [ChannelContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/channel-context/)\n * [ChatContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/chat-context/)\n * [MessagesContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/messages-context/)\n * [ThreadContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/thread-context/)\n * [TranslationContext](https://getstream.io/chat/docs/sdk/reactnative/contexts/translation-context/)\n */\nconst MessageListWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageListPropsWithContext<StreamChatGenerics>,\n) => {\n const LoadingMoreIndicator = props.threadList\n ? InlineLoadingMoreThreadIndicator\n : InlineLoadingMoreIndicator;\n const {\n additionalFlatListProps,\n channel,\n client,\n closePicker,\n DateHeader,\n disabled,\n disableTypingIndicator,\n EmptyStateIndicator,\n FlatList,\n FooterComponent = LoadingMoreIndicator,\n hasNoMoreRecentMessagesToLoad,\n HeaderComponent = InlineLoadingMoreRecentIndicator,\n hideStickyDateHeader,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n inverted = true,\n isListActive = false,\n legacyImageViewerSwipeBehaviour,\n loadChannelAroundMessage,\n loading,\n LoadingIndicator,\n loadMore,\n loadMoreRecent,\n loadMoreThread,\n markRead,\n Message,\n MessageSystem,\n myMessageTheme,\n NetworkDownIndicator,\n noGroupByUser,\n onListScroll,\n onThreadSelect,\n overlay,\n reloadChannel,\n ScrollToBottomButton,\n selectedPicker,\n setFlatListRef,\n setMessages,\n setSelectedPicker,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n tDateTimeParser,\n thread,\n threadList = false,\n TypingIndicator,\n TypingIndicatorContainer,\n } = props;\n\n const { theme } = useTheme();\n\n const {\n colors: { white_snow },\n messageList: { container, contentContainer, listContainer },\n } = theme;\n\n const modifiedTheme = useMemo(\n () => mergeThemes({ style: myMessageTheme, theme }),\n [myMessageTheme, theme],\n );\n\n const messageList = useMessageList<StreamChatGenerics>({\n noGroupByUser,\n threadList,\n });\n const messageListLengthBeforeUpdate = useRef(0);\n const messageListLengthAfterUpdate = messageList.length;\n\n /**\n * We need topMessage and channelLastRead values to set the initial scroll position.\n * So these values only get used if `initialScrollToFirstUnreadMessage` prop is true.\n */\n const topMessageBeforeUpdate = useRef<MessageType<StreamChatGenerics>>();\n const topMessageAfterUpdate = messageList[messageList.length - 1];\n\n const [autoscrollToTop, setAutoscrollToTop] = useState(false);\n\n /**\n * We want to call onEndReached and onStartReached only once, per content length.\n * We keep track of calls to these functions per content length, with following trackers.\n */\n const onStartReachedTracker = useRef<Record<number, boolean>>({});\n const onEndReachedTracker = useRef<Record<number, boolean>>({});\n\n const onStartReachedInPromise = useRef<Promise<void> | null>(null);\n const onEndReachedInPromise = useRef<Promise<void> | null>(null);\n\n const flatListRef = useRef<FlatListType<MessageType<StreamChatGenerics>> | null>(null);\n\n /**\n * Flag to track if the initial scroll has been set\n * If the prop `initialScrollToFirstUnreadMessage` was enabled, then we scroll to the unread msg and set it to true\n * If not, the default offset of 0 for flatList means that it has been set already\n */\n const [isInitialScrollDone, setInitialScrollDone] = useState(!initialScrollToFirstUnreadMessage);\n const channelResyncScrollSet = useRef<boolean>(true);\n\n /**\n * The timeout id used to debounce our scrollToIndex calls on messageList updates\n */\n const scrollToDebounceTimeoutRef = useRef<NodeJS.Timeout>();\n\n /**\n * The timeout id used to lazier load the initial scroll set flag\n */\n const initialScrollSettingTimeoutRef = useRef<NodeJS.Timeout>();\n\n /**\n * If a messageId was requested to scroll to but was unloaded,\n * this flag keeps track of it to scroll to it after loading the message\n */\n const messageIdToScrollToRef = useRef<string>();\n /**\n * Last messageID that was scrolled to after loading a new message list,\n * this flag keeps track of it so that we dont scroll to it again on target message set\n */\n const messageIdLastScrolledToRef = useRef<string>();\n const [hasMoved, setHasMoved] = useState(false);\n const [lastReceivedId, setLastReceivedId] = useState(getLastReceivedMessage(messageList)?.id);\n const [scrollToBottomButtonVisible, setScrollToBottomButtonVisible] = useState(false);\n\n const [stickyHeaderDate, setStickyHeaderDate] = useState<Date | undefined>();\n const stickyHeaderDateRef = useRef<Date | undefined>();\n\n // ref for channel to use in useEffect without triggering it on channel change\n const channelRef = useRef(channel);\n channelRef.current = channel;\n\n const updateStickyHeaderDateIfNeeded = (viewableItems: ViewToken[]) => {\n if (viewableItems.length) {\n const lastItem = viewableItems.pop() as {\n item: MessageType<StreamChatGenerics>;\n };\n\n const isMessageTypeDeleted = lastItem.item.type === 'deleted';\n\n if (\n lastItem?.item?.created_at &&\n !isMessageTypeDeleted &&\n typeof lastItem.item.created_at !== 'string' &&\n lastItem.item.created_at.toDateString() !== stickyHeaderDateRef.current?.toDateString()\n ) {\n stickyHeaderDateRef.current = lastItem.item.created_at;\n setStickyHeaderDate(lastItem.item.created_at);\n }\n }\n };\n\n /**\n * FlatList doesn't accept changeable function for onViewableItemsChanged prop.\n * Thus useRef.\n */\n const onViewableItemsChanged = useRef(\n ({ viewableItems }: { viewableItems: ViewToken[] | undefined }) => {\n /**\n * When a new message comes in, list scrolls down to the bottom automatically (using prop `maintainVisibleContentPosition`)\n * and we mark the channel as read from handleScroll function.\n * Although this logic is dependent on the fact that `onScroll` event gets triggered during this process.\n * But for Android, this event is not triggered when messages length is lesser than visible screen height.\n *\n * And thus we need to check if the message list length is lesser than visible screen height and mark the channel as read.\n */\n if (\n Platform.OS === 'android' &&\n viewableItems?.length &&\n viewableItems?.length >= messageListLengthBeforeUpdate.current\n ) {\n channel.markRead();\n }\n\n if (viewableItems && !hideStickyDateHeader) {\n updateStickyHeaderDateIfNeeded(viewableItems);\n }\n },\n );\n\n /**\n * Resets the pagination trackers, doing so cancels currently scheduled loading more calls\n */\n const resetPaginationTrackersRef = useRef(() => {\n onStartReachedTracker.current = {};\n onEndReachedTracker.current = {};\n });\n\n useEffect(() => {\n setScrollToBottomButtonVisible(false);\n }, [disabled]);\n\n useEffect(() => {\n const getShouldMarkReadAutomatically = (): boolean => {\n if (loading || !channel) {\n // nothing to do\n return false;\n } else if (channel.countUnread() > 0) {\n if (!initialScrollToFirstUnreadMessage) {\n /*\n * In this case MessageList won't scroll to first unread message when opened, so we can mark\n * the channel as read right after opening.\n * */\n return true;\n } else {\n /*\n * In this case MessageList will be opened to first unread message.\n * But if there are were not enough unread messages, so that scrollToBottom button was not shown\n * then MessageList won't need to scroll up. So we can safely mark the channel as read right after opening.\n *\n * NOTE: we must ensure that initial scroll is done, otherwise we do not wait till the unread scroll is finished\n * */\n if (scrollToBottomButtonVisible) return false;\n /* if scrollToBottom button was not visible, wait till\n * - initial scroll is done (indicates that if scrolling to index was needed it was triggered)\n * */\n return isInitialScrollDone;\n }\n }\n return false;\n };\n\n if (getShouldMarkReadAutomatically()) {\n markRead();\n }\n }, [loading, scrollToBottomButtonVisible, isInitialScrollDone]);\n\n useEffect(() => {\n const lastReceivedMessage = getLastReceivedMessage(messageList);\n\n const hasNewMessage = lastReceivedId !== lastReceivedMessage?.id;\n const isMyMessage = lastReceivedMessage?.user?.id === client.userID;\n\n setLastReceivedId(lastReceivedMessage?.id);\n\n /**\n * Scroll down when\n * 1. you send a new message to channel\n * 2. new message list is small than the one before update - channel has resynced\n * 3. created_at timestamp of top message before update is lesser than created_at timestamp of top message after update - channel has resynced\n */\n const scrollToBottomIfNeeded = () => {\n if (!client || !channel || messageList.length === 0) {\n return;\n }\n if (\n (hasNewMessage && isMyMessage) ||\n messageListLengthAfterUpdate < messageListLengthBeforeUpdate.current ||\n (topMessageBeforeUpdate.current?.created_at &&\n topMessageAfterUpdate?.created_at &&\n topMessageBeforeUpdate.current.created_at < topMessageAfterUpdate.created_at)\n ) {\n channelResyncScrollSet.current = false;\n setScrollToBottomButtonVisible(false);\n resetPaginationTrackersRef.current();\n\n setTimeout(() => {\n flatListRef.current?.scrollToOffset({\n offset: 0,\n });\n }, 50);\n setTimeout(() => {\n channelResyncScrollSet.current = true;\n if (channel.countUnread() > 0) {\n markRead();\n }\n }, 500);\n }\n };\n\n if (threadList || hasNoMoreRecentMessagesToLoad) {\n scrollToBottomIfNeeded();\n } else {\n setScrollToBottomButtonVisible(true);\n }\n\n if (\n !hasNoMoreRecentMessagesToLoad &&\n flatListRef.current &&\n messageListLengthBeforeUpdate.current === 0 &&\n messageListLengthAfterUpdate < 10\n ) {\n /**\n * Trigger onStartReached on first load, if messages are not enough to fill the screen.\n * This is important especially for android, where you can't overscroll.\n */\n maybeCallOnStartReached(10);\n }\n\n messageListLengthBeforeUpdate.current = messageListLengthAfterUpdate;\n topMessageBeforeUpdate.current = topMessageAfterUpdate;\n }, [messageListLengthAfterUpdate, topMessageAfterUpdate?.id]);\n\n useEffect(() => {\n setAutoscrollToTop(hasNoMoreRecentMessagesToLoad);\n }, [messageList, hasNoMoreRecentMessagesToLoad]);\n\n const shouldApplyAndroidWorkaround = inverted && Platform.OS === 'android';\n\n const renderItem = ({\n index,\n item: message,\n }: {\n index: number;\n item: MessageType<StreamChatGenerics>;\n }) => {\n if (!channel || (!channel.initialized && !channel.offlineMode)) return null;\n\n const lastRead = channel.lastRead();\n\n function isMessageUnread(messageArrayIndex: number): boolean {\n const msg = messageList?.[messageArrayIndex];\n if (lastRead && msg?.created_at) {\n return lastRead < msg.created_at;\n }\n return false;\n }\n const isCurrentMessageUnread = isMessageUnread(index);\n const showUnreadUnderlay = isCurrentMessageUnread && scrollToBottomButtonVisible;\n const insertInlineUnreadIndicator = showUnreadUnderlay && !isMessageUnread(index + 1); // show only if previous message is read\n\n if (message.type === 'system') {\n return (\n <>\n <View testID={`message-list-item-${index}`}>\n <MessageSystem message={message} style={styles.messagePadding} />\n </View>\n {insertInlineUnreadIndicator && <InlineUnreadIndicator />}\n </>\n );\n }\n\n const wrapMessageInTheme = client.userID === message.user?.id && !!myMessageTheme;\n return wrapMessageInTheme ? (\n <>\n {shouldApplyAndroidWorkaround &&\n isMessageWithStylesReadByAndDateSeparator(message) &&\n message.dateSeparator && <InlineDateSeparator date={message.dateSeparator} />}\n <ThemeProvider mergedStyle={modifiedTheme}>\n <View testID={`message-list-item-${index}`}>\n <Message\n goToMessage={goToMessage}\n groupStyles={\n isMessageWithStylesReadByAndDateSeparator(message) ? message.groupStyles : []\n }\n isTargetedMessage={targetedMessage === message.id}\n lastReceivedId={lastReceivedId === message.id ? lastReceivedId : undefined}\n message={message}\n onThreadSelect={onThreadSelect}\n showUnreadUnderlay={showUnreadUnderlay}\n style={styles.messagePadding}\n threadList={threadList}\n />\n </View>\n </ThemeProvider>\n {!shouldApplyAndroidWorkaround &&\n isMessageWithStylesReadByAndDateSeparator(message) &&\n message.dateSeparator && <InlineDateSeparator date={message.dateSeparator} />}\n {/* Adding indicator below the messages, since the list is inverted */}\n {insertInlineUnreadIndicator && <InlineUnreadIndicator />}\n </>\n ) : (\n <>\n <View testID={`message-list-item-${index}`}>\n {shouldApplyAndroidWorkaround &&\n isMessageWithStylesReadByAndDateSeparator(message) &&\n message.dateSeparator && <InlineDateSeparator date={message.dateSeparator} />}\n <Message\n goToMessage={goToMessage}\n groupStyles={\n isMessageWithStylesReadByAndDateSeparator(message) ? message.groupStyles : []\n }\n isTargetedMessage={targetedMessage === message.id}\n lastReceivedId={\n lastReceivedId === message.id || message.quoted_message_id\n ? lastReceivedId\n : undefined\n }\n message={message}\n onThreadSelect={onThreadSelect}\n showUnreadUnderlay={showUnreadUnderlay}\n style={styles.messagePadding}\n threadList={threadList}\n />\n </View>\n {!shouldApplyAndroidWorkaround &&\n isMessageWithStylesReadByAndDateSeparator(message) &&\n message.dateSeparator && <InlineDateSeparator date={message.dateSeparator} />}\n {/* Adding indicator below the messages, since the list is inverted */}\n {insertInlineUnreadIndicator && <InlineUnreadIndicator />}\n </>\n );\n };\n\n /**\n * We are keeping full control on message pagination, and not relying on react-native for it.\n * The reasons being,\n * 1. FlatList doesn't support onStartReached prop\n * 2. `onEndReached` function prop available on react-native, gets executed\n * once per content length (and thats actually a nice optimization strategy).\n * But it also means, we always need to prioritize onEndReached above our\n * logic for `onStartReached`.\n * 3. `onEndReachedThreshold` prop decides - at which scroll position to call `onEndReached`.\n * Its a factor of content length (which is necessary for \"real\" infinite scroll). But on\n * the other hand, it also makes calls to `onEndReached` (and this `channel.query`) way\n * too early during scroll, which we don't really need. So we are going to instead\n * keep some fixed offset distance, to decide when to call `loadMore` or `loadMoreRecent`.\n *\n * We are still gonna keep the optimization, which react-native does - only call onEndReached\n * once per content length.\n */\n\n /**\n * 1. Makes a call to `loadMoreRecent` function, which queries more recent messages.\n * 2. Ensures that we call `loadMoreRecent`, once per content length\n * 3. If the call to `loadMore` is in progress, we wait for it to finish to make sure scroll doesn't jump.\n */\n const maybeCallOnStartReached = async (limit?: number) => {\n // If onStartReached has already been called for given data length, then ignore.\n if (messageList?.length && onStartReachedTracker.current[messageList.length]) {\n return;\n }\n\n if (messageList?.length) {\n onStartReachedTracker.current[messageList.length] = true;\n }\n\n const callback = () => {\n onStartReachedInPromise.current = null;\n\n return Promise.resolve();\n };\n\n const onError = () => {\n /** Release the onStartReached trigger after 2 seconds, to try again */\n setTimeout(() => {\n onStartReachedTracker.current = {};\n }, 2000);\n };\n\n // If onEndReached is in progress, better to wait for it to finish for smooth UX\n if (onEndReachedInPromise.current) {\n await onEndReachedInPromise.current;\n onStartReachedInPromise.current = loadMoreRecent(limit).then(callback).catch(onError);\n } else {\n onStartReachedInPromise.current = loadMoreRecent(limit).then(callback).catch(onError);\n }\n };\n\n /**\n * 1. Makes a call to `loadMore` function, which queries more older messages.\n * 2. Ensures that we call `loadMore`, once per content length\n * 3. If the call to `loadMoreRecent` is in progress, we wait for it to finish to make sure scroll doesn't jump.\n */\n const maybeCallOnEndReached = async () => {\n // If onEndReached has already been called for given messageList length, then ignore.\n if (messageList?.length && onEndReachedTracker.current[messageList.length]) {\n return;\n }\n\n if (messageList?.length) {\n onEndReachedTracker.current[messageList.length] = true;\n }\n\n const callback = () => {\n onEndReachedInPromise.current = null;\n return Promise.resolve();\n };\n\n const onError = () => {\n /** Release the onEndReachedTracker trigger after 2 seconds, to try again */\n setTimeout(() => {\n onEndReachedTracker.current = {};\n }, 2000);\n };\n\n // If onStartReached is in progress, better to wait for it to finish for smooth UX\n if (onStartReachedInPromise.current) {\n await onStartReachedInPromise.current;\n onEndReachedInPromise.current = (threadList ? loadMoreThread() : loadMore())\n .then(callback)\n .catch(onError);\n } else {\n onEndReachedInPromise.current = (threadList ? loadMoreThread() : loadMore())\n .then(callback)\n .catch(onError);\n }\n };\n\n /**\n * Following if condition covers following cases:\n * 1. If I scroll up -> show scrollToBottom button.\n * 2. If I scroll to bottom of screen\n * |-> hide scrollToBottom button.\n * |-> if channel is unread, call markRead().\n */\n const handleScroll: ScrollViewProps['onScroll'] = (event) => {\n if (!channel || !channelResyncScrollSet.current) {\n return;\n }\n\n const offset = event.nativeEvent.contentOffset.y;\n const visibleLength = event.nativeEvent.layoutMeasurement.height;\n const contentLength = event.nativeEvent.contentSize.height;\n // Check if scroll has reached either start of end of list.\n const isScrollAtStart = offset < 100;\n const isScrollAtEnd = contentLength - visibleLength - offset < 100;\n\n if (isScrollAtStart) {\n maybeCallOnStartReached();\n }\n\n if (isScrollAtEnd) {\n maybeCallOnEndReached();\n }\n\n // Show scrollToBottom button once scroll position goes beyond 150.\n const isScrollAtBottom = offset <= 150;\n const showScrollToBottomButton = !isScrollAtBottom || !hasNoMoreRecentMessagesToLoad;\n\n const shouldMarkRead =\n !threadList && offset <= 0 && hasNoMoreRecentMessagesToLoad && channel.countUnread() > 0;\n\n if (shouldMarkRead) {\n markRead();\n }\n\n setScrollToBottomButtonVisible(showScrollToBottomButton);\n\n if (onListScroll) {\n onListScroll(event);\n }\n };\n\n const goToNewMessages = async () => {\n if (!hasNoMoreRecentMessagesToLoad) {\n resetPaginationTrackersRef.current();\n await reloadChannel();\n } else if (flatListRef.current) {\n flatListRef.current.scrollToOffset({\n offset: 0,\n });\n }\n\n setScrollToBottomButtonVisible(false);\n if (!threadList) {\n markRead();\n }\n };\n\n const onScrollToIndexFailedRef = useRef<\n FlatListProps<MessageType<StreamChatGenerics>>['onScrollToIndexFailed']\n >((info) => {\n // We got a failure as we tried to scroll to an item that was outside the render length\n if (flatListRef.current) {\n // we dont know the actual size of all items but we can see the average, so scroll to the closest offset\n flatListRef.current.scrollToOffset({\n animated: false,\n offset: info.averageItemLength * info.index,\n });\n // since we used only an average offset.. we wont go to the center of the item yet\n // with a little delay to wait for scroll to offset to complete, we can then scroll to the index\n setTimeout(() => {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: info.index,\n viewPosition: 0.5, // try to place message in the center of the screen\n });\n if (messageIdLastScrolledToRef.current) {\n setTargetedMessage(messageIdLastScrolledToRef.current);\n }\n }, 150);\n }\n });\n\n const goToMessage = useCallback(\n (messageId: string) => {\n const indexOfParentInMessageList = messageList.findIndex(\n (message) => message?.id === messageId,\n );\n if (indexOfParentInMessageList !== -1 && flatListRef.current) {\n flatListRef.current.scrollToIndex({\n animated: true,\n index: indexOfParentInMessageList,\n viewPosition: 0.5, // try to place message in the center of the screen\n });\n // keep track of this messageId, so that we dont scroll to again in useEffect for targeted message change\n messageIdLastScrolledToRef.current = messageId;\n setTargetedMessage(messageId);\n return;\n }\n messageIdToScrollToRef.current = messageId; // keep track of the id to scroll afterwards\n loadChannelAroundMessage({ messageId }); // now try to load the message and whats around it\n resetPaginationTrackersRef.current();\n },\n [messageList],\n );\n\n /**\n * Check if a messageId needs to be scrolled to after list loads, and scroll to it\n * Note: This effect fires on every list change with a small debounce so that scrolling isnt abrupted by an immediate rerender\n */\n useEffect(() => {\n scrollToDebounceTimeoutRef.current = setTimeout(() => {\n if (initialScrollToFirstUnreadMessage) {\n initialScrollSettingTimeoutRef.current = setTimeout(() => {\n // small timeout to ensure that handleScroll is called after scrollToIndex to set this flag\n setInitialScrollDone(true);\n }, 500);\n }\n // goToMessage method might have requested to scroll to a message\n let messageIdToScroll: string | undefined = messageIdToScrollToRef.current;\n if (targetedMessage && messageIdLastScrolledToRef.current !== targetedMessage) {\n // if some messageId was targeted but not scrolledTo yet\n // we have scroll to there after loading completes\n messageIdToScroll = targetedMessage;\n }\n if (!messageIdToScroll) return;\n const indexOfParentInMessageList = messageList.findIndex(\n (message) => message?.id === messageIdToScroll,\n );\n if (indexOfParentInMessageList !== -1 && flatListRef.current) {\n flatListRef.current.scrollToIndex({\n animated: false,\n index: indexOfParentInMessageList,\n viewPosition: 0.5, // try to place message in the center of the screen\n });\n // reset the messageId tracker to not scroll to that again\n messageIdToScrollToRef.current = undefined;\n // keep track of this messageId, so that we dont scroll to again for targeted message change\n messageIdLastScrolledToRef.current = messageIdToScroll;\n }\n }, 150);\n return () => {\n clearTimeout(scrollToDebounceTimeoutRef.current);\n clearTimeout(initialScrollSettingTimeoutRef.current);\n };\n }, [targetedMessage, initialScrollToFirstUnreadMessage, messageList]);\n\n const messagesWithImages =\n legacyImageViewerSwipeBehaviour &&\n messageList.filter((message) => {\n const isMessageTypeDeleted = message.type === 'deleted';\n if (!isMessageTypeDeleted && message.attachments) {\n return message.attachments.some(\n (attachment) =>\n attachment.type === 'image' &&\n !attachment.title_link &&\n !attachment.og_scrape_url &&\n (attachment.image_url || attachment.thumb_url),\n );\n }\n return false;\n });\n\n /**\n * This is for the useEffect to run again in the case that a message\n * gets edited with more or the same number of images\n */\n const imageString =\n legacyImageViewerSwipeBehaviour &&\n messagesWithImages &&\n messagesWithImages\n .map((message) =>\n message.attachments\n ?.map((attachment) => attachment.image_url || attachment.thumb_url || '')\n .join(),\n )\n .join();\n\n const numberOfMessagesWithImages =\n legacyImageViewerSwipeBehaviour && messagesWithImages && messagesWithImages.length;\n const threadExists = !!thread;\n\n useEffect(() => {\n if (\n legacyImageViewerSwipeBehaviour &&\n isListActive &&\n ((threadList && thread) || (!threadList && !thread))\n ) {\n setMessages(messagesWithImages as MessageType<StreamChatGenerics>[]);\n }\n }, [\n imageString,\n isListActive,\n legacyImageViewerSwipeBehaviour,\n numberOfMessagesWithImages,\n threadExists,\n threadList,\n ]);\n\n const stickyHeaderFormatDate =\n stickyHeaderDate?.getFullYear() === new Date().getFullYear() ? 'MMM D' : 'MMM D, YYYY';\n const tStickyHeaderDate =\n stickyHeaderDate && !hideStickyDateHeader ? tDateTimeParser(stickyHeaderDate) : null;\n\n const stickyHeaderDateString = useMemo(() => {\n if (tStickyHeaderDate === null || hideStickyDateHeader) return null;\n if (isDayOrMoment(tStickyHeaderDate)) return tStickyHeaderDate.format(stickyHeaderFormatDate);\n\n return new Date(tStickyHeaderDate).toDateString();\n }, [tStickyHeaderDate, stickyHeaderFormatDate, hideStickyDateHeader]);\n\n const dismissImagePicker = () => {\n if (!hasMoved && selectedPicker) {\n setSelectedPicker(undefined);\n closePicker();\n }\n };\n const onScrollBeginDrag = () => !hasMoved && selectedPicker && setHasMoved(true);\n const onScrollEndDrag = () => hasMoved && selectedPicker && setHasMoved(false);\n\n const refCallback = (ref: FlatListType<MessageType<StreamChatGenerics>>) => {\n flatListRef.current = ref;\n\n if (setFlatListRef) {\n setFlatListRef(ref);\n }\n };\n\n const debugRef = useDebugContext();\n\n const isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;\n\n if (isDebugModeEnabled) {\n if (debugRef.current.setEventType) debugRef.current.setEventType('send');\n if (debugRef.current.setSendEventParams)\n debugRef.current.setSendEventParams({\n action: thread ? 'ThreadList' : 'Messages',\n data: messageList,\n });\n }\n\n const renderListEmptyComponent = useCallback(\n () => (\n <View\n style={[styles.flex, shouldApplyAndroidWorkaround ? styles.invertAndroid : styles.invert]}\n testID='empty-state'\n >\n <EmptyStateIndicator listType='message' />\n </View>\n ),\n [EmptyStateIndicator, shouldApplyAndroidWorkaround],\n );\n\n const ListFooterComponent = useCallback(\n () => (\n <View style={shouldApplyAndroidWorkaround ? styles.invertAndroid : undefined}>\n <FooterComponent />\n </View>\n ),\n [shouldApplyAndroidWorkaround, FooterComponent],\n );\n\n const ListHeaderComponent = useCallback(\n () => (\n <View style={shouldApplyAndroidWorkaround ? styles.invertAndroid : undefined}>\n <HeaderComponent />\n </View>\n ),\n [shouldApplyAndroidWorkaround, HeaderComponent],\n );\n\n if (!FlatList) return null;\n\n if (loading) {\n return (\n <View style={styles.flex}>\n <LoadingIndicator listType='message' />\n </View>\n );\n }\n\n const StickyHeaderComponent = () => {\n if (!stickyHeaderDateString) return null;\n if (StickyHeader) return <StickyHeader dateString={stickyHeaderDateString} />;\n if (messageListLengthAfterUpdate) return <DateHeader dateString={stickyHeaderDateString} />;\n return null;\n };\n\n // We need to omit the style related props from the additionalFlatListProps and add them directly instead of spreading\n let additionalFlatListPropsExcludingStyle:\n | Omit<NonNullable<typeof additionalFlatListProps>, 'style' | 'contentContainerStyle'>\n | undefined;\n\n if (additionalFlatListProps) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { contentContainerStyle, style, ...rest } = additionalFlatListProps;\n additionalFlatListPropsExcludingStyle = rest;\n }\n\n return (\n <View\n style={[styles.container, { backgroundColor: white_snow }, container]}\n testID='message-flat-list-wrapper'\n >\n <FlatList\n CellRendererComponent={\n shouldApplyAndroidWorkaround ? InvertedCellRendererComponent : undefined\n }\n contentContainerStyle={[\n styles.contentContainer,\n additionalFlatListProps?.contentContainerStyle,\n contentContainer,\n ]}\n data={messageList}\n /** Disables the MessageList UI. Which means, message actions, reactions won't work. */\n extraData={disabled || !hasNoMoreRecentMessagesToLoad}\n inverted={shouldApplyAndroidWorkaround ? false : inverted}\n keyboardShouldPersistTaps='handled'\n keyExtractor={keyExtractor}\n ListEmptyComponent={renderListEmptyComponent}\n ListFooterComponent={ListFooterComponent}\n ListHeaderComponent={ListHeaderComponent}\n maintainVisibleContentPosition={{\n autoscrollToTopThreshold: autoscrollToTop ? 10 : undefined,\n minIndexForVisible: 1,\n }}\n maxToRenderPerBatch={30}\n onScroll={handleScroll}\n onScrollBeginDrag={onScrollBeginDrag}\n onScrollEndDrag={onScrollEndDrag}\n onScrollToIndexFailed={onScrollToIndexFailedRef.current}\n onTouchEnd={dismissImagePicker}\n onViewableItemsChanged={onViewableItemsChanged.current}\n ref={refCallback}\n renderItem={renderItem}\n scrollEnabled={overlay === 'none'}\n showsVerticalScrollIndicator={!shouldApplyAndroidWorkaround}\n style={[\n styles.listContainer,\n listContainer,\n additionalFlatListProps?.style,\n shouldApplyAndroidWorkaround ? styles.invertAndroid : undefined,\n ]}\n testID='message-flat-list'\n viewabilityConfig={flatListViewabilityConfig}\n {...additionalFlatListPropsExcludingStyle}\n />\n {!loading && (\n <>\n <View style={styles.stickyHeader}>\n <StickyHeaderComponent />\n </View>\n {!disableTypingIndicator && TypingIndicator && (\n <TypingIndicatorContainer>\n <TypingIndicator />\n </TypingIndicatorContainer>\n )}\n <ScrollToBottomButton\n onPress={goToNewMessages}\n showNotification={scrollToBottomButtonVisible}\n unreadCount={threadList ? 0 : channel?.countUnread()}\n />\n </>\n )}\n <NetworkDownIndicator />\n </View>\n );\n};\n\nexport type MessageListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageListPropsWithContext<StreamChatGenerics>>;\n\nexport const MessageList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageListProps<StreamChatGenerics>,\n) => {\n const { closePicker, selectedPicker, setSelectedPicker } = useAttachmentPickerContext();\n const {\n channel,\n disabled,\n EmptyStateIndicator,\n enableMessageGroupingByUser,\n error,\n hideStickyDateHeader,\n isChannelActive,\n loadChannelAroundMessage,\n loading,\n LoadingIndicator,\n markRead,\n NetworkDownIndicator,\n reloadChannel,\n scrollToFirstUnreadThreshold,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n } = useChannelContext<StreamChatGenerics>();\n const { client } = useChatContext<StreamChatGenerics>();\n const { setMessages } = useImageGalleryContext<StreamChatGenerics>();\n const {\n DateHeader,\n disableTypingIndicator,\n FlatList,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n legacyImageViewerSwipeBehaviour,\n Message,\n MessageSystem,\n myMessageTheme,\n ScrollToBottomButton,\n TypingIndicator,\n TypingIndicatorContainer,\n } = useMessagesContext<StreamChatGenerics>();\n const { hasNoMoreRecentMessagesToLoad, loadMore, loadMoreRecent } =\n usePaginatedMessageListContext<StreamChatGenerics>();\n const { overlay } = useOverlayContext();\n const { loadMoreThread, thread } = useThreadContext<StreamChatGenerics>();\n const { t, tDateTimeParser } = useTranslationContext();\n\n return (\n <MessageListWithContext\n {...{\n channel,\n client,\n closePicker,\n DateHeader,\n disabled,\n disableTypingIndicator,\n EmptyStateIndicator,\n enableMessageGroupingByUser,\n error,\n FlatList,\n hasNoMoreRecentMessagesToLoad,\n hideStickyDateHeader,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n isListActive: isChannelActive,\n legacyImageViewerSwipeBehaviour,\n loadChannelAroundMessage,\n loading,\n LoadingIndicator,\n loadMore,\n loadMoreRecent,\n loadMoreThread,\n markRead,\n Message,\n MessageSystem,\n myMessageTheme,\n NetworkDownIndicator,\n overlay,\n reloadChannel,\n ScrollToBottomButton,\n scrollToFirstUnreadThreshold,\n selectedPicker,\n setMessages,\n setSelectedPicker,\n setTargetedMessage,\n StickyHeader,\n t,\n targetedMessage,\n tDateTimeParser,\n thread,\n TypingIndicator,\n TypingIndicatorContainer,\n }}\n {...props}\n noGroupByUser={!enableMessageGroupingByUser || props.noGroupByUser}\n />\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_TranslationContext","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","flexDirection","justifyContent","marginBottom","line","flex","height","text","fontSize","fontWeight","textAlign","textContainer","marginTop","MessageSystem","props","_message$text","formatDate","message","style","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","grey","grey_whisper","_useTheme$theme$messa","messageList","messageSystem","dateText","_useTranslationContex","useTranslationContext","tDateTimeParser","createdAt","created_at","parsedDate","date","isDayOrMoment","calendar","toUpperCase","createElement","View","testID","__self","__source","fileName","lineNumber","columnNumber","backgroundColor","Text","color","exports","displayName"],"sources":["MessageSystem.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, StyleSheet, Text, View, ViewStyle } from 'react-native';\n\nimport type { MessageType } from './hooks/useMessageList';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n isDayOrMoment,\n TDateTimeParserInput,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'center',\n marginBottom: 10,\n },\n line: {\n flex: 1,\n height: 0.5,\n },\n text: {\n fontSize: 10,\n fontWeight: 'bold',\n textAlign: 'center',\n },\n textContainer: {\n flex: 3,\n marginTop: 10,\n },\n});\n\nexport type MessageSystemProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /** Current [message object](https://getstream.io/chat/docs/#message_format) */\n message: MessageType<StreamChatGenerics>;\n /**\n * Formatter function for date object.\n *\n * @param date TDateTimeParserInput object of message\n * @returns string\n */\n formatDate?: (date: TDateTimeParserInput) => string;\n style?: StyleProp<ViewStyle>;\n};\n\n/**\n * A component to display system message. e.g, when someone updates the channel,\n * they can attach a message with that update. That message will be available\n * in message list as (type) system message.\n */\nexport const MessageSystem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageSystemProps<StreamChatGenerics>,\n) => {\n const { formatDate, message, style } = props;\n\n const {\n theme: {\n colors: { grey, grey_whisper },\n messageList: {\n messageSystem: { container, dateText, line, text, textContainer },\n },\n },\n } = useTheme();\n const { tDateTimeParser } = useTranslationContext();\n\n const createdAt = message.created_at;\n const parsedDate = tDateTimeParser(createdAt);\n const date =\n formatDate && createdAt\n ? formatDate(createdAt)\n : parsedDate && isDayOrMoment(parsedDate)\n ? parsedDate.calendar().toUpperCase()\n : parsedDate;\n\n return (\n <View style={[styles.container, style, container]} testID='message-system'>\n <View style={[styles.line, { backgroundColor: grey_whisper }, line]} />\n <View style={[styles.textContainer, textContainer]}>\n <Text style={[styles.text, { color: grey }, text]}>\n {message.text?.toUpperCase() || ''}\n </Text>\n <Text style={[styles.text, { color: grey }, dateText]}>{date}</Text>\n </View>\n <View style={[styles.line, { backgroundColor: grey_whisper }, line]} />\n </View>\n );\n};\n\nMessageSystem.displayName = 'MessageSystem{messageList{messageSystem}}';\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAIA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AAI8D,IAAAI,KAAA;EAAAC,YAAA;AAI9D,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,QAAQ;IACxBC,YAAY,EAAE;EAChB,CAAC;EACDC,IAAI,EAAE;IACJC,IAAI,EAAE,CAAC;IACPC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,SAAS,EAAE;EACb,CAAC;EACDC,aAAa,EAAE;IACbN,IAAI,EAAE,CAAC;IACPO,SAAS,EAAE;EACb;AACF,CAAC,CAAC;AAsBK,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAGxBC,KAA6C,EAC1C;EAAA,IAAAC,aAAA;EACH,IAAQC,UAAU,GAAqBF,KAAK,CAApCE,UAAU;IAAEC,OAAO,GAAYH,KAAK,CAAxBG,OAAO;IAAEC,KAAK,GAAKJ,KAAK,CAAfI,KAAK;EAElC,IAAAC,SAAA,GAOI,IAAAC,sBAAQ,GAAE;IAAAC,eAAA,GAAAF,SAAA,CANZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,MAAM;IAAIC,IAAI,GAAAF,qBAAA,CAAJE,IAAI;IAAEC,YAAY,GAAAH,qBAAA,CAAZG,YAAY;IAAAC,qBAAA,GAAAN,eAAA,CAC5BO,WAAW,CACTC,aAAa;IAAI9B,SAAS,GAAA4B,qBAAA,CAAT5B,SAAS;IAAE+B,QAAQ,GAAAH,qBAAA,CAARG,QAAQ;IAAE1B,IAAI,GAAAuB,qBAAA,CAAJvB,IAAI;IAAEG,IAAI,GAAAoB,qBAAA,CAAJpB,IAAI;IAAEI,aAAa,GAAAgB,qBAAA,CAAbhB,aAAa;EAIrE,IAAAoB,qBAAA,GAA4B,IAAAC,yCAAqB,GAAE;IAA3CC,eAAe,GAAAF,qBAAA,CAAfE,eAAe;EAEvB,IAAMC,SAAS,GAAGjB,OAAO,CAACkB,UAAU;EACpC,IAAMC,UAAU,GAAGH,eAAe,CAACC,SAAS,CAAC;EAC7C,IAAMG,IAAI,GACRrB,UAAU,IAAIkB,SAAS,GACnBlB,UAAU,CAACkB,SAAS,CAAC,GACrBE,UAAU,IAAI,IAAAE,iCAAa,EAACF,UAAU,CAAC,GACvCA,UAAU,CAACG,QAAQ,EAAE,CAACC,WAAW,EAAE,GACnCJ,UAAU;EAEhB,OACEhD,MAAA,YAAAqD,aAAA,CAAClD,YAAA,CAAAmD,IAAI;IAACxB,KAAK,EAAE,CAACtB,MAAM,CAACG,SAAS,EAAEmB,KAAK,EAAEnB,SAAS,CAAE;IAAC4C,MAAM,EAAC,gBAAgB;IAAAC,MAAA,EAAAlD,KAAA;IAAAmD,QAAA;MAAAC,QAAA,EAAAnD,YAAA;MAAAoD,UAAA;MAAAC,YAAA;IAAA;EAAA,GACxE5D,MAAA,YAAAqD,aAAA,CAAClD,YAAA,CAAAmD,IAAI;IAACxB,KAAK,EAAE,CAACtB,MAAM,CAACQ,IAAI,EAAE;MAAE6C,eAAe,EAAEvB;IAAa,CAAC,EAAEtB,IAAI,CAAE;IAAAwC,MAAA,EAAAlD,KAAA;IAAAmD,QAAA;MAAAC,QAAA,EAAAnD,YAAA;MAAAoD,UAAA;MAAAC,YAAA;IAAA;EAAA,EAAG,EACvE5D,MAAA,YAAAqD,aAAA,CAAClD,YAAA,CAAAmD,IAAI;IAACxB,KAAK,EAAE,CAACtB,MAAM,CAACe,aAAa,EAAEA,aAAa,CAAE;IAAAiC,MAAA,EAAAlD,KAAA;IAAAmD,QAAA;MAAAC,QAAA,EAAAnD,YAAA;MAAAoD,UAAA;MAAAC,YAAA;IAAA;EAAA,GACjD5D,MAAA,YAAAqD,aAAA,CAAClD,YAAA,CAAA2D,IAAI;IAAChC,KAAK,EAAE,CAACtB,MAAM,CAACW,IAAI,EAAE;MAAE4C,KAAK,EAAE1B;IAAK,CAAC,EAAElB,IAAI,CAAE;IAAAqC,MAAA,EAAAlD,KAAA;IAAAmD,QAAA;MAAAC,QAAA,EAAAnD,YAAA;MAAAoD,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC/C,EAAAjC,aAAA,GAAAE,OAAO,CAACV,IAAI,qBAAZQ,aAAA,CAAcyB,WAAW,EAAE,KAAI,EAAE,CAC7B,EACPpD,MAAA,YAAAqD,aAAA,CAAClD,YAAA,CAAA2D,IAAI;IAAChC,KAAK,EAAE,CAACtB,MAAM,CAACW,IAAI,EAAE;MAAE4C,KAAK,EAAE1B;IAAK,CAAC,EAAEK,QAAQ,CAAE;IAAAc,MAAA,EAAAlD,KAAA;IAAAmD,QAAA;MAAAC,QAAA,EAAAnD,YAAA;MAAAoD,UAAA;MAAAC,YAAA;IAAA;EAAA,GAAEX,IAAI,CAAQ,CAC/D,EACPjD,MAAA,YAAAqD,aAAA,CAAClD,YAAA,CAAAmD,IAAI;IAACxB,KAAK,EAAE,CAACtB,MAAM,CAACQ,IAAI,EAAE;MAAE6C,eAAe,EAAEvB;IAAa,CAAC,EAAEtB,IAAI,CAAE;IAAAwC,MAAA,EAAAlD,KAAA;IAAAmD,QAAA;MAAAC,QAAA,EAAAnD,YAAA;MAAAoD,UAAA;MAAAC,YAAA;IAAA;EAAA,EAAG,CAClE;AAEX,CAAC;AAACI,OAAA,CAAAvC,aAAA,GAAAA,aAAA;AAEFA,aAAa,CAACwC,WAAW,GAAG,2CAA2C"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_TranslationContext","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","flexDirection","justifyContent","marginBottom","line","flex","height","text","fontSize","fontWeight","textAlign","textContainer","marginTop","MessageSystem","props","_message$text","formatDate","message","style","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","grey","grey_whisper","_useTheme$theme$messa","messageList","messageSystem","dateText","_useTranslationContex","useTranslationContext","tDateTimeParser","createdAt","created_at","parsedDate","date","isDayOrMoment","calendar","toUpperCase","createElement","View","testID","__self","__source","fileName","lineNumber","columnNumber","backgroundColor","Text","color","exports","displayName"],"sources":["MessageSystem.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, StyleSheet, Text, View, ViewStyle } from 'react-native';\n\nimport type { MessageType } from './hooks/useMessageList';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n isDayOrMoment,\n TDateTimeParserInput,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'center',\n marginBottom: 10,\n },\n line: {\n flex: 1,\n height: 0.5,\n },\n text: {\n fontSize: 10,\n fontWeight: 'bold',\n textAlign: 'center',\n },\n textContainer: {\n flex: 3,\n marginTop: 10,\n },\n});\n\nexport type MessageSystemProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /** Current [message object](https://getstream.io/chat/docs/#message_format) */\n message: MessageType<StreamChatGenerics>;\n /**\n * Formatter function for date object.\n *\n * @param date TDateTimeParserInput object of message\n * @returns string\n */\n formatDate?: (date: TDateTimeParserInput) => string;\n style?: StyleProp<ViewStyle>;\n};\n\n/**\n * A component to display system message. e.g, when someone updates the channel,\n * they can attach a message with that update. That message will be available\n * in message list as (type) system message.\n */\nexport const MessageSystem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageSystemProps<StreamChatGenerics>,\n) => {\n const { formatDate, message, style } = props;\n\n const {\n theme: {\n colors: { grey, grey_whisper },\n messageList: {\n messageSystem: { container, dateText, line, text, textContainer },\n },\n },\n } = useTheme();\n const { tDateTimeParser } = useTranslationContext();\n\n const createdAt = message.created_at;\n const parsedDate = tDateTimeParser(createdAt);\n const date =\n formatDate && createdAt\n ? formatDate(createdAt)\n : parsedDate && isDayOrMoment(parsedDate)\n ? parsedDate.calendar().toUpperCase()\n : parsedDate;\n\n return (\n <View style={[styles.container, style, container]} testID='message-system'>\n <View style={[styles.line, { backgroundColor: grey_whisper }, line]} />\n <View style={[styles.textContainer, textContainer]}>\n <Text style={[styles.text, { color: grey }, text]}>\n {message.text?.toUpperCase() || ''}\n </Text>\n <Text style={[styles.text, { color: grey }, dateText]}>{date}</Text>\n </View>\n <View style={[styles.line, { backgroundColor: grey_whisper }, line]} />\n </View>\n );\n};\n\nMessageSystem.displayName = 'MessageSystem{messageList{messageSystem}}';\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ChannelContext","_ChatContext","_ThemeContext","_TranslationContext","_this","_jsxFileName","styles","StyleSheet","create","errorNotification","alignItems","left","paddingVertical","position","right","top","errorNotificationText","color","fontSize","NetworkDownIndicator","_useChannelContext","useChannelContext","error","_useChatContext","useChatContext","isOnline","_useTheme","useTheme","_useTheme$theme","theme","grey","colors","_useTheme$theme$messa","messageList","_useTranslationContex","useTranslationContext","t","getText","indicatorText","createElement","View","style","backgroundColor","testID","__self","__source","fileName","lineNumber","columnNumber","Text","exports"],"sources":["NetworkDownIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { useChannelContext } from '../../contexts/channelContext/ChannelContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\n\nconst styles = StyleSheet.create({\n errorNotification: {\n alignItems: 'center',\n left: 0,\n paddingVertical: 4,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n errorNotificationText: {\n color: '#FFFFFF',\n fontSize: 14,\n },\n});\n\nexport const NetworkDownIndicator = () => {\n const { error } = useChannelContext();\n const { isOnline } = useChatContext();\n const {\n theme: {\n colors: { grey },\n messageList: { errorNotification, errorNotificationText },\n },\n } = useTheme();\n const { t } = useTranslationContext();\n\n const getText = () => {\n if (!isOnline) {\n return t('Reconnecting...');\n } else if (error) {\n return t('Error loading messages for this channel...');\n }\n return '';\n };\n\n const indicatorText = getText();\n\n if (!indicatorText) return null;\n\n return (\n <View\n style={[styles.errorNotification, { backgroundColor: `${grey}E6` }, errorNotification]}\n testID='error-notification'\n >\n <Text style={[styles.errorNotificationText, errorNotificationText]}>{indicatorText}</Text>\n </View>\n );\n};\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAEA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,mBAAA,GAAAL,OAAA;AAA6F,IAAAM,KAAA;EAAAC,YAAA;AAE7F,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,iBAAiB,EAAE;IACjBC,UAAU,EAAE,QAAQ;IACpBC,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE,CAAC;IAClBC,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE,CAAC;IACRC,GAAG,EAAE;EACP,CAAC;EACDC,qBAAqB,EAAE;IACrBC,KAAK,EAAE,SAAS;IAChBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEK,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA,EAAS;EACxC,IAAAC,kBAAA,GAAkB,IAAAC,iCAAiB,GAAE;IAA7BC,KAAK,GAAAF,kBAAA,CAALE,KAAK;EACb,IAAAC,eAAA,GAAqB,IAAAC,2BAAc,GAAE;IAA7BC,QAAQ,GAAAF,eAAA,CAARE,QAAQ;EAChB,IAAAC,SAAA,GAKI,IAAAC,sBAAQ,GAAE;IAAAC,eAAA,GAAAF,SAAA,CAJZG,KAAK;IACOC,IAAI,GAAAF,eAAA,CAAdG,MAAM,CAAID,IAAI;IAAAE,qBAAA,GAAAJ,eAAA,CACdK,WAAW;IAAIxB,iBAAiB,GAAAuB,qBAAA,CAAjBvB,iBAAiB;IAAEO,qBAAqB,GAAAgB,qBAAA,CAArBhB,qBAAqB;EAG3D,IAAAkB,qBAAA,GAAc,IAAAC,yCAAqB,GAAE;IAA7BC,CAAC,GAAAF,qBAAA,CAADE,CAAC;EAET,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAS;IACpB,IAAI,CAACZ,QAAQ,EAAE;MACb,OAAOW,CAAC,CAAC,iBAAiB,CAAC;IAC7B,CAAC,MAAM,IAAId,KAAK,EAAE;MAChB,OAAOc,CAAC,CAAC,4CAA4C,CAAC;IACxD;IACA,OAAO,EAAE;EACX,CAAC;EAED,IAAME,aAAa,GAAGD,OAAO,EAAE;EAE/B,IAAI,CAACC,aAAa,EAAE,OAAO,IAAI;EAE/B,OACE1C,MAAA,YAAA2C,aAAA,CAACxC,YAAA,CAAAyC,IAAI;IACHC,KAAK,EAAE,CAACnC,MAAM,CAACG,iBAAiB,EAAE;MAAEiC,eAAe,EAAKZ,IAAI;IAAK,CAAC,EAAErB,iBAAiB,CAAE;IACvFkC,MAAM,EAAC,oBAAoB;IAAAC,MAAA,EAAAxC,KAAA;IAAAyC,QAAA;MAAAC,QAAA,EAAAzC,YAAA;MAAA0C,UAAA;MAAAC,YAAA;IAAA;EAAA,GAE3BpD,MAAA,YAAA2C,aAAA,CAACxC,YAAA,CAAAkD,IAAI;IAACR,KAAK,EAAE,CAACnC,MAAM,CAACU,qBAAqB,EAAEA,qBAAqB,CAAE;IAAA4B,MAAA,EAAAxC,KAAA;IAAAyC,QAAA;MAAAC,QAAA,EAAAzC,YAAA;MAAA0C,UAAA;MAAAC,YAAA;IAAA;EAAA,GAAEV,aAAa,CAAQ,CACrF;AAEX,CAAC;AAACY,OAAA,CAAA/B,oBAAA,GAAAA,oBAAA"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ChannelContext","_ChatContext","_ThemeContext","_TranslationContext","_this","_jsxFileName","styles","StyleSheet","create","errorNotification","alignItems","left","paddingVertical","position","right","top","errorNotificationText","color","fontSize","NetworkDownIndicator","_useChannelContext","useChannelContext","error","_useChatContext","useChatContext","isOnline","_useTheme","useTheme","_useTheme$theme","theme","grey","colors","_useTheme$theme$messa","messageList","_useTranslationContex","useTranslationContext","t","getText","indicatorText","createElement","View","style","backgroundColor","testID","__self","__source","fileName","lineNumber","columnNumber","Text","exports"],"sources":["NetworkDownIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { useChannelContext } from '../../contexts/channelContext/ChannelContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\n\nconst styles = StyleSheet.create({\n errorNotification: {\n alignItems: 'center',\n left: 0,\n paddingVertical: 4,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n errorNotificationText: {\n color: '#FFFFFF',\n fontSize: 14,\n },\n});\n\nexport const NetworkDownIndicator = () => {\n const { error } = useChannelContext();\n const { isOnline } = useChatContext();\n const {\n theme: {\n colors: { grey },\n messageList: { errorNotification, errorNotificationText },\n },\n } = useTheme();\n const { t } = useTranslationContext();\n\n const getText = () => {\n if (!isOnline) {\n return t('Reconnecting...');\n } else if (error) {\n return t('Error loading messages for this channel...');\n }\n return '';\n };\n\n const indicatorText = getText();\n\n if (!indicatorText) return null;\n\n return (\n <View\n style={[styles.errorNotification, { backgroundColor: `${grey}E6` }, errorNotification]}\n testID='error-notification'\n >\n <Text style={[styles.errorNotificationText, errorNotificationText]}>{indicatorText}</Text>\n </View>\n );\n};\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAEA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,mBAAA,GAAAL,OAAA;AAA6F,IAAAM,KAAA;EAAAC,YAAA;AAE7F,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,iBAAiB,EAAE;IACjBC,UAAU,EAAE,QAAQ;IACpBC,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE,CAAC;IAClBC,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE,CAAC;IACRC,GAAG,EAAE;EACP,CAAC;EACDC,qBAAqB,EAAE;IACrBC,KAAK,EAAE,SAAS;IAChBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEK,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA,EAAS;EACxC,IAAAC,kBAAA,GAAkB,IAAAC,iCAAiB,EAAC,CAAC;IAA7BC,KAAK,GAAAF,kBAAA,CAALE,KAAK;EACb,IAAAC,eAAA,GAAqB,IAAAC,2BAAc,EAAC,CAAC;IAA7BC,QAAQ,GAAAF,eAAA,CAARE,QAAQ;EAChB,IAAAC,SAAA,GAKI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CAJZG,KAAK;IACOC,IAAI,GAAAF,eAAA,CAAdG,MAAM,CAAID,IAAI;IAAAE,qBAAA,GAAAJ,eAAA,CACdK,WAAW;IAAIxB,iBAAiB,GAAAuB,qBAAA,CAAjBvB,iBAAiB;IAAEO,qBAAqB,GAAAgB,qBAAA,CAArBhB,qBAAqB;EAG3D,IAAAkB,qBAAA,GAAc,IAAAC,yCAAqB,EAAC,CAAC;IAA7BC,CAAC,GAAAF,qBAAA,CAADE,CAAC;EAET,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAS;IACpB,IAAI,CAACZ,QAAQ,EAAE;MACb,OAAOW,CAAC,CAAC,iBAAiB,CAAC;IAC7B,CAAC,MAAM,IAAId,KAAK,EAAE;MAChB,OAAOc,CAAC,CAAC,4CAA4C,CAAC;IACxD;IACA,OAAO,EAAE;EACX,CAAC;EAED,IAAME,aAAa,GAAGD,OAAO,CAAC,CAAC;EAE/B,IAAI,CAACC,aAAa,EAAE,OAAO,IAAI;EAE/B,OACE1C,MAAA,YAAA2C,aAAA,CAACxC,YAAA,CAAAyC,IAAI;IACHC,KAAK,EAAE,CAACnC,MAAM,CAACG,iBAAiB,EAAE;MAAEiC,eAAe,EAAKZ,IAAI;IAAK,CAAC,EAAErB,iBAAiB,CAAE;IACvFkC,MAAM,EAAC,oBAAoB;IAAAC,MAAA,EAAAxC,KAAA;IAAAyC,QAAA;MAAAC,QAAA,EAAAzC,YAAA;MAAA0C,UAAA;MAAAC,YAAA;IAAA;EAAA,GAE3BpD,MAAA,YAAA2C,aAAA,CAACxC,YAAA,CAAAkD,IAAI;IAACR,KAAK,EAAE,CAACnC,MAAM,CAACU,qBAAqB,EAAEA,qBAAqB,CAAE;IAAA4B,MAAA,EAAAxC,KAAA;IAAAyC,QAAA;MAAAC,QAAA,EAAAzC,YAAA;MAAA0C,UAAA;MAAAC,YAAA;IAAA;EAAA,GAAEV,aAAoB,CACrF,CAAC;AAEX,CAAC;AAACY,OAAA,CAAA/B,oBAAA,GAAAA,oBAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_icons","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","borderRadius","elevation","height","justifyContent","shadowOffset","width","shadowOpacity","shadowRadius","touchable","bottom","position","right","unreadCountNotificationContainer","minWidth","paddingHorizontal","top","unreadCountNotificationText","fontSize","textAlign","textAlignVertical","wrapper","ScrollToBottomButton","props","onPress","_props$showNotificati","showNotification","unreadCount","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","black","white","_useTheme$theme$messa","messageList","scrollToBottomButton","chevronColor","createElement","TouchableOpacity","style","testID","__self","__source","fileName","lineNumber","columnNumber","View","backgroundColor","shadowColor","Down","pathFill","Text","color","exports","displayName"],"sources":["ScrollToBottomButton.tsx"],"sourcesContent":["import React from 'react';\nimport { GestureResponderEvent, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Down } from '../../icons';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n borderRadius: 20,\n elevation: 5,\n height: 40,\n justifyContent: 'center',\n shadowOffset: {\n height: 2,\n width: 0,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n width: 40,\n },\n touchable: {\n bottom: 20,\n position: 'absolute',\n right: 20,\n },\n unreadCountNotificationContainer: {\n alignItems: 'center',\n borderRadius: 10,\n elevation: 6,\n height: 20,\n justifyContent: 'center',\n minWidth: 20,\n paddingHorizontal: 4,\n position: 'absolute',\n top: 0,\n },\n unreadCountNotificationText: {\n fontSize: 11,\n textAlign: 'center',\n textAlignVertical: 'center',\n },\n wrapper: {\n alignItems: 'center',\n height: 50,\n justifyContent: 'flex-end',\n },\n});\n\nexport type ScrollToBottomButtonProps = {\n /** onPress handler */\n onPress: (event: GestureResponderEvent) => void;\n /** If we should show the notification or not */\n showNotification?: boolean;\n unreadCount?: number;\n};\n\nexport const ScrollToBottomButton: React.FC<ScrollToBottomButtonProps> = (props) => {\n const { onPress, showNotification = true, unreadCount } = props;\n\n const {\n theme: {\n colors: { accent_blue, black, white },\n messageList: {\n scrollToBottomButton: {\n chevronColor,\n container,\n touchable,\n unreadCountNotificationContainer,\n unreadCountNotificationText,\n wrapper,\n },\n },\n },\n } = useTheme();\n\n if (!showNotification) return null;\n\n return (\n <TouchableOpacity\n onPress={onPress}\n style={[styles.touchable, touchable]}\n testID='message-notification'\n >\n <View style={[styles.wrapper, wrapper]}>\n <View style={[styles.container, { backgroundColor: white, shadowColor: black }, container]}>\n <Down pathFill={chevronColor ? chevronColor : black} />\n </View>\n {!!unreadCount && (\n <View\n style={[\n styles.unreadCountNotificationContainer,\n { backgroundColor: accent_blue },\n unreadCountNotificationContainer,\n ]}\n >\n <Text\n style={[\n styles.unreadCountNotificationText,\n { color: white },\n unreadCountNotificationText,\n ]}\n testID='unread-count'\n >\n {unreadCount}\n </Text>\n </View>\n )}\n </View>\n </TouchableOpacity>\n );\n};\n\nScrollToBottomButton.displayName = 'ScrollToBottomButton{messageList{scrollToBottomButton}}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_icons","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","borderRadius","elevation","height","justifyContent","shadowOffset","width","shadowOpacity","shadowRadius","touchable","bottom","position","right","unreadCountNotificationContainer","minWidth","paddingHorizontal","top","unreadCountNotificationText","fontSize","textAlign","textAlignVertical","wrapper","ScrollToBottomButton","props","onPress","_props$showNotificati","showNotification","unreadCount","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","black","white","_useTheme$theme$messa","messageList","scrollToBottomButton","chevronColor","createElement","TouchableOpacity","style","testID","__self","__source","fileName","lineNumber","columnNumber","View","backgroundColor","shadowColor","Down","pathFill","Text","color","exports","displayName"],"sources":["ScrollToBottomButton.tsx"],"sourcesContent":["import React from 'react';\nimport { GestureResponderEvent, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Down } from '../../icons';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n borderRadius: 20,\n elevation: 5,\n height: 40,\n justifyContent: 'center',\n shadowOffset: {\n height: 2,\n width: 0,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n width: 40,\n },\n touchable: {\n bottom: 20,\n position: 'absolute',\n right: 20,\n },\n unreadCountNotificationContainer: {\n alignItems: 'center',\n borderRadius: 10,\n elevation: 6,\n height: 20,\n justifyContent: 'center',\n minWidth: 20,\n paddingHorizontal: 4,\n position: 'absolute',\n top: 0,\n },\n unreadCountNotificationText: {\n fontSize: 11,\n textAlign: 'center',\n textAlignVertical: 'center',\n },\n wrapper: {\n alignItems: 'center',\n height: 50,\n justifyContent: 'flex-end',\n },\n});\n\nexport type ScrollToBottomButtonProps = {\n /** onPress handler */\n onPress: (event: GestureResponderEvent) => void;\n /** If we should show the notification or not */\n showNotification?: boolean;\n unreadCount?: number;\n};\n\nexport const ScrollToBottomButton: React.FC<ScrollToBottomButtonProps> = (props) => {\n const { onPress, showNotification = true, unreadCount } = props;\n\n const {\n theme: {\n colors: { accent_blue, black, white },\n messageList: {\n scrollToBottomButton: {\n chevronColor,\n container,\n touchable,\n unreadCountNotificationContainer,\n unreadCountNotificationText,\n wrapper,\n },\n },\n },\n } = useTheme();\n\n if (!showNotification) return null;\n\n return (\n <TouchableOpacity\n onPress={onPress}\n style={[styles.touchable, touchable]}\n testID='message-notification'\n >\n <View style={[styles.wrapper, wrapper]}>\n <View style={[styles.container, { backgroundColor: white, shadowColor: black }, container]}>\n <Down pathFill={chevronColor ? chevronColor : black} />\n </View>\n {!!unreadCount && (\n <View\n style={[\n styles.unreadCountNotificationContainer,\n { backgroundColor: accent_blue },\n unreadCountNotificationContainer,\n ]}\n >\n <Text\n style={[\n styles.unreadCountNotificationText,\n { color: white },\n unreadCountNotificationText,\n ]}\n testID='unread-count'\n >\n {unreadCount}\n </Text>\n </View>\n )}\n </View>\n </TouchableOpacity>\n );\n};\n\nScrollToBottomButton.displayName = 'ScrollToBottomButton{messageList{scrollToBottomButton}}';\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_useTypingString","_ThemeContext","_LoadingDots","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","flexDirection","height","justifyContent","loadingDots","marginLeft","typingText","TypingIndicator","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","grey","white_snow","_useTheme$theme$typin","typingIndicator","text","typingString","useTypingString","createElement","View","style","backgroundColor","testID","__self","__source","fileName","lineNumber","columnNumber","LoadingDots","Text","color","exports","displayName"],"sources":["TypingIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { useTypingString } from './hooks/useTypingString';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { LoadingDots } from '../Indicators/LoadingDots';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n height: 24,\n justifyContent: 'flex-start',\n },\n loadingDots: {\n marginLeft: 8,\n },\n typingText: {\n marginLeft: 8,\n },\n});\n\nexport const TypingIndicator = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const {\n theme: {\n colors: { grey, white_snow },\n typingIndicator: { container, text },\n },\n } = useTheme();\n const typingString = useTypingString<StreamChatGenerics>();\n\n return (\n <View\n style={[styles.container, { backgroundColor: `${white_snow}E6` }, container]}\n testID='typing-indicator'\n >\n <LoadingDots style={styles.loadingDots} />\n <Text style={[styles.typingText, { color: grey }, text]}>{typingString}</Text>\n </View>\n );\n};\n\nTypingIndicator.displayName = 'TypingIndicator{typingIndicator}';\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,IAAAG,aAAA,GAAAH,OAAA;AAGA,IAAAI,YAAA,GAAAJ,OAAA;AAAwD,IAAAK,KAAA;EAAAC,YAAA;AAExD,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IACpBC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE;EAClB,CAAC;EACDC,WAAW,EAAE;IACXC,UAAU,EAAE;EACd,CAAC;EACDC,UAAU,EAAE;IACVD,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAEK,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAErB;EACL,IAAAC,SAAA,GAKI,IAAAC,sBAAQ,GAAE;IAAAC,eAAA,GAAAF,SAAA,CAJZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,MAAM;IAAIC,IAAI,GAAAF,qBAAA,CAAJE,IAAI;IAAEC,UAAU,GAAAH,qBAAA,CAAVG,UAAU;IAAAC,qBAAA,GAAAN,eAAA,CAC1BO,eAAe;IAAIlB,SAAS,GAAAiB,qBAAA,CAATjB,SAAS;IAAEmB,IAAI,GAAAF,qBAAA,CAAJE,IAAI;EAGtC,IAAMC,YAAY,GAAG,IAAAC,gCAAe,GAAsB;EAE1D,OACEjC,MAAA,YAAAkC,aAAA,CAAC/B,YAAA,CAAAgC,IAAI;IACHC,KAAK,EAAE,CAAC3B,MAAM,CAACG,SAAS,EAAE;MAAEyB,eAAe,EAAKT,UAAU;IAAK,CAAC,EAAEhB,SAAS,CAAE;IAC7E0B,MAAM,EAAC,kBAAkB;IAAAC,MAAA,EAAAhC,KAAA;IAAAiC,QAAA;MAAAC,QAAA,EAAAjC,YAAA;MAAAkC,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEzB3C,MAAA,YAAAkC,aAAA,CAAC5B,YAAA,CAAAsC,WAAW;IAACR,KAAK,EAAE3B,MAAM,CAACQ,WAAY;IAAAsB,MAAA,EAAAhC,KAAA;IAAAiC,QAAA;MAAAC,QAAA,EAAAjC,YAAA;MAAAkC,UAAA;MAAAC,YAAA;IAAA;EAAA,EAAG,EAC1C3C,MAAA,YAAAkC,aAAA,CAAC/B,YAAA,CAAA0C,IAAI;IAACT,KAAK,EAAE,CAAC3B,MAAM,CAACU,UAAU,EAAE;MAAE2B,KAAK,EAAEnB;IAAK,CAAC,EAAEI,IAAI,CAAE;IAAAQ,MAAA,EAAAhC,KAAA;IAAAiC,QAAA;MAAAC,QAAA,EAAAjC,YAAA;MAAAkC,UAAA;MAAAC,YAAA;IAAA;EAAA,GAAEX,YAAY,CAAQ,CACzE;AAEX,CAAC;AAACe,OAAA,CAAA3B,eAAA,GAAAA,eAAA;AAEFA,eAAe,CAAC4B,WAAW,GAAG,kCAAkC"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_useTypingString","_ThemeContext","_LoadingDots","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","flexDirection","height","justifyContent","loadingDots","marginLeft","typingText","TypingIndicator","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","grey","white_snow","_useTheme$theme$typin","typingIndicator","text","typingString","useTypingString","createElement","View","style","backgroundColor","testID","__self","__source","fileName","lineNumber","columnNumber","LoadingDots","Text","color","exports","displayName"],"sources":["TypingIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { useTypingString } from './hooks/useTypingString';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { LoadingDots } from '../Indicators/LoadingDots';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n height: 24,\n justifyContent: 'flex-start',\n },\n loadingDots: {\n marginLeft: 8,\n },\n typingText: {\n marginLeft: 8,\n },\n});\n\nexport const TypingIndicator = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const {\n theme: {\n colors: { grey, white_snow },\n typingIndicator: { container, text },\n },\n } = useTheme();\n const typingString = useTypingString<StreamChatGenerics>();\n\n return (\n <View\n style={[styles.container, { backgroundColor: `${white_snow}E6` }, container]}\n testID='typing-indicator'\n >\n <LoadingDots style={styles.loadingDots} />\n <Text style={[styles.typingText, { color: grey }, text]}>{typingString}</Text>\n </View>\n );\n};\n\nTypingIndicator.displayName = 'TypingIndicator{typingIndicator}';\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,IAAAG,aAAA,GAAAH,OAAA;AAGA,IAAAI,YAAA,GAAAJ,OAAA;AAAwD,IAAAK,KAAA;EAAAC,YAAA;AAExD,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IACpBC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE;EAClB,CAAC;EACDC,WAAW,EAAE;IACXC,UAAU,EAAE;EACd,CAAC;EACDC,UAAU,EAAE;IACVD,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAEK,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAErB;EACL,IAAAC,SAAA,GAKI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CAJZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,MAAM;IAAIC,IAAI,GAAAF,qBAAA,CAAJE,IAAI;IAAEC,UAAU,GAAAH,qBAAA,CAAVG,UAAU;IAAAC,qBAAA,GAAAN,eAAA,CAC1BO,eAAe;IAAIlB,SAAS,GAAAiB,qBAAA,CAATjB,SAAS;IAAEmB,IAAI,GAAAF,qBAAA,CAAJE,IAAI;EAGtC,IAAMC,YAAY,GAAG,IAAAC,gCAAe,EAAqB,CAAC;EAE1D,OACEjC,MAAA,YAAAkC,aAAA,CAAC/B,YAAA,CAAAgC,IAAI;IACHC,KAAK,EAAE,CAAC3B,MAAM,CAACG,SAAS,EAAE;MAAEyB,eAAe,EAAKT,UAAU;IAAK,CAAC,EAAEhB,SAAS,CAAE;IAC7E0B,MAAM,EAAC,kBAAkB;IAAAC,MAAA,EAAAhC,KAAA;IAAAiC,QAAA;MAAAC,QAAA,EAAAjC,YAAA;MAAAkC,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEzB3C,MAAA,YAAAkC,aAAA,CAAC5B,YAAA,CAAAsC,WAAW;IAACR,KAAK,EAAE3B,MAAM,CAACQ,WAAY;IAAAsB,MAAA,EAAAhC,KAAA;IAAAiC,QAAA;MAAAC,QAAA,EAAAjC,YAAA;MAAAkC,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EAC1C3C,MAAA,YAAAkC,aAAA,CAAC/B,YAAA,CAAA0C,IAAI;IAACT,KAAK,EAAE,CAAC3B,MAAM,CAACU,UAAU,EAAE;MAAE2B,KAAK,EAAEnB;IAAK,CAAC,EAAEI,IAAI,CAAE;IAAAQ,MAAA,EAAAhC,KAAA;IAAAiC,QAAA;MAAAC,QAAA,EAAAjC,YAAA;MAAAkC,UAAA;MAAAC,YAAA;IAAA;EAAA,GAAEX,YAAmB,CACzE,CAAC;AAEX,CAAC;AAACe,OAAA,CAAA3B,eAAA,GAAAA,eAAA;AAEFA,eAAe,CAAC4B,WAAW,GAAG,kCAAkC"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_filterTypingUsers","_ChatContext","_ThemeContext","_ThreadContext","_TypingContext","_this","_jsxFileName","styles","StyleSheet","create","container","bottom","position","width","TypingIndicatorContainerWithContext","props","children","client","thread","typing","_useTheme","useTheme","typingIndicatorContainer","theme","messageList","typingUsers","filterTypingUsers","length","createElement","View","style","testID","__self","__source","fileName","lineNumber","columnNumber","TypingIndicatorContainer","_useTypingContext","useTypingContext","_useChatContext","useChatContext","_useThreadContext","useThreadContext","_extends2","exports","displayName"],"sources":["TypingIndicatorContainer.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { filterTypingUsers } from './utils/filterTypingUsers';\n\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport { TypingContextValue, useTypingContext } from '../../contexts/typingContext/TypingContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n bottom: 0,\n position: 'absolute',\n width: '100%',\n },\n});\n\ntype TypingIndicatorContainerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<TypingContextValue<StreamChatGenerics>, 'typing'> &\n Pick<ChatContextValue<StreamChatGenerics>, 'client'> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'>;\n\nconst TypingIndicatorContainerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<TypingIndicatorContainerPropsWithContext<StreamChatGenerics>>,\n) => {\n const { children, client, thread, typing } = props;\n\n const {\n theme: {\n messageList: { typingIndicatorContainer },\n },\n } = useTheme();\n const typingUsers = filterTypingUsers({ client, thread, typing });\n\n if (!typingUsers.length) {\n return null;\n }\n\n return (\n <View style={[styles.container, typingIndicatorContainer]} testID='typing-indicator-container'>\n {children}\n </View>\n );\n};\n\nexport type TypingIndicatorContainerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<TypingIndicatorContainerPropsWithContext<StreamChatGenerics>>;\n\nexport const TypingIndicatorContainer = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<TypingIndicatorContainerProps<StreamChatGenerics>>,\n) => {\n const { typing } = useTypingContext<StreamChatGenerics>();\n const { client } = useChatContext<StreamChatGenerics>();\n const { thread } = useThreadContext<StreamChatGenerics>();\n\n return <TypingIndicatorContainerWithContext {...{ client, thread, typing }} {...props} />;\n};\n\nTypingIndicatorContainer.displayName =\n 'TypingIndicatorContainer{messageList{typingIndicatorContainer}}';\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,kBAAA,GAAAF,OAAA;AAEA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AAAkG,IAAAO,KAAA;EAAAC,YAAA;AAIlG,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,MAAM,EAAE,CAAC;IACTC,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAQF,IAAMC,mCAAmC,GAAG,SAAtCA,mCAAmCA,CAGvCC,KAAsF,EACnF;EACH,IAAQC,QAAQ,GAA6BD,KAAK,CAA1CC,QAAQ;IAAEC,MAAM,GAAqBF,KAAK,CAAhCE,MAAM;IAAEC,MAAM,GAAaH,KAAK,CAAxBG,MAAM;IAAEC,MAAM,GAAKJ,KAAK,CAAhBI,MAAM;EAExC,IAAAC,SAAA,GAII,IAAAC,sBAAQ,GAAE;IAFKC,wBAAwB,GAAAF,SAAA,CADzCG,KAAK,CACHC,WAAW,CAAIF,wBAAwB;EAG3C,IAAMG,WAAW,GAAG,IAAAC,oCAAiB,EAAC;IAAET,MAAM,EAANA,MAAM;IAAEC,MAAM,EAANA,MAAM;IAAEC,MAAM,EAANA;EAAO,CAAC,CAAC;EAEjE,IAAI,CAACM,WAAW,CAACE,MAAM,EAAE;IACvB,OAAO,IAAI;EACb;EAEA,OACE/B,MAAA,YAAAgC,aAAA,CAAC7B,YAAA,CAAA8B,IAAI;IAACC,KAAK,EAAE,CAACvB,MAAM,CAACG,SAAS,EAAEY,wBAAwB,CAAE;IAACS,MAAM,EAAC,4BAA4B;IAAAC,MAAA,EAAA3B,KAAA;IAAA4B,QAAA;MAAAC,QAAA,EAAA5B,YAAA;MAAA6B,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC3FpB,QAAQ,CACJ;AAEX,CAAC;AAMM,IAAMqB,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAGnCtB,KAA2E,EACxE;EACH,IAAAuB,iBAAA,GAAmB,IAAAC,+BAAgB,GAAsB;IAAjDpB,MAAM,GAAAmB,iBAAA,CAANnB,MAAM;EACd,IAAAqB,eAAA,GAAmB,IAAAC,2BAAc,GAAsB;IAA/CxB,MAAM,GAAAuB,eAAA,CAANvB,MAAM;EACd,IAAAyB,iBAAA,GAAmB,IAAAC,+BAAgB,GAAsB;IAAjDzB,MAAM,GAAAwB,iBAAA,CAANxB,MAAM;EAEd,OAAOtB,MAAA,YAAAgC,aAAA,CAACd,mCAAmC,MAAA8B,SAAA;IAAO3B,MAAM,EAANA,MAAM;IAAEC,MAAM,EAANA,MAAM;IAAEC,MAAM,EAANA;EAAM,GAAQJ,KAAK;IAAAiB,MAAA,EAAA3B,KAAA;IAAA4B,QAAA;MAAAC,QAAA,EAAA5B,YAAA;MAAA6B,UAAA;MAAAC,YAAA;IAAA;EAAA,GAAI;AAC3F,CAAC;AAACS,OAAA,CAAAR,wBAAA,GAAAA,wBAAA;AAEFA,wBAAwB,CAACS,WAAW,GAClC,iEAAiE"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_filterTypingUsers","_ChatContext","_ThemeContext","_ThreadContext","_TypingContext","_this","_jsxFileName","styles","StyleSheet","create","container","bottom","position","width","TypingIndicatorContainerWithContext","props","children","client","thread","typing","_useTheme","useTheme","typingIndicatorContainer","theme","messageList","typingUsers","filterTypingUsers","length","createElement","View","style","testID","__self","__source","fileName","lineNumber","columnNumber","TypingIndicatorContainer","_useTypingContext","useTypingContext","_useChatContext","useChatContext","_useThreadContext","useThreadContext","_extends2","exports","displayName"],"sources":["TypingIndicatorContainer.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { filterTypingUsers } from './utils/filterTypingUsers';\n\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport { TypingContextValue, useTypingContext } from '../../contexts/typingContext/TypingContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n bottom: 0,\n position: 'absolute',\n width: '100%',\n },\n});\n\ntype TypingIndicatorContainerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<TypingContextValue<StreamChatGenerics>, 'typing'> &\n Pick<ChatContextValue<StreamChatGenerics>, 'client'> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'>;\n\nconst TypingIndicatorContainerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<TypingIndicatorContainerPropsWithContext<StreamChatGenerics>>,\n) => {\n const { children, client, thread, typing } = props;\n\n const {\n theme: {\n messageList: { typingIndicatorContainer },\n },\n } = useTheme();\n const typingUsers = filterTypingUsers({ client, thread, typing });\n\n if (!typingUsers.length) {\n return null;\n }\n\n return (\n <View style={[styles.container, typingIndicatorContainer]} testID='typing-indicator-container'>\n {children}\n </View>\n );\n};\n\nexport type TypingIndicatorContainerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<TypingIndicatorContainerPropsWithContext<StreamChatGenerics>>;\n\nexport const TypingIndicatorContainer = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<TypingIndicatorContainerProps<StreamChatGenerics>>,\n) => {\n const { typing } = useTypingContext<StreamChatGenerics>();\n const { client } = useChatContext<StreamChatGenerics>();\n const { thread } = useThreadContext<StreamChatGenerics>();\n\n return <TypingIndicatorContainerWithContext {...{ client, thread, typing }} {...props} />;\n};\n\nTypingIndicatorContainer.displayName =\n 'TypingIndicatorContainer{messageList{typingIndicatorContainer}}';\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,kBAAA,GAAAF,OAAA;AAEA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AAAkG,IAAAO,KAAA;EAAAC,YAAA;AAIlG,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,MAAM,EAAE,CAAC;IACTC,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAQF,IAAMC,mCAAmC,GAAG,SAAtCA,mCAAmCA,CAGvCC,KAAsF,EACnF;EACH,IAAQC,QAAQ,GAA6BD,KAAK,CAA1CC,QAAQ;IAAEC,MAAM,GAAqBF,KAAK,CAAhCE,MAAM;IAAEC,MAAM,GAAaH,KAAK,CAAxBG,MAAM;IAAEC,MAAM,GAAKJ,KAAK,CAAhBI,MAAM;EAExC,IAAAC,SAAA,GAII,IAAAC,sBAAQ,EAAC,CAAC;IAFKC,wBAAwB,GAAAF,SAAA,CADzCG,KAAK,CACHC,WAAW,CAAIF,wBAAwB;EAG3C,IAAMG,WAAW,GAAG,IAAAC,oCAAiB,EAAC;IAAET,MAAM,EAANA,MAAM;IAAEC,MAAM,EAANA,MAAM;IAAEC,MAAM,EAANA;EAAO,CAAC,CAAC;EAEjE,IAAI,CAACM,WAAW,CAACE,MAAM,EAAE;IACvB,OAAO,IAAI;EACb;EAEA,OACE/B,MAAA,YAAAgC,aAAA,CAAC7B,YAAA,CAAA8B,IAAI;IAACC,KAAK,EAAE,CAACvB,MAAM,CAACG,SAAS,EAAEY,wBAAwB,CAAE;IAACS,MAAM,EAAC,4BAA4B;IAAAC,MAAA,EAAA3B,KAAA;IAAA4B,QAAA;MAAAC,QAAA,EAAA5B,YAAA;MAAA6B,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC3FpB,QACG,CAAC;AAEX,CAAC;AAMM,IAAMqB,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAGnCtB,KAA2E,EACxE;EACH,IAAAuB,iBAAA,GAAmB,IAAAC,+BAAgB,EAAqB,CAAC;IAAjDpB,MAAM,GAAAmB,iBAAA,CAANnB,MAAM;EACd,IAAAqB,eAAA,GAAmB,IAAAC,2BAAc,EAAqB,CAAC;IAA/CxB,MAAM,GAAAuB,eAAA,CAANvB,MAAM;EACd,IAAAyB,iBAAA,GAAmB,IAAAC,+BAAgB,EAAqB,CAAC;IAAjDzB,MAAM,GAAAwB,iBAAA,CAANxB,MAAM;EAEd,OAAOtB,MAAA,YAAAgC,aAAA,CAACd,mCAAmC,MAAA8B,SAAA;IAAO3B,MAAM,EAANA,MAAM;IAAEC,MAAM,EAANA,MAAM;IAAEC,MAAM,EAANA;EAAM,GAAQJ,KAAK;IAAAiB,MAAA,EAAA3B,KAAA;IAAA4B,QAAA;MAAAC,QAAA,EAAA5B,YAAA;MAAA6B,UAAA;MAAAC,YAAA;IAAA;EAAA,EAAG,CAAC;AAC3F,CAAC;AAACS,OAAA,CAAAR,wBAAA,GAAAA,wBAAA;AAEFA,wBAAwB,CAACS,WAAW,GAClC,iEAAiE"}