stream-chat-react-native-core 5.5.1-beta.1 → 5.6.0-beta.0

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 (739) hide show
  1. package/lib/commonjs/components/Attachment/Attachment.js +1 -1
  2. package/lib/commonjs/components/Attachment/AttachmentActions.js +1 -1
  3. package/lib/commonjs/components/Attachment/AudioAttachment.js +1 -1
  4. package/lib/commonjs/components/Attachment/Card.js +1 -1
  5. package/lib/commonjs/components/Attachment/FileAttachment.js +1 -1
  6. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +1 -1
  7. package/lib/commonjs/components/Attachment/FileIcon.js +1 -1
  8. package/lib/commonjs/components/Attachment/Gallery.js +1 -1
  9. package/lib/commonjs/components/Attachment/GalleryImage.js +20 -4
  10. package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
  11. package/lib/commonjs/components/Attachment/Giphy.js +1 -1
  12. package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js +1 -1
  13. package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js +1 -1
  14. package/lib/commonjs/components/Attachment/VideoThumbnail.js +1 -1
  15. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +1 -1
  16. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +1 -1
  17. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerError.js +1 -1
  18. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +1 -1
  19. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +1 -1
  20. package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +1 -1
  21. package/lib/commonjs/components/AttachmentPicker/components/CameraSelectorIcon.js +1 -1
  22. package/lib/commonjs/components/AttachmentPicker/components/FileSelectorIcon.js +1 -1
  23. package/lib/commonjs/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +1 -1
  24. package/lib/commonjs/components/AttachmentPicker/components/ImageSelectorIcon.js +1 -1
  25. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +1 -1
  26. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +1 -1
  27. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +1 -1
  28. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
  29. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  30. package/lib/commonjs/components/Avatar/Avatar.js +1 -1
  31. package/lib/commonjs/components/Avatar/GroupAvatar.js +1 -1
  32. package/lib/commonjs/components/Channel/Channel.js +537 -155
  33. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  34. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +6 -0
  35. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  36. package/lib/commonjs/components/ChannelList/ChannelList.js +5 -16
  37. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  38. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -1
  39. package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js +1 -1
  40. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +1 -1
  41. package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js +1 -1
  42. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +1 -1
  43. package/lib/commonjs/components/ChannelList/Skeleton.js +1 -1
  44. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +112 -42
  45. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  46. package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +1 -1
  47. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +1 -1
  48. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js +1 -1
  49. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
  50. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
  51. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +1 -1
  52. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  53. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +1 -1
  54. package/lib/commonjs/components/Chat/Chat.js +17 -21
  55. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  56. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +2 -4
  57. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  58. package/lib/commonjs/components/ImageBackground.js +1 -1
  59. package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -1
  60. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +1 -1
  61. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +1 -1
  62. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +1 -1
  63. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
  64. package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js +1 -1
  65. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
  66. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +1 -1
  67. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +1 -1
  68. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +1 -1
  69. package/lib/commonjs/components/Indicators/LoadingDot.js +1 -1
  70. package/lib/commonjs/components/Indicators/LoadingDots.js +1 -1
  71. package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js +1 -1
  72. package/lib/commonjs/components/Indicators/LoadingIndicator.js +1 -1
  73. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
  74. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +1 -1
  75. package/lib/commonjs/components/Message/Message.js +22 -11
  76. package/lib/commonjs/components/Message/Message.js.map +1 -1
  77. package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +1 -1
  78. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +1 -1
  79. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +1 -1
  80. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +15 -13
  81. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  82. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
  83. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +1 -1
  84. package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +1 -1
  85. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +1 -1
  86. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +1 -1
  87. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +1 -1
  88. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +1 -1
  89. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +1 -1
  90. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js +1 -1
  91. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +9 -30
  92. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  93. package/lib/commonjs/components/Message/hooks/useMessageActions.js +20 -18
  94. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
  95. package/lib/commonjs/components/MessageInput/AttachButton.js +1 -1
  96. package/lib/commonjs/components/MessageInput/CommandsButton.js +1 -1
  97. package/lib/commonjs/components/MessageInput/CooldownTimer.js +1 -1
  98. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +32 -22
  99. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  100. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +52 -20
  101. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  102. package/lib/commonjs/components/MessageInput/InputButtons.js +1 -1
  103. package/lib/commonjs/components/MessageInput/MessageInput.js +40 -28
  104. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  105. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js +1 -1
  106. package/lib/commonjs/components/MessageInput/SendButton.js +2 -2
  107. package/lib/commonjs/components/MessageInput/SendButton.js.map +1 -1
  108. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +1 -1
  109. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -1
  110. package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js +1 -1
  111. package/lib/commonjs/components/MessageInput/components/InputEditingStateHeader.js +1 -1
  112. package/lib/commonjs/components/MessageInput/components/InputGiphySearch.js +1 -1
  113. package/lib/commonjs/components/MessageInput/components/InputReplyStateHeader.js +1 -1
  114. package/lib/commonjs/components/MessageList/DateHeader.js +1 -1
  115. package/lib/commonjs/components/MessageList/InlineDateSeparator.js +1 -1
  116. package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  117. package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  118. package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  119. package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +1 -1
  120. package/lib/commonjs/components/MessageList/MessageList.js +1 -1
  121. package/lib/commonjs/components/MessageList/MessageSystem.js +1 -1
  122. package/lib/commonjs/components/MessageList/NetworkDownIndicator.js +1 -1
  123. package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +1 -1
  124. package/lib/commonjs/components/MessageList/TypingIndicator.js +1 -1
  125. package/lib/commonjs/components/MessageList/TypingIndicatorContainer.js +1 -1
  126. package/lib/commonjs/components/MessageOverlay/MessageActionList.js +1 -1
  127. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +1 -1
  128. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +1 -1
  129. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +1 -1
  130. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +1 -1
  131. package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +1 -1
  132. package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js +1 -1
  133. package/lib/commonjs/components/ProgressControl/ProgressControl.js +1 -1
  134. package/lib/commonjs/components/RTLComponents/WritingDirectionAwareText.js +1 -1
  135. package/lib/commonjs/components/Reply/Reply.js +1 -1
  136. package/lib/commonjs/components/Spinner/Spinner.js +1 -1
  137. package/lib/commonjs/components/Thread/Thread.js +1 -1
  138. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +1 -1
  139. package/lib/commonjs/components/index.js +0 -13
  140. package/lib/commonjs/components/index.js.map +1 -1
  141. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +1 -1
  142. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
  143. package/lib/commonjs/contexts/channelContext/ChannelContext.js +1 -1
  144. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +1 -1
  145. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +1 -1
  146. package/lib/commonjs/contexts/chatContext/ChatContext.js +3 -3
  147. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  148. package/lib/commonjs/contexts/debugContext/DebugContext.js +1 -1
  149. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +1 -1
  150. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +1 -1
  151. package/lib/commonjs/contexts/messageContext/MessageContext.js +1 -1
  152. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +23 -14
  153. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  154. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +1 -1
  155. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js +1 -1
  156. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +3 -3
  157. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  158. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
  159. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +1 -1
  160. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
  161. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +1 -1
  162. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +1 -1
  163. package/lib/commonjs/contexts/themeContext/ThemeContext.js +1 -1
  164. package/lib/commonjs/contexts/threadContext/ThreadContext.js +1 -1
  165. package/lib/commonjs/contexts/translationContext/TranslationContext.js +1 -1
  166. package/lib/commonjs/contexts/typingContext/TypingContext.js +1 -1
  167. package/lib/commonjs/hooks/useTranslatedMessage.js +1 -1
  168. package/lib/commonjs/hooks/useTranslatedMessage.js.map +1 -1
  169. package/lib/commonjs/icons/ArrowRight.js +1 -1
  170. package/lib/commonjs/icons/AtMentions.js +1 -1
  171. package/lib/commonjs/icons/Attach.js +1 -1
  172. package/lib/commonjs/icons/Audio.js +1 -1
  173. package/lib/commonjs/icons/CSV.js +1 -1
  174. package/lib/commonjs/icons/Camera.js +1 -1
  175. package/lib/commonjs/icons/Check.js +1 -1
  176. package/lib/commonjs/icons/CheckAll.js +1 -1
  177. package/lib/commonjs/icons/CheckSend.js +1 -1
  178. package/lib/commonjs/icons/CircleClose.js +1 -1
  179. package/lib/commonjs/icons/CirclePlus.js +1 -1
  180. package/lib/commonjs/icons/CircleRight.js +1 -1
  181. package/lib/commonjs/icons/Close.js +1 -1
  182. package/lib/commonjs/icons/Copy.js +1 -1
  183. package/lib/commonjs/icons/CurveLineLeftUp.js +1 -1
  184. package/lib/commonjs/icons/DOC.js +1 -1
  185. package/lib/commonjs/icons/DOCX.js +1 -1
  186. package/lib/commonjs/icons/Delete.js +1 -1
  187. package/lib/commonjs/icons/Down.js +1 -1
  188. package/lib/commonjs/icons/DownloadArrow.js +1 -1
  189. package/lib/commonjs/icons/DownloadCloud.js +1 -1
  190. package/lib/commonjs/icons/Edit.js +1 -1
  191. package/lib/commonjs/icons/Error.js +1 -1
  192. package/lib/commonjs/icons/Eye.js +1 -1
  193. package/lib/commonjs/icons/Flag.js +1 -1
  194. package/lib/commonjs/icons/Folder.js +1 -1
  195. package/lib/commonjs/icons/GenericFile.js +1 -1
  196. package/lib/commonjs/icons/GiphyIcon.js +1 -1
  197. package/lib/commonjs/icons/Grid.js +1 -1
  198. package/lib/commonjs/icons/Group.js +1 -1
  199. package/lib/commonjs/icons/HTML.js +1 -1
  200. package/lib/commonjs/icons/Imgur.js +1 -1
  201. package/lib/commonjs/icons/LOLReaction.js +1 -1
  202. package/lib/commonjs/icons/Lightning.js +1 -1
  203. package/lib/commonjs/icons/Link.js +1 -1
  204. package/lib/commonjs/icons/Loading.js +1 -1
  205. package/lib/commonjs/icons/Logo.js +1 -1
  206. package/lib/commonjs/icons/LoveReaction.js +1 -1
  207. package/lib/commonjs/icons/MD.js +1 -1
  208. package/lib/commonjs/icons/MailOpen.js +1 -1
  209. package/lib/commonjs/icons/MenuPointHorizontal.js +1 -1
  210. package/lib/commonjs/icons/MenuPointVertical.js +1 -1
  211. package/lib/commonjs/icons/MessageFlag.js +1 -1
  212. package/lib/commonjs/icons/MessageIcon.js +1 -1
  213. package/lib/commonjs/icons/Mute.js +1 -1
  214. package/lib/commonjs/icons/Notification.js +1 -1
  215. package/lib/commonjs/icons/ODT.js +1 -1
  216. package/lib/commonjs/icons/PDF.js +1 -1
  217. package/lib/commonjs/icons/PPT.js +1 -1
  218. package/lib/commonjs/icons/PPTX.js +1 -1
  219. package/lib/commonjs/icons/Pause.js +1 -1
  220. package/lib/commonjs/icons/Picture.js +1 -1
  221. package/lib/commonjs/icons/Pin.js +1 -1
  222. package/lib/commonjs/icons/PinHeader.js +1 -1
  223. package/lib/commonjs/icons/Play.js +1 -1
  224. package/lib/commonjs/icons/RAR.js +1 -1
  225. package/lib/commonjs/icons/RTF.js +1 -1
  226. package/lib/commonjs/icons/Recorder.js +1 -1
  227. package/lib/commonjs/icons/Refresh.js +1 -1
  228. package/lib/commonjs/icons/SEVEN_Z.js +1 -1
  229. package/lib/commonjs/icons/Search.js +1 -1
  230. package/lib/commonjs/icons/SendRight.js +1 -1
  231. package/lib/commonjs/icons/SendUp.js +1 -1
  232. package/lib/commonjs/icons/Share.js +1 -1
  233. package/lib/commonjs/icons/ShareRightArrow.js +1 -1
  234. package/lib/commonjs/icons/Smile.js +1 -1
  235. package/lib/commonjs/icons/Sound.js +1 -1
  236. package/lib/commonjs/icons/TAR.js +1 -1
  237. package/lib/commonjs/icons/TXT.js +1 -1
  238. package/lib/commonjs/icons/ThreadReply.js +1 -1
  239. package/lib/commonjs/icons/ThumbsDownReaction.js +1 -1
  240. package/lib/commonjs/icons/ThumbsUpReaction.js +1 -1
  241. package/lib/commonjs/icons/Time.js +1 -1
  242. package/lib/commonjs/icons/Unknown.js +1 -1
  243. package/lib/commonjs/icons/Unpin.js +1 -1
  244. package/lib/commonjs/icons/User.js +1 -1
  245. package/lib/commonjs/icons/UserAdd.js +1 -1
  246. package/lib/commonjs/icons/UserAdmin.js +1 -1
  247. package/lib/commonjs/icons/UserDelete.js +1 -1
  248. package/lib/commonjs/icons/UserMinus.js +1 -1
  249. package/lib/commonjs/icons/Video.js +1 -1
  250. package/lib/commonjs/icons/Warning.js +1 -1
  251. package/lib/commonjs/icons/WutReaction.js +1 -1
  252. package/lib/commonjs/icons/XLS.js +1 -1
  253. package/lib/commonjs/icons/XLSX.js +1 -1
  254. package/lib/commonjs/icons/ZIP.js +1 -1
  255. package/lib/commonjs/icons/utils/base.js +1 -1
  256. package/lib/commonjs/mock-builders/DB/mock.js +2 -2
  257. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  258. package/lib/commonjs/mock-builders/api/deleteMessage.js +20 -0
  259. package/lib/commonjs/mock-builders/api/deleteMessage.js.map +1 -0
  260. package/lib/commonjs/mock-builders/api/deleteReaction.js +21 -0
  261. package/lib/commonjs/mock-builders/api/deleteReaction.js.map +1 -0
  262. package/lib/commonjs/mock-builders/api/sendReaction.js +21 -0
  263. package/lib/commonjs/mock-builders/api/sendReaction.js.map +1 -0
  264. package/lib/commonjs/mock-builders/event/connectionChanged.js +2 -0
  265. package/lib/commonjs/mock-builders/event/connectionChanged.js.map +1 -1
  266. package/lib/commonjs/store/QuickSqliteClient.js +40 -51
  267. package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
  268. package/lib/commonjs/store/apis/addPendingTask.js +37 -0
  269. package/lib/commonjs/store/apis/addPendingTask.js.map +1 -0
  270. package/lib/commonjs/store/apis/deleteMessage.js +26 -0
  271. package/lib/commonjs/store/apis/deleteMessage.js.map +1 -0
  272. package/lib/commonjs/store/apis/deletePendingTask.js +22 -0
  273. package/lib/commonjs/store/apis/deletePendingTask.js.map +1 -0
  274. package/lib/commonjs/store/apis/deleteReaction.js +30 -0
  275. package/lib/commonjs/store/apis/deleteReaction.js.map +1 -0
  276. package/lib/commonjs/store/apis/getChannelMessages.js +3 -3
  277. package/lib/commonjs/store/apis/getChannelMessages.js.map +1 -1
  278. package/lib/commonjs/store/apis/getChannels.js +1 -1
  279. package/lib/commonjs/store/apis/getChannels.js.map +1 -1
  280. package/lib/commonjs/store/apis/getPendingTasks.js +26 -0
  281. package/lib/commonjs/store/apis/getPendingTasks.js.map +1 -0
  282. package/lib/commonjs/store/apis/index.js +13 -0
  283. package/lib/commonjs/store/apis/index.js.map +1 -1
  284. package/lib/commonjs/store/apis/insertReaction.js +28 -0
  285. package/lib/commonjs/store/apis/insertReaction.js.map +1 -0
  286. package/lib/commonjs/store/apis/updateMessage.js.map +1 -1
  287. package/lib/commonjs/store/apis/updateReaction.js.map +1 -1
  288. package/lib/commonjs/store/mappers/mapDateTimeToStorable.js.map +1 -1
  289. package/lib/commonjs/store/mappers/mapMessageToStorable.js +3 -1
  290. package/lib/commonjs/store/mappers/mapMessageToStorable.js.map +1 -1
  291. package/lib/commonjs/store/mappers/mapStorableToTask.js +23 -0
  292. package/lib/commonjs/store/mappers/mapStorableToTask.js.map +1 -0
  293. package/lib/commonjs/store/mappers/mapTaskToStorable.js +18 -0
  294. package/lib/commonjs/store/mappers/mapTaskToStorable.js.map +1 -0
  295. package/lib/commonjs/store/schema.js +11 -0
  296. package/lib/commonjs/store/schema.js.map +1 -1
  297. package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js +24 -0
  298. package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js.map +1 -0
  299. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js +1 -1
  300. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  301. package/lib/commonjs/store/sqlite-utils/createSelectQuery.js +8 -1
  302. package/lib/commonjs/store/sqlite-utils/createSelectQuery.js.map +1 -1
  303. package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js +2 -2
  304. package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js.map +1 -1
  305. package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js +1 -1
  306. package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js.map +1 -1
  307. package/lib/commonjs/utils/DBSyncManager.js +436 -0
  308. package/lib/commonjs/utils/DBSyncManager.js.map +1 -0
  309. package/lib/commonjs/utils/addReactionToLocalState.js +92 -0
  310. package/lib/commonjs/utils/addReactionToLocalState.js.map +1 -0
  311. package/lib/commonjs/utils/pendingTaskUtils.js +302 -0
  312. package/lib/commonjs/utils/pendingTaskUtils.js.map +1 -0
  313. package/lib/commonjs/utils/removeReactionFromLocalState.js +39 -0
  314. package/lib/commonjs/utils/removeReactionFromLocalState.js.map +1 -0
  315. package/lib/commonjs/utils/utils.js +9 -3
  316. package/lib/commonjs/utils/utils.js.map +1 -1
  317. package/lib/commonjs/version.json +1 -1
  318. package/lib/module/components/Attachment/Attachment.js +1 -1
  319. package/lib/module/components/Attachment/AttachmentActions.js +1 -1
  320. package/lib/module/components/Attachment/AudioAttachment.js +1 -1
  321. package/lib/module/components/Attachment/Card.js +1 -1
  322. package/lib/module/components/Attachment/FileAttachment.js +1 -1
  323. package/lib/module/components/Attachment/FileAttachmentGroup.js +1 -1
  324. package/lib/module/components/Attachment/FileIcon.js +1 -1
  325. package/lib/module/components/Attachment/Gallery.js +1 -1
  326. package/lib/module/components/Attachment/GalleryImage.js +20 -4
  327. package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
  328. package/lib/module/components/Attachment/Giphy.js +1 -1
  329. package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js +1 -1
  330. package/lib/module/components/Attachment/ImageLoadingIndicator.js +1 -1
  331. package/lib/module/components/Attachment/VideoThumbnail.js +1 -1
  332. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +1 -1
  333. package/lib/module/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +1 -1
  334. package/lib/module/components/AttachmentPicker/components/AttachmentPickerError.js +1 -1
  335. package/lib/module/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +1 -1
  336. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +1 -1
  337. package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +1 -1
  338. package/lib/module/components/AttachmentPicker/components/CameraSelectorIcon.js +1 -1
  339. package/lib/module/components/AttachmentPicker/components/FileSelectorIcon.js +1 -1
  340. package/lib/module/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +1 -1
  341. package/lib/module/components/AttachmentPicker/components/ImageSelectorIcon.js +1 -1
  342. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +1 -1
  343. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +1 -1
  344. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +1 -1
  345. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
  346. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  347. package/lib/module/components/Avatar/Avatar.js +1 -1
  348. package/lib/module/components/Avatar/GroupAvatar.js +1 -1
  349. package/lib/module/components/Channel/Channel.js +537 -155
  350. package/lib/module/components/Channel/Channel.js.map +1 -1
  351. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +6 -0
  352. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  353. package/lib/module/components/ChannelList/ChannelList.js +5 -16
  354. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  355. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -1
  356. package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js +1 -1
  357. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +1 -1
  358. package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js +1 -1
  359. package/lib/module/components/ChannelList/ChannelListMessenger.js +1 -1
  360. package/lib/module/components/ChannelList/Skeleton.js +1 -1
  361. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +112 -42
  362. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  363. package/lib/module/components/ChannelPreview/ChannelAvatar.js +1 -1
  364. package/lib/module/components/ChannelPreview/ChannelPreview.js +1 -1
  365. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js +1 -1
  366. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
  367. package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
  368. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +1 -1
  369. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  370. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +1 -1
  371. package/lib/module/components/Chat/Chat.js +17 -21
  372. package/lib/module/components/Chat/Chat.js.map +1 -1
  373. package/lib/module/components/Chat/hooks/useCreateChatContext.js +2 -4
  374. package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  375. package/lib/module/components/ImageBackground.js +1 -1
  376. package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
  377. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +1 -1
  378. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +1 -1
  379. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +1 -1
  380. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
  381. package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js +1 -1
  382. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
  383. package/lib/module/components/ImageGallery/components/ImageGrid.js +1 -1
  384. package/lib/module/components/ImageGallery/components/ImageGridHandle.js +1 -1
  385. package/lib/module/components/Indicators/EmptyStateIndicator.js +1 -1
  386. package/lib/module/components/Indicators/LoadingDot.js +1 -1
  387. package/lib/module/components/Indicators/LoadingDots.js +1 -1
  388. package/lib/module/components/Indicators/LoadingErrorIndicator.js +1 -1
  389. package/lib/module/components/Indicators/LoadingIndicator.js +1 -1
  390. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
  391. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +1 -1
  392. package/lib/module/components/Message/Message.js +22 -11
  393. package/lib/module/components/Message/Message.js.map +1 -1
  394. package/lib/module/components/Message/MessageSimple/MessageAvatar.js +1 -1
  395. package/lib/module/components/Message/MessageSimple/MessageContent.js +1 -1
  396. package/lib/module/components/Message/MessageSimple/MessageDeleted.js +1 -1
  397. package/lib/module/components/Message/MessageSimple/MessageFooter.js +15 -13
  398. package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  399. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
  400. package/lib/module/components/Message/MessageSimple/MessageReplies.js +1 -1
  401. package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +1 -1
  402. package/lib/module/components/Message/MessageSimple/MessageSimple.js +1 -1
  403. package/lib/module/components/Message/MessageSimple/MessageStatus.js +1 -1
  404. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +1 -1
  405. package/lib/module/components/Message/MessageSimple/ReactionList.js +1 -1
  406. package/lib/module/components/Message/MessageSimple/utils/renderText.js +1 -1
  407. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js +1 -1
  408. package/lib/module/components/Message/hooks/useMessageActionHandlers.js +9 -30
  409. package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  410. package/lib/module/components/Message/hooks/useMessageActions.js +20 -18
  411. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
  412. package/lib/module/components/MessageInput/AttachButton.js +1 -1
  413. package/lib/module/components/MessageInput/CommandsButton.js +1 -1
  414. package/lib/module/components/MessageInput/CooldownTimer.js +1 -1
  415. package/lib/module/components/MessageInput/FileUploadPreview.js +32 -22
  416. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  417. package/lib/module/components/MessageInput/ImageUploadPreview.js +52 -20
  418. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  419. package/lib/module/components/MessageInput/InputButtons.js +1 -1
  420. package/lib/module/components/MessageInput/MessageInput.js +40 -28
  421. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  422. package/lib/module/components/MessageInput/MoreOptionsButton.js +1 -1
  423. package/lib/module/components/MessageInput/SendButton.js +2 -2
  424. package/lib/module/components/MessageInput/SendButton.js.map +1 -1
  425. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +1 -1
  426. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -1
  427. package/lib/module/components/MessageInput/UploadProgressIndicator.js +1 -1
  428. package/lib/module/components/MessageInput/components/InputEditingStateHeader.js +1 -1
  429. package/lib/module/components/MessageInput/components/InputGiphySearch.js +1 -1
  430. package/lib/module/components/MessageInput/components/InputReplyStateHeader.js +1 -1
  431. package/lib/module/components/MessageList/DateHeader.js +1 -1
  432. package/lib/module/components/MessageList/InlineDateSeparator.js +1 -1
  433. package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  434. package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  435. package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  436. package/lib/module/components/MessageList/InlineUnreadIndicator.js +1 -1
  437. package/lib/module/components/MessageList/MessageList.js +1 -1
  438. package/lib/module/components/MessageList/MessageSystem.js +1 -1
  439. package/lib/module/components/MessageList/NetworkDownIndicator.js +1 -1
  440. package/lib/module/components/MessageList/ScrollToBottomButton.js +1 -1
  441. package/lib/module/components/MessageList/TypingIndicator.js +1 -1
  442. package/lib/module/components/MessageList/TypingIndicatorContainer.js +1 -1
  443. package/lib/module/components/MessageOverlay/MessageActionList.js +1 -1
  444. package/lib/module/components/MessageOverlay/MessageActionListItem.js +1 -1
  445. package/lib/module/components/MessageOverlay/MessageOverlay.js +1 -1
  446. package/lib/module/components/MessageOverlay/OverlayBackdrop.js +1 -1
  447. package/lib/module/components/MessageOverlay/OverlayReactionList.js +1 -1
  448. package/lib/module/components/MessageOverlay/OverlayReactions.js +1 -1
  449. package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js +1 -1
  450. package/lib/module/components/ProgressControl/ProgressControl.js +1 -1
  451. package/lib/module/components/RTLComponents/WritingDirectionAwareText.js +1 -1
  452. package/lib/module/components/Reply/Reply.js +1 -1
  453. package/lib/module/components/Spinner/Spinner.js +1 -1
  454. package/lib/module/components/Thread/Thread.js +1 -1
  455. package/lib/module/components/Thread/components/ThreadFooterComponent.js +1 -1
  456. package/lib/module/components/index.js +0 -13
  457. package/lib/module/components/index.js.map +1 -1
  458. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +1 -1
  459. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
  460. package/lib/module/contexts/channelContext/ChannelContext.js +1 -1
  461. package/lib/module/contexts/channelsContext/ChannelsContext.js +1 -1
  462. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +1 -1
  463. package/lib/module/contexts/chatContext/ChatContext.js +3 -3
  464. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  465. package/lib/module/contexts/debugContext/DebugContext.js +1 -1
  466. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +1 -1
  467. package/lib/module/contexts/keyboardContext/KeyboardContext.js +1 -1
  468. package/lib/module/contexts/messageContext/MessageContext.js +1 -1
  469. package/lib/module/contexts/messageInputContext/MessageInputContext.js +23 -14
  470. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  471. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +1 -1
  472. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js +1 -1
  473. package/lib/module/contexts/messagesContext/MessagesContext.js +3 -3
  474. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  475. package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
  476. package/lib/module/contexts/overlayContext/OverlayProvider.js +1 -1
  477. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
  478. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +1 -1
  479. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +1 -1
  480. package/lib/module/contexts/themeContext/ThemeContext.js +1 -1
  481. package/lib/module/contexts/threadContext/ThreadContext.js +1 -1
  482. package/lib/module/contexts/translationContext/TranslationContext.js +1 -1
  483. package/lib/module/contexts/typingContext/TypingContext.js +1 -1
  484. package/lib/module/hooks/useTranslatedMessage.js +1 -1
  485. package/lib/module/hooks/useTranslatedMessage.js.map +1 -1
  486. package/lib/module/icons/ArrowRight.js +1 -1
  487. package/lib/module/icons/AtMentions.js +1 -1
  488. package/lib/module/icons/Attach.js +1 -1
  489. package/lib/module/icons/Audio.js +1 -1
  490. package/lib/module/icons/CSV.js +1 -1
  491. package/lib/module/icons/Camera.js +1 -1
  492. package/lib/module/icons/Check.js +1 -1
  493. package/lib/module/icons/CheckAll.js +1 -1
  494. package/lib/module/icons/CheckSend.js +1 -1
  495. package/lib/module/icons/CircleClose.js +1 -1
  496. package/lib/module/icons/CirclePlus.js +1 -1
  497. package/lib/module/icons/CircleRight.js +1 -1
  498. package/lib/module/icons/Close.js +1 -1
  499. package/lib/module/icons/Copy.js +1 -1
  500. package/lib/module/icons/CurveLineLeftUp.js +1 -1
  501. package/lib/module/icons/DOC.js +1 -1
  502. package/lib/module/icons/DOCX.js +1 -1
  503. package/lib/module/icons/Delete.js +1 -1
  504. package/lib/module/icons/Down.js +1 -1
  505. package/lib/module/icons/DownloadArrow.js +1 -1
  506. package/lib/module/icons/DownloadCloud.js +1 -1
  507. package/lib/module/icons/Edit.js +1 -1
  508. package/lib/module/icons/Error.js +1 -1
  509. package/lib/module/icons/Eye.js +1 -1
  510. package/lib/module/icons/Flag.js +1 -1
  511. package/lib/module/icons/Folder.js +1 -1
  512. package/lib/module/icons/GenericFile.js +1 -1
  513. package/lib/module/icons/GiphyIcon.js +1 -1
  514. package/lib/module/icons/Grid.js +1 -1
  515. package/lib/module/icons/Group.js +1 -1
  516. package/lib/module/icons/HTML.js +1 -1
  517. package/lib/module/icons/Imgur.js +1 -1
  518. package/lib/module/icons/LOLReaction.js +1 -1
  519. package/lib/module/icons/Lightning.js +1 -1
  520. package/lib/module/icons/Link.js +1 -1
  521. package/lib/module/icons/Loading.js +1 -1
  522. package/lib/module/icons/Logo.js +1 -1
  523. package/lib/module/icons/LoveReaction.js +1 -1
  524. package/lib/module/icons/MD.js +1 -1
  525. package/lib/module/icons/MailOpen.js +1 -1
  526. package/lib/module/icons/MenuPointHorizontal.js +1 -1
  527. package/lib/module/icons/MenuPointVertical.js +1 -1
  528. package/lib/module/icons/MessageFlag.js +1 -1
  529. package/lib/module/icons/MessageIcon.js +1 -1
  530. package/lib/module/icons/Mute.js +1 -1
  531. package/lib/module/icons/Notification.js +1 -1
  532. package/lib/module/icons/ODT.js +1 -1
  533. package/lib/module/icons/PDF.js +1 -1
  534. package/lib/module/icons/PPT.js +1 -1
  535. package/lib/module/icons/PPTX.js +1 -1
  536. package/lib/module/icons/Pause.js +1 -1
  537. package/lib/module/icons/Picture.js +1 -1
  538. package/lib/module/icons/Pin.js +1 -1
  539. package/lib/module/icons/PinHeader.js +1 -1
  540. package/lib/module/icons/Play.js +1 -1
  541. package/lib/module/icons/RAR.js +1 -1
  542. package/lib/module/icons/RTF.js +1 -1
  543. package/lib/module/icons/Recorder.js +1 -1
  544. package/lib/module/icons/Refresh.js +1 -1
  545. package/lib/module/icons/SEVEN_Z.js +1 -1
  546. package/lib/module/icons/Search.js +1 -1
  547. package/lib/module/icons/SendRight.js +1 -1
  548. package/lib/module/icons/SendUp.js +1 -1
  549. package/lib/module/icons/Share.js +1 -1
  550. package/lib/module/icons/ShareRightArrow.js +1 -1
  551. package/lib/module/icons/Smile.js +1 -1
  552. package/lib/module/icons/Sound.js +1 -1
  553. package/lib/module/icons/TAR.js +1 -1
  554. package/lib/module/icons/TXT.js +1 -1
  555. package/lib/module/icons/ThreadReply.js +1 -1
  556. package/lib/module/icons/ThumbsDownReaction.js +1 -1
  557. package/lib/module/icons/ThumbsUpReaction.js +1 -1
  558. package/lib/module/icons/Time.js +1 -1
  559. package/lib/module/icons/Unknown.js +1 -1
  560. package/lib/module/icons/Unpin.js +1 -1
  561. package/lib/module/icons/User.js +1 -1
  562. package/lib/module/icons/UserAdd.js +1 -1
  563. package/lib/module/icons/UserAdmin.js +1 -1
  564. package/lib/module/icons/UserDelete.js +1 -1
  565. package/lib/module/icons/UserMinus.js +1 -1
  566. package/lib/module/icons/Video.js +1 -1
  567. package/lib/module/icons/Warning.js +1 -1
  568. package/lib/module/icons/WutReaction.js +1 -1
  569. package/lib/module/icons/XLS.js +1 -1
  570. package/lib/module/icons/XLSX.js +1 -1
  571. package/lib/module/icons/ZIP.js +1 -1
  572. package/lib/module/icons/utils/base.js +1 -1
  573. package/lib/module/mock-builders/DB/mock.js +2 -2
  574. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  575. package/lib/module/mock-builders/api/deleteMessage.js +20 -0
  576. package/lib/module/mock-builders/api/deleteMessage.js.map +1 -0
  577. package/lib/module/mock-builders/api/deleteReaction.js +21 -0
  578. package/lib/module/mock-builders/api/deleteReaction.js.map +1 -0
  579. package/lib/module/mock-builders/api/sendReaction.js +21 -0
  580. package/lib/module/mock-builders/api/sendReaction.js.map +1 -0
  581. package/lib/module/mock-builders/event/connectionChanged.js +2 -0
  582. package/lib/module/mock-builders/event/connectionChanged.js.map +1 -1
  583. package/lib/module/store/QuickSqliteClient.js +40 -51
  584. package/lib/module/store/QuickSqliteClient.js.map +1 -1
  585. package/lib/module/store/apis/addPendingTask.js +37 -0
  586. package/lib/module/store/apis/addPendingTask.js.map +1 -0
  587. package/lib/module/store/apis/deleteMessage.js +26 -0
  588. package/lib/module/store/apis/deleteMessage.js.map +1 -0
  589. package/lib/module/store/apis/deletePendingTask.js +22 -0
  590. package/lib/module/store/apis/deletePendingTask.js.map +1 -0
  591. package/lib/module/store/apis/deleteReaction.js +30 -0
  592. package/lib/module/store/apis/deleteReaction.js.map +1 -0
  593. package/lib/module/store/apis/getChannelMessages.js +3 -3
  594. package/lib/module/store/apis/getChannelMessages.js.map +1 -1
  595. package/lib/module/store/apis/getChannels.js +1 -1
  596. package/lib/module/store/apis/getChannels.js.map +1 -1
  597. package/lib/module/store/apis/getPendingTasks.js +26 -0
  598. package/lib/module/store/apis/getPendingTasks.js.map +1 -0
  599. package/lib/module/store/apis/index.js +13 -0
  600. package/lib/module/store/apis/index.js.map +1 -1
  601. package/lib/module/store/apis/insertReaction.js +28 -0
  602. package/lib/module/store/apis/insertReaction.js.map +1 -0
  603. package/lib/module/store/apis/updateMessage.js.map +1 -1
  604. package/lib/module/store/apis/updateReaction.js.map +1 -1
  605. package/lib/module/store/mappers/mapDateTimeToStorable.js.map +1 -1
  606. package/lib/module/store/mappers/mapMessageToStorable.js +3 -1
  607. package/lib/module/store/mappers/mapMessageToStorable.js.map +1 -1
  608. package/lib/module/store/mappers/mapStorableToTask.js +23 -0
  609. package/lib/module/store/mappers/mapStorableToTask.js.map +1 -0
  610. package/lib/module/store/mappers/mapTaskToStorable.js +18 -0
  611. package/lib/module/store/mappers/mapTaskToStorable.js.map +1 -0
  612. package/lib/module/store/schema.js +11 -0
  613. package/lib/module/store/schema.js.map +1 -1
  614. package/lib/module/store/sqlite-utils/appendOrderByClause.js +24 -0
  615. package/lib/module/store/sqlite-utils/appendOrderByClause.js.map +1 -0
  616. package/lib/module/store/sqlite-utils/createCreateTableQuery.js +1 -1
  617. package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  618. package/lib/module/store/sqlite-utils/createSelectQuery.js +8 -1
  619. package/lib/module/store/sqlite-utils/createSelectQuery.js.map +1 -1
  620. package/lib/module/store/sqlite-utils/createUpdateQuery.js +2 -2
  621. package/lib/module/store/sqlite-utils/createUpdateQuery.js.map +1 -1
  622. package/lib/module/store/sqlite-utils/createUpsertQuery.js +1 -1
  623. package/lib/module/store/sqlite-utils/createUpsertQuery.js.map +1 -1
  624. package/lib/module/utils/DBSyncManager.js +436 -0
  625. package/lib/module/utils/DBSyncManager.js.map +1 -0
  626. package/lib/module/utils/addReactionToLocalState.js +92 -0
  627. package/lib/module/utils/addReactionToLocalState.js.map +1 -0
  628. package/lib/module/utils/pendingTaskUtils.js +302 -0
  629. package/lib/module/utils/pendingTaskUtils.js.map +1 -0
  630. package/lib/module/utils/removeReactionFromLocalState.js +39 -0
  631. package/lib/module/utils/removeReactionFromLocalState.js.map +1 -0
  632. package/lib/module/utils/utils.js +9 -3
  633. package/lib/module/utils/utils.js.map +1 -1
  634. package/lib/module/version.json +1 -1
  635. package/lib/typescript/components/Channel/Channel.d.ts +1 -1
  636. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
  637. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +2 -1
  638. package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
  639. package/lib/typescript/components/Message/Message.d.ts +1 -1
  640. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
  641. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
  642. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +2 -1
  643. package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +2 -1
  644. package/lib/typescript/components/MessageInput/MessageInput.d.ts +2 -1
  645. package/lib/typescript/components/index.d.ts +0 -1
  646. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +1 -2
  647. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
  648. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -0
  649. package/lib/typescript/store/apis/addPendingTask.d.ts +2 -0
  650. package/lib/typescript/store/apis/deleteMessage.d.ts +4 -0
  651. package/lib/typescript/store/apis/deletePendingTask.d.ts +3 -0
  652. package/lib/typescript/store/apis/deleteReaction.d.ts +6 -0
  653. package/lib/typescript/store/apis/getChannelMessages.d.ts +1 -1
  654. package/lib/typescript/store/apis/getPendingTasks.d.ts +3 -0
  655. package/lib/typescript/store/apis/index.d.ts +1 -0
  656. package/lib/typescript/store/apis/insertReaction.d.ts +6 -0
  657. package/lib/typescript/store/apis/updateMessage.d.ts +2 -2
  658. package/lib/typescript/store/apis/updateReaction.d.ts +2 -2
  659. package/lib/typescript/store/mappers/mapDateTimeToStorable.d.ts +1 -1
  660. package/lib/typescript/store/mappers/mapMessageToStorable.d.ts +2 -2
  661. package/lib/typescript/store/mappers/mapStorableToTask.d.ts +2 -0
  662. package/lib/typescript/store/mappers/mapTaskToStorable.d.ts +34 -0
  663. package/lib/typescript/store/schema.d.ts +12 -1
  664. package/lib/typescript/store/sqlite-utils/appendOrderByClause.d.ts +3 -0
  665. package/lib/typescript/store/sqlite-utils/createSelectQuery.d.ts +1 -1
  666. package/lib/typescript/store/types.d.ts +25 -0
  667. package/lib/typescript/types/types.d.ts +3 -1
  668. package/lib/typescript/utils/DBSyncManager.d.ts +47 -0
  669. package/lib/typescript/utils/addReactionToLocalState.d.ts +9 -0
  670. package/lib/typescript/utils/pendingTaskUtils.d.ts +13 -0
  671. package/lib/typescript/utils/removeReactionFromLocalState.d.ts +8 -0
  672. package/lib/typescript/utils/utils.d.ts +3 -3
  673. package/package.json +2 -2
  674. package/src/__tests__/offline-feature.test.js +19 -2
  675. package/src/__tests__/optimistic-update.test.js +368 -0
  676. package/src/components/Attachment/GalleryImage.tsx +14 -2
  677. package/src/components/Channel/Channel.tsx +270 -62
  678. package/src/components/Channel/hooks/useCreateMessagesContext.ts +6 -0
  679. package/src/components/ChannelList/ChannelList.tsx +2 -10
  680. package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +0 -1
  681. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +75 -27
  682. package/src/components/Chat/Chat.tsx +5 -9
  683. package/src/components/Chat/__tests__/Chat.test.js +1 -1
  684. package/src/components/Chat/hooks/useCreateChatContext.ts +0 -2
  685. package/src/components/Message/Message.tsx +18 -2
  686. package/src/components/Message/MessageSimple/MessageFooter.tsx +2 -1
  687. package/src/components/Message/hooks/useMessageActionHandlers.ts +10 -21
  688. package/src/components/Message/hooks/useMessageActions.tsx +9 -4
  689. package/src/components/MessageInput/FileUploadPreview.tsx +8 -2
  690. package/src/components/MessageInput/ImageUploadPreview.tsx +37 -8
  691. package/src/components/MessageInput/MessageInput.tsx +17 -3
  692. package/src/components/MessageInput/SendButton.tsx +1 -1
  693. package/src/components/index.ts +0 -1
  694. package/src/contexts/chatContext/ChatContext.tsx +1 -2
  695. package/src/contexts/messageInputContext/MessageInputContext.tsx +29 -10
  696. package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +29 -0
  697. package/src/contexts/messagesContext/MessagesContext.tsx +4 -1
  698. package/src/hooks/useTranslatedMessage.ts +1 -1
  699. package/src/mock-builders/DB/mock.ts +2 -2
  700. package/src/mock-builders/api/deleteMessage.js +18 -0
  701. package/src/mock-builders/api/deleteReaction.js +19 -0
  702. package/src/mock-builders/api/sendReaction.tsx +19 -0
  703. package/src/mock-builders/event/connectionChanged.js +2 -1
  704. package/src/store/QuickSqliteClient.ts +39 -37
  705. package/src/store/apis/addPendingTask.ts +24 -0
  706. package/src/store/apis/deleteMessage.ts +13 -0
  707. package/src/store/apis/deletePendingTask.ts +12 -0
  708. package/src/store/apis/deleteReaction.ts +26 -0
  709. package/src/store/apis/getChannelMessages.ts +1 -1
  710. package/src/store/apis/getChannels.ts +2 -2
  711. package/src/store/apis/getPendingTasks.ts +13 -0
  712. package/src/store/apis/index.ts +1 -0
  713. package/src/store/apis/insertReaction.ts +29 -0
  714. package/src/store/apis/updateMessage.ts +2 -2
  715. package/src/store/apis/updateReaction.ts +2 -2
  716. package/src/store/mappers/mapDateTimeToStorable.ts +1 -1
  717. package/src/store/mappers/mapMessageToStorable.ts +8 -2
  718. package/src/store/mappers/mapStorableToTask.ts +13 -0
  719. package/src/store/mappers/mapTaskToStorable.ts +7 -0
  720. package/src/store/schema.ts +25 -1
  721. package/src/store/sqlite-utils/appendOrderByClause.ts +24 -0
  722. package/src/store/sqlite-utils/createCreateTableQuery.ts +2 -2
  723. package/src/store/sqlite-utils/createSelectQuery.ts +4 -1
  724. package/src/store/sqlite-utils/createUpdateQuery.ts +3 -2
  725. package/src/store/sqlite-utils/createUpsertQuery.ts +1 -1
  726. package/src/store/types.ts +33 -0
  727. package/src/types/types.ts +4 -1
  728. package/src/utils/DBSyncManager.ts +222 -0
  729. package/src/utils/addReactionToLocalState.ts +87 -0
  730. package/src/utils/pendingTaskUtils.ts +131 -0
  731. package/src/utils/removeReactionFromLocalState.ts +39 -0
  732. package/src/utils/utils.ts +12 -4
  733. package/src/version.json +1 -1
  734. package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js +0 -171
  735. package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js.map +0 -1
  736. package/lib/module/components/Chat/hooks/useConnectionRecovered.js +0 -171
  737. package/lib/module/components/Chat/hooks/useConnectionRecovered.js.map +0 -1
  738. package/lib/typescript/components/Chat/hooks/useConnectionRecovered.d.ts +0 -10
  739. package/src/components/Chat/hooks/useConnectionRecovered.ts +0 -92
@@ -0,0 +1,436 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DBSyncManager = void 0;
7
+
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
+
18
+ var _handleEventToSyncDB = require("../components/Chat/hooks/handleEventToSyncDB");
19
+
20
+ var _apis = require("../store/apis");
21
+
22
+ var _addPendingTask = require("../store/apis/addPendingTask");
23
+
24
+ var _deletePendingTask = require("../store/apis/deletePendingTask");
25
+
26
+ var _getPendingTasks = require("../store/apis/getPendingTasks");
27
+
28
+ var _QuickSqliteClient = require("../store/QuickSqliteClient");
29
+
30
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31
+
32
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
33
+
34
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
35
+
36
+ var restBeforeNextTask = function restBeforeNextTask() {
37
+ return new Promise(function (resolve) {
38
+ return setTimeout(resolve, 500);
39
+ });
40
+ };
41
+
42
+ var DBSyncManager = (0, _createClass2["default"])(function DBSyncManager() {
43
+ (0, _classCallCheck2["default"])(this, DBSyncManager);
44
+
45
+ this.dropPendingTasks = function (conditions) {
46
+ var tasks = (0, _getPendingTasks.getPendingTasks)(conditions);
47
+
48
+ for (var _iterator = _createForOfIteratorHelperLoose(tasks), _step; !(_step = _iterator()).done;) {
49
+ var task = _step.value;
50
+ if (!task.id) continue;
51
+ (0, _deletePendingTask.deletePendingTask)({
52
+ id: task.id
53
+ });
54
+ }
55
+ };
56
+ });
57
+ exports.DBSyncManager = DBSyncManager;
58
+ DBSyncManager.syncStatus = false;
59
+ DBSyncManager.listeners = [];
60
+ DBSyncManager.client = null;
61
+
62
+ DBSyncManager.getSyncStatus = function () {
63
+ return DBSyncManager.syncStatus;
64
+ };
65
+
66
+ DBSyncManager.init = function () {
67
+ var _ref = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(client) {
68
+ var _client$user, _client$wsConnection;
69
+
70
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
71
+ while (1) {
72
+ switch (_context2.prev = _context2.next) {
73
+ case 0:
74
+ DBSyncManager.client = client;
75
+
76
+ if (!((_client$user = client.user) != null && _client$user.id && (_client$wsConnection = client.wsConnection) != null && _client$wsConnection.isHealthy)) {
77
+ _context2.next = 6;
78
+ break;
79
+ }
80
+
81
+ _context2.next = 4;
82
+ return DBSyncManager.syncAndExecutePendingTasks();
83
+
84
+ case 4:
85
+ DBSyncManager.syncStatus = true;
86
+ DBSyncManager.listeners.forEach(function (l) {
87
+ return l(true);
88
+ });
89
+
90
+ case 6:
91
+ DBSyncManager.client.on('connection.changed', function () {
92
+ var _ref2 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(event) {
93
+ return _regenerator["default"].wrap(function _callee$(_context) {
94
+ while (1) {
95
+ switch (_context.prev = _context.next) {
96
+ case 0:
97
+ if (!event.online) {
98
+ _context.next = 6;
99
+ break;
100
+ }
101
+
102
+ _context.next = 3;
103
+ return DBSyncManager.syncAndExecutePendingTasks();
104
+
105
+ case 3:
106
+ DBSyncManager.listeners.forEach(function (l) {
107
+ return l(true);
108
+ });
109
+ _context.next = 7;
110
+ break;
111
+
112
+ case 6:
113
+ DBSyncManager.listeners.forEach(function (l) {
114
+ return l(false);
115
+ });
116
+
117
+ case 7:
118
+ case "end":
119
+ return _context.stop();
120
+ }
121
+ }
122
+ }, _callee);
123
+ }));
124
+
125
+ return function (_x2) {
126
+ return _ref2.apply(this, arguments);
127
+ };
128
+ }());
129
+
130
+ case 7:
131
+ case "end":
132
+ return _context2.stop();
133
+ }
134
+ }
135
+ }, _callee2);
136
+ }));
137
+
138
+ return function (_x) {
139
+ return _ref.apply(this, arguments);
140
+ };
141
+ }();
142
+
143
+ DBSyncManager.onSyncStatusChange = function (listener) {
144
+ DBSyncManager.listeners.push(listener);
145
+ return {
146
+ unsubscribe: function unsubscribe() {
147
+ DBSyncManager.listeners = DBSyncManager.listeners.filter(function (el) {
148
+ return el !== listener;
149
+ });
150
+ }
151
+ };
152
+ };
153
+
154
+ DBSyncManager.sync = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
155
+ var _DBSyncManager$client;
156
+
157
+ var lastSyncedAt, cids, result, queries;
158
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
159
+ while (1) {
160
+ switch (_context3.prev = _context3.next) {
161
+ case 0:
162
+ if ((_DBSyncManager$client = DBSyncManager.client) != null && _DBSyncManager$client.user) {
163
+ _context3.next = 2;
164
+ break;
165
+ }
166
+
167
+ return _context3.abrupt("return");
168
+
169
+ case 2:
170
+ lastSyncedAt = (0, _apis.getLastSyncedAt)({
171
+ currentUserId: DBSyncManager.client.user.id
172
+ });
173
+ cids = (0, _apis.getAllChannelIds)();
174
+
175
+ if (!lastSyncedAt) {
176
+ _context3.next = 16;
177
+ break;
178
+ }
179
+
180
+ _context3.prev = 5;
181
+ _context3.next = 8;
182
+ return DBSyncManager.client.sync(cids, new Date(lastSyncedAt).toISOString());
183
+
184
+ case 8:
185
+ result = _context3.sent;
186
+ queries = result.events.reduce(function (queries, event) {
187
+ queries = queries.concat((0, _handleEventToSyncDB.handleEventToSyncDB)(event, false));
188
+ return queries;
189
+ }, []);
190
+
191
+ if (queries.length) {
192
+ _QuickSqliteClient.QuickSqliteClient.executeSqlBatch(queries);
193
+ }
194
+
195
+ _context3.next = 16;
196
+ break;
197
+
198
+ case 13:
199
+ _context3.prev = 13;
200
+ _context3.t0 = _context3["catch"](5);
201
+
202
+ _QuickSqliteClient.QuickSqliteClient.resetDB();
203
+
204
+ case 16:
205
+ (0, _apis.upsertLastSyncedAt)({
206
+ currentUserId: DBSyncManager.client.user.id,
207
+ lastSyncedAt: new Date().toString()
208
+ });
209
+
210
+ case 17:
211
+ case "end":
212
+ return _context3.stop();
213
+ }
214
+ }
215
+ }, _callee3, null, [[5, 13]]);
216
+ }));
217
+ DBSyncManager.syncAndExecutePendingTasks = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() {
218
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
219
+ while (1) {
220
+ switch (_context4.prev = _context4.next) {
221
+ case 0:
222
+ if (DBSyncManager.client) {
223
+ _context4.next = 2;
224
+ break;
225
+ }
226
+
227
+ return _context4.abrupt("return");
228
+
229
+ case 2:
230
+ _context4.next = 4;
231
+ return DBSyncManager.executePendingTasks(DBSyncManager.client);
232
+
233
+ case 4:
234
+ _context4.next = 6;
235
+ return DBSyncManager.sync();
236
+
237
+ case 6:
238
+ case "end":
239
+ return _context4.stop();
240
+ }
241
+ }
242
+ }, _callee4);
243
+ }));
244
+
245
+ DBSyncManager.queueTask = function () {
246
+ var _ref6 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(_ref5) {
247
+ var client, task, removeFromApi, response, _response, _response$data;
248
+
249
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
250
+ while (1) {
251
+ switch (_context5.prev = _context5.next) {
252
+ case 0:
253
+ client = _ref5.client, task = _ref5.task;
254
+ removeFromApi = (0, _addPendingTask.addPendingTask)(task);
255
+ _context5.prev = 2;
256
+ _context5.next = 5;
257
+ return DBSyncManager.executeTask({
258
+ client: client,
259
+ task: task
260
+ });
261
+
262
+ case 5:
263
+ response = _context5.sent;
264
+ _context5.next = 14;
265
+ break;
266
+
267
+ case 8:
268
+ _context5.prev = 8;
269
+ _context5.t0 = _context5["catch"](2);
270
+
271
+ if (!((_context5.t0 == null ? void 0 : (_response = _context5.t0.response) == null ? void 0 : (_response$data = _response.data) == null ? void 0 : _response$data.code) === 4)) {
272
+ _context5.next = 13;
273
+ break;
274
+ }
275
+
276
+ _context5.next = 14;
277
+ break;
278
+
279
+ case 13:
280
+ throw _context5.t0;
281
+
282
+ case 14:
283
+ removeFromApi();
284
+ return _context5.abrupt("return", response);
285
+
286
+ case 16:
287
+ case "end":
288
+ return _context5.stop();
289
+ }
290
+ }
291
+ }, _callee5, null, [[2, 8]]);
292
+ }));
293
+
294
+ return function (_x3) {
295
+ return _ref6.apply(this, arguments);
296
+ };
297
+ }();
298
+
299
+ DBSyncManager.executeTask = function () {
300
+ var _ref8 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(_ref7) {
301
+ var client, task, channel;
302
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
303
+ while (1) {
304
+ switch (_context6.prev = _context6.next) {
305
+ case 0:
306
+ client = _ref7.client, task = _ref7.task;
307
+ channel = client.channel(task.channelType, task.channelId);
308
+
309
+ if (!(task.type === 'send-reaction')) {
310
+ _context6.next = 6;
311
+ break;
312
+ }
313
+
314
+ _context6.next = 5;
315
+ return channel.sendReaction.apply(channel, (0, _toConsumableArray2["default"])(task.payload));
316
+
317
+ case 5:
318
+ return _context6.abrupt("return", _context6.sent);
319
+
320
+ case 6:
321
+ if (!(task.type === 'delete-reaction')) {
322
+ _context6.next = 10;
323
+ break;
324
+ }
325
+
326
+ _context6.next = 9;
327
+ return channel.deleteReaction.apply(channel, (0, _toConsumableArray2["default"])(task.payload));
328
+
329
+ case 9:
330
+ return _context6.abrupt("return", _context6.sent);
331
+
332
+ case 10:
333
+ if (!(task.type === 'delete-message')) {
334
+ _context6.next = 14;
335
+ break;
336
+ }
337
+
338
+ _context6.next = 13;
339
+ return client.deleteMessage.apply(client, (0, _toConsumableArray2["default"])(task.payload));
340
+
341
+ case 13:
342
+ return _context6.abrupt("return", _context6.sent);
343
+
344
+ case 14:
345
+ throw new Error('Invalid task type');
346
+
347
+ case 15:
348
+ case "end":
349
+ return _context6.stop();
350
+ }
351
+ }
352
+ }, _callee6);
353
+ }));
354
+
355
+ return function (_x4) {
356
+ return _ref8.apply(this, arguments);
357
+ };
358
+ }();
359
+
360
+ DBSyncManager.executePendingTasks = function () {
361
+ var _ref9 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(client) {
362
+ var queue, _iterator2, _step2, task, _response2, _response2$data;
363
+
364
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
365
+ while (1) {
366
+ switch (_context7.prev = _context7.next) {
367
+ case 0:
368
+ queue = (0, _getPendingTasks.getPendingTasks)();
369
+ _iterator2 = _createForOfIteratorHelperLoose(queue);
370
+
371
+ case 2:
372
+ if ((_step2 = _iterator2()).done) {
373
+ _context7.next = 22;
374
+ break;
375
+ }
376
+
377
+ task = _step2.value;
378
+
379
+ if (task.id) {
380
+ _context7.next = 6;
381
+ break;
382
+ }
383
+
384
+ return _context7.abrupt("continue", 20);
385
+
386
+ case 6:
387
+ _context7.prev = 6;
388
+ _context7.next = 9;
389
+ return DBSyncManager.executeTask({
390
+ client: client,
391
+ task: task
392
+ });
393
+
394
+ case 9:
395
+ _context7.next = 17;
396
+ break;
397
+
398
+ case 11:
399
+ _context7.prev = 11;
400
+ _context7.t0 = _context7["catch"](6);
401
+
402
+ if (!((_context7.t0 == null ? void 0 : (_response2 = _context7.t0.response) == null ? void 0 : (_response2$data = _response2.data) == null ? void 0 : _response2$data.code) === 4)) {
403
+ _context7.next = 16;
404
+ break;
405
+ }
406
+
407
+ _context7.next = 17;
408
+ break;
409
+
410
+ case 16:
411
+ throw _context7.t0;
412
+
413
+ case 17:
414
+ (0, _deletePendingTask.deletePendingTask)({
415
+ id: task.id
416
+ });
417
+ _context7.next = 20;
418
+ return restBeforeNextTask();
419
+
420
+ case 20:
421
+ _context7.next = 2;
422
+ break;
423
+
424
+ case 22:
425
+ case "end":
426
+ return _context7.stop();
427
+ }
428
+ }
429
+ }, _callee7, null, [[6, 11]]);
430
+ }));
431
+
432
+ return function (_x5) {
433
+ return _ref9.apply(this, arguments);
434
+ };
435
+ }();
436
+ //# sourceMappingURL=DBSyncManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["DBSyncManager.ts"],"names":["restBeforeNextTask","Promise","resolve","setTimeout","DBSyncManager","dropPendingTasks","conditions","tasks","task","id","syncStatus","listeners","client","getSyncStatus","init","user","wsConnection","isHealthy","syncAndExecutePendingTasks","forEach","l","on","event","online","onSyncStatusChange","listener","push","unsubscribe","filter","el","sync","lastSyncedAt","currentUserId","cids","Date","toISOString","result","queries","events","reduce","concat","length","QuickSqliteClient","executeSqlBatch","resetDB","toString","executePendingTasks","queueTask","removeFromApi","executeTask","response","data","code","channel","channelType","channelId","type","sendReaction","payload","deleteReaction","deleteMessage","Error","queue"],"mappings":";;;;;;;;;;;;;;;;;AAGA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;;;;;;;AAsBA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,SAAM,IAAIC,OAAJ,CAAY,UAACC,OAAD;AAAA,WAAaC,UAAU,CAACD,OAAD,EAAU,GAAV,CAAvB;AAAA,GAAZ,CAAN;AAAA,CAA3B;;IAEaE,a;;;OAgLXC,gB,GAAmB,UAACC,UAAD,EAAuC;AACxD,QAAMC,KAAK,GAAG,sCAAgBD,UAAhB,CAAd;;AAEA,yDAAmBC,KAAnB,wCAA0B;AAAA,UAAfC,IAAe;AACxB,UAAI,CAACA,IAAI,CAACC,EAAV,EAAc;AAEd,gDAAkB;AAChBA,QAAAA,EAAE,EAAED,IAAI,CAACC;AADO,OAAlB;AAGD;AACF,G;;;AA1LUL,a,CACJM,U,GAAa,K;AADTN,a,CAEJO,S,GAA8C,E;AAF1CP,a,CAGJQ,M,GAA4B,I;;AAHxBR,a,CASJS,a,GAAgB;AAAA,SATZT,aASkB,CAAKM,UAAX;AAAA,C;;AATZN,a,CAiBJU,I;6EAAO,kBAAOF,MAAP;AAAA;;AAAA;AAAA;AAAA;AAAA;AAjBHR,YAAAA,aAkBT,CAAKQ,MAAL,GAAcA,MAAd;;AADY,kBAKR,gBAAAA,MAAM,CAACG,IAAP,0BAAaN,EAAb,4BAAmBG,MAAM,CAACI,YAA1B,aAAmB,qBAAqBC,SALhC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAjBHb,aAuBD,CAAKc,0BAAL,EANI;;AAAA;AAjBHd,YAAAA,aAwBP,CAAKM,UAAL,GAAkB,IAAlB;AAxBON,YAAAA,aAyBP,CAAKO,SAAL,CAAeQ,OAAf,CAAuB,UAACC,CAAD;AAAA,qBAAOA,CAAC,CAAC,IAAD,CAAR;AAAA,aAAvB;;AARU;AAjBHhB,YAAAA,aA4BT,CAAKQ,MAAL,CAAYS,EAAZ,CAAe,oBAAf;AAAA,0FAAqC,iBAAOC,KAAP;AAAA;AAAA;AAAA;AAAA;AAAA,6BAC/BA,KAAK,CAACC,MADyB;AAAA;AAAA;AAAA;;AAAA;AAAA,+BA5B5BnB,aA8BC,CAAKc,0BAAL,EAF2B;;AAAA;AA5B5Bd,wBAAAA,aA+BL,CAAKO,SAAL,CAAeQ,OAAf,CAAuB,UAACC,CAAD;AAAA,iCAAOA,CAAC,CAAC,IAAD,CAAR;AAAA,yBAAvB;AAHiC;AAAA;;AAAA;AA5B5BhB,wBAAAA,aAiCL,CAAKO,SAAL,CAAeQ,OAAf,CAAuB,UAACC,CAAD;AAAA,iCAAOA,CAAC,CAAC,KAAD,CAAR;AAAA,yBAAvB;;AALiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAArC;;AAAA;AAAA;AAAA;AAAA;;AAXY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;;;;AAjBHhB,a,CA4CJoB,kB,GAAqB,UAACC,QAAD,EAAyC;AA5C1DrB,EAAAA,aA6CT,CAAKO,SAAL,CAAee,IAAf,CAAoBD,QAApB;AAEA,SAAO;AACLE,IAAAA,WAAW,EAAE,uBAAM;AAhDZvB,MAAAA,aAiDL,CAAKO,SAAL,GAjDKP,aAiDY,CAAKO,SAAL,CAAeiB,MAAf,CAAsB,UAACC,EAAD;AAAA,eAAQA,EAAE,KAAKJ,QAAf;AAAA,OAAtB,CAAjB;AACD;AAHI,GAAP;AAKD,C;;AApDUrB,a,CAsDJ0B,I,mEAAO;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAtDH1B,aAuDJ,CAAKQ,MADE,aACP,sBAAaG,IADN;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAGNgB,UAAAA,YAHM,GAGS,2BAAgB;AACnCC,YAAAA,aAAa,EA1DN5B,aA0DQ,CAAKQ,MAAL,CAAYG,IAAZ,CAAiBN;AADG,WAAhB,CAHT;AAMNwB,UAAAA,IANM,GAMC,6BAND;;AAAA,eAQRF,YARQ;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,iBAtDH3B,aAgEgB,CAAKQ,MAAL,CAAYkB,IAAZ,CAAiBG,IAAjB,EAAuB,IAAIC,IAAJ,CAASH,YAAT,EAAuBI,WAAvB,EAAvB,CAVb;;AAAA;AAUFC,UAAAA,MAVE;AAWFC,UAAAA,OAXE,GAWQD,MAAM,CAACE,MAAP,CAAcC,MAAd,CAAwC,UAACF,OAAD,EAAUf,KAAV,EAAoB;AAC1Ee,YAAAA,OAAO,GAAGA,OAAO,CAACG,MAAR,CAAe,8CAAoBlB,KAApB,EAA2B,KAA3B,CAAf,CAAV;AACA,mBAAOe,OAAP;AACD,WAHe,EAGb,EAHa,CAXR;;AAgBR,cAAIA,OAAO,CAACI,MAAZ,EAAoB;AAClBC,iDAAkBC,eAAlB,CAAkCN,OAAlC;AACD;;AAlBO;AAAA;;AAAA;AAAA;AAAA;;AAsBRK,+CAAkBE,OAAlB;;AAtBQ;AAyBZ,wCAAmB;AACjBZ,YAAAA,aAAa,EAhFN5B,aAgFQ,CAAKQ,MAAL,CAAYG,IAAZ,CAAiBN,EADf;AAEjBsB,YAAAA,YAAY,EAAE,IAAIG,IAAJ,GAAWW,QAAX;AAFG,WAAnB;;AAzBY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,C;AAtDHzC,a,CAqFJc,0B,mEAA6B;AAAA;AAAA;AAAA;AAAA;AAAA,cArFzBd,aAsFJ,CAAKQ,MADwB;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA,iBArFzBR,aAwFH,CAAK0C,mBAAL,CAxFG1C,aAwFsB,CAAKQ,MAA9B,CAH4B;;AAAA;AAAA;AAAA,iBArFzBR,aAyFH,CAAK0B,IAAL,EAJ4B;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,C;;AArFzB1B,a,CA4FJ2C,S;8EAAY;AAAA;;AAAA;AAAA;AAAA;AAAA;AAGjBnC,YAAAA,MAHiB,SAGjBA,MAHiB,EAIjBJ,IAJiB,SAIjBA,IAJiB;AASXwC,YAAAA,aATW,GASK,oCAAexC,IAAf,CATL;AAAA;AAAA;AAAA,mBA5FRJ,aAyGU,CAAK6C,WAAL,CAAqC;AAAErC,cAAAA,MAAM,EAANA,MAAF;AAAUJ,cAAAA,IAAI,EAAJA;AAAV,aAArC,CAbF;;AAAA;AAaf0C,YAAAA,QAbe;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA,kBAeX,2DAAqCA,QAArC,iDAA+CC,IAA/C,oCAAqDC,IAArD,MAA8D,CAfnD;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAuBjBJ,YAAAA,aAAa;AAvBI,8CAyBVE,QAzBU;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;;;;AA5FR9C,a,CAwHJ6C,W;8EAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAGnBrC,YAAAA,MAHmB,SAGnBA,MAHmB,EAInBJ,IAJmB,SAInBA,IAJmB;AASb6C,YAAAA,OATa,GASHzC,MAAM,CAACyC,OAAP,CAAe7C,IAAI,CAAC8C,WAApB,EAAiC9C,IAAI,CAAC+C,SAAtC,CATG;;AAAA,kBAWf/C,IAAI,CAACgD,IAAL,KAAc,eAXC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAYJH,OAAO,CAACI,YAAR,OAAAJ,OAAO,sCAAiB7C,IAAI,CAACkD,OAAtB,EAZH;;AAAA;AAAA;;AAAA;AAAA,kBAeflD,IAAI,CAACgD,IAAL,KAAc,iBAfC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAgBJH,OAAO,CAACM,cAAR,OAAAN,OAAO,sCAAmB7C,IAAI,CAACkD,OAAxB,EAhBH;;AAAA;AAAA;;AAAA;AAAA,kBAmBflD,IAAI,CAACgD,IAAL,KAAc,gBAnBC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAoBJ5C,MAAM,CAACgD,aAAP,OAAAhD,MAAM,sCAAkBJ,IAAI,CAACkD,OAAvB,EApBF;;AAAA;AAAA;;AAAA;AAAA,kBAuBb,IAAIG,KAAJ,CAAU,mBAAV,CAvBa;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;;;;AAxHVzD,a,CAkJJ0C,mB;8EAAsB,kBAG3BlC,MAH2B;AAAA;;AAAA;AAAA;AAAA;AAAA;AAKrBkD,YAAAA,KALqB,GAKb,uCALa;AAAA,yDAMRA,KANQ;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAMhBtD,YAAAA,IANgB;;AAAA,gBAOpBA,IAAI,CAACC,EAPe;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA,mBAlJlBL,aA4JC,CAAK6C,WAAL,CAAqC;AACzCrC,cAAAA,MAAM,EAANA,MADyC;AAEzCJ,cAAAA,IAAI,EAAJA;AAFyC,aAArC,CAViB;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA,kBAenB,4DAAqC0C,QAArC,mDAA+CC,IAA/C,qCAAqDC,IAArD,MAA8D,CAf3C;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAuBzB,sDAAkB;AAChB3C,cAAAA,EAAE,EAAED,IAAI,CAACC;AADO,aAAlB;AAvByB;AAAA,mBA0BnBT,kBAAkB,EA1BC;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import type { AxiosError } from 'axios';\nimport type { APIErrorResponse, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from '../components/Chat/hooks/handleEventToSyncDB';\nimport { getAllChannelIds, getLastSyncedAt, upsertLastSyncedAt } from '../store/apis';\n\nimport { addPendingTask } from '../store/apis/addPendingTask';\n\nimport { deletePendingTask } from '../store/apis/deletePendingTask';\nimport { getPendingTasks } from '../store/apis/getPendingTasks';\nimport { QuickSqliteClient } from '../store/QuickSqliteClient';\nimport type { PendingTask, PreparedQueries } from '../store/types';\nimport type { DefaultStreamChatGenerics } from '../types/types';\n/**\n * DBSyncManager has the responsibility to sync the channel states\n * within local database whenever possible.\n *\n * Components can get the current sync status using DBSyncManager.getCurrentStatus().\n * Or components can attach a listener for status change as following:\n *\n * ```tsx\n * useEffect(() => {\n * const unsubscribe = DBSyncManager.onSyncStatusChange((syncStatus) => {\n * if (syncStatus) {\n * doSomething();\n * }\n * })\n *\n * return () => unsubscribe();\n * })\n * ```\n */\nconst restBeforeNextTask = () => new Promise((resolve) => setTimeout(resolve, 500));\n\nexport class DBSyncManager {\n static syncStatus = false;\n static listeners: Array<(status: boolean) => void> = [];\n static client: StreamChat | null = null;\n\n /**\n * Returns weather channel states in local DB are synced with backend or not.\n * @returns boolean\n */\n static getSyncStatus = () => this.syncStatus;\n\n /**\n * Initializes the DBSyncManager. This function should be called only once\n * throughout the lifetime of SDK.\n *\n * @param client\n */\n static init = async (client: StreamChat) => {\n this.client = client;\n // If the websocket connection is already active, then straightaway\n // call the sync api and also execute pending api calls.\n // Otherwise wait for `connection.changed` event.\n if (client.user?.id && client.wsConnection?.isHealthy) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n }\n\n this.client.on('connection.changed', async (event) => {\n if (event.online) {\n await this.syncAndExecutePendingTasks();\n this.listeners.forEach((l) => l(true));\n } else {\n this.listeners.forEach((l) => l(false));\n }\n });\n };\n\n /**\n * Subscribes a listener for sync status change.\n *\n * @param listener {function}\n * @returns {function} to unsubscribe the listener.\n */\n static onSyncStatusChange = (listener: (status: boolean) => void) => {\n this.listeners.push(listener);\n\n return {\n unsubscribe: () => {\n this.listeners = this.listeners.filter((el) => el !== listener);\n },\n };\n };\n\n static sync = async () => {\n if (!this.client?.user) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: this.client.user.id,\n });\n const cids = getAllChannelIds();\n\n if (lastSyncedAt) {\n try {\n const result = await this.client.sync(cids, new Date(lastSyncedAt).toISOString());\n const queries = result.events.reduce<PreparedQueries[]>((queries, event) => {\n queries = queries.concat(handleEventToSyncDB(event, false));\n return queries;\n }, []);\n\n if (queries.length) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n } catch (e) {\n // Error will be raised by the sync API if there are too many events.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n }\n }\n upsertLastSyncedAt({\n currentUserId: this.client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n static syncAndExecutePendingTasks = async () => {\n if (!this.client) return;\n\n await this.executePendingTasks(this.client);\n await this.sync();\n };\n\n static queueTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const removeFromApi = addPendingTask(task);\n\n let response;\n try {\n response = await this.executeTask<StreamChatGenerics>({ client, task });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n removeFromApi();\n\n return response;\n };\n\n static executeTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const channel = client.channel(task.channelType, task.channelId);\n\n if (task.type === 'send-reaction') {\n return await channel.sendReaction(...task.payload);\n }\n\n if (task.type === 'delete-reaction') {\n return await channel.deleteReaction(...task.payload);\n }\n\n if (task.type === 'delete-message') {\n return await client.deleteMessage(...task.payload);\n }\n\n throw new Error('Invalid task type');\n };\n\n static executePendingTasks = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >(\n client: StreamChat<StreamChatGenerics>,\n ) => {\n const queue = getPendingTasks();\n for (const task of queue) {\n if (!task.id) continue;\n\n try {\n await this.executeTask<StreamChatGenerics>({\n client,\n task,\n });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n deletePendingTask({\n id: task.id,\n });\n await restBeforeNextTask();\n }\n };\n\n dropPendingTasks = (conditions: { messageId: string }) => {\n const tasks = getPendingTasks(conditions);\n\n for (const task of tasks) {\n if (!task.id) continue;\n\n deletePendingTask({\n id: task.id,\n });\n }\n };\n}\n"]}
@@ -0,0 +1,92 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addReactionToLocalState = void 0;
7
+
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _apis = require("../store/apis");
13
+
14
+ var _insertReaction = require("../store/apis/insertReaction");
15
+
16
+ var addReactionToLocalState = function addReactionToLocalState(_ref) {
17
+ var channel = _ref.channel,
18
+ enforceUniqueReaction = _ref.enforceUniqueReaction,
19
+ messageId = _ref.messageId,
20
+ reactionType = _ref.reactionType,
21
+ user = _ref.user;
22
+ var message = channel.state.messages.find(function (_ref2) {
23
+ var id = _ref2.id;
24
+ return id === messageId;
25
+ });
26
+ if (!message) return;
27
+ var reaction = {
28
+ created_at: new Date().toISOString(),
29
+ message_id: messageId,
30
+ type: reactionType,
31
+ updated_at: new Date().toISOString(),
32
+ user: user,
33
+ user_id: user == null ? void 0 : user.id
34
+ };
35
+ var hasOwnReaction = message.own_reactions && message.own_reactions.length > 0;
36
+
37
+ if (!message.own_reactions) {
38
+ message.own_reactions = [];
39
+ }
40
+
41
+ if (!message.latest_reactions) {
42
+ message.latest_reactions = [];
43
+ }
44
+
45
+ if (enforceUniqueReaction) {
46
+ var currentReaction = message.own_reactions[0];
47
+ message.own_reactions = [];
48
+
49
+ if (!message.latest_reactions) {
50
+ message.latest_reactions = [];
51
+ }
52
+
53
+ message.latest_reactions = message.latest_reactions.filter(function (r) {
54
+ return r.user_id !== user.id;
55
+ });
56
+
57
+ if (currentReaction && message.reaction_counts) {
58
+ message.reaction_counts[currentReaction.type] = message.reaction_counts[currentReaction.type] - 1;
59
+ }
60
+
61
+ if (!message.reaction_counts) {
62
+ message.reaction_counts = (0, _defineProperty2["default"])({}, reactionType, 1);
63
+ } else {
64
+ var _message$reaction_cou2;
65
+
66
+ message.reaction_counts[reactionType] = (((_message$reaction_cou2 = message.reaction_counts) == null ? void 0 : _message$reaction_cou2[reactionType]) || 0) + 1;
67
+ }
68
+ } else {
69
+ if (!message.reaction_counts) {
70
+ message.reaction_counts = (0, _defineProperty2["default"])({}, reactionType, 1);
71
+ } else {
72
+ message.reaction_counts[reactionType] = message.reaction_counts[reactionType] + 1;
73
+ }
74
+ }
75
+
76
+ message.own_reactions = [].concat((0, _toConsumableArray2["default"])(message.own_reactions), [reaction]);
77
+ message.latest_reactions = [].concat((0, _toConsumableArray2["default"])(message.latest_reactions), [reaction]);
78
+
79
+ if (enforceUniqueReaction && hasOwnReaction) {
80
+ (0, _apis.updateReaction)({
81
+ message: message,
82
+ reaction: reaction
83
+ });
84
+ } else {
85
+ (0, _insertReaction.insertReaction)({
86
+ reaction: reaction
87
+ });
88
+ }
89
+ };
90
+
91
+ exports.addReactionToLocalState = addReactionToLocalState;
92
+ //# sourceMappingURL=addReactionToLocalState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["addReactionToLocalState.ts"],"names":["addReactionToLocalState","channel","enforceUniqueReaction","messageId","reactionType","user","message","state","messages","find","id","reaction","created_at","Date","toISOString","message_id","type","updated_at","user_id","hasOwnReaction","own_reactions","length","latest_reactions","currentReaction","filter","r","reaction_counts"],"mappings":"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","sourcesContent":["import type { Channel, ReactionResponse, UserResponse } from 'stream-chat';\n\nimport { updateReaction } from '../store/apis';\nimport { insertReaction } from '../store/apis/insertReaction';\n\nimport type { DefaultStreamChatGenerics } from '../types/types';\n\nexport const addReactionToLocalState = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channel,\n enforceUniqueReaction,\n messageId,\n reactionType,\n user,\n}: {\n channel: Channel<StreamChatGenerics>;\n enforceUniqueReaction: boolean;\n messageId: string;\n reactionType: string;\n user: UserResponse<StreamChatGenerics>;\n}) => {\n const message = channel.state.messages.find(({ id }) => id === messageId);\n\n if (!message) return;\n\n const reaction: ReactionResponse = {\n created_at: new Date().toISOString(),\n message_id: messageId,\n type: reactionType,\n updated_at: new Date().toISOString(),\n user,\n user_id: user?.id,\n };\n\n const hasOwnReaction = message.own_reactions && message.own_reactions.length > 0;\n if (!message.own_reactions) {\n message.own_reactions = [];\n }\n\n if (!message.latest_reactions) {\n message.latest_reactions = [];\n }\n\n if (enforceUniqueReaction) {\n const currentReaction = message.own_reactions[0];\n message.own_reactions = [];\n if (!message.latest_reactions) {\n message.latest_reactions = [];\n }\n message.latest_reactions = message.latest_reactions.filter((r) => r.user_id !== user.id);\n if (currentReaction && message.reaction_counts) {\n message.reaction_counts[currentReaction.type] =\n message.reaction_counts[currentReaction.type] - 1;\n }\n\n if (!message.reaction_counts) {\n message.reaction_counts = {\n [reactionType]: 1,\n };\n } else {\n message.reaction_counts[reactionType] = (message.reaction_counts?.[reactionType] || 0) + 1;\n }\n } else {\n if (!message.reaction_counts) {\n message.reaction_counts = {\n [reactionType]: 1,\n };\n } else {\n message.reaction_counts[reactionType] = message.reaction_counts[reactionType] + 1;\n }\n }\n\n message.own_reactions = [...message.own_reactions, reaction];\n message.latest_reactions = [...message.latest_reactions, reaction];\n\n if (enforceUniqueReaction && hasOwnReaction) {\n updateReaction({\n message,\n reaction,\n });\n } else {\n insertReaction({\n reaction,\n });\n }\n};\n"]}