@sendbird/uikit-react 3.10.1 → 3.11.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 (999) hide show
  1. package/App.js +369 -190
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +29 -2
  4. package/Channel/components/ChannelHeader.js +35 -61
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +78 -111
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +35 -81
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +8 -12
  11. package/Channel/components/FrozenNotification.js.map +1 -1
  12. package/Channel/components/Message.js +63 -317
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageFeedbackModal.js +9 -9
  15. package/Channel/components/MessageInput.js +71 -189
  16. package/Channel/components/MessageInput.js.map +1 -1
  17. package/Channel/components/MessageList.js +60 -57
  18. package/Channel/components/MessageList.js.map +1 -1
  19. package/Channel/components/RemoveMessageModal.js +31 -44
  20. package/Channel/components/RemoveMessageModal.js.map +1 -1
  21. package/Channel/components/SuggestedMentionList.js +37 -191
  22. package/Channel/components/SuggestedMentionList.js.map +1 -1
  23. package/Channel/components/TypingIndicator.js +12 -80
  24. package/Channel/components/TypingIndicator.js.map +1 -1
  25. package/Channel/components/UnreadCount.js +11 -29
  26. package/Channel/components/UnreadCount.js.map +1 -1
  27. package/Channel/context.js +1502 -21
  28. package/Channel/context.js.map +1 -1
  29. package/Channel/hooks/useHandleUploadFiles.js +13 -13
  30. package/Channel/hooks/useInitialMessagesFetch.js +6 -8
  31. package/Channel/hooks/useInitialMessagesFetch.js.map +1 -1
  32. package/Channel/utils/compareMessagesForGrouping.js +39 -8
  33. package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  34. package/Channel/utils/getMessagePartsInfo.js +9 -9
  35. package/Channel.js +78 -74
  36. package/Channel.js.map +1 -1
  37. package/ChannelList/components/AddChannel.js +28 -47
  38. package/ChannelList/components/AddChannel.js.map +1 -1
  39. package/ChannelList/components/ChannelListHeader.js +13 -35
  40. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  41. package/ChannelList/components/ChannelListUI.js +61 -135
  42. package/ChannelList/components/ChannelListUI.js.map +1 -1
  43. package/ChannelList/components/ChannelPreview.js +42 -126
  44. package/ChannelList/components/ChannelPreview.js.map +1 -1
  45. package/ChannelList/components/ChannelPreviewAction.js +18 -65
  46. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  47. package/ChannelList/context.js +10 -9
  48. package/ChannelList/context.js.map +1 -1
  49. package/ChannelList.js +58 -59
  50. package/ChannelList.js.map +1 -1
  51. package/ChannelSettings/components/ChannelProfile.js +14 -14
  52. package/ChannelSettings/components/ChannelSettingsUI.js +25 -19
  53. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  54. package/ChannelSettings/components/EditDetailsModal.js +14 -14
  55. package/ChannelSettings/components/LeaveChannel.js +11 -11
  56. package/ChannelSettings/components/ModerationPanel.js +23 -17
  57. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  58. package/ChannelSettings/components/UserListItem.js +13 -13
  59. package/ChannelSettings/components/UserPanel.js +22 -16
  60. package/ChannelSettings/components/UserPanel.js.map +1 -1
  61. package/ChannelSettings/context.js +3 -3
  62. package/ChannelSettings.js +25 -19
  63. package/ChannelSettings.js.map +1 -1
  64. package/CreateChannel/components/CreateChannelUI.js +16 -16
  65. package/CreateChannel/components/InviteUsers.js +23 -25
  66. package/CreateChannel/components/InviteUsers.js.map +1 -1
  67. package/CreateChannel/components/SelectChannelType.js +10 -10
  68. package/CreateChannel/context.js +4 -4
  69. package/CreateChannel.js +18 -19
  70. package/CreateChannel.js.map +1 -1
  71. package/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -12
  72. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  73. package/CreateOpenChannel/context.js +1 -1
  74. package/CreateOpenChannel.js +11 -12
  75. package/CreateOpenChannel.js.map +1 -1
  76. package/EditUserProfile/components/EditUserProfileUI.js +12 -13
  77. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  78. package/EditUserProfile.js +12 -13
  79. package/EditUserProfile.js.map +1 -1
  80. package/Message/hooks/useDirtyGetMentions.js +2 -2
  81. package/MessageSearch/components/MessageSearchUI.js +14 -15
  82. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  83. package/MessageSearch/context.js +14 -3
  84. package/MessageSearch/context.js.map +1 -1
  85. package/MessageSearch.js +14 -15
  86. package/MessageSearch.js.map +1 -1
  87. package/OpenChannel/components/FrozenChannelNotification.js +5 -5
  88. package/OpenChannel/components/OpenChannelHeader.js +18 -19
  89. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  90. package/OpenChannel/components/OpenChannelInput.js +25 -26
  91. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  92. package/OpenChannel/components/OpenChannelMessage.js +35 -35
  93. package/OpenChannel/components/OpenChannelMessageList.js +40 -38
  94. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  95. package/OpenChannel/components/OpenChannelUI.js +40 -38
  96. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  97. package/OpenChannel/context.js +17 -18
  98. package/OpenChannel/context.js.map +1 -1
  99. package/OpenChannel.js +40 -38
  100. package/OpenChannel.js.map +1 -1
  101. package/OpenChannelList/components/OpenChannelListUI.js +14 -15
  102. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  103. package/OpenChannelList/components/OpenChannelPreview.js +6 -7
  104. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  105. package/OpenChannelList/context.js +3 -3
  106. package/OpenChannelList.js +14 -15
  107. package/OpenChannelList.js.map +1 -1
  108. package/OpenChannelSettings/components/EditDetailsModal.js +15 -15
  109. package/OpenChannelSettings/components/OpenChannelProfile.js +15 -15
  110. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +19 -19
  111. package/OpenChannelSettings/components/OperatorUI.js +19 -19
  112. package/OpenChannelSettings/components/ParticipantUI.js +17 -17
  113. package/OpenChannelSettings/context.js +3 -3
  114. package/OpenChannelSettings.js +19 -19
  115. package/SendbirdProvider.js +91 -230
  116. package/SendbirdProvider.js.map +1 -1
  117. package/Thread/components/ParentMessageInfo.js +43 -44
  118. package/Thread/components/ParentMessageInfo.js.map +1 -1
  119. package/Thread/components/ParentMessageInfoItem.js +35 -33
  120. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  121. package/Thread/components/ThreadHeader.js +7 -7
  122. package/Thread/components/ThreadList.js +48 -48
  123. package/Thread/components/ThreadListItem.js +49 -50
  124. package/Thread/components/ThreadListItem.js.map +1 -1
  125. package/Thread/components/ThreadMessageInput.js +50 -43
  126. package/Thread/components/ThreadMessageInput.js.map +1 -1
  127. package/Thread/components/ThreadUI.js +60 -52
  128. package/Thread/components/ThreadUI.js.map +1 -1
  129. package/Thread/context.js +151 -160
  130. package/Thread/context.js.map +1 -1
  131. package/Thread.js +61 -53
  132. package/Thread.js.map +1 -1
  133. package/VoicePlayer/context.js +3 -3
  134. package/VoicePlayer/useVoicePlayer.js +10 -10
  135. package/VoiceRecorder/context.js +12 -11
  136. package/VoiceRecorder/context.js.map +1 -1
  137. package/VoiceRecorder/useVoiceRecorder.js +9 -9
  138. package/chunks/{bundle-GbC4a59M.js → bundle-0v0L0TbZ.js} +4 -4
  139. package/chunks/bundle-0v0L0TbZ.js.map +1 -0
  140. package/chunks/bundle-143lYf48.js +57 -0
  141. package/chunks/bundle-143lYf48.js.map +1 -0
  142. package/chunks/bundle-1nyUxr-Z.js +34 -0
  143. package/chunks/bundle-1nyUxr-Z.js.map +1 -0
  144. package/chunks/{bundle-X3h4GiLa.js → bundle-2QckWBqt.js} +4 -5
  145. package/chunks/bundle-2QckWBqt.js.map +1 -0
  146. package/chunks/{bundle-LEanaSuB.js → bundle-2d4_n6Eh.js} +3 -3
  147. package/chunks/{bundle-LEanaSuB.js.map → bundle-2d4_n6Eh.js.map} +1 -1
  148. package/chunks/bundle-2jWyEzHg.js +64 -0
  149. package/chunks/bundle-2jWyEzHg.js.map +1 -0
  150. package/chunks/bundle-2mo18Chz.js +34 -0
  151. package/chunks/bundle-2mo18Chz.js.map +1 -0
  152. package/chunks/{bundle-mTQPBbmZ.js → bundle-2vQfu2KQ.js} +6 -6
  153. package/chunks/bundle-2vQfu2KQ.js.map +1 -0
  154. package/chunks/{bundle-PZta2LmS.js → bundle-3cuuQsdK.js} +3 -3
  155. package/chunks/{bundle-PZta2LmS.js.map → bundle-3cuuQsdK.js.map} +1 -1
  156. package/chunks/{bundle-aeQZ5WsP.js → bundle-4IsRvL2E.js} +1 -1
  157. package/chunks/bundle-4IsRvL2E.js.map +1 -0
  158. package/chunks/{bundle-_-2NCsYr.js → bundle-4l6RpXkL.js} +1 -1
  159. package/chunks/bundle-4l6RpXkL.js.map +1 -0
  160. package/chunks/{bundle-JbVZ1Tsw.js → bundle-7MnAkGtU.js} +2 -2
  161. package/chunks/bundle-7MnAkGtU.js.map +1 -0
  162. package/chunks/bundle-7jAH-Rav.js +550 -0
  163. package/chunks/bundle-7jAH-Rav.js.map +1 -0
  164. package/chunks/bundle-82c4Z7tx.js +251 -0
  165. package/chunks/{bundle-NYZlEPQ4.js.map → bundle-82c4Z7tx.js.map} +1 -1
  166. package/chunks/bundle-8CxBlReU.js +61 -0
  167. package/chunks/bundle-8CxBlReU.js.map +1 -0
  168. package/chunks/{bundle-xgiw36M5.js → bundle-9lUB2eTP.js} +1 -1
  169. package/chunks/bundle-9lUB2eTP.js.map +1 -0
  170. package/chunks/bundle-AnoUW9yQ.js +199 -0
  171. package/chunks/{bundle-ETZY-eQc.js.map → bundle-AnoUW9yQ.js.map} +1 -1
  172. package/chunks/{bundle-xsV7pD8p.js → bundle-BbdMr4SL.js} +3 -27
  173. package/chunks/bundle-BbdMr4SL.js.map +1 -0
  174. package/chunks/{bundle-F3QT9IFj.js → bundle-Bph6KjZN.js} +2 -2
  175. package/chunks/{bundle-GKopZh-T.js.map → bundle-Bph6KjZN.js.map} +1 -1
  176. package/chunks/{bundle-uk2Y0AQu.js → bundle-GQt7EDbt.js} +15 -7
  177. package/chunks/{bundle-uk2Y0AQu.js.map → bundle-GQt7EDbt.js.map} +1 -1
  178. package/chunks/bundle-GpRTDFGV.js +11 -0
  179. package/chunks/bundle-GpRTDFGV.js.map +1 -0
  180. package/chunks/{bundle-E33Oa46E.js → bundle-HOZJLjST.js} +10 -10
  181. package/chunks/{bundle-E33Oa46E.js.map → bundle-HOZJLjST.js.map} +1 -1
  182. package/chunks/bundle-HRsLD2CW.js +29 -0
  183. package/chunks/{bundle-zpSxKsxM.js.map → bundle-HRsLD2CW.js.map} +1 -1
  184. package/chunks/bundle-IbFVsltH.js +30 -0
  185. package/chunks/bundle-IbFVsltH.js.map +1 -0
  186. package/chunks/{bundle-KSjFhl4l.js → bundle-JHAEGHwc.js} +1 -1
  187. package/chunks/bundle-JHAEGHwc.js.map +1 -0
  188. package/chunks/{bundle-iWI3kIle.js → bundle-Jm7rtWnz.js} +12 -41
  189. package/chunks/{bundle-iWI3kIle.js.map → bundle-Jm7rtWnz.js.map} +1 -1
  190. package/chunks/{bundle-VPanFdbf.js → bundle-K0s-Ect1.js} +6 -6
  191. package/chunks/bundle-K0s-Ect1.js.map +1 -0
  192. package/chunks/{bundle-Lt8mReNU.js → bundle-KWJtSpuF.js} +3 -3
  193. package/chunks/bundle-KWJtSpuF.js.map +1 -0
  194. package/chunks/{bundle-Fkv6nKcy.js → bundle-MGkFgiJm.js} +5 -47
  195. package/chunks/bundle-MGkFgiJm.js.map +1 -0
  196. package/chunks/bundle-MvpO_S_k.js +12 -0
  197. package/chunks/bundle-MvpO_S_k.js.map +1 -0
  198. package/chunks/{bundle-cXqs96Pt.js → bundle-NQlEMhhs.js} +1 -1
  199. package/chunks/bundle-NQlEMhhs.js.map +1 -0
  200. package/chunks/bundle-NeB2uoNn.js +34 -0
  201. package/chunks/bundle-NeB2uoNn.js.map +1 -0
  202. package/chunks/bundle-NxSCk3As.js +23 -0
  203. package/chunks/bundle-NxSCk3As.js.map +1 -0
  204. package/chunks/bundle-QOv6Bgtw.js +179 -0
  205. package/{cjs/chunks/bundle-XaLiuh0L.js.map → chunks/bundle-QOv6Bgtw.js.map} +1 -1
  206. package/chunks/{bundle-VCZsMdpB.js → bundle-QaBTXAtO.js} +2 -2
  207. package/chunks/{bundle-VCZsMdpB.js.map → bundle-QaBTXAtO.js.map} +1 -1
  208. package/chunks/{bundle-Kv4GXRTs.js → bundle-Rq3p335Q.js} +1 -1
  209. package/chunks/bundle-Rq3p335Q.js.map +1 -0
  210. package/chunks/{bundle-KmauOTrg.js → bundle-SbHFlBY0.js} +1 -1
  211. package/chunks/bundle-SbHFlBY0.js.map +1 -0
  212. package/chunks/{bundle-yur9nm4N.js → bundle-T9LQyh_7.js} +1 -1
  213. package/chunks/bundle-T9LQyh_7.js.map +1 -0
  214. package/chunks/bundle-W8as0zrL.js +197 -0
  215. package/chunks/bundle-W8as0zrL.js.map +1 -0
  216. package/chunks/{bundle-zpSxKsxM.js → bundle-WK57RaQR.js} +2 -2
  217. package/chunks/bundle-WK57RaQR.js.map +1 -0
  218. package/chunks/{bundle-iYCB6XN2.js → bundle-WdOdwp-Y.js} +1 -1
  219. package/chunks/bundle-WdOdwp-Y.js.map +1 -0
  220. package/chunks/{bundle-f9mkey82.js → bundle-ZcOjo_4l.js} +2 -4
  221. package/chunks/bundle-ZcOjo_4l.js.map +1 -0
  222. package/chunks/bundle-aaseqnuB.js +44 -0
  223. package/chunks/bundle-aaseqnuB.js.map +1 -0
  224. package/chunks/{bundle-ipC2A4Tb.js → bundle-areDE3aT.js} +151 -29
  225. package/{cjs/chunks/bundle-Jcrboe06.js.map → chunks/bundle-areDE3aT.js.map} +1 -1
  226. package/chunks/bundle-b1IOVyYG.js +389 -0
  227. package/chunks/bundle-b1IOVyYG.js.map +1 -0
  228. package/chunks/{bundle-TV4-nyqN.js → bundle-b6xyPdyj.js} +1 -1
  229. package/chunks/{bundle-TV4-nyqN.js.map → bundle-b6xyPdyj.js.map} +1 -1
  230. package/chunks/{bundle-DeRyZP32.js → bundle-bTljiK8B.js} +10 -10
  231. package/chunks/{bundle-DeRyZP32.js.map → bundle-bTljiK8B.js.map} +1 -1
  232. package/chunks/bundle-byix4-_Z.js +30 -0
  233. package/chunks/bundle-byix4-_Z.js.map +1 -0
  234. package/chunks/{bundle-Gkl7Q1IK.js → bundle-dVzhcuE8.js} +29 -13
  235. package/chunks/bundle-dVzhcuE8.js.map +1 -0
  236. package/chunks/{bundle-J_erGfOo.js → bundle-eHUDbnaD.js} +42 -30
  237. package/chunks/bundle-eHUDbnaD.js.map +1 -0
  238. package/chunks/{bundle-wUwB6Q8m.js → bundle-f6-Dp_Ka.js} +3 -3
  239. package/chunks/{bundle-wUwB6Q8m.js.map → bundle-f6-Dp_Ka.js.map} +1 -1
  240. package/chunks/{bundle-GKopZh-T.js → bundle-fgwje9pW.js} +14 -2
  241. package/chunks/{bundle-ldRkCosA.js.map → bundle-fgwje9pW.js.map} +1 -1
  242. package/chunks/{bundle-HkbweK1K.js → bundle-fsBmcKjs.js} +1 -1
  243. package/chunks/bundle-fsBmcKjs.js.map +1 -0
  244. package/chunks/{bundle-y_LgB6DS.js → bundle-hOV701rb.js} +3 -3
  245. package/chunks/bundle-hOV701rb.js.map +1 -0
  246. package/chunks/{bundle-OZZH5fXZ.js → bundle-j8bOxoFa.js} +1 -1
  247. package/chunks/bundle-j8bOxoFa.js.map +1 -0
  248. package/chunks/{bundle-W8t7rR3H.js → bundle-jXtqc1kU.js} +3 -3
  249. package/chunks/bundle-jXtqc1kU.js.map +1 -0
  250. package/chunks/{bundle-lmXvuxOb.js → bundle-kTQOM0SQ.js} +1 -1
  251. package/chunks/bundle-kTQOM0SQ.js.map +1 -0
  252. package/chunks/{bundle-dWJnfDPH.js → bundle-kVopRZZG.js} +3 -3
  253. package/chunks/bundle-kVopRZZG.js.map +1 -0
  254. package/chunks/bundle-l3_ubbH6.js +88 -0
  255. package/chunks/bundle-l3_ubbH6.js.map +1 -0
  256. package/chunks/{bundle-ldRkCosA.js → bundle-lxPqhWGY.js} +4 -4
  257. package/chunks/{bundle-Fkv6nKcy.js.map → bundle-lxPqhWGY.js.map} +1 -1
  258. package/chunks/{bundle-kfNTRju0.js → bundle-n9wVwJwL.js} +1 -1
  259. package/chunks/{bundle-kfNTRju0.js.map → bundle-n9wVwJwL.js.map} +1 -1
  260. package/chunks/{bundle-pWIkt9Ng.js → bundle-nA9SX_Hi.js} +1 -1
  261. package/chunks/bundle-nA9SX_Hi.js.map +1 -0
  262. package/chunks/bundle-o1VHRKp9.js +148 -0
  263. package/chunks/bundle-o1VHRKp9.js.map +1 -0
  264. package/chunks/{bundle-YmIrZYPF.js → bundle-oRyfuopS.js} +1 -1
  265. package/chunks/{bundle-YmIrZYPF.js.map → bundle-oRyfuopS.js.map} +1 -1
  266. package/chunks/bundle-oszCig8K.js +27 -0
  267. package/chunks/bundle-oszCig8K.js.map +1 -0
  268. package/chunks/{bundle-ku6CEjGk.js → bundle-pfcIdF14.js} +1 -1
  269. package/chunks/bundle-pfcIdF14.js.map +1 -0
  270. package/chunks/bundle-qGLQQXlH.js +281 -0
  271. package/chunks/{bundle-MzSKVbUQ.js.map → bundle-qGLQQXlH.js.map} +1 -1
  272. package/chunks/{bundle-cHbX4Rxo.js → bundle-qLmDwx8F.js} +5 -40
  273. package/{cjs/chunks/bundle-JVe1J2FX.js.map → chunks/bundle-qLmDwx8F.js.map} +1 -1
  274. package/chunks/{bundle-ETZY-eQc.js → bundle-qXA8wWBC.js} +5 -5
  275. package/chunks/bundle-qXA8wWBC.js.map +1 -0
  276. package/chunks/{bundle-Jp5g4YZl.js → bundle-qvDlYEM_.js} +1 -1
  277. package/chunks/bundle-qvDlYEM_.js.map +1 -0
  278. package/chunks/{bundle-MzSKVbUQ.js → bundle-rCo3Zf4a.js} +96 -59
  279. package/chunks/bundle-rCo3Zf4a.js.map +1 -0
  280. package/chunks/{bundle-MyYphU00.js → bundle-rgUMi-vG.js} +8 -8
  281. package/chunks/bundle-rgUMi-vG.js.map +1 -0
  282. package/chunks/{bundle-niN5G0Bo.js → bundle-s-yWiXW2.js} +2 -2
  283. package/chunks/bundle-s-yWiXW2.js.map +1 -0
  284. package/chunks/{bundle-WpHDilD_.js → bundle-tOpyp2TM.js} +2 -3
  285. package/chunks/bundle-tOpyp2TM.js.map +1 -0
  286. package/chunks/{bundle-aVVX2zHR.js → bundle-thvveea5.js} +3 -3
  287. package/chunks/bundle-thvveea5.js.map +1 -0
  288. package/chunks/{bundle-1WAo3loP.js → bundle-ueo2Sf-L.js} +1 -1
  289. package/chunks/bundle-ueo2Sf-L.js.map +1 -0
  290. package/chunks/bundle-vBXnDJn4.js +120 -0
  291. package/chunks/bundle-vBXnDJn4.js.map +1 -0
  292. package/chunks/{bundle-ZcE3JzW_.js → bundle-wBOLbuH7.js} +9 -8
  293. package/chunks/bundle-wBOLbuH7.js.map +1 -0
  294. package/chunks/{bundle-NYZlEPQ4.js → bundle-wsahaI_Z.js} +11 -29
  295. package/{cjs/chunks/bundle-3K153hLM.js.map → chunks/bundle-wsahaI_Z.js.map} +1 -1
  296. package/chunks/{bundle-tca5p7Pl.js → bundle-x1NoGtpJ.js} +2 -2
  297. package/chunks/bundle-x1NoGtpJ.js.map +1 -0
  298. package/chunks/bundle-xkOWTTW1.js +13 -0
  299. package/chunks/bundle-xkOWTTW1.js.map +1 -0
  300. package/chunks/{bundle-WDOQg3ty.js → bundle-yE5T9BpV.js} +39 -39
  301. package/chunks/{bundle-WDOQg3ty.js.map → bundle-yE5T9BpV.js.map} +1 -1
  302. package/chunks/{bundle-d6R6m9-9.js → bundle-zJNJlM2H.js} +14 -8
  303. package/{cjs/chunks/bundle-s82XYT1Q.js.map → chunks/bundle-zJNJlM2H.js.map} +1 -1
  304. package/chunks/{bundle-H2Il__gY.js → bundle-zLlQw-jW.js} +1 -1
  305. package/chunks/bundle-zLlQw-jW.js.map +1 -0
  306. package/chunks/{bundle-ZKM9Qk_j.js → bundle-zpdae5WH.js} +2 -2
  307. package/chunks/bundle-zpdae5WH.js.map +1 -0
  308. package/chunks/bundle-zuRObww2.js +48 -0
  309. package/chunks/bundle-zuRObww2.js.map +1 -0
  310. package/cjs/App.js +368 -189
  311. package/cjs/App.js.map +1 -1
  312. package/cjs/Channel/components/ChannelHeader.js +40 -59
  313. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  314. package/cjs/Channel/components/ChannelUI.js +80 -109
  315. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  316. package/cjs/Channel/components/FileViewer.js +38 -80
  317. package/cjs/Channel/components/FileViewer.js.map +1 -1
  318. package/cjs/Channel/components/FrozenNotification.js +9 -13
  319. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  320. package/cjs/Channel/components/Message.js +64 -314
  321. package/cjs/Channel/components/Message.js.map +1 -1
  322. package/cjs/Channel/components/MessageFeedbackModal.js +9 -9
  323. package/cjs/Channel/components/MessageInput.js +71 -189
  324. package/cjs/Channel/components/MessageInput.js.map +1 -1
  325. package/cjs/Channel/components/MessageList.js +64 -58
  326. package/cjs/Channel/components/MessageList.js.map +1 -1
  327. package/cjs/Channel/components/RemoveMessageModal.js +33 -42
  328. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  329. package/cjs/Channel/components/SuggestedMentionList.js +39 -190
  330. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  331. package/cjs/Channel/components/TypingIndicator.js +12 -83
  332. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  333. package/cjs/Channel/components/UnreadCount.js +12 -30
  334. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  335. package/cjs/Channel/context.js +1500 -23
  336. package/cjs/Channel/context.js.map +1 -1
  337. package/cjs/Channel/hooks/useHandleUploadFiles.js +13 -13
  338. package/cjs/Channel/hooks/useInitialMessagesFetch.js +6 -8
  339. package/cjs/Channel/hooks/useInitialMessagesFetch.js.map +1 -1
  340. package/cjs/Channel/utils/compareMessagesForGrouping.js +45 -9
  341. package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  342. package/cjs/Channel/utils/getMessagePartsInfo.js +9 -9
  343. package/cjs/Channel.js +78 -74
  344. package/cjs/Channel.js.map +1 -1
  345. package/cjs/ChannelList/components/AddChannel.js +31 -46
  346. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  347. package/cjs/ChannelList/components/ChannelListHeader.js +13 -35
  348. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  349. package/cjs/ChannelList/components/ChannelListUI.js +63 -133
  350. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  351. package/cjs/ChannelList/components/ChannelPreview.js +44 -124
  352. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  353. package/cjs/ChannelList/components/ChannelPreviewAction.js +19 -62
  354. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  355. package/cjs/ChannelList/context.js +10 -9
  356. package/cjs/ChannelList/context.js.map +1 -1
  357. package/cjs/ChannelList.js +58 -59
  358. package/cjs/ChannelList.js.map +1 -1
  359. package/cjs/ChannelSettings/components/ChannelProfile.js +14 -14
  360. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +25 -19
  361. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  362. package/cjs/ChannelSettings/components/EditDetailsModal.js +14 -14
  363. package/cjs/ChannelSettings/components/LeaveChannel.js +11 -11
  364. package/cjs/ChannelSettings/components/ModerationPanel.js +23 -17
  365. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  366. package/cjs/ChannelSettings/components/UserListItem.js +13 -13
  367. package/cjs/ChannelSettings/components/UserPanel.js +22 -16
  368. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  369. package/cjs/ChannelSettings/context.js +3 -3
  370. package/cjs/ChannelSettings.js +25 -19
  371. package/cjs/ChannelSettings.js.map +1 -1
  372. package/cjs/CreateChannel/components/CreateChannelUI.js +16 -16
  373. package/cjs/CreateChannel/components/InviteUsers.js +23 -25
  374. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  375. package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
  376. package/cjs/CreateChannel/context.js +4 -4
  377. package/cjs/CreateChannel.js +18 -19
  378. package/cjs/CreateChannel.js.map +1 -1
  379. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -12
  380. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  381. package/cjs/CreateOpenChannel/context.js +1 -1
  382. package/cjs/CreateOpenChannel.js +11 -12
  383. package/cjs/CreateOpenChannel.js.map +1 -1
  384. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -13
  385. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  386. package/cjs/EditUserProfile.js +12 -13
  387. package/cjs/EditUserProfile.js.map +1 -1
  388. package/cjs/Message/hooks/useDirtyGetMentions.js +2 -2
  389. package/cjs/MessageSearch/components/MessageSearchUI.js +14 -15
  390. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  391. package/cjs/MessageSearch/context.js +14 -3
  392. package/cjs/MessageSearch/context.js.map +1 -1
  393. package/cjs/MessageSearch.js +14 -15
  394. package/cjs/MessageSearch.js.map +1 -1
  395. package/cjs/OpenChannel/components/FrozenChannelNotification.js +5 -5
  396. package/cjs/OpenChannel/components/OpenChannelHeader.js +18 -19
  397. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  398. package/cjs/OpenChannel/components/OpenChannelInput.js +25 -26
  399. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  400. package/cjs/OpenChannel/components/OpenChannelMessage.js +35 -35
  401. package/cjs/OpenChannel/components/OpenChannelMessageList.js +41 -39
  402. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  403. package/cjs/OpenChannel/components/OpenChannelUI.js +40 -38
  404. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  405. package/cjs/OpenChannel/context.js +17 -18
  406. package/cjs/OpenChannel/context.js.map +1 -1
  407. package/cjs/OpenChannel.js +40 -38
  408. package/cjs/OpenChannel.js.map +1 -1
  409. package/cjs/OpenChannelList/components/OpenChannelListUI.js +14 -15
  410. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  411. package/cjs/OpenChannelList/components/OpenChannelPreview.js +6 -7
  412. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  413. package/cjs/OpenChannelList/context.js +3 -3
  414. package/cjs/OpenChannelList.js +14 -15
  415. package/cjs/OpenChannelList.js.map +1 -1
  416. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +15 -15
  417. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +15 -15
  418. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +19 -19
  419. package/cjs/OpenChannelSettings/components/OperatorUI.js +19 -19
  420. package/cjs/OpenChannelSettings/components/ParticipantUI.js +17 -17
  421. package/cjs/OpenChannelSettings/context.js +3 -3
  422. package/cjs/OpenChannelSettings.js +19 -19
  423. package/cjs/SendbirdProvider.js +95 -234
  424. package/cjs/SendbirdProvider.js.map +1 -1
  425. package/cjs/Thread/components/ParentMessageInfo.js +45 -46
  426. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  427. package/cjs/Thread/components/ParentMessageInfoItem.js +38 -36
  428. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  429. package/cjs/Thread/components/ThreadHeader.js +7 -7
  430. package/cjs/Thread/components/ThreadList.js +50 -50
  431. package/cjs/Thread/components/ThreadListItem.js +54 -55
  432. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  433. package/cjs/Thread/components/ThreadMessageInput.js +52 -45
  434. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  435. package/cjs/Thread/components/ThreadUI.js +60 -52
  436. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  437. package/cjs/Thread/context.js +151 -160
  438. package/cjs/Thread/context.js.map +1 -1
  439. package/cjs/Thread.js +61 -53
  440. package/cjs/Thread.js.map +1 -1
  441. package/cjs/VoicePlayer/context.js +3 -3
  442. package/cjs/VoicePlayer/useVoicePlayer.js +10 -10
  443. package/cjs/VoiceRecorder/context.js +12 -11
  444. package/cjs/VoiceRecorder/context.js.map +1 -1
  445. package/cjs/VoiceRecorder/useVoiceRecorder.js +9 -9
  446. package/cjs/chunks/{bundle-65IwoStx.js → bundle--RWWGoZo.js} +1 -1
  447. package/cjs/chunks/{bundle-65IwoStx.js.map → bundle--RWWGoZo.js.map} +1 -1
  448. package/cjs/chunks/{bundle-UaSM_xZY.js → bundle-1n4GnjYf.js} +1 -1
  449. package/cjs/chunks/bundle-1n4GnjYf.js.map +1 -0
  450. package/cjs/chunks/{bundle-TxdziCwH.js → bundle-28M_gXGl.js} +4 -4
  451. package/cjs/chunks/bundle-28M_gXGl.js.map +1 -0
  452. package/cjs/chunks/{bundle-WzrocC57.js → bundle-2ToiwW-_.js} +1 -1
  453. package/cjs/chunks/bundle-2ToiwW-_.js.map +1 -0
  454. package/cjs/chunks/{bundle-68NdNRjR.js → bundle-3GWdY_5G.js} +10 -10
  455. package/cjs/chunks/bundle-3GWdY_5G.js.map +1 -0
  456. package/cjs/chunks/{bundle-7AS0Rcch.js → bundle-3S8jBmCV.js} +1 -1
  457. package/cjs/chunks/bundle-3S8jBmCV.js.map +1 -0
  458. package/cjs/chunks/{bundle-s82XYT1Q.js → bundle-3VBtozeG.js} +14 -8
  459. package/{chunks/bundle-J_erGfOo.js.map → cjs/chunks/bundle-3VBtozeG.js.map} +1 -1
  460. package/cjs/chunks/{bundle-BH9aeaqG.js → bundle-4OXJViEd.js} +2 -2
  461. package/cjs/chunks/bundle-4OXJViEd.js.map +1 -0
  462. package/cjs/chunks/{bundle-dny_TiUT.js → bundle-4RwXAyc6.js} +2 -2
  463. package/cjs/chunks/bundle-4RwXAyc6.js.map +1 -0
  464. package/cjs/chunks/bundle-4hsD0CCh.js +25 -0
  465. package/cjs/chunks/bundle-4hsD0CCh.js.map +1 -0
  466. package/cjs/chunks/bundle-5cpSg7Yt.js +30 -0
  467. package/cjs/chunks/bundle-5cpSg7Yt.js.map +1 -0
  468. package/cjs/chunks/{bundle-VB_a0u7i.js → bundle-60IjeSgc.js} +1 -1
  469. package/cjs/chunks/bundle-60IjeSgc.js.map +1 -0
  470. package/cjs/chunks/{bundle-OVfymd1y.js → bundle-7IKA03Ad.js} +1 -1
  471. package/cjs/chunks/bundle-7IKA03Ad.js.map +1 -0
  472. package/cjs/chunks/{bundle-6ZegaDWX.js → bundle-7sO7MuTY.js} +39 -39
  473. package/cjs/chunks/{bundle-6ZegaDWX.js.map → bundle-7sO7MuTY.js.map} +1 -1
  474. package/cjs/chunks/{bundle-5Nd6zn0d.js → bundle-7zgRAH2f.js} +3 -3
  475. package/cjs/chunks/bundle-7zgRAH2f.js.map +1 -0
  476. package/cjs/chunks/bundle-85DGianx.js +553 -0
  477. package/cjs/chunks/bundle-85DGianx.js.map +1 -0
  478. package/cjs/chunks/{bundle-ptZslG_m.js → bundle-8XyvQRnm.js} +7 -7
  479. package/cjs/chunks/bundle-8XyvQRnm.js.map +1 -0
  480. package/cjs/chunks/{bundle-Jcrboe06.js → bundle-9ZxGYXTj.js} +150 -28
  481. package/{chunks/bundle-ipC2A4Tb.js.map → cjs/chunks/bundle-9ZxGYXTj.js.map} +1 -1
  482. package/cjs/chunks/bundle-9fFxVdSK.js +51 -0
  483. package/cjs/chunks/bundle-9fFxVdSK.js.map +1 -0
  484. package/cjs/chunks/{bundle-r8Z3GYqh.js → bundle-BRRuC2D3.js} +9 -8
  485. package/cjs/chunks/bundle-BRRuC2D3.js.map +1 -0
  486. package/cjs/chunks/bundle-Bx0FCMKL.js +153 -0
  487. package/cjs/chunks/bundle-Bx0FCMKL.js.map +1 -0
  488. package/cjs/chunks/bundle-C42WLw1z.js +40 -0
  489. package/cjs/chunks/bundle-C42WLw1z.js.map +1 -0
  490. package/cjs/chunks/bundle-GRS8tlu-.js +15 -0
  491. package/cjs/chunks/bundle-GRS8tlu-.js.map +1 -0
  492. package/cjs/chunks/{bundle-B5gH_etT.js → bundle-HbkwcKgM.js} +10 -10
  493. package/cjs/chunks/bundle-HbkwcKgM.js.map +1 -0
  494. package/cjs/chunks/{bundle-9iE0HY96.js → bundle-JReI_QbA.js} +29 -13
  495. package/cjs/chunks/bundle-JReI_QbA.js.map +1 -0
  496. package/cjs/chunks/{bundle-aoIToceJ.js → bundle-JVylXDBB.js} +3 -3
  497. package/cjs/chunks/bundle-JVylXDBB.js.map +1 -0
  498. package/cjs/chunks/{bundle-7J3nX_hP.js → bundle-JaD2Ao-u.js} +3 -3
  499. package/cjs/chunks/bundle-JaD2Ao-u.js.map +1 -0
  500. package/cjs/chunks/bundle-JwSYMgZa.js +284 -0
  501. package/cjs/chunks/bundle-JwSYMgZa.js.map +1 -0
  502. package/cjs/chunks/{bundle-135pRm7i.js → bundle-K8ngPNTR.js} +1 -1
  503. package/cjs/chunks/bundle-K8ngPNTR.js.map +1 -0
  504. package/cjs/chunks/{bundle-2gCdAlxv.js → bundle-KUtVpakA.js} +2 -2
  505. package/cjs/chunks/{bundle-2gCdAlxv.js.map → bundle-KUtVpakA.js.map} +1 -1
  506. package/cjs/chunks/{bundle-zgoic8x9.js → bundle-L5q_NWiq.js} +1 -1
  507. package/cjs/chunks/bundle-L5q_NWiq.js.map +1 -0
  508. package/cjs/chunks/{bundle-GsUulypb.js → bundle-L9oXX97B.js} +1 -1
  509. package/cjs/chunks/bundle-L9oXX97B.js.map +1 -0
  510. package/cjs/chunks/bundle-LmzJA_0-.js +47 -0
  511. package/cjs/chunks/bundle-LmzJA_0-.js.map +1 -0
  512. package/cjs/chunks/bundle-Mq0jUvZk.js +32 -0
  513. package/cjs/chunks/bundle-Mq0jUvZk.js.map +1 -0
  514. package/cjs/chunks/{bundle-kSScygqj.js → bundle-OBj337Le.js} +1 -1
  515. package/cjs/chunks/bundle-OBj337Le.js.map +1 -0
  516. package/cjs/chunks/{bundle-7J-qpEzM.js → bundle-Og0K_sLb.js} +1 -1
  517. package/cjs/chunks/bundle-Og0K_sLb.js.map +1 -0
  518. package/cjs/chunks/{bundle-tad4_cNF.js → bundle-Oti8UWhr.js} +5 -48
  519. package/cjs/chunks/bundle-Oti8UWhr.js.map +1 -0
  520. package/cjs/chunks/{bundle-y8EiLlDT.js → bundle-QCo3MNRk.js} +2 -2
  521. package/cjs/chunks/bundle-QCo3MNRk.js.map +1 -0
  522. package/cjs/chunks/{bundle-mnbFX6XC.js → bundle-R3zWrV0l.js} +11 -41
  523. package/cjs/chunks/{bundle-mnbFX6XC.js.map → bundle-R3zWrV0l.js.map} +1 -1
  524. package/cjs/chunks/{bundle-hEYmMlZe.js → bundle-RC4m8KcZ.js} +5 -5
  525. package/{chunks/bundle-cHbX4Rxo.js.map → cjs/chunks/bundle-RC4m8KcZ.js.map} +1 -1
  526. package/cjs/chunks/{bundle-J_ooPKgS.js → bundle-RPY1irFl.js} +3 -3
  527. package/cjs/chunks/{bundle-J_ooPKgS.js.map → bundle-RPY1irFl.js.map} +1 -1
  528. package/cjs/chunks/{bundle-bXLZZTmP.js → bundle-RVs527mS.js} +14 -1
  529. package/cjs/chunks/bundle-RVs527mS.js.map +1 -0
  530. package/cjs/chunks/{bundle-JbxviE94.js → bundle-SggLEV_z.js} +1 -1
  531. package/cjs/chunks/bundle-SggLEV_z.js.map +1 -0
  532. package/cjs/chunks/{bundle-7QMU-JU1.js → bundle-UjIQqVUq.js} +2 -2
  533. package/cjs/chunks/bundle-UjIQqVUq.js.map +1 -0
  534. package/cjs/chunks/bundle-W1vXanLo.js +392 -0
  535. package/cjs/chunks/bundle-W1vXanLo.js.map +1 -0
  536. package/cjs/chunks/{bundle-qtXdbPNE.js → bundle-WLD9KKbn.js} +3 -3
  537. package/cjs/chunks/bundle-WLD9KKbn.js.map +1 -0
  538. package/cjs/chunks/bundle-WuJcM_O3.js +183 -0
  539. package/{chunks/bundle-ucXG1Py7.js.map → cjs/chunks/bundle-WuJcM_O3.js.map} +1 -1
  540. package/cjs/chunks/{bundle-GDX6wyym.js → bundle-XNa54U87.js} +95 -58
  541. package/cjs/chunks/bundle-XNa54U87.js.map +1 -0
  542. package/cjs/chunks/bundle-YyXY-feT.js +32 -0
  543. package/cjs/chunks/bundle-YyXY-feT.js.map +1 -0
  544. package/cjs/chunks/{bundle-Dz3ncvS3.js → bundle-Z-IXQ2N3.js} +4 -4
  545. package/{chunks/bundle-F3QT9IFj.js.map → cjs/chunks/bundle-Z-IXQ2N3.js.map} +1 -1
  546. package/cjs/chunks/{bundle-CUa6Hz7c.js → bundle-Z2aMvN9Y.js} +6 -6
  547. package/cjs/chunks/bundle-Z2aMvN9Y.js.map +1 -0
  548. package/cjs/chunks/{bundle-RSklGv-u.js → bundle-ZL4COF6I.js} +1 -1
  549. package/cjs/chunks/{bundle-RSklGv-u.js.map → bundle-ZL4COF6I.js.map} +1 -1
  550. package/cjs/chunks/{bundle-Dax6YIIr.js → bundle-ZqkDqz4X.js} +1 -1
  551. package/cjs/chunks/bundle-ZqkDqz4X.js.map +1 -0
  552. package/cjs/chunks/{bundle-n6iwTZAo.js → bundle-_QsPNZ6J.js} +1 -1
  553. package/cjs/chunks/bundle-_QsPNZ6J.js.map +1 -0
  554. package/cjs/chunks/bundle-_TBSquwd.js +60 -0
  555. package/cjs/chunks/bundle-_TBSquwd.js.map +1 -0
  556. package/cjs/chunks/{bundle-rgxTgHrK.js → bundle-_apVcG-_.js} +42 -30
  557. package/cjs/chunks/bundle-_apVcG-_.js.map +1 -0
  558. package/cjs/chunks/{bundle-XaLiuh0L.js → bundle-a1nOrOrG.js} +2 -28
  559. package/{chunks/bundle-Gkl7Q1IK.js.map → cjs/chunks/bundle-a1nOrOrG.js.map} +1 -1
  560. package/cjs/chunks/{bundle-v02q7K8T.js → bundle-aAOHT0Qv.js} +3 -3
  561. package/cjs/chunks/bundle-aAOHT0Qv.js.map +1 -0
  562. package/cjs/chunks/{bundle-hXzxY0NJ.js → bundle-dLwo2XPj.js} +1 -1
  563. package/cjs/chunks/bundle-dLwo2XPj.js.map +1 -0
  564. package/cjs/chunks/{bundle--MJd6Gw1.js → bundle-duGLRUrw.js} +1 -1
  565. package/cjs/chunks/bundle-duGLRUrw.js.map +1 -0
  566. package/cjs/chunks/{bundle-p6kWiWDv.js → bundle-fnv2bNo-.js} +14 -7
  567. package/cjs/chunks/{bundle-p6kWiWDv.js.map → bundle-fnv2bNo-.js.map} +1 -1
  568. package/cjs/chunks/bundle-fvz26Ije.js +31 -0
  569. package/cjs/chunks/bundle-fvz26Ije.js.map +1 -0
  570. package/cjs/chunks/bundle-g2rKMwnQ.js +123 -0
  571. package/cjs/chunks/bundle-g2rKMwnQ.js.map +1 -0
  572. package/cjs/chunks/bundle-guyZxs5x.js +91 -0
  573. package/cjs/chunks/bundle-guyZxs5x.js.map +1 -0
  574. package/cjs/chunks/{bundle-3K153hLM.js → bundle-iRjY_BU4.js} +4 -40
  575. package/cjs/chunks/bundle-iRjY_BU4.js.map +1 -0
  576. package/cjs/chunks/{bundle-VogwjxgI.js → bundle-iamCM7iG.js} +3 -3
  577. package/cjs/chunks/{bundle-VogwjxgI.js.map → bundle-iamCM7iG.js.map} +1 -1
  578. package/cjs/chunks/{bundle-vphYV1gz.js → bundle-lXjDRYAu.js} +1 -1
  579. package/cjs/chunks/bundle-lXjDRYAu.js.map +1 -0
  580. package/cjs/chunks/{bundle-AbGazomk.js → bundle-le086Dbq.js} +17 -35
  581. package/cjs/chunks/bundle-le086Dbq.js.map +1 -0
  582. package/cjs/chunks/{bundle-Oc2T5_VP.js → bundle-lnLwvZ7H.js} +6 -6
  583. package/cjs/chunks/bundle-lnLwvZ7H.js.map +1 -0
  584. package/cjs/chunks/{bundle-LRCFL23q.js → bundle-nQDclaWr.js} +1 -3
  585. package/cjs/chunks/bundle-nQDclaWr.js.map +1 -0
  586. package/cjs/chunks/bundle-nTv23k8q.js +64 -0
  587. package/cjs/chunks/bundle-nTv23k8q.js.map +1 -0
  588. package/cjs/chunks/bundle-oTDe-k6e.js +255 -0
  589. package/cjs/chunks/bundle-oTDe-k6e.js.map +1 -0
  590. package/cjs/chunks/bundle-p7twnCCD.js +37 -0
  591. package/cjs/chunks/bundle-p7twnCCD.js.map +1 -0
  592. package/cjs/chunks/bundle-plE_NeWt.js +204 -0
  593. package/cjs/chunks/bundle-plE_NeWt.js.map +1 -0
  594. package/cjs/chunks/{bundle-JOBLCwk9.js → bundle-rPjvPmtP.js} +1 -1
  595. package/cjs/chunks/bundle-rPjvPmtP.js.map +1 -0
  596. package/cjs/chunks/{bundle-7VJjqIPJ.js → bundle-rUpy0DGt.js} +4 -5
  597. package/cjs/chunks/bundle-rUpy0DGt.js.map +1 -0
  598. package/cjs/chunks/{bundle-TFo3Eb8z.js → bundle-rmOQxjwa.js} +3 -3
  599. package/cjs/chunks/bundle-rmOQxjwa.js.map +1 -0
  600. package/cjs/chunks/{bundle-INJtS58R.js → bundle-sW6CpN9W.js} +1 -1
  601. package/cjs/chunks/bundle-sW6CpN9W.js.map +1 -0
  602. package/cjs/chunks/bundle-v2kRYowu.js +14 -0
  603. package/cjs/chunks/bundle-v2kRYowu.js.map +1 -0
  604. package/cjs/chunks/bundle-vFjv8pGX.js +202 -0
  605. package/cjs/chunks/bundle-vFjv8pGX.js.map +1 -0
  606. package/cjs/chunks/bundle-w4VdLYPs.js +13 -0
  607. package/cjs/chunks/bundle-w4VdLYPs.js.map +1 -0
  608. package/cjs/chunks/bundle-wQUBcS0L.js +36 -0
  609. package/cjs/chunks/bundle-wQUBcS0L.js.map +1 -0
  610. package/cjs/chunks/{bundle--d5w7FVF.js → bundle-wU4qxzey.js} +1 -1
  611. package/cjs/chunks/bundle-wU4qxzey.js.map +1 -0
  612. package/cjs/chunks/{bundle-zrsbDQGp.js → bundle-yf5herNq.js} +1 -5
  613. package/cjs/chunks/bundle-yf5herNq.js.map +1 -0
  614. package/cjs/chunks/{bundle-1dUHK2qC.js → bundle-z2YN8uJe.js} +1 -1
  615. package/cjs/chunks/bundle-z2YN8uJe.js.map +1 -0
  616. package/cjs/chunks/bundle-ziLsN5lV.js +67 -0
  617. package/cjs/chunks/bundle-ziLsN5lV.js.map +1 -0
  618. package/cjs/hooks/useModal.js +9 -9
  619. package/cjs/index.js +136 -126
  620. package/cjs/index.js.map +1 -1
  621. package/cjs/pubSub/topics.js +1 -1
  622. package/cjs/sendbirdSelectors.js +2 -2
  623. package/cjs/ui/Accordion.js +3 -3
  624. package/cjs/ui/AccordionGroup.js +2 -2
  625. package/cjs/ui/AdminMessage.js +3 -3
  626. package/cjs/ui/Avatar.js +4 -5
  627. package/cjs/ui/Avatar.js.map +1 -1
  628. package/cjs/ui/Badge.js +5 -5
  629. package/cjs/ui/BottomSheet.js +9 -9
  630. package/cjs/ui/Button.js +3 -3
  631. package/cjs/ui/ChannelAvatar.js +6 -7
  632. package/cjs/ui/ChannelAvatar.js.map +1 -1
  633. package/cjs/ui/ConnectionStatus.js +6 -6
  634. package/cjs/ui/ContextMenu.js +6 -6
  635. package/cjs/ui/DateSeparator.js +4 -4
  636. package/cjs/ui/EmojiReactions.js +31 -22
  637. package/cjs/ui/EmojiReactions.js.map +1 -1
  638. package/cjs/ui/FileMessageItemBody.js +8 -8
  639. package/cjs/ui/FileViewer.js +15 -16
  640. package/cjs/ui/FileViewer.js.map +1 -1
  641. package/cjs/ui/Icon.js +2 -2
  642. package/cjs/ui/IconButton.js +1 -1
  643. package/cjs/ui/ImageRenderer.js +96 -69
  644. package/cjs/ui/ImageRenderer.js.map +1 -1
  645. package/cjs/ui/Input.js +3 -3
  646. package/cjs/ui/Label.js +3 -3
  647. package/cjs/ui/LinkLabel.js +3 -3
  648. package/cjs/ui/Loader.js +2 -2
  649. package/cjs/ui/MentionLabel.js +13 -13
  650. package/cjs/ui/MentionUserLabel.js +1 -1
  651. package/cjs/ui/MessageContent.js +41 -46
  652. package/cjs/ui/MessageContent.js.map +1 -1
  653. package/cjs/ui/MessageInput/hooks/usePaste.js +5 -5
  654. package/cjs/ui/MessageInput.js +19 -19
  655. package/cjs/ui/MessageItemMenu.js +12 -29
  656. package/cjs/ui/MessageItemMenu.js.map +1 -1
  657. package/cjs/ui/MessageItemReactionMenu.js +15 -12
  658. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  659. package/cjs/ui/MessageSearchFileItem.js +14 -15
  660. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  661. package/cjs/ui/MessageSearchItem.js +11 -12
  662. package/cjs/ui/MessageSearchItem.js.map +1 -1
  663. package/cjs/ui/MessageStatus.js +12 -12
  664. package/cjs/ui/MobileFeedbackMenu.js +9 -9
  665. package/cjs/ui/Modal.js +8 -8
  666. package/cjs/ui/MutedAvatarOverlay.js +2 -2
  667. package/cjs/ui/OGMessageItemBody.js +16 -16
  668. package/cjs/ui/OpenChannelAdminMessage.js +3 -3
  669. package/cjs/ui/OpenChannelAvatar.js +8 -9
  670. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  671. package/cjs/ui/OpenchannelConversationHeader.js +8 -9
  672. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  673. package/cjs/ui/OpenchannelFileMessage.js +18 -18
  674. package/cjs/ui/OpenchannelOGMessage.js +20 -20
  675. package/cjs/ui/OpenchannelThumbnailMessage.js +17 -17
  676. package/cjs/ui/OpenchannelUserMessage.js +18 -18
  677. package/cjs/ui/PlaceHolder.js +6 -6
  678. package/cjs/ui/PlaybackTime.js +3 -3
  679. package/cjs/ui/QuoteMessage.js +9 -9
  680. package/cjs/ui/QuoteMessageInput.js +9 -9
  681. package/cjs/ui/ReactionBadge.js +3 -3
  682. package/cjs/ui/ReactionButton.js +4 -4
  683. package/cjs/ui/SortByRow.js +2 -2
  684. package/cjs/ui/TextButton.js +2 -2
  685. package/cjs/ui/TextMessageItemBody.js +16 -16
  686. package/cjs/ui/ThreadReplies.js +9 -10
  687. package/cjs/ui/ThreadReplies.js.map +1 -1
  688. package/cjs/ui/ThumbnailMessageItemBody.js +11 -8
  689. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  690. package/cjs/ui/Toggle.js +1 -1
  691. package/cjs/ui/Tooltip.js +3 -3
  692. package/cjs/ui/TooltipWrapper.js +1 -1
  693. package/cjs/ui/TypingIndicatorBubble.js +4 -5
  694. package/cjs/ui/TypingIndicatorBubble.js.map +1 -1
  695. package/cjs/ui/UnknownMessageItemBody.js +7 -7
  696. package/cjs/ui/UserListItem.js +13 -13
  697. package/cjs/ui/UserProfile.js +10 -11
  698. package/cjs/ui/UserProfile.js.map +1 -1
  699. package/cjs/ui/VoiceMessageInput.js +9 -9
  700. package/cjs/ui/VoiceMessageItemBody.js +10 -10
  701. package/cjs/ui/Word.js +13 -13
  702. package/cjs/useSendbirdStateContext.js +1 -1
  703. package/cjs/utils/message/isVoiceMessage.js +3 -3
  704. package/cjs/withSendbird.js +1 -1
  705. package/dist/index.css +2973 -2899
  706. package/dist/index.css.map +1 -1
  707. package/hooks/useModal.js +10 -10
  708. package/index.js +136 -126
  709. package/index.js.map +1 -1
  710. package/package.json +11 -11
  711. package/pubSub/topics.js +1 -1
  712. package/sendbirdSelectors.js +2 -2
  713. package/types/hooks/VoicePlayer/dux/actionTypes.d.ts +2 -0
  714. package/types/hooks/VoicePlayer/dux/reducer.d.ts +2 -0
  715. package/types/hooks/useOnScrollReachedEndDetector/index.d.ts +10 -5
  716. package/types/hooks/useThrottleCallback.d.ts +11 -1
  717. package/types/lib/UserProfileContext.d.ts +1 -1
  718. package/types/lib/emojiManager.d.ts +29 -0
  719. package/types/lib/pubSub/topics.d.ts +5 -5
  720. package/types/lib/selectors.d.ts +2 -2
  721. package/types/lib/types.d.ts +7 -1
  722. package/types/modules/App/index.d.ts +5 -0
  723. package/types/modules/App/types.d.ts +1 -0
  724. package/types/modules/Channel/components/ChannelHeader/index.d.ts +2 -3
  725. package/types/modules/Channel/components/ChannelUI/index.d.ts +5 -4
  726. package/types/modules/Channel/components/FileViewer/index.d.ts +3 -16
  727. package/types/modules/Channel/components/FrozenNotification/index.d.ts +1 -6
  728. package/types/modules/Channel/components/Message/index.d.ts +2 -14
  729. package/types/modules/Channel/components/MessageInputWrapper/index.d.ts +11 -0
  730. package/types/modules/Channel/components/MessageList/index.d.ts +2 -2
  731. package/types/modules/Channel/components/RemoveMessageModal/index.d.ts +4 -0
  732. package/types/modules/Channel/components/SuggestedMentionList/index.d.ts +3 -18
  733. package/types/modules/Channel/components/TypingIndicator.d.ts +1 -7
  734. package/types/modules/Channel/components/UnreadCount/index.d.ts +1 -11
  735. package/types/modules/Channel/context/ChannelProvider.d.ts +9 -9
  736. package/types/modules/Channel/context/hooks/useDeleteMessageCallback.d.ts +2 -2
  737. package/types/modules/Channel/context/hooks/useFileInfoListWithUploaded.d.ts +3 -0
  738. package/types/modules/Channel/context/hooks/useHandleReconnectForChannelList.d.ts +23 -0
  739. package/types/modules/Channel/context/hooks/useSendVoiceMessageCallback.d.ts +3 -3
  740. package/types/modules/Channel/context/utils.d.ts +0 -1
  741. package/types/modules/Channel/index.d.ts +1 -1
  742. package/types/modules/ChannelList/components/AddChannel/index.d.ts +1 -1
  743. package/types/modules/ChannelList/components/ChannelListHeader/index.d.ts +1 -10
  744. package/types/modules/ChannelList/components/ChannelListUI/index.d.ts +1 -3
  745. package/types/modules/ChannelList/components/ChannelPreview/utils.d.ts +1 -10
  746. package/types/modules/ChannelList/components/LeaveChannel/index.d.ts +1 -8
  747. package/types/modules/ChannelList/context/ChannelListProvider.d.ts +9 -8
  748. package/types/modules/ChannelList/dux/actionTypes.d.ts +5 -0
  749. package/types/modules/ChannelList/utils.d.ts +6 -1
  750. package/types/modules/ChannelSettings/components/ModerationPanel/InviteUsersModal.d.ts +4 -3
  751. package/types/modules/CreateChannel/context/CreateChannelProvider.d.ts +45 -7
  752. package/types/modules/GroupChannel/components/FileViewer/FileViewerView.d.ts +22 -0
  753. package/types/modules/GroupChannel/components/FileViewer/index.d.ts +8 -0
  754. package/types/modules/GroupChannel/components/FrozenNotification/index.d.ts +7 -0
  755. package/types/modules/GroupChannel/components/GroupChannelHeader/GroupChannelHeaderView.d.ts +13 -0
  756. package/types/modules/GroupChannel/components/GroupChannelHeader/index.d.ts +6 -0
  757. package/types/modules/GroupChannel/components/GroupChannelUI/GroupChannelUIView.d.ts +10 -0
  758. package/types/modules/GroupChannel/components/GroupChannelUI/index.d.ts +24 -0
  759. package/types/modules/GroupChannel/components/Message/MessageView.d.ts +64 -0
  760. package/types/modules/GroupChannel/components/Message/index.d.ts +4 -0
  761. package/types/modules/GroupChannel/components/MessageInputWrapper/MessageInputWrapperView.d.ts +30 -0
  762. package/types/modules/{Channel/components/MessageInput → GroupChannel/components/MessageInputWrapper}/index.d.ts +4 -6
  763. package/types/modules/GroupChannel/components/MessageInputWrapper/useHandleUploadFiles.d.ts +18 -0
  764. package/types/modules/GroupChannel/components/MessageList/hooks/useScrollBehavior.d.ts +1 -0
  765. package/types/modules/GroupChannel/components/MessageList/index.d.ts +15 -0
  766. package/types/modules/GroupChannel/components/RemoveMessageModal/RemoveMessageModalView.d.ts +13 -0
  767. package/types/modules/GroupChannel/components/RemoveMessageModal/index.d.ts +4 -0
  768. package/types/modules/GroupChannel/components/SuggestedMentionList/SuggestedMentionListView.d.ts +22 -0
  769. package/types/modules/GroupChannel/components/SuggestedMentionList/index.d.ts +5 -0
  770. package/types/modules/GroupChannel/components/TypingIndicator.d.ts +11 -0
  771. package/types/modules/GroupChannel/components/UnreadCount/index.d.ts +12 -0
  772. package/types/modules/GroupChannel/context/GroupChannelProvider.d.ts +74 -0
  773. package/types/modules/GroupChannel/context/const.d.ts +7 -0
  774. package/types/modules/GroupChannel/context/hooks/useMessageActions.d.ts +23 -0
  775. package/types/modules/GroupChannel/context/hooks/useMessageListScroll.d.ts +26 -0
  776. package/types/modules/GroupChannel/context/hooks/usePreventDuplicateRequest.d.ts +9 -0
  777. package/types/modules/GroupChannel/context/hooks/useToggleReactionCallback.d.ts +4 -0
  778. package/types/modules/GroupChannel/context/utils.d.ts +8 -0
  779. package/types/modules/GroupChannel/index.d.ts +7 -0
  780. package/types/modules/GroupChannelList/components/AddGroupChannel/AddGroupChannelView.d.ts +11 -0
  781. package/types/modules/GroupChannelList/components/AddGroupChannel/index.d.ts +3 -0
  782. package/types/modules/GroupChannelList/components/GroupChannelListHeader/index.d.ts +10 -0
  783. package/types/modules/GroupChannelList/components/GroupChannelListItem/GroupChannelListItemView.d.ts +16 -0
  784. package/types/modules/GroupChannelList/components/GroupChannelListItem/index.d.ts +16 -0
  785. package/types/modules/GroupChannelList/components/GroupChannelListItem/utils.d.ts +10 -0
  786. package/types/modules/GroupChannelList/components/GroupChannelListUI/GroupChannelListUIView.d.ts +21 -0
  787. package/types/modules/GroupChannelList/components/GroupChannelListUI/index.d.ts +16 -0
  788. package/types/modules/GroupChannelList/components/GroupChannelPreviewAction.d.ts +9 -0
  789. package/types/modules/GroupChannelList/components/LeaveGroupChannel/index.d.ts +9 -0
  790. package/types/modules/GroupChannelList/context/GroupChannelListProvider.d.ts +40 -0
  791. package/types/modules/GroupChannelList/index.d.ts +7 -0
  792. package/types/modules/OpenChannel/context/utils.d.ts +1 -3
  793. package/types/modules/Thread/components/SuggestedMentionList.d.ts +5 -0
  794. package/types/modules/Thread/components/ThreadList/index.d.ts +1 -1
  795. package/types/modules/Thread/context/ThreadProvider.d.ts +2 -2
  796. package/types/modules/Thread/context/hooks/useDeleteMessageCallback.d.ts +1 -1
  797. package/types/modules/Thread/context/hooks/useThreadFetchers.d.ts +21 -0
  798. package/types/modules/Thread/context/utils.d.ts +0 -2
  799. package/types/modules/Thread/index.d.ts +1 -1
  800. package/types/types.d.ts +11 -3
  801. package/types/ui/FileViewer/index.d.ts +2 -2
  802. package/types/ui/ImageRenderer/index.d.ts +1 -3
  803. package/types/ui/MessageContent/index.d.ts +1 -1
  804. package/types/ui/MessageItemMenu/index.d.ts +2 -1
  805. package/types/ui/MobileMenu/types.d.ts +1 -1
  806. package/types/ui/MultipleFilesMessageItemBody/index.d.ts +2 -2
  807. package/types/utils/index.d.ts +9 -2
  808. package/types/utils/messages.d.ts +17 -0
  809. package/types/utils/typeHelpers/partialRequired.d.ts +1 -0
  810. package/ui/Accordion.js +3 -3
  811. package/ui/AccordionGroup.js +2 -2
  812. package/ui/AdminMessage.js +3 -3
  813. package/ui/Avatar.js +4 -5
  814. package/ui/Avatar.js.map +1 -1
  815. package/ui/Badge.js +5 -5
  816. package/ui/BottomSheet.js +9 -9
  817. package/ui/Button.js +3 -3
  818. package/ui/ChannelAvatar.js +6 -7
  819. package/ui/ChannelAvatar.js.map +1 -1
  820. package/ui/ConnectionStatus.js +6 -6
  821. package/ui/ContextMenu.js +6 -6
  822. package/ui/DateSeparator.js +4 -4
  823. package/ui/EmojiReactions.js +31 -22
  824. package/ui/EmojiReactions.js.map +1 -1
  825. package/ui/FileMessageItemBody.js +8 -8
  826. package/ui/FileViewer.js +15 -16
  827. package/ui/FileViewer.js.map +1 -1
  828. package/ui/Icon.js +2 -2
  829. package/ui/IconButton.js +1 -1
  830. package/ui/ImageRenderer.js +97 -70
  831. package/ui/ImageRenderer.js.map +1 -1
  832. package/ui/Input.js +3 -3
  833. package/ui/Label.js +3 -3
  834. package/ui/LinkLabel.js +3 -3
  835. package/ui/Loader.js +2 -2
  836. package/ui/MentionLabel.js +13 -13
  837. package/ui/MentionUserLabel.js +1 -1
  838. package/ui/MessageContent.js +39 -44
  839. package/ui/MessageContent.js.map +1 -1
  840. package/ui/MessageInput/hooks/usePaste.js +5 -5
  841. package/ui/MessageInput.js +19 -19
  842. package/ui/MessageItemMenu.js +12 -29
  843. package/ui/MessageItemMenu.js.map +1 -1
  844. package/ui/MessageItemReactionMenu.js +15 -12
  845. package/ui/MessageItemReactionMenu.js.map +1 -1
  846. package/ui/MessageSearchFileItem.js +14 -15
  847. package/ui/MessageSearchFileItem.js.map +1 -1
  848. package/ui/MessageSearchItem.js +11 -12
  849. package/ui/MessageSearchItem.js.map +1 -1
  850. package/ui/MessageStatus.js +12 -12
  851. package/ui/MobileFeedbackMenu.js +9 -9
  852. package/ui/Modal.js +8 -8
  853. package/ui/MutedAvatarOverlay.js +2 -2
  854. package/ui/OGMessageItemBody.js +16 -16
  855. package/ui/OpenChannelAdminMessage.js +3 -3
  856. package/ui/OpenChannelAvatar.js +8 -9
  857. package/ui/OpenChannelAvatar.js.map +1 -1
  858. package/ui/OpenchannelConversationHeader.js +8 -9
  859. package/ui/OpenchannelConversationHeader.js.map +1 -1
  860. package/ui/OpenchannelFileMessage.js +18 -18
  861. package/ui/OpenchannelOGMessage.js +20 -20
  862. package/ui/OpenchannelThumbnailMessage.js +17 -17
  863. package/ui/OpenchannelUserMessage.js +18 -18
  864. package/ui/PlaceHolder.js +6 -6
  865. package/ui/PlaybackTime.js +3 -3
  866. package/ui/QuoteMessage.js +9 -9
  867. package/ui/QuoteMessageInput.js +9 -9
  868. package/ui/ReactionBadge.js +3 -3
  869. package/ui/ReactionButton.js +4 -4
  870. package/ui/SortByRow.js +2 -2
  871. package/ui/TextButton.js +2 -2
  872. package/ui/TextMessageItemBody.js +16 -16
  873. package/ui/ThreadReplies.js +9 -10
  874. package/ui/ThreadReplies.js.map +1 -1
  875. package/ui/ThumbnailMessageItemBody.js +11 -8
  876. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  877. package/ui/Toggle.js +1 -1
  878. package/ui/Tooltip.js +3 -3
  879. package/ui/TooltipWrapper.js +1 -1
  880. package/ui/TypingIndicatorBubble.js +4 -5
  881. package/ui/TypingIndicatorBubble.js.map +1 -1
  882. package/ui/UnknownMessageItemBody.js +7 -7
  883. package/ui/UserListItem.js +13 -13
  884. package/ui/UserProfile.js +10 -11
  885. package/ui/UserProfile.js.map +1 -1
  886. package/ui/VoiceMessageInput.js +9 -9
  887. package/ui/VoiceMessageItemBody.js +10 -10
  888. package/ui/Word.js +13 -13
  889. package/useSendbirdStateContext.js +1 -1
  890. package/utils/message/isVoiceMessage.js +3 -3
  891. package/withSendbird.js +1 -1
  892. package/chunks/bundle-1WAo3loP.js.map +0 -1
  893. package/chunks/bundle-GbC4a59M.js.map +0 -1
  894. package/chunks/bundle-H2Il__gY.js.map +0 -1
  895. package/chunks/bundle-HkbweK1K.js.map +0 -1
  896. package/chunks/bundle-J79McRkg.js +0 -1551
  897. package/chunks/bundle-J79McRkg.js.map +0 -1
  898. package/chunks/bundle-JbVZ1Tsw.js.map +0 -1
  899. package/chunks/bundle-Jp5g4YZl.js.map +0 -1
  900. package/chunks/bundle-KSjFhl4l.js.map +0 -1
  901. package/chunks/bundle-KmauOTrg.js.map +0 -1
  902. package/chunks/bundle-Kv4GXRTs.js.map +0 -1
  903. package/chunks/bundle-Lt8mReNU.js.map +0 -1
  904. package/chunks/bundle-MyYphU00.js.map +0 -1
  905. package/chunks/bundle-OZZH5fXZ.js.map +0 -1
  906. package/chunks/bundle-VPanFdbf.js.map +0 -1
  907. package/chunks/bundle-W8t7rR3H.js.map +0 -1
  908. package/chunks/bundle-WpHDilD_.js.map +0 -1
  909. package/chunks/bundle-X3h4GiLa.js.map +0 -1
  910. package/chunks/bundle-ZKM9Qk_j.js.map +0 -1
  911. package/chunks/bundle-ZcE3JzW_.js.map +0 -1
  912. package/chunks/bundle-_-2NCsYr.js.map +0 -1
  913. package/chunks/bundle-aVVX2zHR.js.map +0 -1
  914. package/chunks/bundle-aeQZ5WsP.js.map +0 -1
  915. package/chunks/bundle-cXqs96Pt.js.map +0 -1
  916. package/chunks/bundle-d6R6m9-9.js.map +0 -1
  917. package/chunks/bundle-dWJnfDPH.js.map +0 -1
  918. package/chunks/bundle-f9mkey82.js.map +0 -1
  919. package/chunks/bundle-gEwUSFTG.js +0 -134
  920. package/chunks/bundle-gEwUSFTG.js.map +0 -1
  921. package/chunks/bundle-iYCB6XN2.js.map +0 -1
  922. package/chunks/bundle-ku6CEjGk.js.map +0 -1
  923. package/chunks/bundle-lmXvuxOb.js.map +0 -1
  924. package/chunks/bundle-mTQPBbmZ.js.map +0 -1
  925. package/chunks/bundle-niN5G0Bo.js.map +0 -1
  926. package/chunks/bundle-pWIkt9Ng.js.map +0 -1
  927. package/chunks/bundle-tca5p7Pl.js.map +0 -1
  928. package/chunks/bundle-ucXG1Py7.js +0 -174
  929. package/chunks/bundle-xgiw36M5.js.map +0 -1
  930. package/chunks/bundle-xsV7pD8p.js.map +0 -1
  931. package/chunks/bundle-y_LgB6DS.js.map +0 -1
  932. package/chunks/bundle-yur9nm4N.js.map +0 -1
  933. package/cjs/chunks/bundle--MJd6Gw1.js.map +0 -1
  934. package/cjs/chunks/bundle--d5w7FVF.js.map +0 -1
  935. package/cjs/chunks/bundle-135pRm7i.js.map +0 -1
  936. package/cjs/chunks/bundle-1dUHK2qC.js.map +0 -1
  937. package/cjs/chunks/bundle-5Nd6zn0d.js.map +0 -1
  938. package/cjs/chunks/bundle-68NdNRjR.js.map +0 -1
  939. package/cjs/chunks/bundle-7AS0Rcch.js.map +0 -1
  940. package/cjs/chunks/bundle-7J-qpEzM.js.map +0 -1
  941. package/cjs/chunks/bundle-7J3nX_hP.js.map +0 -1
  942. package/cjs/chunks/bundle-7QMU-JU1.js.map +0 -1
  943. package/cjs/chunks/bundle-7VJjqIPJ.js.map +0 -1
  944. package/cjs/chunks/bundle-9iE0HY96.js.map +0 -1
  945. package/cjs/chunks/bundle-AbGazomk.js.map +0 -1
  946. package/cjs/chunks/bundle-B5gH_etT.js.map +0 -1
  947. package/cjs/chunks/bundle-BH9aeaqG.js.map +0 -1
  948. package/cjs/chunks/bundle-CUa6Hz7c.js.map +0 -1
  949. package/cjs/chunks/bundle-Dax6YIIr.js.map +0 -1
  950. package/cjs/chunks/bundle-Dz3ncvS3.js.map +0 -1
  951. package/cjs/chunks/bundle-GDX6wyym.js.map +0 -1
  952. package/cjs/chunks/bundle-GsUulypb.js.map +0 -1
  953. package/cjs/chunks/bundle-INJtS58R.js.map +0 -1
  954. package/cjs/chunks/bundle-JOBLCwk9.js.map +0 -1
  955. package/cjs/chunks/bundle-JVe1J2FX.js +0 -179
  956. package/cjs/chunks/bundle-JbxviE94.js.map +0 -1
  957. package/cjs/chunks/bundle-LRCFL23q.js.map +0 -1
  958. package/cjs/chunks/bundle-OVfymd1y.js.map +0 -1
  959. package/cjs/chunks/bundle-Oc2T5_VP.js.map +0 -1
  960. package/cjs/chunks/bundle-TFo3Eb8z.js.map +0 -1
  961. package/cjs/chunks/bundle-TxdziCwH.js.map +0 -1
  962. package/cjs/chunks/bundle-UaSM_xZY.js.map +0 -1
  963. package/cjs/chunks/bundle-Ue5GkT2H.js +0 -1555
  964. package/cjs/chunks/bundle-Ue5GkT2H.js.map +0 -1
  965. package/cjs/chunks/bundle-VB_a0u7i.js.map +0 -1
  966. package/cjs/chunks/bundle-WzrocC57.js.map +0 -1
  967. package/cjs/chunks/bundle-aoIToceJ.js.map +0 -1
  968. package/cjs/chunks/bundle-bXLZZTmP.js.map +0 -1
  969. package/cjs/chunks/bundle-dny_TiUT.js.map +0 -1
  970. package/cjs/chunks/bundle-hEYmMlZe.js.map +0 -1
  971. package/cjs/chunks/bundle-hXzxY0NJ.js.map +0 -1
  972. package/cjs/chunks/bundle-kSScygqj.js.map +0 -1
  973. package/cjs/chunks/bundle-n6iwTZAo.js.map +0 -1
  974. package/cjs/chunks/bundle-ptZslG_m.js.map +0 -1
  975. package/cjs/chunks/bundle-qtXdbPNE.js.map +0 -1
  976. package/cjs/chunks/bundle-r8Z3GYqh.js.map +0 -1
  977. package/cjs/chunks/bundle-rgxTgHrK.js.map +0 -1
  978. package/cjs/chunks/bundle-tad4_cNF.js.map +0 -1
  979. package/cjs/chunks/bundle-v02q7K8T.js.map +0 -1
  980. package/cjs/chunks/bundle-vphYV1gz.js.map +0 -1
  981. package/cjs/chunks/bundle-y8EiLlDT.js.map +0 -1
  982. package/cjs/chunks/bundle-y_gkwZqM.js +0 -136
  983. package/cjs/chunks/bundle-y_gkwZqM.js.map +0 -1
  984. package/cjs/chunks/bundle-zgoic8x9.js.map +0 -1
  985. package/cjs/chunks/bundle-zrsbDQGp.js.map +0 -1
  986. package/types/modules/Channel/components/RemoveMessageModal.d.ts +0 -9
  987. package/types/modules/Channel/context/compareMessagesForGrouping.d.ts +0 -10
  988. package/types/modules/Channel/context/hooks/useStatefulFileInfoList.d.ts +0 -3
  989. package/types/modules/Thread/context/hooks/useGetNextThreadsCallback.d.ts +0 -17
  990. package/types/modules/Thread/context/hooks/useGetPrevThreadsCallback.d.ts +0 -17
  991. package/types/modules/Thread/context/hooks/useGetThreadList.d.ts +0 -14
  992. package/types/utils/createStatefulFileInfoList.d.ts +0 -11
  993. package/types/utils/omitObjectProperty.d.ts +0 -1
  994. package/types/modules/{Channel/components/ChannelHeader → GroupChannel/components/GroupChannelHeader}/utils.d.ts +0 -0
  995. package/types/modules/{Channel/components/MessageInput → GroupChannel/components/MessageInputWrapper}/VoiceMessageInputWrapper.d.ts +1 -1
  996. /package/types/modules/{Channel → GroupChannel}/components/MessageList/getMessagePartsInfo.d.ts +0 -0
  997. /package/types/modules/{Channel → GroupChannel}/components/SuggestedMentionList/SuggestedUserMentionItem.d.ts +0 -0
  998. /package/types/modules/{Channel → GroupChannel}/components/SuggestedMentionList/utils.d.ts +0 -0
  999. /package/types/modules/{Channel → GroupChannel}/components/SuggestedReplies/index.d.ts +0 -0
@@ -1,1551 +0,0 @@
1
- import React__default, { useEffect, useState, useCallback, useRef, useReducer, useMemo } from 'react';
2
- import { U as UserProfileProvider } from './bundle-cXqs96Pt.js';
3
- import { useSendbirdStateContext } from '../useSendbirdStateContext.js';
4
- import { P as PREV_RESULT_SIZE, N as NEXT_RESULT_SIZE, T as ThreadReplySelectType } from './bundle-f9mkey82.js';
5
- import { m as mergeAndSortMessages, p as passUnsuccessfullMessages, s as scrollIntoLast, a as scrollToRenderedMessage, g as getAllEmojisMapFromEmojiContainer, f as getNicknamesMapFromMembers } from './bundle-xsV7pD8p.js';
6
- import { _ as __assign, a as __spreadArray } from './bundle-GKopZh-T.js';
7
- import { f as format } from './bundle-WDOQg3ty.js';
8
- import { SendingStatus, ReplyType, MessageMetaArray } from '@sendbird/chat/message';
9
- import { K, S } from './bundle-kfNTRju0.js';
10
- import { R as RESET_MESSAGES, F as FETCH_INITIAL_MESSAGES_START, a as FETCH_INITIAL_MESSAGES_SUCCESS, c as FETCH_PREV_MESSAGES_SUCCESS, d as FETCH_NEXT_MESSAGES_SUCCESS, b as FETCH_INITIAL_MESSAGES_FAILURE, e as FETCH_PREV_MESSAGES_FAILURE, f as FETCH_NEXT_MESSAGES_FAILURE, S as SEND_MESSAGE_START, g as SEND_MESSAGE_SUCCESS, h as SEND_MESSAGE_FAILURE, i as SET_CURRENT_CHANNEL, j as SET_CHANNEL_INVALID, O as ON_MESSAGE_RECEIVED, k as ON_MESSAGE_UPDATED, l as ON_MESSAGE_THREAD_INFO_UPDATED, m as RESEND_MESSAGE_START, n as MARK_AS_READ, o as ON_MESSAGE_DELETED, p as ON_MESSAGE_DELETED_BY_REQ_ID, q as SET_EMOJI_CONTAINER, r as ON_REACTION_UPDATED, M as MESSAGE_LIST_PARAMS_CHANGED, s as ON_FILE_INFO_UPLOADED, t as ON_TYPING_STATUS_UPDATED, u as channelActions } from './bundle-pWIkt9Ng.js';
11
- import { c as compareIds } from './bundle-yur9nm4N.js';
12
- import { R as isSendableMessage, W as filterMessageListParams, b as isMultipleFilesMessage } from './bundle-uk2Y0AQu.js';
13
- import { GroupChannelHandler } from '@sendbird/chat/groupChannel';
14
- import { u as uuidv4 } from './bundle-aeQZ5WsP.js';
15
- import useInitialMessagesFetch from '../Channel/hooks/useInitialMessagesFetch.js';
16
- import { p as pubSubTopics, P as PublishingModuleType, b as PUBSUB_TOPICS, s as shouldPubSubPublishToChannel } from './bundle-ku6CEjGk.js';
17
- import { a as VOICE_MESSAGE_FILE_NAME, b as VOICE_MESSAGE_MIME_TYPE, M as META_ARRAY_VOICE_DURATION_KEY, i as META_ARRAY_MESSAGE_TYPE_KEY, j as META_ARRAY_MESSAGE_TYPE_VALUE__VOICE } from './bundle-ZKM9Qk_j.js';
18
- import { g as getCaseResolvedThreadReplySelectType } from './bundle-zpSxKsxM.js';
19
- import { u as useSendMultipleFilesMessage } from './bundle-cHbX4Rxo.js';
20
-
21
- /**
22
- * This function helps consider the every condition
23
- * related to enabling emoji reaction feature.
24
- */
25
- function getIsReactionEnabled(_a) {
26
- var _b = _a.isBroadcast, isBroadcast = _b === void 0 ? false : _b, _c = _a.isSuper, isSuper = _c === void 0 ? false : _c, _d = _a.globalLevel, globalLevel = _d === void 0 ? true : _d, moduleLevel = _a.moduleLevel;
27
- return !(isBroadcast || isSuper) && (moduleLevel !== null && moduleLevel !== void 0 ? moduleLevel : globalLevel);
28
- }
29
-
30
- var initialState = {
31
- initialized: false,
32
- loading: true,
33
- allMessages: [],
34
- /**
35
- * localMessages: pending & failed messages
36
- */
37
- localMessages: [],
38
- currentGroupChannel: null,
39
- // for scrollup
40
- hasMorePrev: false,
41
- oldestMessageTimeStamp: 0,
42
- // for scroll down
43
- // onScrollDownCallback is added for navigation to different timestamps on messageSearch
44
- // hasMorePrev, onScrollCallback -> scroll up(default behavior)
45
- // hasMoreNext, onScrollDownCallback -> scroll down
46
- hasMoreNext: false,
47
- latestMessageTimeStamp: 0,
48
- emojiContainer: { emojiCategories: [], emojiHash: '' },
49
- /** @deprecated Please use `unreadSinceDate` instead. * */
50
- unreadSince: null,
51
- /**
52
- * unreadSinceDate is a date information about message unread.
53
- * It's used only for the {unreadSinceDate && <UnreadCount unreadSinceDate={unreadSinceDate} />}
54
- */
55
- unreadSinceDate: null,
56
- isInvalid: false,
57
- readStatus: null,
58
- messageListParams: null,
59
- typingMembers: [],
60
- };
61
-
62
- var getOldestMessageTimeStamp = function (messages) {
63
- if (messages === void 0) { messages = []; }
64
- var oldestMessage = messages[0];
65
- return (oldestMessage && oldestMessage.createdAt) || null;
66
- };
67
- var getLatestMessageTimeStamp = function (messages) {
68
- if (messages === void 0) { messages = []; }
69
- var latestMessage = messages[messages.length - 1];
70
- return (latestMessage && latestMessage.createdAt) || null;
71
- };
72
- function hasReqId(message) {
73
- return 'reqId' in message;
74
- }
75
- function channelReducer(state, action) {
76
- return K(action)
77
- .with({ type: RESET_MESSAGES }, function () {
78
- return __assign(__assign({}, state), {
79
- // when user switches channel, if the previous channel `hasMorePrev`
80
- // the onScroll gets called twice, setting hasMorePrev false prevents this
81
- hasMorePrev: false, hasMoreNext: false, allMessages: [], localMessages: [] });
82
- })
83
- .with({ type: FETCH_INITIAL_MESSAGES_START }, function () {
84
- return __assign(__assign({}, state), { loading: true, allMessages: state.allMessages.filter(function (m) { return isSendableMessage(m)
85
- ? m.sendingStatus !== SendingStatus.SUCCEEDED
86
- : true; }), localMessages: [] });
87
- })
88
- .with({ type: FETCH_INITIAL_MESSAGES_SUCCESS }, function (action) {
89
- var _a;
90
- var _b = action.payload, currentGroupChannel = _b.currentGroupChannel, messages = _b.messages;
91
- if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_a = state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url))) {
92
- return state;
93
- }
94
- var oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
95
- var latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
96
- return __assign(__assign({}, state), { loading: false, initialized: true, hasMorePrev: true, hasMoreNext: true, oldestMessageTimeStamp: oldestMessageTimeStamp, latestMessageTimeStamp: latestMessageTimeStamp, allMessages: __spreadArray([], messages, true) });
97
- })
98
- .with({ type: FETCH_PREV_MESSAGES_SUCCESS }, function (action) {
99
- var _a, _b, _c, _d;
100
- var _e = action.payload, currentGroupChannel = _e.currentGroupChannel, messages = _e.messages;
101
- if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_a = state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url))) {
102
- return state;
103
- }
104
- var hasMorePrev = ((_b = messages === null || messages === void 0 ? void 0 : messages.length) !== null && _b !== void 0 ? _b : 0)
105
- >= ((_d = (_c = state === null || state === void 0 ? void 0 : state.messageListParams) === null || _c === void 0 ? void 0 : _c.prevResultSize) !== null && _d !== void 0 ? _d : PREV_RESULT_SIZE) + 1;
106
- var oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
107
- // Remove duplicated messages
108
- var duplicatedMessageIds = [];
109
- var updatedOldMessages = state.allMessages.map(function (msg) {
110
- var duplicatedMessage = messages.find(function (_a) {
111
- var messageId = _a.messageId;
112
- return compareIds(messageId, msg.messageId);
113
- });
114
- if (!duplicatedMessage) {
115
- return msg;
116
- }
117
- duplicatedMessageIds.push(duplicatedMessage.messageId);
118
- return duplicatedMessage.updatedAt > msg.updatedAt
119
- ? duplicatedMessage
120
- : msg;
121
- });
122
- var filteredNewMessages = duplicatedMessageIds.length > 0
123
- ? messages.filter(function (msg) { return !duplicatedMessageIds.find(function (messageId) { return compareIds(messageId, msg.messageId); }); })
124
- : messages;
125
- return __assign(__assign({}, state), { hasMorePrev: hasMorePrev, oldestMessageTimeStamp: oldestMessageTimeStamp, allMessages: __spreadArray(__spreadArray([], filteredNewMessages, true), updatedOldMessages, true) });
126
- })
127
- .with({ type: FETCH_NEXT_MESSAGES_SUCCESS }, function (action) {
128
- var _a, _b, _c, _d;
129
- var _e = action.payload, currentGroupChannel = _e.currentGroupChannel, messages = _e.messages;
130
- if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_a = state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url))) {
131
- return state;
132
- }
133
- var hasMoreNext = ((_b = messages === null || messages === void 0 ? void 0 : messages.length) !== null && _b !== void 0 ? _b : 0)
134
- === ((_d = (_c = state === null || state === void 0 ? void 0 : state.messageListParams) === null || _c === void 0 ? void 0 : _c.nextResultSize) !== null && _d !== void 0 ? _d : NEXT_RESULT_SIZE) + 1;
135
- var latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
136
- // sort ~
137
- var sortedMessages = mergeAndSortMessages(state.allMessages, messages);
138
- return __assign(__assign({}, state), { hasMoreNext: hasMoreNext, latestMessageTimeStamp: latestMessageTimeStamp, allMessages: sortedMessages });
139
- })
140
- .with({
141
- type: S.union(FETCH_INITIAL_MESSAGES_FAILURE, FETCH_PREV_MESSAGES_FAILURE, FETCH_NEXT_MESSAGES_FAILURE),
142
- }, function (action) {
143
- var _a;
144
- var currentGroupChannel = action.payload.currentGroupChannel;
145
- if ((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) !== ((_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url)) {
146
- return state;
147
- }
148
- return __assign(__assign({}, state), { loading: false, initialized: false, allMessages: [], hasMorePrev: false, hasMoreNext: false, oldestMessageTimeStamp: null, latestMessageTimeStamp: null });
149
- })
150
- .with({ type: SEND_MESSAGE_START }, function (action) {
151
- // Message should not be spread here
152
- // it will loose some methods like `isUserMessage`
153
- return __assign(__assign({}, state), { localMessages: __spreadArray(__spreadArray([], state.localMessages, true), [action.payload], false) });
154
- })
155
- .with({ type: SEND_MESSAGE_SUCCESS }, function (action) {
156
- var message = action.payload;
157
- /**
158
- * Admin messages do not have reqId. We need to include them.
159
- */
160
- var filteredMessages = state.allMessages.filter(function (m) { return !hasReqId(m) || (m === null || m === void 0 ? void 0 : m.reqId) !== (message === null || message === void 0 ? void 0 : message.reqId); });
161
- // [Policy] Pending messages and failed messages
162
- // must always be at the end of the message list
163
- return __assign(__assign({}, state), { allMessages: __spreadArray(__spreadArray([], filteredMessages, true), [message], false), localMessages: state.localMessages.filter(function (m) { return hasReqId(m) && (m === null || m === void 0 ? void 0 : m.reqId) !== (message === null || message === void 0 ? void 0 : message.reqId); }) });
164
- })
165
- .with({ type: SEND_MESSAGE_FAILURE }, function (action) {
166
- // @ts-ignore
167
- action.payload.failed = true;
168
- return __assign(__assign({}, state), { localMessages: state.localMessages.map(function (m) { return compareIds(hasReqId(m) && m.reqId, action.payload.reqId)
169
- ? action.payload
170
- : m; }) });
171
- })
172
- .with({ type: SET_CURRENT_CHANNEL }, function (action) {
173
- return __assign(__assign({}, state), { currentGroupChannel: action.payload, isInvalid: false });
174
- })
175
- .with({ type: SET_CHANNEL_INVALID }, function () {
176
- return __assign(__assign({}, state), { currentGroupChannel: null, allMessages: [], localMessages: [], isInvalid: true });
177
- })
178
- .with({ type: ON_MESSAGE_RECEIVED }, function (action) {
179
- var _a, _b;
180
- var _c = action.payload, channel = _c.channel, message = _c.message;
181
- var members = channel.members;
182
- var sender = message.sender;
183
- var currentGroupChannel = state.currentGroupChannel;
184
- var currentGroupChannelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
185
- if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
186
- return state;
187
- }
188
- // Excluded overlapping messages
189
- if (state.allMessages.some(function (msg) { return msg.messageId === message.messageId; })) {
190
- return state;
191
- }
192
- // Filter by userFilledQuery
193
- if (state.messageListParams
194
- && !filterMessageListParams(state.messageListParams, message)) {
195
- return state;
196
- }
197
- if (message.isAdminMessage && message.isAdminMessage()) {
198
- return __assign(__assign({}, state), { allMessages: passUnsuccessfullMessages(state.allMessages, message) });
199
- }
200
- // Update members when sender profileUrl, nickname, friendName has been changed
201
- var senderMember = members === null || members === void 0 ? void 0 : members.find(function (m) { return (m === null || m === void 0 ? void 0 : m.userId) === (sender === null || sender === void 0 ? void 0 : sender.userId); });
202
- if ((senderMember === null || senderMember === void 0 ? void 0 : senderMember.profileUrl) !== (sender === null || sender === void 0 ? void 0 : sender.profileUrl)
203
- || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.friendName) !== (sender === null || sender === void 0 ? void 0 : sender.friendName)
204
- || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.nickname) !== (sender === null || sender === void 0 ? void 0 : sender.nickname)) {
205
- // @ts-ignore
206
- channel.members = members.map(function (member) {
207
- if (member.userId === sender.userId) {
208
- return sender;
209
- }
210
- return member;
211
- });
212
- }
213
- return __assign(__assign({}, state), { currentGroupChannel: channel, unreadSince: (_a = state.unreadSince) !== null && _a !== void 0 ? _a : format(new Date(), 'p MMM dd'), unreadSinceDate: (_b = state.unreadSinceDate) !== null && _b !== void 0 ? _b : new Date(), allMessages: passUnsuccessfullMessages(state.allMessages, message) });
214
- })
215
- .with({ type: ON_MESSAGE_UPDATED }, function (action) {
216
- var _a;
217
- var _b = action.payload, channel = _b.channel, message = _b.message;
218
- var currentGroupChannelUrl = ((_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url) || '';
219
- if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
220
- return state; // Ignore event when it is not for the current channel
221
- }
222
- if (state.messageListParams
223
- && !filterMessageListParams(state.messageListParams, message)) {
224
- // Delete the message if it doesn't match to the params anymore
225
- return __assign(__assign({}, state), { allMessages: state.allMessages.filter(function (m) { return !compareIds(m.messageId, message === null || message === void 0 ? void 0 : message.messageId); }) });
226
- }
227
- return __assign(__assign({}, state), { allMessages: state.allMessages.map(function (m) {
228
- if (compareIds(m.messageId, message.messageId)) {
229
- return message;
230
- }
231
- if (compareIds(m.parentMessageId, message.messageId)) {
232
- m.parentMessage = message; // eslint-disable-line no-param-reassign
233
- }
234
- return m;
235
- }) });
236
- })
237
- .with({ type: ON_MESSAGE_THREAD_INFO_UPDATED }, function (action) {
238
- var _a;
239
- var _b = action.payload, channel = _b.channel, event = _b.event;
240
- var channelUrl = event.channelUrl, threadInfo = event.threadInfo, targetMessageId = event.targetMessageId;
241
- var currentGroupChannelUrl = ((_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url) || '';
242
- if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)
243
- || !compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
244
- return state; // Ignore event when it is not for the current channel
245
- }
246
- return __assign(__assign({}, state), { allMessages: state.allMessages.map(function (m) {
247
- if (compareIds(m.messageId, targetMessageId)) {
248
- // eslint-disable-next-line no-param-reassign
249
- m.threadInfo = threadInfo; // Upsert threadInfo to the target message
250
- }
251
- return m;
252
- }) });
253
- })
254
- .with({ type: RESEND_MESSAGE_START }, function (action) {
255
- return __assign(__assign({}, state), { localMessages: state.localMessages.map(function (m) { return compareIds(hasReqId(m) && m.reqId, action.payload.reqId)
256
- ? action.payload
257
- : m; }) });
258
- })
259
- .with({ type: MARK_AS_READ }, function (action) {
260
- var _a, _b, _c;
261
- if (((_a = state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url) !== ((_c = (_b = action.payload) === null || _b === void 0 ? void 0 : _b.channel) === null || _c === void 0 ? void 0 : _c.url)) {
262
- return state;
263
- }
264
- return __assign(__assign({}, state), { unreadSince: null, unreadSinceDate: null });
265
- })
266
- .with({ type: ON_MESSAGE_DELETED }, function (action) {
267
- return __assign(__assign({}, state), { allMessages: state.allMessages.filter(function (m) { return !compareIds(m.messageId, action.payload); }) });
268
- })
269
- .with({ type: ON_MESSAGE_DELETED_BY_REQ_ID }, function (action) {
270
- return __assign(__assign({}, state), { localMessages: state.localMessages.filter(function (m) { return !compareIds(hasReqId(m) && m.reqId, action.payload); }) });
271
- })
272
- .with({ type: SET_EMOJI_CONTAINER }, function (action) {
273
- return __assign(__assign({}, state), { emojiContainer: action.payload });
274
- })
275
- .with({ type: ON_REACTION_UPDATED }, function (action) {
276
- return __assign(__assign({}, state), { allMessages: state.allMessages.map(function (m) {
277
- if (compareIds(m.messageId, action.payload.messageId)) {
278
- if (m.applyReactionEvent
279
- && typeof m.applyReactionEvent === 'function') {
280
- m.applyReactionEvent(action.payload);
281
- }
282
- return m;
283
- }
284
- return m;
285
- }) });
286
- })
287
- .with({ type: MESSAGE_LIST_PARAMS_CHANGED }, function (action) {
288
- return __assign(__assign({}, state), { messageListParams: action.payload });
289
- })
290
- .with({ type: ON_FILE_INFO_UPLOADED }, function (action) {
291
- var _a, _b;
292
- var _c = action.payload, channelUrl = _c.channelUrl, requestId = _c.requestId, index = _c.index, uploadableFileInfo = _c.uploadableFileInfo, error = _c.error;
293
- if (!compareIds(channelUrl, (_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url)) {
294
- return state;
295
- }
296
- /**
297
- * We don't have to do anything here because
298
- * onFailed() will be called so handle error there instead.
299
- */
300
- if (error)
301
- return state;
302
- var localMessages = state.localMessages;
303
- var messageToUpdate = localMessages.find(function (message) { return compareIds(hasReqId(message) && message.reqId, requestId); });
304
- var fileInfoList = (_b = messageToUpdate
305
- .messageParams) === null || _b === void 0 ? void 0 : _b.fileInfoList;
306
- if (Array.isArray(fileInfoList)) {
307
- fileInfoList[index] = uploadableFileInfo;
308
- }
309
- return __assign(__assign({}, state), { localMessages: localMessages });
310
- })
311
- .with({ type: ON_TYPING_STATUS_UPDATED }, function (action) {
312
- var _a;
313
- var _b = action.payload, channel = _b.channel, typingMembers = _b.typingMembers;
314
- if (!compareIds(channel.url, (_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url)) {
315
- return state;
316
- }
317
- return __assign(__assign({}, state), { typingMembers: typingMembers });
318
- })
319
- .otherwise(function () { return state; });
320
- }
321
-
322
- var DELIVERY_RECEIPT = 'delivery_receipt';
323
- function useHandleChannelEvents(_a, _b) {
324
- var _c, _d, _e;
325
- var sdkInit = _a.sdkInit, currentGroupChannel = _a.currentGroupChannel, disableMarkAsRead = _a.disableMarkAsRead;
326
- var sdk = _b.sdk, logger = _b.logger, scrollRef = _b.scrollRef, setQuoteMessage = _b.setQuoteMessage, messagesDispatcher = _b.messagesDispatcher;
327
- var store = useSendbirdStateContext();
328
- var _f = store.config, markAsReadScheduler = _f.markAsReadScheduler, markAsDeliveredScheduler = _f.markAsDeliveredScheduler, disableMarkAsDelivered = _f.disableMarkAsDelivered;
329
- var canSetMarkAsDelivered = (_e = (_d = (_c = store.stores.sdkStore.sdk) === null || _c === void 0 ? void 0 : _c.appInfo) === null || _d === void 0 ? void 0 : _d.premiumFeatureList) === null || _e === void 0 ? void 0 : _e.find(function (feature) { return (feature === DELIVERY_RECEIPT); });
330
- useEffect(function () {
331
- var _a;
332
- var channelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
333
- var channelHandlerId = uuidv4();
334
- if (channelUrl && sdkInit) {
335
- var channelHandler = {
336
- onMessageReceived: function (channel, message) {
337
- var _a, _b;
338
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
339
- var scrollToEnd = false;
340
- try {
341
- var current = scrollRef.current;
342
- scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight - 10;
343
- // 10 is a buffer
344
- }
345
- catch (error) {
346
- //
347
- }
348
- logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);
349
- messagesDispatcher({
350
- type: ON_MESSAGE_RECEIVED,
351
- payload: { channel: channel, message: message },
352
- });
353
- if (scrollToEnd
354
- && ((_a = document.getElementById('sendbird-dropdown-portal')) === null || _a === void 0 ? void 0 : _a.childElementCount) === 0
355
- && ((_b = document.getElementById('sendbird-emoji-list-portal')) === null || _b === void 0 ? void 0 : _b.childElementCount) === 0) {
356
- // and !openContextMenu
357
- try {
358
- setTimeout(function () {
359
- scrollIntoLast(0, scrollRef);
360
- });
361
- if (!disableMarkAsRead) {
362
- markAsReadScheduler.push(currentGroupChannel);
363
- }
364
- if (canSetMarkAsDelivered && !disableMarkAsDelivered) {
365
- markAsDeliveredScheduler.push(currentGroupChannel);
366
- }
367
- }
368
- catch (error) {
369
- logger.warning('Channel | onMessageReceived | scroll to end failed');
370
- }
371
- }
372
- }
373
- },
374
- onUnreadMemberStatusUpdated: function (channel) {
375
- logger.info('Channel | useHandleChannelEvents: onUnreadMemberStatusUpdated', channel);
376
- if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
377
- messagesDispatcher({
378
- type: SET_CURRENT_CHANNEL,
379
- payload: channel,
380
- });
381
- }
382
- },
383
- // before(onDeliveryReceiptUpdated)
384
- onUndeliveredMemberStatusUpdated: function (channel) {
385
- if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
386
- logger.info('Channel | useHandleChannelEvents: onDeliveryReceiptUpdated', channel);
387
- messagesDispatcher({
388
- type: SET_CURRENT_CHANNEL,
389
- payload: channel,
390
- });
391
- }
392
- },
393
- onMessageUpdated: function (channel, message) {
394
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
395
- logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);
396
- messagesDispatcher({
397
- type: ON_MESSAGE_UPDATED,
398
- payload: { channel: channel, message: message },
399
- });
400
- }
401
- },
402
- onThreadInfoUpdated: function (channel, threadInfoUpdateEvent) {
403
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
404
- logger.info('Channel | useHandleChannelEvents: onThreadInfoUpdated', { channel: channel, threadInfoUpdateEvent: threadInfoUpdateEvent });
405
- messagesDispatcher({
406
- type: ON_MESSAGE_THREAD_INFO_UPDATED,
407
- payload: { channel: channel, event: threadInfoUpdateEvent },
408
- });
409
- }
410
- },
411
- onMessageDeleted: function (channel, messageId) {
412
- logger.info('Channel | useHandleChannelEvents: onMessageDeleted', { channel: channel, messageId: messageId });
413
- setQuoteMessage(null);
414
- messagesDispatcher({
415
- type: ON_MESSAGE_DELETED,
416
- payload: messageId,
417
- });
418
- },
419
- onReactionUpdated: function (channel, reactionEvent) {
420
- logger.info('Channel | useHandleChannelEvents: onReactionUpdated', { channel: channel, reactionEvent: reactionEvent });
421
- messagesDispatcher({
422
- type: ON_REACTION_UPDATED,
423
- payload: reactionEvent,
424
- });
425
- },
426
- onChannelChanged: function (channel) {
427
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
428
- logger.info('Channel | useHandleChannelEvents: onChannelChanged', channel);
429
- messagesDispatcher({
430
- type: SET_CURRENT_CHANNEL,
431
- payload: channel,
432
- });
433
- }
434
- },
435
- onChannelFrozen: function (channel) {
436
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
437
- logger.info('Channel | useHandleChannelEvents: onChannelFrozen', channel);
438
- messagesDispatcher({
439
- type: SET_CURRENT_CHANNEL,
440
- payload: channel,
441
- });
442
- }
443
- },
444
- onChannelUnfrozen: function (channel) {
445
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
446
- logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', channel);
447
- messagesDispatcher({
448
- type: SET_CURRENT_CHANNEL,
449
- payload: channel,
450
- });
451
- }
452
- },
453
- onUserMuted: function (channel, user) {
454
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
455
- logger.info('Channel | useHandleChannelEvents: onUserMuted', { channel: channel, user: user });
456
- messagesDispatcher({
457
- type: SET_CURRENT_CHANNEL,
458
- payload: channel,
459
- });
460
- }
461
- },
462
- onUserUnmuted: function (channel, user) {
463
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
464
- logger.info('Channel | useHandleChannelEvents: onUserUnmuted', { channel: channel, user: user });
465
- messagesDispatcher({
466
- type: SET_CURRENT_CHANNEL,
467
- payload: channel,
468
- });
469
- }
470
- },
471
- onUserBanned: function (channel, user) {
472
- var _a;
473
- if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
474
- logger.info('Channel | useHandleChannelEvents: onUserBanned', { channel: channel, user: user });
475
- var isByMe = (user === null || user === void 0 ? void 0 : user.userId) === ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.currentUser) === null || _a === void 0 ? void 0 : _a.userId);
476
- messagesDispatcher({
477
- type: SET_CURRENT_CHANNEL,
478
- payload: isByMe ? null : channel,
479
- });
480
- }
481
- },
482
- onOperatorUpdated: function (channel, users) {
483
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
484
- logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', { channel: channel, users: users });
485
- messagesDispatcher({
486
- type: SET_CURRENT_CHANNEL,
487
- payload: channel,
488
- });
489
- }
490
- },
491
- onUserLeft: function (channel, user) {
492
- var _a;
493
- if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
494
- logger.info('Channel | useHandleChannelEvents: onUserLeft', { channel: channel, user: user });
495
- var isByMe = (user === null || user === void 0 ? void 0 : user.userId) === ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.currentUser) === null || _a === void 0 ? void 0 : _a.userId);
496
- messagesDispatcher({
497
- type: SET_CURRENT_CHANNEL,
498
- payload: isByMe ? null : channel,
499
- });
500
- }
501
- },
502
- onTypingStatusUpdated: function (channel) {
503
- if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
504
- logger.info('Channel | onTypingStatusUpdated', { channel: channel });
505
- var typingMembers = channel.getTypingUsers();
506
- messagesDispatcher({
507
- type: ON_TYPING_STATUS_UPDATED,
508
- payload: {
509
- channel: channel,
510
- typingMembers: typingMembers,
511
- },
512
- });
513
- }
514
- },
515
- };
516
- logger.info('Channel | useHandleChannelEvents: Setup event handler', { channelHandlerId: channelHandlerId, channelHandler: channelHandler });
517
- // Add this group channel handler to the Sendbird chat instance
518
- (_a = sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.addGroupChannelHandler(channelHandlerId, new GroupChannelHandler(channelHandler));
519
- }
520
- return function () {
521
- var _a;
522
- if ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.removeGroupChannelHandler) {
523
- logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', channelHandlerId);
524
- sdk.groupChannel.removeGroupChannelHandler(channelHandlerId);
525
- }
526
- else if (sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) {
527
- logger.error('Channel | useHandleChannelEvents: Not found the removeGroupChannelHandler');
528
- }
529
- };
530
- }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, sdkInit]);
531
- }
532
-
533
- function useGetChannel(_a, _b) {
534
- var channelUrl = _a.channelUrl, sdkInit = _a.sdkInit, disableMarkAsRead = _a.disableMarkAsRead;
535
- var messagesDispatcher = _b.messagesDispatcher, sdk = _b.sdk, logger = _b.logger, markAsReadScheduler = _b.markAsReadScheduler;
536
- useEffect(function () {
537
- if (channelUrl && sdkInit && sdk && sdk.groupChannel) {
538
- logger.info('Channel | useSetChannel fetching channel', channelUrl);
539
- sdk.groupChannel
540
- .getChannel(channelUrl)
541
- .then(function (groupChannel) {
542
- logger.info('Channel | useSetChannel fetched channel', groupChannel);
543
- messagesDispatcher({
544
- type: SET_CURRENT_CHANNEL,
545
- payload: groupChannel,
546
- });
547
- logger.info('Channel: Mark as read', groupChannel);
548
- if (!disableMarkAsRead) {
549
- markAsReadScheduler.push(groupChannel);
550
- }
551
- })
552
- .catch(function (e) {
553
- logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl: channelUrl, e: e });
554
- messagesDispatcher({
555
- type: SET_CHANNEL_INVALID,
556
- });
557
- });
558
- sdk
559
- .getAllEmoji()
560
- .then(function (emojiContainer_) {
561
- logger.info('Channel: Getting emojis success', emojiContainer_);
562
- messagesDispatcher({
563
- type: SET_EMOJI_CONTAINER,
564
- payload: emojiContainer_,
565
- });
566
- })
567
- .catch(function (err) {
568
- logger.error('Channel: Getting emojis failed', err);
569
- });
570
- }
571
- }, [channelUrl, sdkInit]);
572
- }
573
-
574
- function useReconnectOnIdle(isOnline, currentGroupChannel, reconnectOnIdle) {
575
- if (reconnectOnIdle === void 0) { reconnectOnIdle = true; }
576
- var _a = useState(false), isTabHidden = _a[0], setIsTabHidden = _a[1];
577
- var wasOffline = !isOnline;
578
- useEffect(function () {
579
- var handleVisibilityChange = function () {
580
- if (reconnectOnIdle) {
581
- setIsTabHidden(document.hidden);
582
- }
583
- };
584
- document.addEventListener('visibilitychange', handleVisibilityChange);
585
- return function () {
586
- document.removeEventListener('visibilitychange', handleVisibilityChange);
587
- };
588
- }, [reconnectOnIdle, document.hidden]);
589
- var shouldReconnect = wasOffline && (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) != null && !isTabHidden;
590
- return { shouldReconnect: shouldReconnect };
591
- }
592
-
593
- function useHandleReconnect(_a, _b) {
594
- var isOnline = _a.isOnline, replyType = _a.replyType, disableMarkAsRead = _a.disableMarkAsRead, reconnectOnIdle = _a.reconnectOnIdle;
595
- var logger = _b.logger, sdk = _b.sdk, scrollRef = _b.scrollRef, currentGroupChannel = _b.currentGroupChannel, messagesDispatcher = _b.messagesDispatcher, markAsReadScheduler = _b.markAsReadScheduler, userFilledMessageListQuery = _b.userFilledMessageListQuery;
596
- var shouldReconnect = useReconnectOnIdle(isOnline, currentGroupChannel, reconnectOnIdle).shouldReconnect;
597
- useEffect(function () {
598
- return function () {
599
- var _a, _b;
600
- // state changed from offline to online AND tab is visible
601
- if (shouldReconnect) {
602
- logger.info('Refreshing conversation state');
603
- var isReactionEnabled = ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.appInfo) === null || _a === void 0 ? void 0 : _a.useReaction) || false;
604
- var messageListParams_1 = {
605
- prevResultSize: PREV_RESULT_SIZE,
606
- isInclusive: true,
607
- includeReactions: isReactionEnabled,
608
- includeMetaArray: true,
609
- nextResultSize: NEXT_RESULT_SIZE,
610
- };
611
- if (replyType && replyType === 'QUOTE_REPLY') {
612
- messageListParams_1.includeThreadInfo = true;
613
- messageListParams_1.includeParentMessageInfo = true;
614
- messageListParams_1.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
615
- }
616
- if (userFilledMessageListQuery) {
617
- Object.keys(userFilledMessageListQuery).forEach(function (key) {
618
- messageListParams_1[key] = userFilledMessageListQuery[key];
619
- });
620
- }
621
- logger.info('Channel: Fetching messages', { currentGroupChannel: currentGroupChannel, userFilledMessageListQuery: userFilledMessageListQuery });
622
- messagesDispatcher({
623
- type: FETCH_INITIAL_MESSAGES_START,
624
- payload: null,
625
- });
626
- var multipleFilesMessageCount_1 = 0;
627
- (_b = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _b === void 0 ? void 0 : _b.getChannel(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url).then(function (groupChannel) {
628
- var lastMessageTime = new Date().getTime();
629
- groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams_1)
630
- .then(function (messages) {
631
- messagesDispatcher({
632
- type: FETCH_INITIAL_MESSAGES_SUCCESS,
633
- payload: {
634
- currentGroupChannel: currentGroupChannel,
635
- messages: messages,
636
- },
637
- });
638
- multipleFilesMessageCount_1 = messages.filter(function (message) { return isMultipleFilesMessage(message); }).length;
639
- setTimeout(function () { return scrollIntoLast(0, scrollRef); },
640
- /**
641
- * Rendering MFM takes long time so we need this.
642
- * But later we should find better solution.
643
- */
644
- Math.min(multipleFilesMessageCount_1 * 100, 1000));
645
- })
646
- .catch(function (error) {
647
- logger.error('Channel: Fetching messages failed', error);
648
- messagesDispatcher({
649
- type: FETCH_INITIAL_MESSAGES_FAILURE,
650
- payload: { currentGroupChannel: currentGroupChannel },
651
- });
652
- });
653
- if (!disableMarkAsRead) {
654
- markAsReadScheduler.push(currentGroupChannel);
655
- }
656
- });
657
- }
658
- };
659
- }, [shouldReconnect, replyType]);
660
- }
661
-
662
- function useScrollCallback(_a, _b) {
663
- var currentGroupChannel = _a.currentGroupChannel, oldestMessageTimeStamp = _a.oldestMessageTimeStamp, userFilledMessageListQuery = _a.userFilledMessageListQuery, replyType = _a.replyType;
664
- var hasMorePrev = _b.hasMorePrev, logger = _b.logger, messagesDispatcher = _b.messagesDispatcher, sdk = _b.sdk;
665
- return useCallback(function (callback) {
666
- var _a, _b;
667
- if (!hasMorePrev) {
668
- return;
669
- }
670
- var messageListParams = {
671
- prevResultSize: PREV_RESULT_SIZE,
672
- isInclusive: true,
673
- includeMetaArray: true,
674
- includeReactions: (_b = (_a = sdk === null || sdk === void 0 ? void 0 : sdk.appInfo) === null || _a === void 0 ? void 0 : _a.useReaction) !== null && _b !== void 0 ? _b : false,
675
- };
676
- if (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') {
677
- messageListParams.includeThreadInfo = true;
678
- messageListParams.includeParentMessageInfo = true;
679
- messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
680
- }
681
- if (userFilledMessageListQuery) {
682
- Object.keys(userFilledMessageListQuery).forEach(function (key) {
683
- messageListParams[key] = userFilledMessageListQuery[key];
684
- });
685
- }
686
- logger.info('Channel: Fetching messages', {
687
- currentGroupChannel: currentGroupChannel,
688
- userFilledMessageListQuery: userFilledMessageListQuery,
689
- });
690
- currentGroupChannel
691
- .getMessagesByTimestamp(oldestMessageTimeStamp || new Date().getTime(), messageListParams)
692
- .then(function (messages) {
693
- messagesDispatcher({
694
- type: FETCH_PREV_MESSAGES_SUCCESS,
695
- payload: { currentGroupChannel: currentGroupChannel, messages: messages },
696
- });
697
- if (callback)
698
- setTimeout(function () { return callback(); });
699
- })
700
- .catch(function () {
701
- messagesDispatcher({
702
- type: FETCH_PREV_MESSAGES_FAILURE,
703
- payload: { currentGroupChannel: currentGroupChannel },
704
- });
705
- });
706
- }, [currentGroupChannel, oldestMessageTimeStamp, replyType]);
707
- }
708
-
709
- function useScrollDownCallback(_a, _b) {
710
- var currentGroupChannel = _a.currentGroupChannel, latestMessageTimeStamp = _a.latestMessageTimeStamp, userFilledMessageListQuery = _a.userFilledMessageListQuery, hasMoreNext = _a.hasMoreNext, replyType = _a.replyType;
711
- var logger = _b.logger, messagesDispatcher = _b.messagesDispatcher, sdk = _b.sdk;
712
- return useCallback(function (cb) {
713
- var _a, _b;
714
- if (!hasMoreNext) {
715
- return;
716
- }
717
- var isReactionEnabled = (_b = (_a = sdk === null || sdk === void 0 ? void 0 : sdk.appInfo) === null || _a === void 0 ? void 0 : _a.useReaction) !== null && _b !== void 0 ? _b : false;
718
- var messageListParams = {
719
- nextResultSize: NEXT_RESULT_SIZE,
720
- isInclusive: true,
721
- includeReactions: isReactionEnabled,
722
- includeMetaArray: true,
723
- };
724
- if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {
725
- messageListParams.includeThreadInfo = true;
726
- messageListParams.includeParentMessageInfo = true;
727
- messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
728
- }
729
- if (userFilledMessageListQuery) {
730
- Object.keys(userFilledMessageListQuery).forEach(function (key) {
731
- messageListParams[key] = userFilledMessageListQuery[key];
732
- });
733
- }
734
- logger.info('Channel: Fetching later messages', { currentGroupChannel: currentGroupChannel, userFilledMessageListQuery: userFilledMessageListQuery });
735
- currentGroupChannel
736
- .getMessagesByTimestamp(latestMessageTimeStamp || new Date().getTime(), messageListParams)
737
- .then(function (messages) {
738
- messagesDispatcher({
739
- type: FETCH_NEXT_MESSAGES_SUCCESS,
740
- payload: { currentGroupChannel: currentGroupChannel, messages: messages },
741
- });
742
- setTimeout(function () { return cb([messages, null]); });
743
- })
744
- .catch(function (error) {
745
- logger.error('Channel: Fetching later messages failed', error);
746
- messagesDispatcher({
747
- type: FETCH_NEXT_MESSAGES_FAILURE,
748
- payload: { currentGroupChannel: currentGroupChannel },
749
- });
750
- setTimeout(function () { return cb([null, error]); });
751
- });
752
- }, [currentGroupChannel, latestMessageTimeStamp, hasMoreNext, replyType]);
753
- }
754
-
755
- function useDeleteMessageCallback(_a, _b) {
756
- var currentGroupChannel = _a.currentGroupChannel, messagesDispatcher = _a.messagesDispatcher;
757
- var logger = _b.logger;
758
- return useCallback(function (message) {
759
- logger.info('Channel | useDeleteMessageCallback: Deleting message', message);
760
- var sendingStatus = isSendableMessage(message) ? message.sendingStatus : undefined;
761
- return new Promise(function (resolve, reject) {
762
- logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', sendingStatus);
763
- // Message is only on local
764
- if ((sendingStatus === SendingStatus.FAILED || sendingStatus === SendingStatus.PENDING) && 'reqId' in message) {
765
- logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);
766
- messagesDispatcher({
767
- type: ON_MESSAGE_DELETED_BY_REQ_ID,
768
- payload: message.reqId,
769
- });
770
- resolve(message);
771
- }
772
- else {
773
- logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', sendingStatus);
774
- currentGroupChannel
775
- .deleteMessage(message)
776
- .then(function () {
777
- logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);
778
- messagesDispatcher({
779
- type: ON_MESSAGE_DELETED,
780
- payload: message.messageId,
781
- });
782
- resolve(message);
783
- })
784
- .catch(function (err) {
785
- logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);
786
- reject(err);
787
- });
788
- }
789
- });
790
- }, [currentGroupChannel, messagesDispatcher]);
791
- }
792
-
793
- function useUpdateMessageCallback(_a, _b) {
794
- var currentGroupChannel = _a.currentGroupChannel, messagesDispatcher = _a.messagesDispatcher, onBeforeUpdateUserMessage = _a.onBeforeUpdateUserMessage, isMentionEnabled = _a.isMentionEnabled;
795
- var logger = _b.logger, pubSub = _b.pubSub;
796
- return useCallback(function (props, callback) {
797
- var messageId = props.messageId, message = props.message, mentionedUsers = props.mentionedUsers, mentionTemplate = props.mentionTemplate;
798
- var createParamsDefault = function (message) {
799
- var params = {
800
- message: message,
801
- };
802
- if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
803
- params.mentionedUsers = mentionedUsers;
804
- }
805
- if (isMentionEnabled && mentionTemplate) {
806
- params.mentionedMessageTemplate = mentionTemplate;
807
- }
808
- else {
809
- params.mentionedMessageTemplate = message;
810
- }
811
- return params;
812
- };
813
- var shouldCreateCustomParams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function';
814
- if (shouldCreateCustomParams) {
815
- logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);
816
- }
817
- var params = shouldCreateCustomParams ? onBeforeUpdateUserMessage(message) : createParamsDefault(message);
818
- logger.info('Channel: Updating message!', params);
819
- currentGroupChannel
820
- .updateUserMessage(messageId, params)
821
- .then(function (msg) {
822
- if (callback) {
823
- callback(null, msg);
824
- }
825
- logger.info('Channel: Updating message success!', msg);
826
- messagesDispatcher({
827
- type: ON_MESSAGE_UPDATED,
828
- payload: {
829
- channel: currentGroupChannel,
830
- message: msg,
831
- },
832
- });
833
- pubSub.publish(pubSubTopics.UPDATE_USER_MESSAGE, {
834
- message: msg,
835
- channel: currentGroupChannel,
836
- publishingModules: [PublishingModuleType.CHANNEL],
837
- });
838
- })
839
- .catch(function (err) {
840
- if (callback) {
841
- callback(err, null);
842
- }
843
- });
844
- }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);
845
- }
846
-
847
- function useResendMessageCallback(_a, _b) {
848
- var currentGroupChannel = _a.currentGroupChannel, messagesDispatcher = _a.messagesDispatcher;
849
- var logger = _b.logger, pubSub = _b.pubSub;
850
- return useCallback(function (failedMessage) {
851
- logger.info('Channel: Resending message has started', failedMessage);
852
- if (failedMessage === null || failedMessage === void 0 ? void 0 : failedMessage.isResendable) {
853
- // userMessage
854
- if (failedMessage.isUserMessage()) {
855
- currentGroupChannel
856
- .resendMessage(failedMessage)
857
- .onPending(function (message) {
858
- logger.info('Channel: Resending message start!', message);
859
- messagesDispatcher({
860
- type: RESEND_MESSAGE_START,
861
- payload: message,
862
- });
863
- })
864
- .onSucceeded(function (message) {
865
- logger.info('Channel: Resending message success!', message);
866
- messagesDispatcher({
867
- type: SEND_MESSAGE_SUCCESS,
868
- payload: message,
869
- });
870
- })
871
- .onFailed(function (e, message) {
872
- logger.warning('Channel: Resending message failed!', e);
873
- messagesDispatcher({
874
- type: SEND_MESSAGE_FAILURE,
875
- payload: message,
876
- });
877
- });
878
- }
879
- else if (failedMessage.isFileMessage()) {
880
- currentGroupChannel
881
- .resendMessage(failedMessage)
882
- .onPending(function (message) {
883
- logger.info('Channel: Resending file message start!', message);
884
- messagesDispatcher({
885
- type: RESEND_MESSAGE_START,
886
- payload: message,
887
- });
888
- })
889
- .onSucceeded(function (message) {
890
- logger.info('Channel: Resending file message success!', message);
891
- messagesDispatcher({
892
- type: SEND_MESSAGE_SUCCESS,
893
- payload: message,
894
- });
895
- })
896
- .onFailed(function (e, message) {
897
- logger.warning('Channel: Resending file message failed!', e);
898
- messagesDispatcher({
899
- type: SEND_MESSAGE_FAILURE,
900
- payload: message,
901
- });
902
- });
903
- }
904
- else if (failedMessage.isMultipleFilesMessage()) {
905
- currentGroupChannel
906
- .resendMessage(failedMessage)
907
- .onPending(function (message) {
908
- logger.info('Channel: Resending multiple files message start!', message);
909
- messagesDispatcher({
910
- type: RESEND_MESSAGE_START,
911
- payload: message,
912
- });
913
- })
914
- .onFileUploaded(function (requestId, index, uploadableFileInfo, error) {
915
- logger.info('Channel: Resending multiple files message file uploaded!', {
916
- requestId: requestId,
917
- index: index,
918
- error: error,
919
- uploadableFileInfo: uploadableFileInfo,
920
- });
921
- pubSub.publish(pubSubTopics.ON_FILE_INFO_UPLOADED, {
922
- response: {
923
- channelUrl: currentGroupChannel.url,
924
- requestId: requestId,
925
- index: index,
926
- uploadableFileInfo: uploadableFileInfo,
927
- error: error,
928
- },
929
- publishingModules: [PublishingModuleType.CHANNEL],
930
- });
931
- })
932
- .onSucceeded(function (message) {
933
- logger.info('Channel: Resending multiple files message success!', message);
934
- messagesDispatcher({
935
- type: SEND_MESSAGE_SUCCESS,
936
- payload: message,
937
- });
938
- })
939
- .onFailed(function (e, message) {
940
- logger.warning('Channel: Resending multiple files message failed!', e);
941
- messagesDispatcher({
942
- type: SEND_MESSAGE_FAILURE,
943
- payload: message,
944
- });
945
- });
946
- }
947
- }
948
- else {
949
- logger.error('Message is not resendable', failedMessage);
950
- }
951
- }, [currentGroupChannel, messagesDispatcher]);
952
- }
953
-
954
- function useSendMessageCallback(_a, _b) {
955
- var isMentionEnabled = _a.isMentionEnabled, currentGroupChannel = _a.currentGroupChannel, onBeforeSendUserMessage = _a.onBeforeSendUserMessage;
956
- var logger = _b.logger, pubSub = _b.pubSub, scrollRef = _b.scrollRef, messagesDispatcher = _b.messagesDispatcher;
957
- var messageInputRef = useRef(null);
958
- var sendMessage = useCallback(function (_a) {
959
- var quoteMessage = _a.quoteMessage, message = _a.message, mentionTemplate = _a.mentionTemplate,
960
- // mentionedUserIds,
961
- mentionedUsers = _a.mentionedUsers;
962
- var createParamsDefault = function () {
963
- var params = {
964
- message: message,
965
- };
966
- // if (isMentionEnabled && mentionedUserIds?.length > 0) {
967
- if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
968
- // params.mentionedUserIds = mentionedUserIds;
969
- params.mentionedUsers = mentionedUsers;
970
- }
971
- // if (isMentionEnabled && mentionTemplate && mentionedUserIds?.length > 0) {
972
- if (isMentionEnabled && mentionTemplate && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
973
- params.mentionedMessageTemplate = mentionTemplate;
974
- }
975
- if (quoteMessage) {
976
- params.isReplyToChannel = true;
977
- params.parentMessageId = quoteMessage.messageId;
978
- }
979
- return params;
980
- };
981
- var shouldCreateCustomParams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';
982
- if (shouldCreateCustomParams) {
983
- logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);
984
- }
985
- var params = shouldCreateCustomParams ? onBeforeSendUserMessage(message, quoteMessage) : createParamsDefault();
986
- logger.info('Channel: Sending message has started', params);
987
- currentGroupChannel
988
- .sendUserMessage(params)
989
- .onPending(function (pendingMsg) {
990
- pubSub.publish(pubSubTopics.SEND_MESSAGE_START, {
991
- /* pubSub is used instead of messagesDispatcher
992
- to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
993
- message: pendingMsg,
994
- channel: currentGroupChannel,
995
- publishingModules: [PublishingModuleType.CHANNEL],
996
- });
997
- setTimeout(function () { return scrollIntoLast(0, scrollRef); });
998
- })
999
- .onFailed(function (err, msg) {
1000
- logger.warning('Channel: Sending message failed!', { message: msg, error: err });
1001
- messagesDispatcher({
1002
- type: SEND_MESSAGE_FAILURE,
1003
- payload: msg,
1004
- });
1005
- })
1006
- .onSucceeded(function (msg) {
1007
- logger.info('Channel: Sending message success!', msg);
1008
- messagesDispatcher({
1009
- type: SEND_MESSAGE_SUCCESS,
1010
- payload: msg,
1011
- });
1012
- });
1013
- }, [currentGroupChannel, onBeforeSendUserMessage]);
1014
- return [messageInputRef, sendMessage];
1015
- }
1016
-
1017
- function useSendFileMessageCallback(_a, _b) {
1018
- var currentGroupChannel = _a.currentGroupChannel, onBeforeSendFileMessage = _a.onBeforeSendFileMessage, imageCompression = _a.imageCompression;
1019
- var logger = _b.logger, pubSub = _b.pubSub, scrollRef = _b.scrollRef, messagesDispatcher = _b.messagesDispatcher;
1020
- var sendMessage = useCallback(function (compressedFile, quoteMessage) {
1021
- if (quoteMessage === void 0) { quoteMessage = null; }
1022
- return new Promise(function (resolve, reject) {
1023
- // Create FileMessageParams
1024
- var params = onBeforeSendFileMessage === null || onBeforeSendFileMessage === void 0 ? void 0 : onBeforeSendFileMessage(compressedFile, quoteMessage);
1025
- if (!params) {
1026
- params = { file: compressedFile };
1027
- if (quoteMessage) {
1028
- params.isReplyToChannel = true;
1029
- params.parentMessageId = quoteMessage.messageId;
1030
- }
1031
- }
1032
- // Send FileMessage
1033
- logger.info('Channel: Uploading file message start!', params);
1034
- currentGroupChannel
1035
- .sendFileMessage(params)
1036
- .onPending(function (pendingMessage) {
1037
- pubSub.publish(pubSubTopics.SEND_MESSAGE_START, {
1038
- /* pubSub is used instead of messagesDispatcher
1039
- to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
1040
- message: __assign(__assign({}, pendingMessage), { url: URL.createObjectURL(compressedFile),
1041
- // pending thumbnail message seems to be failed
1042
- requestState: 'pending' }),
1043
- channel: currentGroupChannel,
1044
- publishingModules: [PublishingModuleType.CHANNEL],
1045
- });
1046
- setTimeout(function () { return scrollIntoLast(0, scrollRef); }, 1000);
1047
- })
1048
- .onFailed(function (err, failedMessage) {
1049
- logger.error('Channel: Sending file message failed!', { failedMessage: failedMessage, err: err });
1050
- // TODO: v4 - remove logic that modifies the original object.
1051
- // It makes the code difficult to track, likely causing unpredictable side effects.
1052
- // @ts-ignore eslint-disable-next-line no-param-reassign
1053
- failedMessage.localUrl = URL.createObjectURL(compressedFile);
1054
- // @ts-ignore eslint-disable-next-line no-param-reassign
1055
- failedMessage.file = compressedFile;
1056
- messagesDispatcher({
1057
- type: SEND_MESSAGE_FAILURE,
1058
- payload: failedMessage,
1059
- });
1060
- reject(err);
1061
- })
1062
- .onSucceeded(function (succeededMessage) {
1063
- logger.info('Channel: Sending file message success!', succeededMessage);
1064
- messagesDispatcher({
1065
- type: SEND_MESSAGE_SUCCESS,
1066
- payload: succeededMessage,
1067
- });
1068
- resolve(succeededMessage);
1069
- });
1070
- });
1071
- }, [currentGroupChannel, onBeforeSendFileMessage, imageCompression]);
1072
- return [sendMessage];
1073
- }
1074
-
1075
- function useToggleReactionCallback(_a, _b) {
1076
- var currentGroupChannel = _a.currentGroupChannel;
1077
- var logger = _b.logger;
1078
- return useCallback(function (message, key, isReacted) {
1079
- if (isReacted) {
1080
- currentGroupChannel
1081
- .deleteReaction(message, key)
1082
- .then(function (res) {
1083
- logger.info('Delete reaction success', res);
1084
- })
1085
- .catch(function (err) {
1086
- logger.warning('Delete reaction failed', err);
1087
- });
1088
- }
1089
- else {
1090
- currentGroupChannel
1091
- .addReaction(message, key)
1092
- .then(function (res) {
1093
- logger.info('Add reaction success', res);
1094
- })
1095
- .catch(function (err) {
1096
- logger.warning('Add reaction failed', err);
1097
- });
1098
- }
1099
- }, [currentGroupChannel]);
1100
- }
1101
-
1102
- // To prevent multiple clicks on the message in the channel while scrolling
1103
- function deactivateClick(scrollRef) {
1104
- var element = scrollRef.current;
1105
- var parentNode = element === null || element === void 0 ? void 0 : element.parentNode;
1106
- if (element && parentNode) {
1107
- element.style.pointerEvents = 'none';
1108
- parentNode.style.cursor = 'wait';
1109
- }
1110
- }
1111
- function activateClick(scrollRef) {
1112
- var element = scrollRef.current;
1113
- var parentNode = element === null || element === void 0 ? void 0 : element.parentNode;
1114
- if (element && parentNode) {
1115
- element.style.pointerEvents = 'auto';
1116
- parentNode.style.cursor = 'auto';
1117
- }
1118
- }
1119
- function useScrollToMessage(_a, _b) {
1120
- var setInitialTimeStamp = _a.setInitialTimeStamp, setAnimatedMessageId = _a.setAnimatedMessageId, allMessages = _a.allMessages, scrollRef = _a.scrollRef;
1121
- var logger = _b.logger;
1122
- return useCallback(function (createdAt, messageId) {
1123
- var isPresent = allMessages.find(function (m) { return (m.messageId === messageId); });
1124
- setAnimatedMessageId(null);
1125
- setTimeout(function () {
1126
- try {
1127
- logger.info('Channel: scroll to message - disabling mouse events');
1128
- deactivateClick(scrollRef);
1129
- if (isPresent) {
1130
- logger.info('Channel: scroll to message - message is present');
1131
- setAnimatedMessageId(messageId);
1132
- scrollToRenderedMessage(scrollRef, createdAt);
1133
- }
1134
- else {
1135
- logger.info('Channel: scroll to message - fetching older messages');
1136
- setInitialTimeStamp(null);
1137
- setInitialTimeStamp(createdAt);
1138
- setAnimatedMessageId(messageId);
1139
- }
1140
- }
1141
- finally {
1142
- logger.info('Channel: scroll to message - enabled mouse events');
1143
- activateClick(scrollRef);
1144
- }
1145
- });
1146
- }, [
1147
- setInitialTimeStamp,
1148
- setAnimatedMessageId,
1149
- allMessages,
1150
- ]);
1151
- }
1152
-
1153
- var useSendVoiceMessageCallback = function (_a, _b) {
1154
- var currentGroupChannel = _a.currentGroupChannel, onBeforeSendVoiceMessage = _a.onBeforeSendVoiceMessage;
1155
- var logger = _b.logger, pubSub = _b.pubSub, scrollRef = _b.scrollRef, messagesDispatcher = _b.messagesDispatcher;
1156
- var sendMessage = useCallback(function (file, duration, quoteMessage) {
1157
- if (!currentGroupChannel) {
1158
- return;
1159
- }
1160
- var messageParams = (onBeforeSendVoiceMessage
1161
- && typeof onBeforeSendVoiceMessage === 'function')
1162
- ? onBeforeSendVoiceMessage(file, quoteMessage)
1163
- : {
1164
- file: file,
1165
- fileName: VOICE_MESSAGE_FILE_NAME,
1166
- mimeType: VOICE_MESSAGE_MIME_TYPE,
1167
- metaArrays: [
1168
- new MessageMetaArray({
1169
- key: META_ARRAY_VOICE_DURATION_KEY,
1170
- value: ["".concat(duration)],
1171
- }),
1172
- new MessageMetaArray({
1173
- key: META_ARRAY_MESSAGE_TYPE_KEY,
1174
- value: [META_ARRAY_MESSAGE_TYPE_VALUE__VOICE],
1175
- }),
1176
- ],
1177
- };
1178
- if (quoteMessage) {
1179
- messageParams.isReplyToChannel = true;
1180
- messageParams.parentMessageId = quoteMessage.messageId;
1181
- }
1182
- logger.info('Channel: Start sending voice message', messageParams);
1183
- currentGroupChannel.sendFileMessage(messageParams)
1184
- .onPending(function (pendingMessage) {
1185
- pubSub.publish(pubSubTopics.SEND_MESSAGE_START, {
1186
- /* pubSub is used instead of messagesDispatcher
1187
- to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
1188
- message: pendingMessage,
1189
- channel: currentGroupChannel,
1190
- publishingModules: [PublishingModuleType.CHANNEL],
1191
- });
1192
- setTimeout(function () { return scrollIntoLast(0, scrollRef); }, 1000);
1193
- })
1194
- .onFailed(function (err, failedMessage) {
1195
- logger.error('Channel: Sending voice message failed!', { failedMessage: failedMessage, err: err });
1196
- messagesDispatcher({
1197
- type: SEND_MESSAGE_FAILURE,
1198
- payload: failedMessage,
1199
- });
1200
- })
1201
- .onSucceeded(function (succeededMessage) {
1202
- logger.info('Channel: Sending voice message success!', succeededMessage);
1203
- messagesDispatcher({
1204
- type: SEND_MESSAGE_SUCCESS,
1205
- payload: succeededMessage,
1206
- });
1207
- });
1208
- }, [
1209
- currentGroupChannel,
1210
- onBeforeSendVoiceMessage,
1211
- ]);
1212
- return [sendMessage];
1213
- };
1214
-
1215
- var useHandleChannelPubsubEvents = function (_a) {
1216
- var channelUrl = _a.channelUrl, sdkInit = _a.sdkInit, pubSub = _a.pubSub, dispatcher = _a.dispatcher, scrollRef = _a.scrollRef;
1217
- useEffect(function () {
1218
- var subscriber = new Map();
1219
- if (pubSub === null || pubSub === void 0 ? void 0 : pubSub.subscribe) {
1220
- subscriber.set(PUBSUB_TOPICS.SEND_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_USER_MESSAGE, function (props) {
1221
- var channel = props.channel, message = props.message;
1222
- scrollIntoLast(0, scrollRef);
1223
- if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
1224
- dispatcher({
1225
- type: SEND_MESSAGE_SUCCESS,
1226
- payload: message,
1227
- });
1228
- }
1229
- }));
1230
- subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_START, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_START, function (props) {
1231
- var channel = props.channel, message = props.message, publishingModules = props.publishingModules;
1232
- if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url) && shouldPubSubPublishToChannel(publishingModules)) {
1233
- dispatcher({
1234
- type: SEND_MESSAGE_START,
1235
- payload: message,
1236
- });
1237
- }
1238
- }));
1239
- subscriber.set(PUBSUB_TOPICS.ON_FILE_INFO_UPLOADED, pubSub.subscribe(PUBSUB_TOPICS.ON_FILE_INFO_UPLOADED, function (props) {
1240
- var response = props.response, publishingModules = props.publishingModules;
1241
- if (channelUrl === response.channelUrl && shouldPubSubPublishToChannel(publishingModules)) {
1242
- dispatcher({
1243
- type: ON_FILE_INFO_UPLOADED,
1244
- payload: response,
1245
- });
1246
- }
1247
- }));
1248
- subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, function (props) {
1249
- var channel = props.channel, message = props.message, publishingModules = props.publishingModules;
1250
- if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url) && shouldPubSubPublishToChannel(publishingModules)) {
1251
- dispatcher({
1252
- type: SEND_MESSAGE_FAILURE,
1253
- payload: message,
1254
- });
1255
- }
1256
- }));
1257
- subscriber.set(PUBSUB_TOPICS.SEND_FILE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_FILE_MESSAGE, function (props) {
1258
- var channel = props.channel, message = props.message;
1259
- scrollIntoLast(0, scrollRef);
1260
- if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
1261
- dispatcher({
1262
- type: SEND_MESSAGE_SUCCESS,
1263
- payload: message,
1264
- });
1265
- }
1266
- }));
1267
- subscriber.set(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, function (props) {
1268
- var channel = props.channel, message = props.message, fromSelector = props.fromSelector;
1269
- if (fromSelector && (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) && channel.isGroupChannel()) {
1270
- dispatcher({
1271
- type: ON_MESSAGE_UPDATED,
1272
- payload: { channel: channel, message: message },
1273
- });
1274
- }
1275
- }));
1276
- subscriber.set(PUBSUB_TOPICS.DELETE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.DELETE_MESSAGE, function (props) {
1277
- var channel = props.channel, messageId = props.messageId;
1278
- if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
1279
- dispatcher({
1280
- type: ON_MESSAGE_DELETED,
1281
- payload: messageId,
1282
- });
1283
- }
1284
- }));
1285
- }
1286
- return function () {
1287
- subscriber.forEach(function (s) {
1288
- try {
1289
- s.remove();
1290
- }
1291
- catch (_a) {
1292
- //
1293
- }
1294
- });
1295
- };
1296
- }, [
1297
- channelUrl,
1298
- sdkInit,
1299
- ]);
1300
- };
1301
-
1302
- var ChannelContext = React__default.createContext(undefined);
1303
- var ChannelProvider = function (props) {
1304
- var _a, _b, _c, _d, _e, _f;
1305
- var channelUrl = props.channelUrl, children = props.children, isReactionEnabled = props.isReactionEnabled, _g = props.isMessageGroupingEnabled, isMessageGroupingEnabled = _g === void 0 ? true : _g, isMultipleFilesMessageEnabled = props.isMultipleFilesMessageEnabled, showSearchIcon = props.showSearchIcon, animatedMessage = props.animatedMessage, highlightedMessage = props.highlightedMessage, startingPoint = props.startingPoint, onBeforeSendUserMessage = props.onBeforeSendUserMessage, onBeforeSendFileMessage = props.onBeforeSendFileMessage, onBeforeUpdateUserMessage = props.onBeforeUpdateUserMessage, onBeforeSendVoiceMessage = props.onBeforeSendVoiceMessage, onBeforeSendMultipleFilesMessage = props.onBeforeSendMultipleFilesMessage, onChatHeaderActionClick = props.onChatHeaderActionClick, onSearchClick = props.onSearchClick, onBackClick = props.onBackClick, channelReplyType = props.replyType, threadReplySelectType = props.threadReplySelectType, queries = props.queries, filterMessageList = props.filterMessageList, _h = props.disableMarkAsRead, disableMarkAsRead = _h === void 0 ? false : _h, onReplyInThread = props.onReplyInThread, onQuoteMessageClick = props.onQuoteMessageClick, onMessageAnimated = props.onMessageAnimated, onMessageHighlighted = props.onMessageHighlighted, _j = props.scrollBehavior, scrollBehavior = _j === void 0 ? 'auto' : _j, _k = props.reconnectOnIdle, reconnectOnIdle = _k === void 0 ? true : _k;
1306
- var globalStore = useSendbirdStateContext();
1307
- var config = globalStore.config;
1308
- var replyType = channelReplyType !== null && channelReplyType !== void 0 ? channelReplyType : config.replyType;
1309
- var pubSub = config.pubSub, logger = config.logger, userId = config.userId, isOnline = config.isOnline, imageCompression = config.imageCompression, isMentionEnabled = config.isMentionEnabled, onUserProfileMessage = config.onUserProfileMessage, markAsReadScheduler = config.markAsReadScheduler, groupChannel = config.groupChannel;
1310
- var sdk = (_b = (_a = globalStore === null || globalStore === void 0 ? void 0 : globalStore.stores) === null || _a === void 0 ? void 0 : _a.sdkStore) === null || _b === void 0 ? void 0 : _b.sdk;
1311
- var sdkInit = (_d = (_c = globalStore === null || globalStore === void 0 ? void 0 : globalStore.stores) === null || _c === void 0 ? void 0 : _c.sdkStore) === null || _d === void 0 ? void 0 : _d.initialized;
1312
- var globalConfigs = globalStore === null || globalStore === void 0 ? void 0 : globalStore.config;
1313
- var _l = useState(startingPoint), initialTimeStamp = _l[0], setInitialTimeStamp = _l[1];
1314
- useEffect(function () {
1315
- setInitialTimeStamp(startingPoint);
1316
- }, [startingPoint, channelUrl]);
1317
- var _m = useState(0), animatedMessageId = _m[0], setAnimatedMessageId = _m[1];
1318
- var _o = useState(highlightedMessage), highLightedMessageId = _o[0], setHighLightedMessageId = _o[1];
1319
- useEffect(function () {
1320
- setHighLightedMessageId(highlightedMessage);
1321
- }, [highlightedMessage]);
1322
- var userFilledMessageListQuery = queries === null || queries === void 0 ? void 0 : queries.messageListParams;
1323
- var _p = useState(null), quoteMessage = _p[0], setQuoteMessage = _p[1];
1324
- var _q = useState(false), isScrolled = _q[0], setIsScrolled = _q[1];
1325
- var _r = useReducer(channelReducer, initialState), messagesStore = _r[0], messagesDispatcher = _r[1];
1326
- var scrollRef = useRef(null);
1327
- var allMessages = messagesStore.allMessages, localMessages = messagesStore.localMessages, loading = messagesStore.loading, initialized = messagesStore.initialized, unreadSince = messagesStore.unreadSince, unreadSinceDate = messagesStore.unreadSinceDate, isInvalid = messagesStore.isInvalid, currentGroupChannel = messagesStore.currentGroupChannel, hasMorePrev = messagesStore.hasMorePrev, oldestMessageTimeStamp = messagesStore.oldestMessageTimeStamp, hasMoreNext = messagesStore.hasMoreNext, latestMessageTimeStamp = messagesStore.latestMessageTimeStamp, emojiContainer = messagesStore.emojiContainer, readStatus = messagesStore.readStatus, typingMembers = messagesStore.typingMembers;
1328
- var isSuper = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isSuper) || false;
1329
- var isBroadcast = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isBroadcast) || false;
1330
- var usingReaction = getIsReactionEnabled({
1331
- isBroadcast: isBroadcast,
1332
- isSuper: isSuper,
1333
- globalLevel: config === null || config === void 0 ? void 0 : config.isReactionEnabled,
1334
- moduleLevel: isReactionEnabled,
1335
- });
1336
- var emojiAllMap = useMemo(function () { return (usingReaction
1337
- ? getAllEmojisMapFromEmojiContainer(emojiContainer)
1338
- : new Map()); }, [emojiContainer]);
1339
- var nicknamesMap = useMemo(function () { return ((usingReaction && currentGroupChannel)
1340
- ? getNicknamesMapFromMembers(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members)
1341
- : new Map()); }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members]);
1342
- // Animate message
1343
- useEffect(function () {
1344
- if (animatedMessage) {
1345
- setAnimatedMessageId(animatedMessage);
1346
- }
1347
- }, [animatedMessage]);
1348
- // Scrollup is default scroll for channel
1349
- var onScrollCallback = useScrollCallback({
1350
- currentGroupChannel: currentGroupChannel,
1351
- oldestMessageTimeStamp: oldestMessageTimeStamp,
1352
- userFilledMessageListQuery: userFilledMessageListQuery,
1353
- replyType: replyType,
1354
- }, {
1355
- hasMorePrev: hasMorePrev,
1356
- logger: logger,
1357
- messagesDispatcher: messagesDispatcher,
1358
- sdk: sdk,
1359
- });
1360
- var scrollToMessage = useScrollToMessage({
1361
- setInitialTimeStamp: setInitialTimeStamp,
1362
- setAnimatedMessageId: setAnimatedMessageId,
1363
- allMessages: allMessages,
1364
- scrollRef: scrollRef,
1365
- }, { logger: logger });
1366
- // onScrollDownCallback is added for navigation to different timestamps on messageSearch
1367
- // hasMorePrev, onScrollCallback -> scroll up(default behavior)
1368
- // hasMoreNext, onScrollDownCallback -> scroll down
1369
- var onScrollDownCallback = useScrollDownCallback({
1370
- currentGroupChannel: currentGroupChannel,
1371
- latestMessageTimeStamp: latestMessageTimeStamp,
1372
- userFilledMessageListQuery: userFilledMessageListQuery,
1373
- hasMoreNext: hasMoreNext,
1374
- replyType: replyType,
1375
- }, {
1376
- logger: logger,
1377
- messagesDispatcher: messagesDispatcher,
1378
- sdk: sdk,
1379
- });
1380
- var toggleReaction = useToggleReactionCallback({ currentGroupChannel: currentGroupChannel }, { logger: logger });
1381
- // to create message-datasource
1382
- // this hook sets currentGroupChannel asynchronously
1383
- useGetChannel({ channelUrl: channelUrl, sdkInit: sdkInit, disableMarkAsRead: disableMarkAsRead }, { messagesDispatcher: messagesDispatcher, sdk: sdk, logger: logger, markAsReadScheduler: markAsReadScheduler });
1384
- // to set quote message as null
1385
- useEffect(function () {
1386
- setQuoteMessage(null);
1387
- }, [channelUrl]);
1388
- // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher
1389
- useHandleChannelEvents({
1390
- currentGroupChannel: currentGroupChannel,
1391
- sdkInit: sdkInit,
1392
- currentUserId: userId,
1393
- disableMarkAsRead: disableMarkAsRead,
1394
- }, {
1395
- messagesDispatcher: messagesDispatcher,
1396
- sdk: sdk,
1397
- logger: logger,
1398
- scrollRef: scrollRef,
1399
- setQuoteMessage: setQuoteMessage,
1400
- });
1401
- // hook that fetches messages when channel changes
1402
- // to be clear here useGetChannel sets currentGroupChannel
1403
- // and useInitialMessagesFetch executes when currentGroupChannel changes
1404
- // p.s This one executes on initialTimeStamp change too
1405
- useInitialMessagesFetch({
1406
- currentGroupChannel: currentGroupChannel,
1407
- userFilledMessageListQuery: userFilledMessageListQuery,
1408
- initialTimeStamp: initialTimeStamp,
1409
- replyType: replyType,
1410
- setIsScrolled: setIsScrolled,
1411
- }, {
1412
- logger: logger,
1413
- scrollRef: scrollRef,
1414
- messagesDispatcher: messagesDispatcher,
1415
- });
1416
- // handles API calls from withSendbird
1417
- useHandleChannelPubsubEvents({
1418
- channelUrl: channelUrl,
1419
- sdkInit: sdkInit,
1420
- pubSub: pubSub,
1421
- dispatcher: messagesDispatcher,
1422
- scrollRef: scrollRef,
1423
- });
1424
- // handling connection breaks
1425
- useHandleReconnect({ isOnline: isOnline, replyType: replyType, disableMarkAsRead: disableMarkAsRead, reconnectOnIdle: reconnectOnIdle }, {
1426
- logger: logger,
1427
- sdk: sdk,
1428
- scrollRef: scrollRef,
1429
- currentGroupChannel: currentGroupChannel,
1430
- messagesDispatcher: messagesDispatcher,
1431
- userFilledMessageListQuery: userFilledMessageListQuery,
1432
- markAsReadScheduler: markAsReadScheduler,
1433
- });
1434
- // callbacks for Message CURD actions
1435
- var deleteMessage = useDeleteMessageCallback({ currentGroupChannel: currentGroupChannel, messagesDispatcher: messagesDispatcher }, { logger: logger });
1436
- var updateMessage = useUpdateMessageCallback({ currentGroupChannel: currentGroupChannel, messagesDispatcher: messagesDispatcher, onBeforeUpdateUserMessage: onBeforeUpdateUserMessage, isMentionEnabled: isMentionEnabled }, { logger: logger, pubSub: pubSub });
1437
- var resendMessage = useResendMessageCallback({ currentGroupChannel: currentGroupChannel, messagesDispatcher: messagesDispatcher }, { logger: logger, pubSub: pubSub });
1438
- var _s = useSendMessageCallback({
1439
- currentGroupChannel: currentGroupChannel,
1440
- isMentionEnabled: isMentionEnabled,
1441
- onBeforeSendUserMessage: onBeforeSendUserMessage,
1442
- }, {
1443
- logger: logger,
1444
- pubSub: pubSub,
1445
- scrollRef: scrollRef,
1446
- messagesDispatcher: messagesDispatcher,
1447
- }), messageInputRef = _s[0], sendMessage = _s[1];
1448
- var sendFileMessage = useSendFileMessageCallback({
1449
- currentGroupChannel: currentGroupChannel,
1450
- imageCompression: imageCompression,
1451
- onBeforeSendFileMessage: onBeforeSendFileMessage,
1452
- }, {
1453
- logger: logger,
1454
- pubSub: pubSub,
1455
- scrollRef: scrollRef,
1456
- messagesDispatcher: messagesDispatcher,
1457
- })[0];
1458
- var sendVoiceMessage = useSendVoiceMessageCallback({
1459
- currentGroupChannel: currentGroupChannel,
1460
- onBeforeSendVoiceMessage: onBeforeSendVoiceMessage,
1461
- }, {
1462
- logger: logger,
1463
- pubSub: pubSub,
1464
- scrollRef: scrollRef,
1465
- messagesDispatcher: messagesDispatcher,
1466
- })[0];
1467
- var sendMultipleFilesMessage = useSendMultipleFilesMessage({
1468
- currentChannel: currentGroupChannel,
1469
- onBeforeSendMultipleFilesMessage: onBeforeSendMultipleFilesMessage,
1470
- publishingModules: [PublishingModuleType.CHANNEL],
1471
- }, {
1472
- logger: logger,
1473
- pubSub: pubSub,
1474
- scrollRef: scrollRef,
1475
- })[0];
1476
- return (React__default.createElement(ChannelContext.Provider, { value: {
1477
- // props
1478
- channelUrl: channelUrl,
1479
- isReactionEnabled: usingReaction,
1480
- isMessageGroupingEnabled: isMessageGroupingEnabled,
1481
- isMultipleFilesMessageEnabled: isMultipleFilesMessageEnabled,
1482
- showSearchIcon: showSearchIcon !== null && showSearchIcon !== void 0 ? showSearchIcon : globalConfigs.showSearchIcon,
1483
- highlightedMessage: highlightedMessage,
1484
- startingPoint: startingPoint,
1485
- onBeforeSendUserMessage: onBeforeSendUserMessage,
1486
- onBeforeSendFileMessage: onBeforeSendFileMessage,
1487
- onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
1488
- onChatHeaderActionClick: onChatHeaderActionClick,
1489
- onSearchClick: onSearchClick,
1490
- onBackClick: onBackClick,
1491
- replyType: replyType,
1492
- threadReplySelectType: (_e = threadReplySelectType !== null && threadReplySelectType !== void 0 ? threadReplySelectType : getCaseResolvedThreadReplySelectType(groupChannel.threadReplySelectType).upperCase) !== null && _e !== void 0 ? _e : ThreadReplySelectType.THREAD,
1493
- queries: queries,
1494
- filterMessageList: filterMessageList,
1495
- disableMarkAsRead: disableMarkAsRead,
1496
- onReplyInThread: onReplyInThread,
1497
- onQuoteMessageClick: onQuoteMessageClick,
1498
- onMessageAnimated: onMessageAnimated,
1499
- onMessageHighlighted: onMessageHighlighted,
1500
- // messagesStore
1501
- allMessages: allMessages,
1502
- localMessages: localMessages,
1503
- loading: loading,
1504
- initialized: initialized,
1505
- unreadSince: unreadSince,
1506
- unreadSinceDate: unreadSinceDate,
1507
- isInvalid: isInvalid,
1508
- currentGroupChannel: currentGroupChannel,
1509
- hasMorePrev: hasMorePrev,
1510
- hasMoreNext: hasMoreNext,
1511
- oldestMessageTimeStamp: oldestMessageTimeStamp,
1512
- latestMessageTimeStamp: latestMessageTimeStamp,
1513
- emojiContainer: emojiContainer,
1514
- readStatus: readStatus,
1515
- typingMembers: typingMembers,
1516
- // utils
1517
- scrollToMessage: scrollToMessage,
1518
- quoteMessage: quoteMessage,
1519
- setQuoteMessage: setQuoteMessage,
1520
- deleteMessage: deleteMessage,
1521
- updateMessage: updateMessage,
1522
- resendMessage: resendMessage,
1523
- messageInputRef: messageInputRef,
1524
- sendMessage: sendMessage,
1525
- sendFileMessage: sendFileMessage,
1526
- sendVoiceMessage: sendVoiceMessage,
1527
- sendMultipleFilesMessage: sendMultipleFilesMessage,
1528
- initialTimeStamp: initialTimeStamp,
1529
- messageActionTypes: channelActions,
1530
- messagesDispatcher: messagesDispatcher,
1531
- setInitialTimeStamp: setInitialTimeStamp,
1532
- setAnimatedMessageId: setAnimatedMessageId,
1533
- setHighLightedMessageId: setHighLightedMessageId,
1534
- animatedMessageId: animatedMessageId,
1535
- highLightedMessageId: highLightedMessageId,
1536
- nicknamesMap: nicknamesMap,
1537
- emojiAllMap: emojiAllMap,
1538
- onScrollCallback: onScrollCallback,
1539
- onScrollDownCallback: onScrollDownCallback,
1540
- scrollRef: scrollRef,
1541
- scrollBehavior: scrollBehavior,
1542
- toggleReaction: toggleReaction,
1543
- isScrolled: isScrolled,
1544
- setIsScrolled: setIsScrolled,
1545
- } },
1546
- React__default.createElement(UserProfileProvider, { disableUserProfile: (_f = props === null || props === void 0 ? void 0 : props.disableUserProfile) !== null && _f !== void 0 ? _f : config === null || config === void 0 ? void 0 : config.disableUserProfile, renderUserProfile: props === null || props === void 0 ? void 0 : props.renderUserProfile, onUserProfileMessage: onUserProfileMessage }, children)));
1547
- };
1548
- var useChannelContext = function () { return React__default.useContext(ChannelContext); };
1549
-
1550
- export { ChannelProvider as C, getIsReactionEnabled as g, useChannelContext as u };
1551
- //# sourceMappingURL=bundle-J79McRkg.js.map