@sendbird/uikit-react 3.14.3-rc.1 → 3.14.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1061) hide show
  1. package/App.js +377 -378
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +38 -2
  4. package/Channel/components/ChannelHeader.js +36 -34
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +74 -74
  7. package/Channel/components/FileViewer.js +37 -33
  8. package/Channel/components/FileViewer.js.map +1 -1
  9. package/Channel/components/FrozenNotification.js +5 -5
  10. package/Channel/components/Message.js +80 -81
  11. package/Channel/components/Message.js.map +1 -1
  12. package/Channel/components/MessageInput.js +72 -70
  13. package/Channel/components/MessageInput.js.map +1 -1
  14. package/Channel/components/MessageInputWrapper.js +45 -43
  15. package/Channel/components/MessageInputWrapper.js.map +1 -1
  16. package/Channel/components/MessageList.js +249 -250
  17. package/Channel/components/MessageList.js.map +1 -1
  18. package/Channel/components/RemoveMessageModal.js +38 -33
  19. package/Channel/components/RemoveMessageModal.js.map +1 -1
  20. package/Channel/components/SuggestedMentionList.js +29 -30
  21. package/Channel/components/SuggestedMentionList.js.map +1 -1
  22. package/Channel/components/TypingIndicator.js +6 -6
  23. package/Channel/components/UnreadCount.js +7 -7
  24. package/Channel/context.js +1453 -1453
  25. package/Channel/hooks/useHandleUploadFiles.js +125 -120
  26. package/Channel/hooks/useHandleUploadFiles.js.map +1 -1
  27. package/Channel/hooks/useInitialMessagesFetch.js +6 -6
  28. package/Channel/utils/compareMessagesForGrouping.js +50 -51
  29. package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  30. package/Channel/utils/getMessagePartsInfo.js +26 -27
  31. package/Channel/utils/getMessagePartsInfo.js.map +1 -1
  32. package/Channel.js +71 -71
  33. package/ChannelList/components/AddChannel.js +29 -26
  34. package/ChannelList/components/AddChannel.js.map +1 -1
  35. package/ChannelList/components/ChannelListHeader.js +13 -8
  36. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  37. package/ChannelList/components/ChannelListUI.js +109 -106
  38. package/ChannelList/components/ChannelListUI.js.map +1 -1
  39. package/ChannelList/components/ChannelPreview.js +43 -38
  40. package/ChannelList/components/ChannelPreview.js.map +1 -1
  41. package/ChannelList/components/ChannelPreviewAction.js +16 -12
  42. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  43. package/ChannelList/context.js +9 -10
  44. package/ChannelList/context.js.map +1 -1
  45. package/ChannelList.js +43 -40
  46. package/ChannelList.js.map +1 -1
  47. package/ChannelSettings/components/ChannelProfile.js +57 -47
  48. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  49. package/ChannelSettings/components/ChannelSettingsHeader.js +24 -21
  50. package/ChannelSettings/components/ChannelSettingsHeader.js.map +1 -1
  51. package/ChannelSettings/components/ChannelSettingsUI.js +78 -75
  52. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  53. package/ChannelSettings/components/EditDetailsModal.js +90 -80
  54. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  55. package/ChannelSettings/components/LeaveChannel.js +63 -53
  56. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  57. package/ChannelSettings/components/ModerationPanel.js +447 -445
  58. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  59. package/ChannelSettings/components/UserListItem.js +49 -49
  60. package/ChannelSettings/components/UserPanel.js +47 -45
  61. package/ChannelSettings/components/UserPanel.js.map +1 -1
  62. package/ChannelSettings/context.js +105 -105
  63. package/ChannelSettings.js +35 -32
  64. package/ChannelSettings.js.map +1 -1
  65. package/CreateChannel/components/CreateChannelUI.js +33 -29
  66. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  67. package/CreateChannel/components/InviteUsers.js +143 -139
  68. package/CreateChannel/components/InviteUsers.js.map +1 -1
  69. package/CreateChannel/components/SelectChannelType.js +76 -65
  70. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  71. package/CreateChannel/context.js +4 -4
  72. package/CreateChannel.js +27 -23
  73. package/CreateChannel.js.map +1 -1
  74. package/CreateOpenChannel/components/CreateOpenChannelUI.js +63 -52
  75. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  76. package/CreateOpenChannel/context.js +41 -41
  77. package/CreateOpenChannel.js +28 -17
  78. package/CreateOpenChannel.js.map +1 -1
  79. package/EditUserProfile/components/EditUserProfileUI.js +110 -99
  80. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  81. package/EditUserProfile/context.js +12 -12
  82. package/EditUserProfile.js +27 -16
  83. package/EditUserProfile.js.map +1 -1
  84. package/GroupChannel/components/FileViewer.js +62 -58
  85. package/GroupChannel/components/FileViewer.js.map +1 -1
  86. package/GroupChannel/components/FrozenNotification.js +10 -10
  87. package/GroupChannel/components/GroupChannelHeader.js +30 -28
  88. package/GroupChannel/components/GroupChannelHeader.js.map +1 -1
  89. package/GroupChannel/components/GroupChannelUI.js +68 -68
  90. package/GroupChannel/components/Message.js +66 -77
  91. package/GroupChannel/components/Message.js.map +1 -1
  92. package/GroupChannel/components/MessageInputWrapper.js +63 -62
  93. package/GroupChannel/components/MessageInputWrapper.js.map +1 -1
  94. package/GroupChannel/components/MessageList.js +154 -155
  95. package/GroupChannel/components/MessageList.js.map +1 -1
  96. package/GroupChannel/components/RemoveMessageModal.js +32 -27
  97. package/GroupChannel/components/RemoveMessageModal.js.map +1 -1
  98. package/GroupChannel/components/SuggestedMentionList.js +14 -14
  99. package/GroupChannel/components/SuggestedReplies.js +15 -14
  100. package/GroupChannel/components/SuggestedReplies.js.map +1 -1
  101. package/GroupChannel/components/TypingIndicator.js +59 -59
  102. package/GroupChannel/components/UnreadCount.js +26 -26
  103. package/GroupChannel/context.js +568 -568
  104. package/GroupChannel.js +65 -65
  105. package/GroupChannelList/components/AddGroupChannel.js +30 -27
  106. package/GroupChannelList/components/AddGroupChannel.js.map +1 -1
  107. package/GroupChannelList/components/GroupChannelListHeader.js +34 -28
  108. package/GroupChannelList/components/GroupChannelListHeader.js.map +1 -1
  109. package/GroupChannelList/components/GroupChannelListItem.js +39 -35
  110. package/GroupChannelList/components/GroupChannelListItem.js.map +1 -1
  111. package/GroupChannelList/components/GroupChannelListUI.js +86 -83
  112. package/GroupChannelList/components/GroupChannelListUI.js.map +1 -1
  113. package/GroupChannelList/components/GroupChannelPreviewAction.js +48 -44
  114. package/GroupChannelList/components/GroupChannelPreviewAction.js.map +1 -1
  115. package/GroupChannelList/context.js +81 -97
  116. package/GroupChannelList/context.js.map +1 -1
  117. package/GroupChannelList.js +43 -40
  118. package/GroupChannelList.js.map +1 -1
  119. package/Message/context.js +21 -21
  120. package/Message/hooks/useDirtyGetMentions.js +52 -52
  121. package/MessageSearch/components/MessageSearchUI.js +71 -72
  122. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  123. package/MessageSearch/context.js +247 -247
  124. package/MessageSearch.js +59 -59
  125. package/OpenChannel/components/FrozenChannelNotification.js +9 -9
  126. package/OpenChannel/components/OpenChannelHeader.js +43 -38
  127. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  128. package/OpenChannel/components/OpenChannelInput.js +47 -45
  129. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  130. package/OpenChannel/components/OpenChannelMessage.js +158 -157
  131. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  132. package/OpenChannel/components/OpenChannelMessageList.js +95 -94
  133. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  134. package/OpenChannel/components/OpenChannelUI.js +71 -70
  135. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  136. package/OpenChannel/context.js +23 -18
  137. package/OpenChannel/context.js.map +1 -1
  138. package/OpenChannel.js +44 -43
  139. package/OpenChannel.js.map +1 -1
  140. package/OpenChannelList/components/OpenChannelListUI.js +102 -92
  141. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  142. package/OpenChannelList/components/OpenChannelPreview.js +20 -20
  143. package/OpenChannelList/context.js +3 -3
  144. package/OpenChannelList.js +34 -24
  145. package/OpenChannelList.js.map +1 -1
  146. package/OpenChannelSettings/components/EditDetailsModal.js +82 -73
  147. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  148. package/OpenChannelSettings/components/OpenChannelProfile.js +47 -38
  149. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  150. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +61 -57
  151. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  152. package/OpenChannelSettings/components/OperatorUI.js +454 -450
  153. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  154. package/OpenChannelSettings/components/ParticipantUI.js +21 -17
  155. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  156. package/OpenChannelSettings/context.js +114 -114
  157. package/OpenChannelSettings.js +29 -25
  158. package/OpenChannelSettings.js.map +1 -1
  159. package/README.md +2 -13
  160. package/SendbirdProvider.js +1139 -1183
  161. package/SendbirdProvider.js.map +1 -1
  162. package/Thread/components/ParentMessageInfo.js +240 -239
  163. package/Thread/components/ParentMessageInfo.js.map +1 -1
  164. package/Thread/components/ParentMessageInfoItem.js +148 -148
  165. package/Thread/components/ThreadHeader.js +23 -26
  166. package/Thread/components/ThreadHeader.js.map +1 -1
  167. package/Thread/components/ThreadList.js +122 -122
  168. package/Thread/components/ThreadListItem.js +341 -340
  169. package/Thread/components/ThreadListItem.js.map +1 -1
  170. package/Thread/components/ThreadMessageInput.js +167 -165
  171. package/Thread/components/ThreadMessageInput.js.map +1 -1
  172. package/Thread/components/ThreadUI.js +207 -207
  173. package/Thread/context/types.js +21 -21
  174. package/Thread/context.js +1283 -1281
  175. package/Thread/context.js.map +1 -1
  176. package/Thread.js +73 -73
  177. package/VoicePlayer/context.js +3 -3
  178. package/VoicePlayer/useVoicePlayer.js +68 -60
  179. package/VoicePlayer/useVoicePlayer.js.map +1 -1
  180. package/VoiceRecorder/context.js +21 -127
  181. package/VoiceRecorder/context.js.map +1 -1
  182. package/VoiceRecorder/useVoiceRecorder.js +105 -96
  183. package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  184. package/chunks/{bundle-CNVxTIOs.js → bundle--nVHk3fx.js} +161 -162
  185. package/chunks/{bundle-CNVxTIOs.js.map → bundle--nVHk3fx.js.map} +1 -1
  186. package/chunks/{bundle-BRaG5EHs.js → bundle-2uJIsyo2.js} +27 -27
  187. package/chunks/bundle-2uJIsyo2.js.map +1 -0
  188. package/chunks/bundle-3amhHjNa.js +120 -0
  189. package/chunks/bundle-3amhHjNa.js.map +1 -0
  190. package/chunks/{bundle-Dd7yWAzk.js → bundle-7oF7KbGv.js} +2 -2
  191. package/chunks/{bundle-Dd7yWAzk.js.map → bundle-7oF7KbGv.js.map} +1 -1
  192. package/chunks/{bundle-DVDuILQh.js → bundle-9MhshueU.js} +21 -21
  193. package/chunks/bundle-9MhshueU.js.map +1 -0
  194. package/chunks/{bundle-BRt6gbIr.js → bundle-B5N2u5f-.js} +1 -1
  195. package/chunks/bundle-B5N2u5f-.js.map +1 -0
  196. package/chunks/{bundle-BZt7yK_Y.js → bundle-B7barEsR.js} +19 -19
  197. package/chunks/bundle-B7barEsR.js.map +1 -0
  198. package/chunks/{bundle-DX0g6QGP.js → bundle-B8gKMDtp.js} +28 -28
  199. package/chunks/bundle-B8gKMDtp.js.map +1 -0
  200. package/chunks/{bundle-JfMKdEOr.js → bundle-BAvMd_j0.js} +45 -46
  201. package/chunks/bundle-BAvMd_j0.js.map +1 -0
  202. package/chunks/{bundle-CpmDD_qj.js → bundle-BHn3F_OF.js} +17 -17
  203. package/chunks/bundle-BHn3F_OF.js.map +1 -0
  204. package/chunks/{bundle-D7HxTsM2.js → bundle-BJ46V6XQ.js} +10 -10
  205. package/chunks/bundle-BJ46V6XQ.js.map +1 -0
  206. package/chunks/{bundle-E_q9aH_b.js → bundle-BKho3Uub.js} +11 -11
  207. package/chunks/bundle-BKho3Uub.js.map +1 -0
  208. package/chunks/{bundle-1Vgo9VWV.js → bundle-BOSnopxk.js} +8 -8
  209. package/chunks/bundle-BOSnopxk.js.map +1 -0
  210. package/chunks/{bundle-zd7rBmLl.js → bundle-BTD0sBED.js} +89 -89
  211. package/chunks/{bundle-zd7rBmLl.js.map → bundle-BTD0sBED.js.map} +1 -1
  212. package/chunks/{bundle-Dh8TY5YU.js → bundle-BTkRy0wv.js} +94 -94
  213. package/chunks/{bundle-Dh8TY5YU.js.map → bundle-BTkRy0wv.js.map} +1 -1
  214. package/chunks/{bundle-Cgpa9xMh.js → bundle-BWCGFXhj.js} +732 -731
  215. package/chunks/bundle-BWCGFXhj.js.map +1 -0
  216. package/chunks/{bundle-DtHyIHaJ.js → bundle-BWuyd0AD.js} +37 -37
  217. package/chunks/bundle-BWuyd0AD.js.map +1 -0
  218. package/chunks/{bundle-DCzxcNn2.js → bundle-BZd5IHBF.js} +83 -83
  219. package/chunks/{bundle-DCzxcNn2.js.map → bundle-BZd5IHBF.js.map} +1 -1
  220. package/chunks/{bundle-P4HvWTGS.js → bundle-B__zC9zD.js} +131 -132
  221. package/chunks/bundle-B__zC9zD.js.map +1 -0
  222. package/chunks/bundle-BbWD2VuS.js +93 -0
  223. package/chunks/bundle-BbWD2VuS.js.map +1 -0
  224. package/chunks/{bundle-Dkj6zqd4.js → bundle-Bi8Wfc2I.js} +1326 -1327
  225. package/chunks/{bundle-Dkj6zqd4.js.map → bundle-Bi8Wfc2I.js.map} +1 -1
  226. package/chunks/{bundle-Dgyb-yNN.js → bundle-BjrRhdgd.js} +258 -258
  227. package/chunks/{bundle-Dgyb-yNN.js.map → bundle-BjrRhdgd.js.map} +1 -1
  228. package/chunks/{bundle-D_MTREEI.js → bundle-BmTGlIgs.js} +920 -923
  229. package/chunks/{bundle-D_MTREEI.js.map → bundle-BmTGlIgs.js.map} +1 -1
  230. package/chunks/{bundle-D_o_gdug.js → bundle-BtY8jyVv.js} +26 -26
  231. package/chunks/{bundle-D_o_gdug.js.map → bundle-BtY8jyVv.js.map} +1 -1
  232. package/chunks/{bundle-HHlRp7vF.js → bundle-BvG71y_P.js} +31 -31
  233. package/chunks/bundle-BvG71y_P.js.map +1 -0
  234. package/chunks/{bundle-BADg8JRM.js → bundle-BvaqGh4L.js} +5 -5
  235. package/chunks/bundle-BvaqGh4L.js.map +1 -0
  236. package/chunks/{bundle-DW4HEvvh.js → bundle-Bx5vhTbU.js} +11 -11
  237. package/chunks/bundle-Bx5vhTbU.js.map +1 -0
  238. package/chunks/{bundle-Du8hBYjM.js → bundle-Byig85JJ.js} +185 -185
  239. package/chunks/{bundle-Du8hBYjM.js.map → bundle-Byig85JJ.js.map} +1 -1
  240. package/chunks/bundle-BymWz1lX.js +30 -0
  241. package/chunks/bundle-BymWz1lX.js.map +1 -0
  242. package/chunks/{bundle-ByTQtdFM.js → bundle-ByvmbZD0.js} +36 -29
  243. package/chunks/bundle-ByvmbZD0.js.map +1 -0
  244. package/chunks/{bundle-BCAy5wyj.js → bundle-C040958G.js} +2 -2
  245. package/chunks/{bundle-BCAy5wyj.js.map → bundle-C040958G.js.map} +1 -1
  246. package/chunks/{bundle-DD0CjCiu.js → bundle-C1ds4cil.js} +1 -1
  247. package/chunks/{bundle-DD0CjCiu.js.map → bundle-C1ds4cil.js.map} +1 -1
  248. package/chunks/{bundle-BnTt0CCZ.js → bundle-C1hw1sij.js} +26 -26
  249. package/chunks/bundle-C1hw1sij.js.map +1 -0
  250. package/chunks/bundle-C4Z-NWqF.js +279 -0
  251. package/chunks/bundle-C4Z-NWqF.js.map +1 -0
  252. package/chunks/{bundle-CwG4pj5M.js → bundle-C8im5l9B.js} +234 -234
  253. package/chunks/{bundle-CwG4pj5M.js.map → bundle-C8im5l9B.js.map} +1 -1
  254. package/chunks/{bundle-B7UQ7Txq.js → bundle-CD9AzC6s.js} +35 -35
  255. package/chunks/bundle-CD9AzC6s.js.map +1 -0
  256. package/chunks/{bundle-DnhvGgBr.js → bundle-CDwtSJbC.js} +210 -206
  257. package/chunks/{bundle-CJPOd0Zo.js.map → bundle-CDwtSJbC.js.map} +1 -1
  258. package/chunks/{bundle-Bs4dcOTC.js → bundle-CIwVkd-E.js} +234 -234
  259. package/chunks/{bundle-Bs4dcOTC.js.map → bundle-CIwVkd-E.js.map} +1 -1
  260. package/chunks/{bundle-oKpBi3n1.js → bundle-CJk_QDUV.js} +58 -58
  261. package/chunks/bundle-CJk_QDUV.js.map +1 -0
  262. package/chunks/{bundle-BeTPrbXl.js → bundle-CNJMLyGJ.js} +61 -61
  263. package/chunks/bundle-CNJMLyGJ.js.map +1 -0
  264. package/chunks/{bundle-BCL7kk-0.js → bundle-CT8ZXUi2.js} +12 -12
  265. package/chunks/bundle-CT8ZXUi2.js.map +1 -0
  266. package/chunks/{bundle-BV-Kx6li.js → bundle-C_Vyt_ii.js} +25 -25
  267. package/chunks/bundle-C_Vyt_ii.js.map +1 -0
  268. package/chunks/{bundle-DFyJYJtg.js → bundle-CaaUNO3F.js} +2 -2
  269. package/chunks/{bundle-DFyJYJtg.js.map → bundle-CaaUNO3F.js.map} +1 -1
  270. package/chunks/{bundle-CWegwbZe.js → bundle-Ci146LvO.js} +370 -368
  271. package/chunks/{bundle-CWegwbZe.js.map → bundle-Ci146LvO.js.map} +1 -1
  272. package/chunks/{bundle-DcJtM5WL.js → bundle-Clhqc2C_.js} +6 -6
  273. package/chunks/bundle-Clhqc2C_.js.map +1 -0
  274. package/chunks/{bundle-gMq6CHjL.js → bundle-D2i2ti1U.js} +36 -36
  275. package/chunks/bundle-D2i2ti1U.js.map +1 -0
  276. package/chunks/{bundle-C0EFwuDi.js → bundle-DDhhxSv0.js} +64 -65
  277. package/chunks/bundle-DDhhxSv0.js.map +1 -0
  278. package/chunks/{bundle-BP5nTWqh.js → bundle-DDkUg3Os.js} +118 -118
  279. package/chunks/{bundle-BP5nTWqh.js.map → bundle-DDkUg3Os.js.map} +1 -1
  280. package/chunks/{bundle-COdy8feS.js → bundle-DJTSztr0.js} +124 -124
  281. package/chunks/{bundle-COdy8feS.js.map → bundle-DJTSztr0.js.map} +1 -1
  282. package/chunks/{bundle-Bv_BYOoN.js → bundle-DNMURwG9.js} +120 -120
  283. package/chunks/{bundle-Bv_BYOoN.js.map → bundle-DNMURwG9.js.map} +1 -1
  284. package/chunks/{bundle-DhnGzV1K.js → bundle-DO1vNias.js} +244 -244
  285. package/chunks/{bundle-DhnGzV1K.js.map → bundle-DO1vNias.js.map} +1 -1
  286. package/chunks/{bundle-BlRZqe8T.js → bundle-DQ2q-zNM.js} +1 -1
  287. package/chunks/bundle-DQ2q-zNM.js.map +1 -0
  288. package/chunks/{bundle-DKHcEPfr.js → bundle-DQFIz2Zf.js} +11 -11
  289. package/chunks/bundle-DQFIz2Zf.js.map +1 -0
  290. package/chunks/{bundle-BDxgzOKZ.js → bundle-DSOf9RKe.js} +1 -1
  291. package/chunks/bundle-DSOf9RKe.js.map +1 -0
  292. package/chunks/{bundle-Cl6qrizD.js → bundle-DThbnyZd.js} +25 -25
  293. package/chunks/bundle-DThbnyZd.js.map +1 -0
  294. package/chunks/{bundle-CJPOd0Zo.js → bundle-DXCQovsu.js} +213 -213
  295. package/{cjs/chunks/bundle-V3DBpR8B.js.map → chunks/bundle-DXCQovsu.js.map} +1 -1
  296. package/chunks/{bundle-DvPYXQcP.js → bundle-D_eJq5Xk.js} +12 -12
  297. package/chunks/bundle-D_eJq5Xk.js.map +1 -0
  298. package/chunks/{bundle-BqkgxfCT.js → bundle-DaAoUDJk.js} +164 -164
  299. package/chunks/{bundle-BqkgxfCT.js.map → bundle-DaAoUDJk.js.map} +1 -1
  300. package/chunks/{bundle-C5KSa4Q_.js → bundle-DaoHZIZy.js} +51 -51
  301. package/chunks/bundle-DaoHZIZy.js.map +1 -0
  302. package/chunks/{bundle-BrPQ1xtW.js → bundle-Diqj6For.js} +71 -71
  303. package/chunks/bundle-Diqj6For.js.map +1 -0
  304. package/chunks/{bundle-fQ4S7LIZ.js → bundle-DlfN5GTa.js} +160 -160
  305. package/chunks/{bundle-fQ4S7LIZ.js.map → bundle-DlfN5GTa.js.map} +1 -1
  306. package/chunks/{bundle-Chv9JypP.js → bundle-DmYqVYeD.js} +6 -6
  307. package/chunks/bundle-DmYqVYeD.js.map +1 -0
  308. package/chunks/{bundle-DLIFpzrP.js → bundle-DpGWywZ5.js} +138 -138
  309. package/chunks/bundle-DpGWywZ5.js.map +1 -0
  310. package/chunks/{bundle-CQt1ONzj.js → bundle-DzxiMlgV.js} +11 -12
  311. package/chunks/bundle-DzxiMlgV.js.map +1 -0
  312. package/chunks/{bundle-DChZSw0N.js → bundle-Gx0ryc_f.js} +72 -72
  313. package/chunks/bundle-Gx0ryc_f.js.map +1 -0
  314. package/chunks/{bundle-Vk50O4-7.js → bundle-HoQqraNc.js} +23 -23
  315. package/chunks/bundle-HoQqraNc.js.map +1 -0
  316. package/chunks/{bundle-BvcFQzve.js → bundle-IGQYX_K1.js} +152 -1079
  317. package/chunks/bundle-IGQYX_K1.js.map +1 -0
  318. package/chunks/{bundle-B0WDmdBo.js → bundle-Jir4hfa9.js} +13 -13
  319. package/chunks/bundle-Jir4hfa9.js.map +1 -0
  320. package/chunks/{bundle-DjFflxR1.js → bundle-LYAWKk4n.js} +78 -79
  321. package/chunks/bundle-LYAWKk4n.js.map +1 -0
  322. package/chunks/{bundle-C2qp06Ad.js → bundle-QxUVt4Ms.js} +15 -15
  323. package/chunks/bundle-QxUVt4Ms.js.map +1 -0
  324. package/chunks/{bundle-BhZQFEcG.js → bundle-ZsYMd8JA.js} +192 -185
  325. package/chunks/{bundle-BhZQFEcG.js.map → bundle-ZsYMd8JA.js.map} +1 -1
  326. package/chunks/{bundle-D0Atuq2W.js → bundle-_-vntp1z.js} +28 -28
  327. package/chunks/bundle-_-vntp1z.js.map +1 -0
  328. package/chunks/{bundle-BQcc_8oI.js → bundle-afCfXO2C.js} +22 -22
  329. package/chunks/bundle-afCfXO2C.js.map +1 -0
  330. package/chunks/{bundle-BL0tKclB.js → bundle-dC3DwujZ.js} +18 -18
  331. package/chunks/bundle-dC3DwujZ.js.map +1 -0
  332. package/chunks/{bundle-BuRpKo8a.js → bundle-fRP_rTVb.js} +75 -74
  333. package/chunks/bundle-fRP_rTVb.js.map +1 -0
  334. package/chunks/{bundle-Cf0JIqFR.js → bundle-h3a36twH.js} +48 -48
  335. package/chunks/bundle-h3a36twH.js.map +1 -0
  336. package/chunks/{bundle-C4kW5GHa.js → bundle-k3XccyCm.js} +333 -333
  337. package/chunks/{bundle-C4kW5GHa.js.map → bundle-k3XccyCm.js.map} +1 -1
  338. package/chunks/{bundle-DSw2Wyv5.js → bundle-oCSRGy9i.js} +29 -29
  339. package/chunks/bundle-oCSRGy9i.js.map +1 -0
  340. package/chunks/{bundle-DvRNa17t.js → bundle-uBJzoaNT.js} +82 -82
  341. package/chunks/bundle-uBJzoaNT.js.map +1 -0
  342. package/chunks/{bundle-8xJ-Z5vU.js → bundle-yZ1rqvSQ.js} +3 -3
  343. package/chunks/{bundle-8xJ-Z5vU.js.map → bundle-yZ1rqvSQ.js.map} +1 -1
  344. package/cjs/App.js +377 -378
  345. package/cjs/App.js.map +1 -1
  346. package/cjs/Channel/components/ChannelHeader.js +36 -34
  347. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  348. package/cjs/Channel/components/ChannelUI.js +74 -74
  349. package/cjs/Channel/components/FileViewer.js +37 -33
  350. package/cjs/Channel/components/FileViewer.js.map +1 -1
  351. package/cjs/Channel/components/FrozenNotification.js +5 -5
  352. package/cjs/Channel/components/Message.js +80 -81
  353. package/cjs/Channel/components/Message.js.map +1 -1
  354. package/cjs/Channel/components/MessageInput.js +72 -70
  355. package/cjs/Channel/components/MessageInput.js.map +1 -1
  356. package/cjs/Channel/components/MessageInputWrapper.js +45 -43
  357. package/cjs/Channel/components/MessageInputWrapper.js.map +1 -1
  358. package/cjs/Channel/components/MessageList.js +249 -250
  359. package/cjs/Channel/components/MessageList.js.map +1 -1
  360. package/cjs/Channel/components/RemoveMessageModal.js +38 -33
  361. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  362. package/cjs/Channel/components/SuggestedMentionList.js +29 -30
  363. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  364. package/cjs/Channel/components/TypingIndicator.js +6 -6
  365. package/cjs/Channel/components/UnreadCount.js +7 -7
  366. package/cjs/Channel/context.js +1453 -1453
  367. package/cjs/Channel/hooks/useHandleUploadFiles.js +125 -120
  368. package/cjs/Channel/hooks/useHandleUploadFiles.js.map +1 -1
  369. package/cjs/Channel/hooks/useInitialMessagesFetch.js +6 -6
  370. package/cjs/Channel/utils/compareMessagesForGrouping.js +50 -51
  371. package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  372. package/cjs/Channel/utils/getMessagePartsInfo.js +26 -27
  373. package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
  374. package/cjs/Channel.js +71 -71
  375. package/cjs/ChannelList/components/AddChannel.js +29 -26
  376. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  377. package/cjs/ChannelList/components/ChannelListHeader.js +13 -8
  378. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  379. package/cjs/ChannelList/components/ChannelListUI.js +109 -106
  380. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  381. package/cjs/ChannelList/components/ChannelPreview.js +43 -38
  382. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  383. package/cjs/ChannelList/components/ChannelPreviewAction.js +16 -12
  384. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  385. package/cjs/ChannelList/context.js +9 -10
  386. package/cjs/ChannelList/context.js.map +1 -1
  387. package/cjs/ChannelList.js +43 -40
  388. package/cjs/ChannelList.js.map +1 -1
  389. package/cjs/ChannelSettings/components/ChannelProfile.js +57 -47
  390. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  391. package/cjs/ChannelSettings/components/ChannelSettingsHeader.js +23 -20
  392. package/cjs/ChannelSettings/components/ChannelSettingsHeader.js.map +1 -1
  393. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +78 -75
  394. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  395. package/cjs/ChannelSettings/components/EditDetailsModal.js +90 -80
  396. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  397. package/cjs/ChannelSettings/components/LeaveChannel.js +63 -53
  398. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  399. package/cjs/ChannelSettings/components/ModerationPanel.js +447 -445
  400. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  401. package/cjs/ChannelSettings/components/UserListItem.js +49 -49
  402. package/cjs/ChannelSettings/components/UserPanel.js +47 -45
  403. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  404. package/cjs/ChannelSettings/context.js +105 -105
  405. package/cjs/ChannelSettings.js +35 -32
  406. package/cjs/ChannelSettings.js.map +1 -1
  407. package/cjs/CreateChannel/components/CreateChannelUI.js +33 -29
  408. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  409. package/cjs/CreateChannel/components/InviteUsers.js +143 -139
  410. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  411. package/cjs/CreateChannel/components/SelectChannelType.js +76 -65
  412. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  413. package/cjs/CreateChannel/context.js +4 -4
  414. package/cjs/CreateChannel.js +27 -23
  415. package/cjs/CreateChannel.js.map +1 -1
  416. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +63 -52
  417. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  418. package/cjs/CreateOpenChannel/context.js +41 -41
  419. package/cjs/CreateOpenChannel.js +28 -17
  420. package/cjs/CreateOpenChannel.js.map +1 -1
  421. package/cjs/EditUserProfile/components/EditUserProfileUI.js +110 -99
  422. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  423. package/cjs/EditUserProfile/context.js +12 -12
  424. package/cjs/EditUserProfile.js +27 -16
  425. package/cjs/EditUserProfile.js.map +1 -1
  426. package/cjs/GroupChannel/components/FileViewer.js +62 -58
  427. package/cjs/GroupChannel/components/FileViewer.js.map +1 -1
  428. package/cjs/GroupChannel/components/FrozenNotification.js +10 -10
  429. package/cjs/GroupChannel/components/GroupChannelHeader.js +30 -28
  430. package/cjs/GroupChannel/components/GroupChannelHeader.js.map +1 -1
  431. package/cjs/GroupChannel/components/GroupChannelUI.js +68 -68
  432. package/cjs/GroupChannel/components/Message.js +66 -77
  433. package/cjs/GroupChannel/components/Message.js.map +1 -1
  434. package/cjs/GroupChannel/components/MessageInputWrapper.js +62 -61
  435. package/cjs/GroupChannel/components/MessageInputWrapper.js.map +1 -1
  436. package/cjs/GroupChannel/components/MessageList.js +154 -155
  437. package/cjs/GroupChannel/components/MessageList.js.map +1 -1
  438. package/cjs/GroupChannel/components/RemoveMessageModal.js +32 -27
  439. package/cjs/GroupChannel/components/RemoveMessageModal.js.map +1 -1
  440. package/cjs/GroupChannel/components/SuggestedMentionList.js +14 -14
  441. package/cjs/GroupChannel/components/SuggestedReplies.js +15 -14
  442. package/cjs/GroupChannel/components/SuggestedReplies.js.map +1 -1
  443. package/cjs/GroupChannel/components/TypingIndicator.js +59 -59
  444. package/cjs/GroupChannel/components/UnreadCount.js +26 -26
  445. package/cjs/GroupChannel/context.js +568 -568
  446. package/cjs/GroupChannel.js +65 -65
  447. package/cjs/GroupChannelList/components/AddGroupChannel.js +30 -27
  448. package/cjs/GroupChannelList/components/AddGroupChannel.js.map +1 -1
  449. package/cjs/GroupChannelList/components/GroupChannelListHeader.js +34 -28
  450. package/cjs/GroupChannelList/components/GroupChannelListHeader.js.map +1 -1
  451. package/cjs/GroupChannelList/components/GroupChannelListItem.js +39 -35
  452. package/cjs/GroupChannelList/components/GroupChannelListItem.js.map +1 -1
  453. package/cjs/GroupChannelList/components/GroupChannelListUI.js +86 -83
  454. package/cjs/GroupChannelList/components/GroupChannelListUI.js.map +1 -1
  455. package/cjs/GroupChannelList/components/GroupChannelPreviewAction.js +48 -44
  456. package/cjs/GroupChannelList/components/GroupChannelPreviewAction.js.map +1 -1
  457. package/cjs/GroupChannelList/context.js +81 -97
  458. package/cjs/GroupChannelList/context.js.map +1 -1
  459. package/cjs/GroupChannelList.js +43 -40
  460. package/cjs/GroupChannelList.js.map +1 -1
  461. package/cjs/Message/context.js +21 -21
  462. package/cjs/Message/hooks/useDirtyGetMentions.js +52 -52
  463. package/cjs/MessageSearch/components/MessageSearchUI.js +71 -72
  464. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  465. package/cjs/MessageSearch/context.js +247 -247
  466. package/cjs/MessageSearch.js +59 -59
  467. package/cjs/OpenChannel/components/FrozenChannelNotification.js +9 -9
  468. package/cjs/OpenChannel/components/OpenChannelHeader.js +43 -38
  469. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  470. package/cjs/OpenChannel/components/OpenChannelInput.js +47 -45
  471. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  472. package/cjs/OpenChannel/components/OpenChannelMessage.js +158 -157
  473. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  474. package/cjs/OpenChannel/components/OpenChannelMessageList.js +95 -94
  475. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  476. package/cjs/OpenChannel/components/OpenChannelUI.js +71 -70
  477. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  478. package/cjs/OpenChannel/context.js +23 -18
  479. package/cjs/OpenChannel/context.js.map +1 -1
  480. package/cjs/OpenChannel.js +44 -43
  481. package/cjs/OpenChannel.js.map +1 -1
  482. package/cjs/OpenChannelList/components/OpenChannelListUI.js +102 -92
  483. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  484. package/cjs/OpenChannelList/components/OpenChannelPreview.js +20 -20
  485. package/cjs/OpenChannelList/context.js +3 -3
  486. package/cjs/OpenChannelList.js +34 -24
  487. package/cjs/OpenChannelList.js.map +1 -1
  488. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +82 -73
  489. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  490. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +47 -38
  491. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  492. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +61 -57
  493. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  494. package/cjs/OpenChannelSettings/components/OperatorUI.js +454 -450
  495. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  496. package/cjs/OpenChannelSettings/components/ParticipantUI.js +21 -17
  497. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  498. package/cjs/OpenChannelSettings/context.js +114 -114
  499. package/cjs/OpenChannelSettings.js +29 -25
  500. package/cjs/OpenChannelSettings.js.map +1 -1
  501. package/cjs/SendbirdProvider.js +1139 -1183
  502. package/cjs/SendbirdProvider.js.map +1 -1
  503. package/cjs/Thread/components/ParentMessageInfo.js +240 -239
  504. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  505. package/cjs/Thread/components/ParentMessageInfoItem.js +148 -148
  506. package/cjs/Thread/components/ThreadHeader.js +22 -25
  507. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  508. package/cjs/Thread/components/ThreadList.js +122 -122
  509. package/cjs/Thread/components/ThreadListItem.js +341 -340
  510. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  511. package/cjs/Thread/components/ThreadMessageInput.js +167 -165
  512. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  513. package/cjs/Thread/components/ThreadUI.js +207 -207
  514. package/cjs/Thread/context/types.js +21 -21
  515. package/cjs/Thread/context.js +1283 -1281
  516. package/cjs/Thread/context.js.map +1 -1
  517. package/cjs/Thread.js +73 -73
  518. package/cjs/VoicePlayer/context.js +3 -3
  519. package/cjs/VoicePlayer/useVoicePlayer.js +68 -60
  520. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
  521. package/cjs/VoiceRecorder/context.js +25 -127
  522. package/cjs/VoiceRecorder/context.js.map +1 -1
  523. package/cjs/VoiceRecorder/useVoiceRecorder.js +105 -96
  524. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  525. package/cjs/chunks/{bundle-B0Cl8cKp.js → bundle-1XtsxT8L.js} +10 -10
  526. package/cjs/chunks/bundle-1XtsxT8L.js.map +1 -0
  527. package/cjs/chunks/{bundle-BGhSB8RW.js → bundle-4vdy6J5u.js} +17 -17
  528. package/cjs/chunks/bundle-4vdy6J5u.js.map +1 -0
  529. package/cjs/chunks/{bundle-Cm_quRwQ.js → bundle-5_kPn4wU.js} +77 -79
  530. package/cjs/chunks/bundle-5_kPn4wU.js.map +1 -0
  531. package/cjs/chunks/{bundle-DhgoVGKx.js → bundle-7UHC8ujA.js} +94 -94
  532. package/cjs/chunks/{bundle-DhgoVGKx.js.map → bundle-7UHC8ujA.js.map} +1 -1
  533. package/cjs/chunks/{bundle-DpiYQ60c.js → bundle-8VyIP0TE.js} +1 -1
  534. package/cjs/chunks/bundle-8VyIP0TE.js.map +1 -0
  535. package/cjs/chunks/{bundle-DiTafQuL.js → bundle-B-olJv7b.js} +1326 -1327
  536. package/cjs/chunks/{bundle-DiTafQuL.js.map → bundle-B-olJv7b.js.map} +1 -1
  537. package/cjs/chunks/{bundle-BeCXSzTg.js → bundle-B31bbem0.js} +192 -185
  538. package/cjs/chunks/bundle-B31bbem0.js.map +1 -0
  539. package/cjs/chunks/{bundle-ROscI12S.js → bundle-BBoPpUMg.js} +22 -22
  540. package/cjs/chunks/bundle-BBoPpUMg.js.map +1 -0
  541. package/cjs/chunks/{bundle-DTZwXpbk.js → bundle-BLc7P6Sp.js} +244 -244
  542. package/cjs/chunks/bundle-BLc7P6Sp.js.map +1 -0
  543. package/cjs/chunks/{bundle-BZcKIqEO.js → bundle-BOkZUm8a.js} +27 -27
  544. package/cjs/chunks/bundle-BOkZUm8a.js.map +1 -0
  545. package/cjs/chunks/{bundle-CMhCS1lF.js → bundle-BSAWCcb_.js} +920 -923
  546. package/cjs/chunks/{bundle-CMhCS1lF.js.map → bundle-BSAWCcb_.js.map} +1 -1
  547. package/cjs/chunks/bundle-BTU876jx.js +95 -0
  548. package/cjs/chunks/{bundle-xeBPrPlZ.js.map → bundle-BTU876jx.js.map} +1 -1
  549. package/cjs/chunks/{bundle-xeBPrPlZ.js → bundle-BTod-EOk.js} +83 -83
  550. package/cjs/chunks/bundle-BTod-EOk.js.map +1 -0
  551. package/cjs/chunks/{bundle-XPPVGabQ.js → bundle-BWGOXLHb.js} +1 -1
  552. package/cjs/chunks/{bundle-XPPVGabQ.js.map → bundle-BWGOXLHb.js.map} +1 -1
  553. package/cjs/chunks/{bundle-BVXtMOiP.js → bundle-BXEGf4g2.js} +164 -164
  554. package/cjs/chunks/{bundle-BVXtMOiP.js.map → bundle-BXEGf4g2.js.map} +1 -1
  555. package/cjs/chunks/{bundle-tVtQpJ4n.js → bundle-B_51Svr9.js} +3 -3
  556. package/cjs/chunks/{bundle-tVtQpJ4n.js.map → bundle-B_51Svr9.js.map} +1 -1
  557. package/cjs/chunks/{bundle-B5nh0Mif.js → bundle-BaAUvjl9.js} +6 -6
  558. package/cjs/chunks/bundle-BaAUvjl9.js.map +1 -0
  559. package/cjs/chunks/{bundle-tBlsssMV.js → bundle-BaM5Ed34.js} +160 -160
  560. package/cjs/chunks/{bundle-tBlsssMV.js.map → bundle-BaM5Ed34.js.map} +1 -1
  561. package/cjs/chunks/{bundle-DTzDEbe0.js → bundle-BaQc9oOW.js} +29 -29
  562. package/cjs/chunks/bundle-BaQc9oOW.js.map +1 -0
  563. package/cjs/chunks/{bundle-BrrYIsp-.js → bundle-BhCAlWKP.js} +11 -11
  564. package/cjs/chunks/bundle-BhCAlWKP.js.map +1 -0
  565. package/cjs/chunks/{bundle-DEOaRh_m.js → bundle-Bi-soOXA.js} +258 -258
  566. package/cjs/chunks/bundle-Bi-soOXA.js.map +1 -0
  567. package/cjs/chunks/{bundle-CYFSAQ2T.js → bundle-BjgfoBVC.js} +26 -26
  568. package/cjs/chunks/bundle-BjgfoBVC.js.map +1 -0
  569. package/cjs/chunks/{bundle-_VH8bxGE.js → bundle-BoLhr7Ko.js} +36 -28
  570. package/cjs/chunks/bundle-BoLhr7Ko.js.map +1 -0
  571. package/cjs/chunks/{bundle-DZl6cYvA.js → bundle-BrNoc2XZ.js} +185 -185
  572. package/cjs/chunks/bundle-BrNoc2XZ.js.map +1 -0
  573. package/cjs/chunks/{bundle-xpQ8gY1k.js → bundle-BwQ4BJif.js} +71 -71
  574. package/cjs/chunks/bundle-BwQ4BJif.js.map +1 -0
  575. package/cjs/chunks/{bundle-DYU6eNDJ.js → bundle-ByyccRIt.js} +210 -206
  576. package/cjs/chunks/{bundle-DXrpp6AJ.js.map → bundle-ByyccRIt.js.map} +1 -1
  577. package/cjs/chunks/{bundle-Dc_hFK8U.js → bundle-C1XVsHlE.js} +51 -51
  578. package/cjs/chunks/bundle-C1XVsHlE.js.map +1 -0
  579. package/cjs/chunks/{bundle-Dfqk1zRa.js → bundle-C3DKUT4Q.js} +26 -26
  580. package/cjs/chunks/bundle-C3DKUT4Q.js.map +1 -0
  581. package/cjs/chunks/{bundle-B2K8d_Kr.js → bundle-C3RFfU6_.js} +89 -89
  582. package/cjs/chunks/bundle-C3RFfU6_.js.map +1 -0
  583. package/cjs/chunks/{bundle-CFpokORf.js → bundle-C51HeaX4.js} +25 -25
  584. package/cjs/chunks/bundle-C51HeaX4.js.map +1 -0
  585. package/cjs/chunks/{bundle-DYdwn7HI.js → bundle-C6a-umLQ.js} +131 -132
  586. package/cjs/chunks/bundle-C6a-umLQ.js.map +1 -0
  587. package/cjs/chunks/{bundle-D1gE5kRR.js → bundle-C93-onMF.js} +12 -12
  588. package/cjs/chunks/bundle-C93-onMF.js.map +1 -0
  589. package/cjs/chunks/{bundle-CT33owD4.js → bundle-CAUMYdVU.js} +19 -19
  590. package/cjs/chunks/bundle-CAUMYdVU.js.map +1 -0
  591. package/cjs/chunks/{bundle-COwRojr8.js → bundle-CDIVI7bT.js} +146 -1073
  592. package/cjs/chunks/bundle-CDIVI7bT.js.map +1 -0
  593. package/cjs/chunks/{bundle-oEFvi6H_.js → bundle-CE6bFQmu.js} +118 -118
  594. package/cjs/chunks/bundle-CE6bFQmu.js.map +1 -0
  595. package/cjs/chunks/{bundle-DF9nQRmT.js → bundle-CLOaQmX9.js} +138 -138
  596. package/cjs/chunks/bundle-CLOaQmX9.js.map +1 -0
  597. package/cjs/chunks/{bundle-DRneqmmM.js → bundle-CQ34zxiR.js} +36 -36
  598. package/cjs/chunks/bundle-CQ34zxiR.js.map +1 -0
  599. package/cjs/chunks/{bundle-CUue3xhm.js → bundle-CR04Yhbr.js} +8 -8
  600. package/cjs/chunks/bundle-CR04Yhbr.js.map +1 -0
  601. package/cjs/chunks/bundle-CZfcXYaX.js +292 -0
  602. package/cjs/chunks/bundle-CZfcXYaX.js.map +1 -0
  603. package/cjs/chunks/{bundle-V3DBpR8B.js → bundle-Cgl5e8xs.js} +213 -213
  604. package/cjs/chunks/bundle-Cgl5e8xs.js.map +1 -0
  605. package/cjs/chunks/{bundle-xkYrx6pX.js → bundle-CmpLg1_S.js} +15 -15
  606. package/cjs/chunks/bundle-CmpLg1_S.js.map +1 -0
  607. package/cjs/chunks/{bundle-DxeOzVdw.js → bundle-Com-Z-XI.js} +82 -82
  608. package/cjs/chunks/bundle-Com-Z-XI.js.map +1 -0
  609. package/cjs/chunks/{bundle-ZtEjNaVg.js → bundle-CsJKON_3.js} +120 -120
  610. package/cjs/chunks/bundle-CsJKON_3.js.map +1 -0
  611. package/cjs/chunks/{bundle-C1XDY35t.js → bundle-D-qAbZhp.js} +48 -48
  612. package/cjs/chunks/bundle-D-qAbZhp.js.map +1 -0
  613. package/cjs/chunks/{bundle-BSV6l3PT.js → bundle-D4aDRH9m.js} +1 -1
  614. package/cjs/chunks/bundle-D4aDRH9m.js.map +1 -0
  615. package/cjs/chunks/{bundle-ADOJwNcx.js → bundle-D6E8Fmnl.js} +333 -333
  616. package/cjs/chunks/{bundle-ADOJwNcx.js.map → bundle-D6E8Fmnl.js.map} +1 -1
  617. package/cjs/chunks/{bundle-Bcgo-8Wz.js → bundle-D8gia2Hg.js} +11 -12
  618. package/cjs/chunks/bundle-D8gia2Hg.js.map +1 -0
  619. package/cjs/chunks/{bundle-DiMvAbrw.js → bundle-DAIf7fWo.js} +28 -28
  620. package/cjs/chunks/bundle-DAIf7fWo.js.map +1 -0
  621. package/cjs/chunks/{bundle-BEDFWZBT.js → bundle-DAj-1QVM.js} +2 -2
  622. package/cjs/chunks/{bundle-BEDFWZBT.js.map → bundle-DAj-1QVM.js.map} +1 -1
  623. package/cjs/chunks/{bundle-Bu7SLdLc.js → bundle-DAxedY0T.js} +23 -23
  624. package/cjs/chunks/bundle-DAxedY0T.js.map +1 -0
  625. package/cjs/chunks/{bundle-CFZ-HdZV.js → bundle-DMGpM9Ye.js} +370 -368
  626. package/cjs/chunks/{bundle-CFZ-HdZV.js.map → bundle-DMGpM9Ye.js.map} +1 -1
  627. package/cjs/chunks/{bundle-BWtc6aAL.js → bundle-DQy218lT.js} +31 -31
  628. package/cjs/chunks/bundle-DQy218lT.js.map +1 -0
  629. package/cjs/chunks/{bundle-CGNRfqfQ.js → bundle-DRp9IuV2.js} +28 -28
  630. package/cjs/chunks/bundle-DRp9IuV2.js.map +1 -0
  631. package/cjs/chunks/{bundle-C-sGYQWV.js → bundle-DRy7eNJ0.js} +11 -11
  632. package/cjs/chunks/bundle-DRy7eNJ0.js.map +1 -0
  633. package/cjs/chunks/{bundle-waMogQH7.js → bundle-DTCz0BH1.js} +161 -162
  634. package/cjs/chunks/bundle-DTCz0BH1.js.map +1 -0
  635. package/cjs/chunks/{bundle-Amd_tEFX.js → bundle-DcSTnNI0.js} +64 -65
  636. package/cjs/chunks/bundle-DcSTnNI0.js.map +1 -0
  637. package/cjs/chunks/{bundle-eHc2IloF.js → bundle-DdxJqNSP.js} +1 -1
  638. package/cjs/chunks/bundle-DdxJqNSP.js.map +1 -0
  639. package/cjs/chunks/{bundle-Vfq24KlC.js → bundle-DeQZn8GZ.js} +75 -74
  640. package/cjs/chunks/bundle-DeQZn8GZ.js.map +1 -0
  641. package/cjs/chunks/{bundle-CqfYJ2-A.js → bundle-Dehhi1FZ.js} +37 -37
  642. package/cjs/chunks/bundle-Dehhi1FZ.js.map +1 -0
  643. package/cjs/chunks/{bundle-BgJJI84U.js → bundle-DfcEln0Z.js} +34 -34
  644. package/cjs/chunks/bundle-DfcEln0Z.js.map +1 -0
  645. package/cjs/chunks/bundle-DmX69_-l.js +32 -0
  646. package/cjs/chunks/bundle-DmX69_-l.js.map +1 -0
  647. package/cjs/chunks/{bundle-Chvgl0tl.js → bundle-Dnq2YP_l.js} +6 -6
  648. package/cjs/chunks/bundle-Dnq2YP_l.js.map +1 -0
  649. package/cjs/chunks/{bundle-DU2DrCMu.js → bundle-Dww6fCVQ.js} +13 -13
  650. package/cjs/chunks/bundle-Dww6fCVQ.js.map +1 -0
  651. package/cjs/chunks/{bundle-BjHWj0YM.js → bundle-DxSB9NRz.js} +61 -61
  652. package/cjs/chunks/bundle-DxSB9NRz.js.map +1 -0
  653. package/cjs/chunks/{bundle-BwzMNAFs.js → bundle-HGbi-rCv.js} +1 -1
  654. package/cjs/chunks/bundle-HGbi-rCv.js.map +1 -0
  655. package/cjs/chunks/{bundle-CRtD-LF2.js → bundle-JtgSY0zB.js} +58 -58
  656. package/cjs/chunks/bundle-JtgSY0zB.js.map +1 -0
  657. package/cjs/chunks/{bundle-CZ-C_W9P.js → bundle-L3FEqZsK.js} +234 -234
  658. package/cjs/chunks/{bundle-CZ-C_W9P.js.map → bundle-L3FEqZsK.js.map} +1 -1
  659. package/cjs/chunks/{bundle-Dnrc5q_J.js → bundle-N_CwOE5a.js} +124 -124
  660. package/cjs/chunks/bundle-N_CwOE5a.js.map +1 -0
  661. package/cjs/chunks/bundle-Q4icQ1qH.js +122 -0
  662. package/cjs/chunks/bundle-Q4icQ1qH.js.map +1 -0
  663. package/cjs/chunks/{bundle-CkBOTPET.js → bundle-T4lp5F85.js} +25 -25
  664. package/cjs/chunks/bundle-T4lp5F85.js.map +1 -0
  665. package/cjs/chunks/{bundle-LJi0Ftvu.js → bundle-Tjx9wNAv.js} +21 -21
  666. package/cjs/chunks/bundle-Tjx9wNAv.js.map +1 -0
  667. package/cjs/chunks/{bundle-COM-Vp38.js → bundle-X03vJTEw.js} +45 -46
  668. package/cjs/chunks/bundle-X03vJTEw.js.map +1 -0
  669. package/cjs/chunks/{bundle-DhB9bJf0.js → bundle-_ekaw3iI.js} +18 -18
  670. package/cjs/chunks/bundle-_ekaw3iI.js.map +1 -0
  671. package/cjs/chunks/{bundle-B1UxSAT6.js → bundle-bqRlVm3u.js} +12 -12
  672. package/cjs/chunks/bundle-bqRlVm3u.js.map +1 -0
  673. package/cjs/chunks/{bundle-DXrpp6AJ.js → bundle-gtkPlUrw.js} +234 -234
  674. package/cjs/chunks/bundle-gtkPlUrw.js.map +1 -0
  675. package/cjs/chunks/{bundle-C0Gtok_c.js → bundle-miB6ue8g.js} +72 -72
  676. package/cjs/chunks/bundle-miB6ue8g.js.map +1 -0
  677. package/cjs/chunks/{bundle-Cg6exdly.js → bundle-oeWNUdCB.js} +11 -11
  678. package/cjs/chunks/bundle-oeWNUdCB.js.map +1 -0
  679. package/cjs/chunks/{bundle-BACbqv7X.js → bundle-qI5gnScC.js} +5 -5
  680. package/cjs/chunks/bundle-qI5gnScC.js.map +1 -0
  681. package/cjs/chunks/{bundle-m2yaPSNj.js → bundle-wMKhbE3c.js} +2 -2
  682. package/cjs/chunks/{bundle-m2yaPSNj.js.map → bundle-wMKhbE3c.js.map} +1 -1
  683. package/cjs/chunks/{bundle-BTEk9dhT.js → bundle-wl1uuzU7.js} +733 -730
  684. package/cjs/chunks/bundle-wl1uuzU7.js.map +1 -0
  685. package/cjs/handlers/OpenChannelHandler.js +2 -2
  686. package/cjs/handlers/SessionHandler.js +2 -2
  687. package/cjs/hooks/useModal.js +25 -48
  688. package/cjs/hooks/useModal.js.map +1 -1
  689. package/cjs/index.js +80 -81
  690. package/cjs/index.js.map +1 -1
  691. package/cjs/pubSub/topics.js +1 -1
  692. package/cjs/sendbirdSelectors.js +550 -550
  693. package/cjs/ui/Accordion.js +25 -25
  694. package/cjs/ui/AccordionGroup.js +40 -40
  695. package/cjs/ui/AdminMessage.js +13 -13
  696. package/cjs/ui/Avatar.js +4 -4
  697. package/cjs/ui/Badge.js +18 -18
  698. package/cjs/ui/BottomSheet.js +40 -26
  699. package/cjs/ui/BottomSheet.js.map +1 -1
  700. package/cjs/ui/Button.js +41 -41
  701. package/cjs/ui/ChannelAvatar.js +21 -21
  702. package/cjs/ui/Checkbox.js +15 -15
  703. package/cjs/ui/ConnectionStatus.js +11 -11
  704. package/cjs/ui/ContextMenu.js +180 -267
  705. package/cjs/ui/ContextMenu.js.map +1 -1
  706. package/cjs/ui/DateSeparator.js +13 -13
  707. package/cjs/ui/EmojiReactions.js +167 -164
  708. package/cjs/ui/EmojiReactions.js.map +1 -1
  709. package/cjs/ui/FallbackTemplateMessageItemBody.tsx.js +20 -21
  710. package/cjs/ui/FallbackTemplateMessageItemBody.tsx.js.map +1 -1
  711. package/cjs/ui/FeedbackIconButton.js +14 -14
  712. package/cjs/ui/FileMessageItemBody.js +65 -66
  713. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  714. package/cjs/ui/FileViewer.js +23 -17
  715. package/cjs/ui/FileViewer.js.map +1 -1
  716. package/cjs/ui/Header.js +53 -0
  717. package/cjs/ui/Header.js.map +1 -0
  718. package/cjs/ui/Icon.js +844 -964
  719. package/cjs/ui/Icon.js.map +1 -1
  720. package/cjs/ui/IconButton.js +18 -18
  721. package/cjs/ui/ImageRenderer.js +151 -151
  722. package/cjs/ui/Input.js +15 -15
  723. package/cjs/ui/Label.js +4 -4
  724. package/cjs/ui/LinkLabel.js +21 -21
  725. package/cjs/ui/Loader.js +11 -11
  726. package/cjs/ui/LoadingTemplateMessageItemBody.tsx.js +13 -14
  727. package/cjs/ui/LoadingTemplateMessageItemBody.tsx.js.map +1 -1
  728. package/cjs/ui/MentionLabel.js +50 -50
  729. package/cjs/ui/MentionUserLabel.js +4 -4
  730. package/cjs/ui/MessageContent.js +586 -581
  731. package/cjs/ui/MessageContent.js.map +1 -1
  732. package/cjs/ui/MessageFeedbackFailedModal.js +34 -22
  733. package/cjs/ui/MessageFeedbackFailedModal.js.map +1 -1
  734. package/cjs/ui/MessageFeedbackModal.js +66 -54
  735. package/cjs/ui/MessageFeedbackModal.js.map +1 -1
  736. package/cjs/ui/MessageInput/hooks/usePaste.js +7 -7
  737. package/cjs/ui/MessageInput.js +423 -424
  738. package/cjs/ui/MessageInput.js.map +1 -1
  739. package/cjs/ui/MessageItemMenu.js +134 -134
  740. package/cjs/ui/MessageItemReactionMenu.js +42 -42
  741. package/cjs/ui/MessageSearchFileItem.js +77 -78
  742. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  743. package/cjs/ui/MessageSearchItem.js +50 -50
  744. package/cjs/ui/MessageStatus.js +11 -12
  745. package/cjs/ui/MessageStatus.js.map +1 -1
  746. package/cjs/ui/MessageTemplate.js +1 -2
  747. package/cjs/ui/MessageTemplate.js.map +1 -1
  748. package/cjs/ui/MobileFeedbackMenu.js +36 -25
  749. package/cjs/ui/MobileFeedbackMenu.js.map +1 -1
  750. package/cjs/ui/Modal.js +21 -8
  751. package/cjs/ui/Modal.js.map +1 -1
  752. package/cjs/ui/MutedAvatarOverlay.js +14 -14
  753. package/cjs/ui/OGMessageItemBody.js +76 -76
  754. package/cjs/ui/OpenChannelAdminMessage.js +9 -9
  755. package/cjs/ui/OpenChannelAvatar.js +15 -15
  756. package/cjs/ui/OpenchannelConversationHeader.js +22 -22
  757. package/cjs/ui/OpenchannelFileMessage.js +117 -117
  758. package/cjs/ui/OpenchannelOGMessage.js +146 -146
  759. package/cjs/ui/OpenchannelThumbnailMessage.js +155 -155
  760. package/cjs/ui/OpenchannelUserMessage.js +128 -128
  761. package/cjs/ui/PlaceHolder.js +45 -45
  762. package/cjs/ui/PlaybackTime.js +11 -11
  763. package/cjs/ui/ProgressBar.js +12 -12
  764. package/cjs/ui/QuoteMessage.js +69 -70
  765. package/cjs/ui/QuoteMessage.js.map +1 -1
  766. package/cjs/ui/QuoteMessageInput.js +66 -67
  767. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  768. package/cjs/ui/ReactionBadge.js +20 -20
  769. package/cjs/ui/ReactionButton.js +17 -17
  770. package/cjs/ui/SortByRow.js +23 -23
  771. package/cjs/ui/TemplateMessageItemBody.js +423 -424
  772. package/cjs/ui/TemplateMessageItemBody.js.map +1 -1
  773. package/cjs/ui/TextButton.js +9 -9
  774. package/cjs/ui/TextMessageItemBody.js +44 -44
  775. package/cjs/ui/ThreadReplies.js +34 -34
  776. package/cjs/ui/ThumbnailMessageItemBody.js +36 -37
  777. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  778. package/cjs/ui/Toggle.js +110 -110
  779. package/cjs/ui/Tooltip.js +9 -9
  780. package/cjs/ui/TooltipWrapper.js +13 -13
  781. package/cjs/ui/TypingIndicatorBubble.js +56 -56
  782. package/cjs/ui/UnknownMessageItemBody.js +19 -20
  783. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  784. package/cjs/ui/UserListItem.js +56 -56
  785. package/cjs/ui/UserProfile.js +45 -45
  786. package/cjs/ui/VoiceMessageInput.js +9 -9
  787. package/cjs/ui/VoiceMessageItemBody.js +62 -54
  788. package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
  789. package/cjs/ui/Word.js +41 -41
  790. package/cjs/useSendbirdStateContext.js +15 -15
  791. package/cjs/utils/message/getOutgoingMessageState.js +32 -32
  792. package/cjs/utils/message/isVoiceMessage.js +2 -3
  793. package/cjs/utils/message/isVoiceMessage.js.map +1 -1
  794. package/cjs/withSendbird.js +17 -17
  795. package/dist/index.css +195 -169
  796. package/dist/index.css.map +1 -1
  797. package/handlers/OpenChannelHandler.js +2 -2
  798. package/handlers/SessionHandler.js +2 -2
  799. package/hooks/useModal.js +22 -50
  800. package/hooks/useModal.js.map +1 -1
  801. package/index.js +80 -81
  802. package/index.js.map +1 -1
  803. package/package.json +13 -5
  804. package/pubSub/topics.js +1 -1
  805. package/sendbirdSelectors.js +550 -550
  806. package/types/lib/pubSub/topics.d.ts +2 -2
  807. package/types/lib/types.d.ts +50 -15
  808. package/types/modules/App/index.d.ts +17 -10
  809. package/types/modules/Channel/context/ChannelProvider.d.ts +1 -4
  810. package/types/modules/ChannelList/components/ChannelPreviewAction.d.ts +2 -2
  811. package/types/modules/ChannelSettings/components/ChannelSettingsUI/ChannelSettingsHeader.d.ts +4 -3
  812. package/types/modules/GroupChannel/components/FileViewer/FileViewerView.d.ts +2 -2
  813. package/types/modules/GroupChannel/components/GroupChannelHeader/GroupChannelHeaderView.d.ts +3 -2
  814. package/types/modules/GroupChannel/components/GroupChannelHeader/index.d.ts +3 -2
  815. package/types/modules/GroupChannel/components/MessageInputWrapper/MessageInputWrapperView.d.ts +1 -1
  816. package/types/modules/GroupChannel/components/MessageInputWrapper/VoiceMessageInputWrapper.d.ts +2 -2
  817. package/types/modules/GroupChannel/components/MessageInputWrapper/index.d.ts +1 -1
  818. package/types/modules/GroupChannel/components/SuggestedReplies/index.d.ts +3 -1
  819. package/types/modules/GroupChannelList/components/GroupChannelListHeader/index.d.ts +4 -2
  820. package/types/modules/MessageSearch/context/MessageSearchProvider.d.ts +1 -1
  821. package/types/modules/OpenChannelApp/index.d.ts +3 -3
  822. package/types/modules/Thread/components/ThreadHeader/index.d.ts +2 -2
  823. package/types/ui/Header/index.d.ts +45 -0
  824. package/types/ui/Icon/index.d.ts +2 -3
  825. package/types/ui/Label/index.d.ts +3 -4
  826. package/types/ui/MessageInput/hooks/usePaste/consts.d.ts +1 -1
  827. package/types/ui/Modal/index.d.ts +2 -4
  828. package/types/ui/TextButton/index.d.ts +1 -1
  829. package/types/ui/Toggle/ToggleContainer.d.ts +2 -1
  830. package/types/utils/index.d.ts +0 -1
  831. package/types/utils/utils.d.ts +2 -0
  832. package/ui/Accordion.js +25 -25
  833. package/ui/AccordionGroup.js +40 -40
  834. package/ui/AdminMessage.js +13 -13
  835. package/ui/Avatar.js +4 -4
  836. package/ui/Badge.js +18 -18
  837. package/ui/BottomSheet.js +40 -26
  838. package/ui/BottomSheet.js.map +1 -1
  839. package/ui/Button.js +41 -41
  840. package/ui/ChannelAvatar.js +21 -21
  841. package/ui/Checkbox.js +15 -15
  842. package/ui/ConnectionStatus.js +11 -11
  843. package/ui/ContextMenu.js +180 -267
  844. package/ui/ContextMenu.js.map +1 -1
  845. package/ui/DateSeparator.js +13 -13
  846. package/ui/EmojiReactions.js +167 -164
  847. package/ui/EmojiReactions.js.map +1 -1
  848. package/ui/FallbackTemplateMessageItemBody.tsx.js +20 -21
  849. package/ui/FallbackTemplateMessageItemBody.tsx.js.map +1 -1
  850. package/ui/FeedbackIconButton.js +14 -14
  851. package/ui/FileMessageItemBody.js +65 -66
  852. package/ui/FileMessageItemBody.js.map +1 -1
  853. package/ui/FileViewer.js +23 -17
  854. package/ui/FileViewer.js.map +1 -1
  855. package/ui/Header.js +45 -0
  856. package/ui/Header.js.map +1 -0
  857. package/ui/Icon.js +845 -965
  858. package/ui/Icon.js.map +1 -1
  859. package/ui/IconButton.js +18 -18
  860. package/ui/ImageRenderer.js +151 -151
  861. package/ui/Input.js +15 -15
  862. package/ui/Label.js +3 -3
  863. package/ui/LinkLabel.js +21 -21
  864. package/ui/Loader.js +11 -11
  865. package/ui/LoadingTemplateMessageItemBody.tsx.js +13 -14
  866. package/ui/LoadingTemplateMessageItemBody.tsx.js.map +1 -1
  867. package/ui/MentionLabel.js +50 -50
  868. package/ui/MentionUserLabel.js +4 -4
  869. package/ui/MessageContent.js +586 -581
  870. package/ui/MessageContent.js.map +1 -1
  871. package/ui/MessageFeedbackFailedModal.js +34 -22
  872. package/ui/MessageFeedbackFailedModal.js.map +1 -1
  873. package/ui/MessageFeedbackModal.js +66 -54
  874. package/ui/MessageFeedbackModal.js.map +1 -1
  875. package/ui/MessageInput/hooks/usePaste.js +7 -7
  876. package/ui/MessageInput.js +423 -424
  877. package/ui/MessageInput.js.map +1 -1
  878. package/ui/MessageItemMenu.js +134 -134
  879. package/ui/MessageItemReactionMenu.js +42 -42
  880. package/ui/MessageSearchFileItem.js +77 -78
  881. package/ui/MessageSearchFileItem.js.map +1 -1
  882. package/ui/MessageSearchItem.js +50 -50
  883. package/ui/MessageStatus.js +11 -12
  884. package/ui/MessageStatus.js.map +1 -1
  885. package/ui/MessageTemplate.js +1 -2
  886. package/ui/MessageTemplate.js.map +1 -1
  887. package/ui/MobileFeedbackMenu.js +36 -25
  888. package/ui/MobileFeedbackMenu.js.map +1 -1
  889. package/ui/Modal.js +21 -8
  890. package/ui/Modal.js.map +1 -1
  891. package/ui/MutedAvatarOverlay.js +14 -14
  892. package/ui/OGMessageItemBody.js +76 -76
  893. package/ui/OpenChannelAdminMessage.js +9 -9
  894. package/ui/OpenChannelAvatar.js +15 -15
  895. package/ui/OpenchannelConversationHeader.js +22 -22
  896. package/ui/OpenchannelFileMessage.js +117 -117
  897. package/ui/OpenchannelOGMessage.js +146 -146
  898. package/ui/OpenchannelThumbnailMessage.js +155 -155
  899. package/ui/OpenchannelUserMessage.js +128 -128
  900. package/ui/PlaceHolder.js +45 -45
  901. package/ui/PlaybackTime.js +11 -11
  902. package/ui/ProgressBar.js +12 -12
  903. package/ui/QuoteMessage.js +69 -70
  904. package/ui/QuoteMessage.js.map +1 -1
  905. package/ui/QuoteMessageInput.js +66 -67
  906. package/ui/QuoteMessageInput.js.map +1 -1
  907. package/ui/ReactionBadge.js +20 -20
  908. package/ui/ReactionButton.js +17 -17
  909. package/ui/SortByRow.js +23 -23
  910. package/ui/TemplateMessageItemBody.js +423 -424
  911. package/ui/TemplateMessageItemBody.js.map +1 -1
  912. package/ui/TextButton.js +9 -9
  913. package/ui/TextMessageItemBody.js +44 -44
  914. package/ui/ThreadReplies.js +34 -34
  915. package/ui/ThumbnailMessageItemBody.js +36 -37
  916. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  917. package/ui/Toggle.js +110 -110
  918. package/ui/Tooltip.js +9 -9
  919. package/ui/TooltipWrapper.js +13 -13
  920. package/ui/TypingIndicatorBubble.js +56 -56
  921. package/ui/UnknownMessageItemBody.js +19 -20
  922. package/ui/UnknownMessageItemBody.js.map +1 -1
  923. package/ui/UserListItem.js +56 -56
  924. package/ui/UserProfile.js +45 -45
  925. package/ui/VoiceMessageInput.js +9 -9
  926. package/ui/VoiceMessageItemBody.js +62 -54
  927. package/ui/VoiceMessageItemBody.js.map +1 -1
  928. package/ui/Word.js +41 -41
  929. package/useSendbirdStateContext.js +15 -15
  930. package/utils/message/getOutgoingMessageState.js +32 -32
  931. package/utils/message/isVoiceMessage.js +2 -3
  932. package/utils/message/isVoiceMessage.js.map +1 -1
  933. package/withSendbird.js +17 -17
  934. package/chunks/bundle-1Vgo9VWV.js.map +0 -1
  935. package/chunks/bundle-58U1RLA2.js +0 -4
  936. package/chunks/bundle-58U1RLA2.js.map +0 -1
  937. package/chunks/bundle-B0WDmdBo.js.map +0 -1
  938. package/chunks/bundle-B7UQ7Txq.js.map +0 -1
  939. package/chunks/bundle-BADg8JRM.js.map +0 -1
  940. package/chunks/bundle-BCL7kk-0.js.map +0 -1
  941. package/chunks/bundle-BDxgzOKZ.js.map +0 -1
  942. package/chunks/bundle-BL0tKclB.js.map +0 -1
  943. package/chunks/bundle-BQcc_8oI.js.map +0 -1
  944. package/chunks/bundle-BRaG5EHs.js.map +0 -1
  945. package/chunks/bundle-BRt6gbIr.js.map +0 -1
  946. package/chunks/bundle-BV-Kx6li.js.map +0 -1
  947. package/chunks/bundle-BZt7yK_Y.js.map +0 -1
  948. package/chunks/bundle-BeTPrbXl.js.map +0 -1
  949. package/chunks/bundle-BlRZqe8T.js.map +0 -1
  950. package/chunks/bundle-BnTt0CCZ.js.map +0 -1
  951. package/chunks/bundle-BrPQ1xtW.js.map +0 -1
  952. package/chunks/bundle-BuRpKo8a.js.map +0 -1
  953. package/chunks/bundle-BvcFQzve.js.map +0 -1
  954. package/chunks/bundle-ByTQtdFM.js.map +0 -1
  955. package/chunks/bundle-C0EFwuDi.js.map +0 -1
  956. package/chunks/bundle-C2qp06Ad.js.map +0 -1
  957. package/chunks/bundle-C5KSa4Q_.js.map +0 -1
  958. package/chunks/bundle-CQt1ONzj.js.map +0 -1
  959. package/chunks/bundle-Cf0JIqFR.js.map +0 -1
  960. package/chunks/bundle-Cgpa9xMh.js.map +0 -1
  961. package/chunks/bundle-Chv9JypP.js.map +0 -1
  962. package/chunks/bundle-Cl6qrizD.js.map +0 -1
  963. package/chunks/bundle-CpmDD_qj.js.map +0 -1
  964. package/chunks/bundle-D0Atuq2W.js.map +0 -1
  965. package/chunks/bundle-D7HxTsM2.js.map +0 -1
  966. package/chunks/bundle-DChZSw0N.js.map +0 -1
  967. package/chunks/bundle-DKHcEPfr.js.map +0 -1
  968. package/chunks/bundle-DLIFpzrP.js.map +0 -1
  969. package/chunks/bundle-DSw2Wyv5.js.map +0 -1
  970. package/chunks/bundle-DVDuILQh.js.map +0 -1
  971. package/chunks/bundle-DW4HEvvh.js.map +0 -1
  972. package/chunks/bundle-DX0g6QGP.js.map +0 -1
  973. package/chunks/bundle-DcJtM5WL.js.map +0 -1
  974. package/chunks/bundle-DjFflxR1.js.map +0 -1
  975. package/chunks/bundle-DnhvGgBr.js.map +0 -1
  976. package/chunks/bundle-DtHyIHaJ.js.map +0 -1
  977. package/chunks/bundle-DvPYXQcP.js.map +0 -1
  978. package/chunks/bundle-DvRNa17t.js.map +0 -1
  979. package/chunks/bundle-E_q9aH_b.js.map +0 -1
  980. package/chunks/bundle-HHlRp7vF.js.map +0 -1
  981. package/chunks/bundle-JfMKdEOr.js.map +0 -1
  982. package/chunks/bundle-P4HvWTGS.js.map +0 -1
  983. package/chunks/bundle-Vk50O4-7.js.map +0 -1
  984. package/chunks/bundle-bTVomhqp.js +0 -65
  985. package/chunks/bundle-bTVomhqp.js.map +0 -1
  986. package/chunks/bundle-cldHLNQX.js +0 -36
  987. package/chunks/bundle-cldHLNQX.js.map +0 -1
  988. package/chunks/bundle-gMq6CHjL.js.map +0 -1
  989. package/chunks/bundle-iSiw-_HL.js +0 -129
  990. package/chunks/bundle-iSiw-_HL.js.map +0 -1
  991. package/chunks/bundle-oKpBi3n1.js.map +0 -1
  992. package/cjs/chunks/bundle-Amd_tEFX.js.map +0 -1
  993. package/cjs/chunks/bundle-B0Cl8cKp.js.map +0 -1
  994. package/cjs/chunks/bundle-B1UxSAT6.js.map +0 -1
  995. package/cjs/chunks/bundle-B2K8d_Kr.js.map +0 -1
  996. package/cjs/chunks/bundle-B5nh0Mif.js.map +0 -1
  997. package/cjs/chunks/bundle-BACbqv7X.js.map +0 -1
  998. package/cjs/chunks/bundle-BGhSB8RW.js.map +0 -1
  999. package/cjs/chunks/bundle-BSV6l3PT.js.map +0 -1
  1000. package/cjs/chunks/bundle-BTEk9dhT.js.map +0 -1
  1001. package/cjs/chunks/bundle-BWtc6aAL.js.map +0 -1
  1002. package/cjs/chunks/bundle-BZcKIqEO.js.map +0 -1
  1003. package/cjs/chunks/bundle-Bcgo-8Wz.js.map +0 -1
  1004. package/cjs/chunks/bundle-BeCXSzTg.js.map +0 -1
  1005. package/cjs/chunks/bundle-BgJJI84U.js.map +0 -1
  1006. package/cjs/chunks/bundle-BhbVr0qd.js +0 -72
  1007. package/cjs/chunks/bundle-BhbVr0qd.js.map +0 -1
  1008. package/cjs/chunks/bundle-BjHWj0YM.js.map +0 -1
  1009. package/cjs/chunks/bundle-BrrYIsp-.js.map +0 -1
  1010. package/cjs/chunks/bundle-Bu7SLdLc.js.map +0 -1
  1011. package/cjs/chunks/bundle-BwzMNAFs.js.map +0 -1
  1012. package/cjs/chunks/bundle-C-sGYQWV.js.map +0 -1
  1013. package/cjs/chunks/bundle-C0Gtok_c.js.map +0 -1
  1014. package/cjs/chunks/bundle-C1XDY35t.js.map +0 -1
  1015. package/cjs/chunks/bundle-CFpokORf.js.map +0 -1
  1016. package/cjs/chunks/bundle-CGKSHSXZ.js +0 -131
  1017. package/cjs/chunks/bundle-CGKSHSXZ.js.map +0 -1
  1018. package/cjs/chunks/bundle-CGNRfqfQ.js.map +0 -1
  1019. package/cjs/chunks/bundle-CN-HA7zS.js +0 -7
  1020. package/cjs/chunks/bundle-CN-HA7zS.js.map +0 -1
  1021. package/cjs/chunks/bundle-COM-Vp38.js.map +0 -1
  1022. package/cjs/chunks/bundle-COwRojr8.js.map +0 -1
  1023. package/cjs/chunks/bundle-CRtD-LF2.js.map +0 -1
  1024. package/cjs/chunks/bundle-CT33owD4.js.map +0 -1
  1025. package/cjs/chunks/bundle-CUue3xhm.js.map +0 -1
  1026. package/cjs/chunks/bundle-CYFSAQ2T.js.map +0 -1
  1027. package/cjs/chunks/bundle-Cc053_Sp.js +0 -38
  1028. package/cjs/chunks/bundle-Cc053_Sp.js.map +0 -1
  1029. package/cjs/chunks/bundle-Cg6exdly.js.map +0 -1
  1030. package/cjs/chunks/bundle-Chvgl0tl.js.map +0 -1
  1031. package/cjs/chunks/bundle-CkBOTPET.js.map +0 -1
  1032. package/cjs/chunks/bundle-Cm_quRwQ.js.map +0 -1
  1033. package/cjs/chunks/bundle-CqfYJ2-A.js.map +0 -1
  1034. package/cjs/chunks/bundle-D1gE5kRR.js.map +0 -1
  1035. package/cjs/chunks/bundle-DEOaRh_m.js.map +0 -1
  1036. package/cjs/chunks/bundle-DF9nQRmT.js.map +0 -1
  1037. package/cjs/chunks/bundle-DRneqmmM.js.map +0 -1
  1038. package/cjs/chunks/bundle-DTZwXpbk.js.map +0 -1
  1039. package/cjs/chunks/bundle-DTzDEbe0.js.map +0 -1
  1040. package/cjs/chunks/bundle-DU2DrCMu.js.map +0 -1
  1041. package/cjs/chunks/bundle-DYU6eNDJ.js.map +0 -1
  1042. package/cjs/chunks/bundle-DYdwn7HI.js.map +0 -1
  1043. package/cjs/chunks/bundle-DZl6cYvA.js.map +0 -1
  1044. package/cjs/chunks/bundle-Dc_hFK8U.js.map +0 -1
  1045. package/cjs/chunks/bundle-Dfqk1zRa.js.map +0 -1
  1046. package/cjs/chunks/bundle-DhB9bJf0.js.map +0 -1
  1047. package/cjs/chunks/bundle-DiMvAbrw.js.map +0 -1
  1048. package/cjs/chunks/bundle-Dnrc5q_J.js.map +0 -1
  1049. package/cjs/chunks/bundle-DpiYQ60c.js.map +0 -1
  1050. package/cjs/chunks/bundle-DxeOzVdw.js.map +0 -1
  1051. package/cjs/chunks/bundle-LJi0Ftvu.js.map +0 -1
  1052. package/cjs/chunks/bundle-ROscI12S.js.map +0 -1
  1053. package/cjs/chunks/bundle-Vfq24KlC.js.map +0 -1
  1054. package/cjs/chunks/bundle-ZtEjNaVg.js.map +0 -1
  1055. package/cjs/chunks/bundle-_VH8bxGE.js.map +0 -1
  1056. package/cjs/chunks/bundle-eHc2IloF.js.map +0 -1
  1057. package/cjs/chunks/bundle-oEFvi6H_.js.map +0 -1
  1058. package/cjs/chunks/bundle-waMogQH7.js.map +0 -1
  1059. package/cjs/chunks/bundle-xkYrx6pX.js.map +0 -1
  1060. package/cjs/chunks/bundle-xpQ8gY1k.js.map +0 -1
  1061. package/types/modules/OpenChannelApp/stories/utils.d.ts +0 -6
@@ -1,1493 +1,1493 @@
1
1
  import React__default, { useEffect, useCallback, useRef, useState, useReducer, useMemo } from 'react';
2
- import { U as UserProfileProvider } from '../chunks/bundle-BZt7yK_Y.js';
2
+ import { U as UserProfileProvider } from '../chunks/bundle-B7barEsR.js';
3
3
  import { useSendbirdStateContext } from '../useSendbirdStateContext.js';
4
- import { T as ThreadReplySelectType } from '../chunks/bundle-1Vgo9VWV.js';
5
- import { m as mergeAndSortMessages, p as passUnsuccessfullMessages, s as scrollIntoLast, c as scrollToRenderedMessage, g as getAllEmojisMapFromEmojiContainer, d as getNicknamesMapFromMembers } from '../chunks/bundle-BP5nTWqh.js';
6
- import { g as getIsReactionEnabled } from '../chunks/bundle-B0WDmdBo.js';
7
- import { _ as __assign, c as __spreadArray } from '../chunks/bundle-Dd7yWAzk.js';
8
- import { f as format } from '../chunks/bundle-BCAy5wyj.js';
4
+ import { T as ThreadReplySelectType } from '../chunks/bundle-BOSnopxk.js';
5
+ import { m as mergeAndSortMessages, p as passUnsuccessfullMessages, s as scrollIntoLast, c as scrollToRenderedMessage, g as getAllEmojisMapFromEmojiContainer, d as getNicknamesMapFromMembers } from '../chunks/bundle-DDkUg3Os.js';
6
+ import { g as getIsReactionEnabled } from '../chunks/bundle-Jir4hfa9.js';
7
+ import { _ as __assign, c as __spreadArray } from '../chunks/bundle-7oF7KbGv.js';
8
+ import { f as format } from '../chunks/bundle-C040958G.js';
9
9
  import { SendingStatus, ReplyType, MessageMetaArray } from '@sendbird/chat/message';
10
- import { K, S } from '../chunks/bundle-58U1RLA2.js';
11
- 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 '../chunks/bundle-BV-Kx6li.js';
12
- import { c as compareIds } from '../chunks/bundle-E_q9aH_b.js';
13
- import { P as PREV_RESULT_SIZE, N as NEXT_RESULT_SIZE, u as useInitialMessagesFetch } from '../chunks/bundle-Dh8TY5YU.js';
14
- import { e as isSendableMessage, a0 as filterMessageListParams } from '../chunks/bundle-Cgpa9xMh.js';
10
+ import { K, e as isSendableMessage, a1 as S, a2 as filterMessageListParams } from '../chunks/bundle-BWCGFXhj.js';
11
+ 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 '../chunks/bundle-C_Vyt_ii.js';
12
+ import { c as compareIds } from '../chunks/bundle-BKho3Uub.js';
13
+ import { P as PREV_RESULT_SIZE, N as NEXT_RESULT_SIZE, u as useInitialMessagesFetch } from '../chunks/bundle-BTkRy0wv.js';
15
14
  import { GroupChannelHandler } from '@sendbird/chat/groupChannel';
16
- import { u as uuidv4 } from '../chunks/bundle-D7HxTsM2.js';
17
- import { u as useReconnectOnIdle } from '../chunks/bundle-BL0tKclB.js';
18
- import { d as SCROLL_BOTTOM_DELAY_FOR_FETCH, e as SCROLL_BOTTOM_DELAY_FOR_SEND, a as VOICE_MESSAGE_FILE_NAME, b as VOICE_MESSAGE_MIME_TYPE, M as META_ARRAY_VOICE_DURATION_KEY, j as META_ARRAY_MESSAGE_TYPE_KEY, k as META_ARRAY_MESSAGE_TYPE_VALUE__VOICE } from '../chunks/bundle-B7UQ7Txq.js';
19
- import { p as pubSubTopics, P as PublishingModuleType, b as PUBSUB_TOPICS, s as shouldPubSubPublishToChannel } from '../chunks/bundle-DtHyIHaJ.js';
20
- import { u as useToggleReactionCallback } from '../chunks/bundle-DSw2Wyv5.js';
21
- import { a as getCaseResolvedThreadReplySelectType } from '../chunks/bundle-D_o_gdug.js';
22
- import { u as useSendMultipleFilesMessage } from '../chunks/bundle-BqkgxfCT.js';
15
+ import { u as uuidv4 } from '../chunks/bundle-BJ46V6XQ.js';
16
+ import { u as useReconnectOnIdle } from '../chunks/bundle-dC3DwujZ.js';
17
+ import { a as SCROLL_BOTTOM_DELAY_FOR_FETCH, b as SCROLL_BOTTOM_DELAY_FOR_SEND, g as VOICE_MESSAGE_FILE_NAME, h 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 '../chunks/bundle-CD9AzC6s.js';
18
+ import { p as pubSubTopics, P as PublishingModuleType, b as PUBSUB_TOPICS, s as shouldPubSubPublishToChannel } from '../chunks/bundle-BWuyd0AD.js';
19
+ import { u as useToggleReactionCallback } from '../chunks/bundle-oCSRGy9i.js';
20
+ import { g as getCaseResolvedReplyType, a as getCaseResolvedThreadReplySelectType } from '../chunks/bundle-BtY8jyVv.js';
21
+ import { u as useSendMultipleFilesMessage } from '../chunks/bundle-DaAoUDJk.js';
23
22
  import '../withSendbird.js';
24
- import '../chunks/bundle-DD0CjCiu.js';
23
+ import '../chunks/bundle-C1ds4cil.js';
25
24
  import '../utils/message/getOutgoingMessageState.js';
26
25
 
27
- var initialState = {
28
- initialized: false,
29
- loading: true,
30
- allMessages: [],
31
- /**
32
- * localMessages: pending & failed messages
33
- */
34
- localMessages: [],
35
- currentGroupChannel: null,
36
- // for scrollup
37
- hasMorePrev: false,
38
- oldestMessageTimeStamp: 0,
39
- // for scroll down
40
- // onScrollDownCallback is added for navigation to different timestamps on messageSearch
41
- // hasMorePrev, onScrollCallback -> scroll up(default behavior)
42
- // hasMoreNext, onScrollDownCallback -> scroll down
43
- hasMoreNext: false,
44
- latestMessageTimeStamp: 0,
45
- emojiContainer: { emojiCategories: [], emojiHash: '' },
46
- /** @deprecated Please use `unreadSinceDate` instead. * */
47
- unreadSince: null,
48
- /**
49
- * unreadSinceDate is a date information about message unread.
50
- * It's used only for the {unreadSinceDate && <UnreadCount unreadSinceDate={unreadSinceDate} />}
51
- */
52
- unreadSinceDate: null,
53
- isInvalid: false,
54
- readStatus: null,
55
- messageListParams: null,
56
- typingMembers: [],
26
+ var initialState = {
27
+ initialized: false,
28
+ loading: true,
29
+ allMessages: [],
30
+ /**
31
+ * localMessages: pending & failed messages
32
+ */
33
+ localMessages: [],
34
+ currentGroupChannel: null,
35
+ // for scrollup
36
+ hasMorePrev: false,
37
+ oldestMessageTimeStamp: 0,
38
+ // for scroll down
39
+ // onScrollDownCallback is added for navigation to different timestamps on messageSearch
40
+ // hasMorePrev, onScrollCallback -> scroll up(default behavior)
41
+ // hasMoreNext, onScrollDownCallback -> scroll down
42
+ hasMoreNext: false,
43
+ latestMessageTimeStamp: 0,
44
+ emojiContainer: { emojiCategories: [], emojiHash: '' },
45
+ /** @deprecated Please use `unreadSinceDate` instead. * */
46
+ unreadSince: null,
47
+ /**
48
+ * unreadSinceDate is a date information about message unread.
49
+ * It's used only for the {unreadSinceDate && <UnreadCount unreadSinceDate={unreadSinceDate} />}
50
+ */
51
+ unreadSinceDate: null,
52
+ isInvalid: false,
53
+ readStatus: null,
54
+ messageListParams: null,
55
+ typingMembers: [],
57
56
  };
58
57
 
59
- var getOldestMessageTimeStamp = function (messages) {
60
- if (messages === void 0) { messages = []; }
61
- var oldestMessage = messages[0];
62
- return (oldestMessage && oldestMessage.createdAt) || null;
63
- };
64
- var getLatestMessageTimeStamp = function (messages) {
65
- if (messages === void 0) { messages = []; }
66
- var latestMessage = messages[messages.length - 1];
67
- return (latestMessage && latestMessage.createdAt) || null;
68
- };
69
- function hasReqId(message) {
70
- return 'reqId' in message;
71
- }
72
- function channelReducer(state, action) {
73
- return K(action)
74
- .with({ type: RESET_MESSAGES }, function () {
75
- return __assign(__assign({}, state), {
76
- // when user switches channel, if the previous channel `hasMorePrev`
77
- // the onScroll gets called twice, setting hasMorePrev false prevents this
78
- hasMorePrev: false, hasMoreNext: false, allMessages: [], localMessages: [] });
79
- })
80
- .with({ type: FETCH_INITIAL_MESSAGES_START }, function () {
81
- return __assign(__assign({}, state), { loading: true, allMessages: state.allMessages.filter(function (m) { return isSendableMessage(m)
82
- ? m.sendingStatus !== SendingStatus.SUCCEEDED
83
- : true; }), localMessages: [] });
84
- })
85
- .with({ type: FETCH_INITIAL_MESSAGES_SUCCESS }, function (action) {
86
- var _a;
87
- var _b = action.payload, currentGroupChannel = _b.currentGroupChannel, messages = _b.messages;
88
- if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_a = state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url))) {
89
- return state;
90
- }
91
- var oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
92
- var latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
93
- return __assign(__assign({}, state), { loading: false, initialized: true, hasMorePrev: true, hasMoreNext: true, oldestMessageTimeStamp: oldestMessageTimeStamp, latestMessageTimeStamp: latestMessageTimeStamp, allMessages: __spreadArray([], messages, true) });
94
- })
95
- .with({ type: FETCH_PREV_MESSAGES_SUCCESS }, function (action) {
96
- var _a, _b, _c, _d;
97
- var _e = action.payload, currentGroupChannel = _e.currentGroupChannel, messages = _e.messages;
98
- if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_a = state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url))) {
99
- return state;
100
- }
101
- var hasMorePrev = ((_b = messages === null || messages === void 0 ? void 0 : messages.length) !== null && _b !== void 0 ? _b : 0)
102
- >= ((_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;
103
- var oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
104
- // Remove duplicated messages
105
- var duplicatedMessageIds = [];
106
- var updatedOldMessages = state.allMessages.map(function (msg) {
107
- var duplicatedMessage = messages.find(function (_a) {
108
- var messageId = _a.messageId;
109
- return compareIds(messageId, msg.messageId);
110
- });
111
- if (!duplicatedMessage) {
112
- return msg;
113
- }
114
- duplicatedMessageIds.push(duplicatedMessage.messageId);
115
- return duplicatedMessage.updatedAt > msg.updatedAt
116
- ? duplicatedMessage
117
- : msg;
118
- });
119
- var filteredNewMessages = duplicatedMessageIds.length > 0
120
- ? messages.filter(function (msg) { return !duplicatedMessageIds.find(function (messageId) { return compareIds(messageId, msg.messageId); }); })
121
- : messages;
122
- return __assign(__assign({}, state), { hasMorePrev: hasMorePrev, oldestMessageTimeStamp: oldestMessageTimeStamp, allMessages: __spreadArray(__spreadArray([], filteredNewMessages, true), updatedOldMessages, true) });
123
- })
124
- .with({ type: FETCH_NEXT_MESSAGES_SUCCESS }, function (action) {
125
- var _a, _b, _c, _d;
126
- var _e = action.payload, currentGroupChannel = _e.currentGroupChannel, messages = _e.messages;
127
- if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_a = state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url))) {
128
- return state;
129
- }
130
- var hasMoreNext = ((_b = messages === null || messages === void 0 ? void 0 : messages.length) !== null && _b !== void 0 ? _b : 0)
131
- === ((_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;
132
- var latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
133
- // sort ~
134
- var sortedMessages = mergeAndSortMessages(state.allMessages, messages);
135
- return __assign(__assign({}, state), { hasMoreNext: hasMoreNext, latestMessageTimeStamp: latestMessageTimeStamp, allMessages: sortedMessages });
136
- })
137
- .with({
138
- type: S.union(FETCH_INITIAL_MESSAGES_FAILURE, FETCH_PREV_MESSAGES_FAILURE, FETCH_NEXT_MESSAGES_FAILURE),
139
- }, function (action) {
140
- var _a;
141
- var currentGroupChannel = action.payload.currentGroupChannel;
142
- 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))
143
- return state;
144
- // It shows something went wrong screen when fetching initial messages failed.
145
- var shouldInvalid = [FETCH_INITIAL_MESSAGES_FAILURE].includes(action.type);
146
- return __assign(__assign({}, state), { loading: false, isInvalid: shouldInvalid, initialized: false, allMessages: [], hasMorePrev: false, hasMoreNext: false, oldestMessageTimeStamp: null, latestMessageTimeStamp: null });
147
- })
148
- .with({ type: SEND_MESSAGE_START }, function (action) {
149
- // Message should not be spread here
150
- // it will loose some methods like `isUserMessage`
151
- return __assign(__assign({}, state), { localMessages: __spreadArray(__spreadArray([], state.localMessages, true), [action.payload], false) });
152
- })
153
- .with({ type: SEND_MESSAGE_SUCCESS }, function (action) {
154
- var message = action.payload;
155
- /**
156
- * Admin messages do not have reqId. We need to include them.
157
- */
158
- 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); });
159
- // [Policy] Pending messages and failed messages
160
- // must always be at the end of the message list
161
- 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); }) });
162
- })
163
- .with({ type: SEND_MESSAGE_FAILURE }, function (action) {
164
- // @ts-ignore
165
- action.payload.failed = true;
166
- return __assign(__assign({}, state), { localMessages: state.localMessages.map(function (m) { return compareIds(hasReqId(m) && m.reqId, action.payload.reqId)
167
- ? action.payload
168
- : m; }) });
169
- })
170
- .with({ type: SET_CURRENT_CHANNEL }, function (action) {
171
- return __assign(__assign({}, state), { currentGroupChannel: action.payload, isInvalid: false });
172
- })
173
- .with({ type: SET_CHANNEL_INVALID }, function () {
174
- return __assign(__assign({}, state), { currentGroupChannel: null, allMessages: [], localMessages: [], isInvalid: true });
175
- })
176
- .with({ type: ON_MESSAGE_RECEIVED }, function (action) {
177
- var _a, _b;
178
- var _c = action.payload, channel = _c.channel, message = _c.message;
179
- var members = channel.members;
180
- var sender = message.sender;
181
- var currentGroupChannel = state.currentGroupChannel;
182
- var currentGroupChannelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
183
- if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
184
- return state;
185
- }
186
- // Excluded overlapping messages
187
- if (state.allMessages.some(function (msg) { return msg.messageId === message.messageId; })) {
188
- return state;
189
- }
190
- // Filter by userFilledQuery
191
- if (state.messageListParams
192
- && !filterMessageListParams(state.messageListParams, message)) {
193
- return state;
194
- }
195
- if (message.isAdminMessage && message.isAdminMessage()) {
196
- return __assign(__assign({}, state), { allMessages: passUnsuccessfullMessages(state.allMessages, message) });
197
- }
198
- // Update members when sender profileUrl, nickname, friendName has been changed
199
- 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); });
200
- if ((senderMember === null || senderMember === void 0 ? void 0 : senderMember.profileUrl) !== (sender === null || sender === void 0 ? void 0 : sender.profileUrl)
201
- || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.friendName) !== (sender === null || sender === void 0 ? void 0 : sender.friendName)
202
- || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.nickname) !== (sender === null || sender === void 0 ? void 0 : sender.nickname)) {
203
- // @ts-ignore
204
- channel.members = members.map(function (member) {
205
- if (member.userId === sender.userId) {
206
- return sender;
207
- }
208
- return member;
209
- });
210
- }
211
- 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) });
212
- })
213
- .with({ type: ON_MESSAGE_UPDATED }, function (action) {
214
- var _a;
215
- var _b = action.payload, channel = _b.channel, message = _b.message;
216
- var currentGroupChannelUrl = ((_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url) || '';
217
- if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
218
- return state; // Ignore event when it is not for the current channel
219
- }
220
- if (state.messageListParams
221
- && !filterMessageListParams(state.messageListParams, message)) {
222
- // Delete the message if it doesn't match to the params anymore
223
- return __assign(__assign({}, state), { allMessages: state.allMessages.filter(function (m) { return !compareIds(m.messageId, message === null || message === void 0 ? void 0 : message.messageId); }) });
224
- }
225
- return __assign(__assign({}, state), { allMessages: state.allMessages.map(function (m) {
226
- if (compareIds(m.messageId, message.messageId)) {
227
- return message;
228
- }
229
- if (compareIds(m.parentMessageId, message.messageId)) {
230
- m.parentMessage = message; // eslint-disable-line no-param-reassign
231
- }
232
- return m;
233
- }) });
234
- })
235
- .with({ type: ON_MESSAGE_THREAD_INFO_UPDATED }, function (action) {
236
- var _a;
237
- var _b = action.payload, channel = _b.channel, event = _b.event;
238
- var channelUrl = event.channelUrl, threadInfo = event.threadInfo, targetMessageId = event.targetMessageId;
239
- var currentGroupChannelUrl = ((_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url) || '';
240
- if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)
241
- || !compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
242
- return state; // Ignore event when it is not for the current channel
243
- }
244
- return __assign(__assign({}, state), { allMessages: state.allMessages.map(function (m) {
245
- if (compareIds(m.messageId, targetMessageId)) {
246
- // eslint-disable-next-line no-param-reassign
247
- m.threadInfo = threadInfo; // Upsert threadInfo to the target message
248
- }
249
- return m;
250
- }) });
251
- })
252
- .with({ type: RESEND_MESSAGE_START }, function (action) {
253
- return __assign(__assign({}, state), { localMessages: state.localMessages.map(function (m) { return compareIds(hasReqId(m) && m.reqId, action.payload.reqId)
254
- ? action.payload
255
- : m; }) });
256
- })
257
- .with({ type: MARK_AS_READ }, function (action) {
258
- var _a, _b, _c;
259
- 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)) {
260
- return state;
261
- }
262
- return __assign(__assign({}, state), { unreadSince: null, unreadSinceDate: null });
263
- })
264
- .with({ type: ON_MESSAGE_DELETED }, function (action) {
265
- return __assign(__assign({}, state), { allMessages: state.allMessages.filter(function (m) { return !compareIds(m.messageId, action.payload); }) });
266
- })
267
- .with({ type: ON_MESSAGE_DELETED_BY_REQ_ID }, function (action) {
268
- return __assign(__assign({}, state), { localMessages: state.localMessages.filter(function (m) { return !compareIds(hasReqId(m) && m.reqId, action.payload); }) });
269
- })
270
- .with({ type: SET_EMOJI_CONTAINER }, function (action) {
271
- return __assign(__assign({}, state), { emojiContainer: action.payload });
272
- })
273
- .with({ type: ON_REACTION_UPDATED }, function (action) {
274
- return __assign(__assign({}, state), { allMessages: state.allMessages.map(function (m) {
275
- if (compareIds(m.messageId, action.payload.messageId)) {
276
- if (m.applyReactionEvent
277
- && typeof m.applyReactionEvent === 'function') {
278
- m.applyReactionEvent(action.payload);
279
- }
280
- return m;
281
- }
282
- return m;
283
- }) });
284
- })
285
- .with({ type: MESSAGE_LIST_PARAMS_CHANGED }, function (action) {
286
- return __assign(__assign({}, state), { messageListParams: action.payload });
287
- })
288
- .with({ type: ON_FILE_INFO_UPLOADED }, function (action) {
289
- var _a, _b;
290
- var _c = action.payload, channelUrl = _c.channelUrl, requestId = _c.requestId, index = _c.index, uploadableFileInfo = _c.uploadableFileInfo, error = _c.error;
291
- if (!compareIds(channelUrl, (_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url)) {
292
- return state;
293
- }
294
- /**
295
- * We don't have to do anything here because
296
- * onFailed() will be called so handle error there instead.
297
- */
298
- if (error)
299
- return state;
300
- var localMessages = state.localMessages;
301
- var messageToUpdate = localMessages.find(function (message) { return compareIds(hasReqId(message) && message.reqId, requestId); });
302
- var fileInfoList = (_b = messageToUpdate
303
- .messageParams) === null || _b === void 0 ? void 0 : _b.fileInfoList;
304
- if (Array.isArray(fileInfoList)) {
305
- fileInfoList[index] = uploadableFileInfo;
306
- }
307
- return __assign(__assign({}, state), { localMessages: localMessages });
308
- })
309
- .with({ type: ON_TYPING_STATUS_UPDATED }, function (action) {
310
- var _a;
311
- var _b = action.payload, channel = _b.channel, typingMembers = _b.typingMembers;
312
- if (!compareIds(channel.url, (_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url)) {
313
- return state;
314
- }
315
- return __assign(__assign({}, state), { typingMembers: typingMembers });
316
- })
317
- .otherwise(function () { return state; });
58
+ var getOldestMessageTimeStamp = function (messages) {
59
+ if (messages === void 0) { messages = []; }
60
+ var oldestMessage = messages[0];
61
+ return (oldestMessage && oldestMessage.createdAt) || null;
62
+ };
63
+ var getLatestMessageTimeStamp = function (messages) {
64
+ if (messages === void 0) { messages = []; }
65
+ var latestMessage = messages[messages.length - 1];
66
+ return (latestMessage && latestMessage.createdAt) || null;
67
+ };
68
+ function hasReqId(message) {
69
+ return 'reqId' in message;
70
+ }
71
+ function channelReducer(state, action) {
72
+ return K(action)
73
+ .with({ type: RESET_MESSAGES }, function () {
74
+ return __assign(__assign({}, state), {
75
+ // when user switches channel, if the previous channel `hasMorePrev`
76
+ // the onScroll gets called twice, setting hasMorePrev false prevents this
77
+ hasMorePrev: false, hasMoreNext: false, allMessages: [], localMessages: [] });
78
+ })
79
+ .with({ type: FETCH_INITIAL_MESSAGES_START }, function () {
80
+ return __assign(__assign({}, state), { loading: true, allMessages: state.allMessages.filter(function (m) { return isSendableMessage(m)
81
+ ? m.sendingStatus !== SendingStatus.SUCCEEDED
82
+ : true; }), localMessages: [] });
83
+ })
84
+ .with({ type: FETCH_INITIAL_MESSAGES_SUCCESS }, function (action) {
85
+ var _a;
86
+ var _b = action.payload, currentGroupChannel = _b.currentGroupChannel, messages = _b.messages;
87
+ if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_a = state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url))) {
88
+ return state;
89
+ }
90
+ var oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
91
+ var latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
92
+ return __assign(__assign({}, state), { loading: false, initialized: true, hasMorePrev: true, hasMoreNext: true, oldestMessageTimeStamp: oldestMessageTimeStamp, latestMessageTimeStamp: latestMessageTimeStamp, allMessages: __spreadArray([], messages, true) });
93
+ })
94
+ .with({ type: FETCH_PREV_MESSAGES_SUCCESS }, function (action) {
95
+ var _a, _b, _c, _d;
96
+ var _e = action.payload, currentGroupChannel = _e.currentGroupChannel, messages = _e.messages;
97
+ if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_a = state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url))) {
98
+ return state;
99
+ }
100
+ var hasMorePrev = ((_b = messages === null || messages === void 0 ? void 0 : messages.length) !== null && _b !== void 0 ? _b : 0)
101
+ >= ((_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;
102
+ var oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
103
+ // Remove duplicated messages
104
+ var duplicatedMessageIds = [];
105
+ var updatedOldMessages = state.allMessages.map(function (msg) {
106
+ var duplicatedMessage = messages.find(function (_a) {
107
+ var messageId = _a.messageId;
108
+ return compareIds(messageId, msg.messageId);
109
+ });
110
+ if (!duplicatedMessage) {
111
+ return msg;
112
+ }
113
+ duplicatedMessageIds.push(duplicatedMessage.messageId);
114
+ return duplicatedMessage.updatedAt > msg.updatedAt
115
+ ? duplicatedMessage
116
+ : msg;
117
+ });
118
+ var filteredNewMessages = duplicatedMessageIds.length > 0
119
+ ? messages.filter(function (msg) { return !duplicatedMessageIds.find(function (messageId) { return compareIds(messageId, msg.messageId); }); })
120
+ : messages;
121
+ return __assign(__assign({}, state), { hasMorePrev: hasMorePrev, oldestMessageTimeStamp: oldestMessageTimeStamp, allMessages: __spreadArray(__spreadArray([], filteredNewMessages, true), updatedOldMessages, true) });
122
+ })
123
+ .with({ type: FETCH_NEXT_MESSAGES_SUCCESS }, function (action) {
124
+ var _a, _b, _c, _d;
125
+ var _e = action.payload, currentGroupChannel = _e.currentGroupChannel, messages = _e.messages;
126
+ if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_a = state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url))) {
127
+ return state;
128
+ }
129
+ var hasMoreNext = ((_b = messages === null || messages === void 0 ? void 0 : messages.length) !== null && _b !== void 0 ? _b : 0)
130
+ === ((_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;
131
+ var latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
132
+ // sort ~
133
+ var sortedMessages = mergeAndSortMessages(state.allMessages, messages);
134
+ return __assign(__assign({}, state), { hasMoreNext: hasMoreNext, latestMessageTimeStamp: latestMessageTimeStamp, allMessages: sortedMessages });
135
+ })
136
+ .with({
137
+ type: S.union(FETCH_INITIAL_MESSAGES_FAILURE, FETCH_PREV_MESSAGES_FAILURE, FETCH_NEXT_MESSAGES_FAILURE),
138
+ }, function (action) {
139
+ var _a;
140
+ var currentGroupChannel = action.payload.currentGroupChannel;
141
+ 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))
142
+ return state;
143
+ // It shows something went wrong screen when fetching initial messages failed.
144
+ var shouldInvalid = [FETCH_INITIAL_MESSAGES_FAILURE].includes(action.type);
145
+ return __assign(__assign({}, state), { loading: false, isInvalid: shouldInvalid, initialized: false, allMessages: [], hasMorePrev: false, hasMoreNext: false, oldestMessageTimeStamp: null, latestMessageTimeStamp: null });
146
+ })
147
+ .with({ type: SEND_MESSAGE_START }, function (action) {
148
+ // Message should not be spread here
149
+ // it will loose some methods like `isUserMessage`
150
+ return __assign(__assign({}, state), { localMessages: __spreadArray(__spreadArray([], state.localMessages, true), [action.payload], false) });
151
+ })
152
+ .with({ type: SEND_MESSAGE_SUCCESS }, function (action) {
153
+ var message = action.payload;
154
+ /**
155
+ * Admin messages do not have reqId. We need to include them.
156
+ */
157
+ 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); });
158
+ // [Policy] Pending messages and failed messages
159
+ // must always be at the end of the message list
160
+ 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); }) });
161
+ })
162
+ .with({ type: SEND_MESSAGE_FAILURE }, function (action) {
163
+ // @ts-ignore
164
+ action.payload.failed = true;
165
+ return __assign(__assign({}, state), { localMessages: state.localMessages.map(function (m) { return compareIds(hasReqId(m) && m.reqId, action.payload.reqId)
166
+ ? action.payload
167
+ : m; }) });
168
+ })
169
+ .with({ type: SET_CURRENT_CHANNEL }, function (action) {
170
+ return __assign(__assign({}, state), { currentGroupChannel: action.payload, isInvalid: false });
171
+ })
172
+ .with({ type: SET_CHANNEL_INVALID }, function () {
173
+ return __assign(__assign({}, state), { currentGroupChannel: null, allMessages: [], localMessages: [], isInvalid: true });
174
+ })
175
+ .with({ type: ON_MESSAGE_RECEIVED }, function (action) {
176
+ var _a, _b;
177
+ var _c = action.payload, channel = _c.channel, message = _c.message;
178
+ var members = channel.members;
179
+ var sender = message.sender;
180
+ var currentGroupChannel = state.currentGroupChannel;
181
+ var currentGroupChannelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
182
+ if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
183
+ return state;
184
+ }
185
+ // Excluded overlapping messages
186
+ if (state.allMessages.some(function (msg) { return msg.messageId === message.messageId; })) {
187
+ return state;
188
+ }
189
+ // Filter by userFilledQuery
190
+ if (state.messageListParams
191
+ && !filterMessageListParams(state.messageListParams, message)) {
192
+ return state;
193
+ }
194
+ if (message.isAdminMessage && message.isAdminMessage()) {
195
+ return __assign(__assign({}, state), { allMessages: passUnsuccessfullMessages(state.allMessages, message) });
196
+ }
197
+ // Update members when sender profileUrl, nickname, friendName has been changed
198
+ 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); });
199
+ if ((senderMember === null || senderMember === void 0 ? void 0 : senderMember.profileUrl) !== (sender === null || sender === void 0 ? void 0 : sender.profileUrl)
200
+ || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.friendName) !== (sender === null || sender === void 0 ? void 0 : sender.friendName)
201
+ || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.nickname) !== (sender === null || sender === void 0 ? void 0 : sender.nickname)) {
202
+ // @ts-ignore
203
+ channel.members = members.map(function (member) {
204
+ if (member.userId === sender.userId) {
205
+ return sender;
206
+ }
207
+ return member;
208
+ });
209
+ }
210
+ 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) });
211
+ })
212
+ .with({ type: ON_MESSAGE_UPDATED }, function (action) {
213
+ var _a;
214
+ var _b = action.payload, channel = _b.channel, message = _b.message;
215
+ var currentGroupChannelUrl = ((_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url) || '';
216
+ if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
217
+ return state; // Ignore event when it is not for the current channel
218
+ }
219
+ if (state.messageListParams
220
+ && !filterMessageListParams(state.messageListParams, message)) {
221
+ // Delete the message if it doesn't match to the params anymore
222
+ return __assign(__assign({}, state), { allMessages: state.allMessages.filter(function (m) { return !compareIds(m.messageId, message === null || message === void 0 ? void 0 : message.messageId); }) });
223
+ }
224
+ return __assign(__assign({}, state), { allMessages: state.allMessages.map(function (m) {
225
+ if (compareIds(m.messageId, message.messageId)) {
226
+ return message;
227
+ }
228
+ if (compareIds(m.parentMessageId, message.messageId)) {
229
+ m.parentMessage = message; // eslint-disable-line no-param-reassign
230
+ }
231
+ return m;
232
+ }) });
233
+ })
234
+ .with({ type: ON_MESSAGE_THREAD_INFO_UPDATED }, function (action) {
235
+ var _a;
236
+ var _b = action.payload, channel = _b.channel, event = _b.event;
237
+ var channelUrl = event.channelUrl, threadInfo = event.threadInfo, targetMessageId = event.targetMessageId;
238
+ var currentGroupChannelUrl = ((_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url) || '';
239
+ if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)
240
+ || !compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
241
+ return state; // Ignore event when it is not for the current channel
242
+ }
243
+ return __assign(__assign({}, state), { allMessages: state.allMessages.map(function (m) {
244
+ if (compareIds(m.messageId, targetMessageId)) {
245
+ // eslint-disable-next-line no-param-reassign
246
+ m.threadInfo = threadInfo; // Upsert threadInfo to the target message
247
+ }
248
+ return m;
249
+ }) });
250
+ })
251
+ .with({ type: RESEND_MESSAGE_START }, function (action) {
252
+ return __assign(__assign({}, state), { localMessages: state.localMessages.map(function (m) { return compareIds(hasReqId(m) && m.reqId, action.payload.reqId)
253
+ ? action.payload
254
+ : m; }) });
255
+ })
256
+ .with({ type: MARK_AS_READ }, function (action) {
257
+ var _a, _b, _c;
258
+ 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)) {
259
+ return state;
260
+ }
261
+ return __assign(__assign({}, state), { unreadSince: null, unreadSinceDate: null });
262
+ })
263
+ .with({ type: ON_MESSAGE_DELETED }, function (action) {
264
+ return __assign(__assign({}, state), { allMessages: state.allMessages.filter(function (m) { return !compareIds(m.messageId, action.payload); }) });
265
+ })
266
+ .with({ type: ON_MESSAGE_DELETED_BY_REQ_ID }, function (action) {
267
+ return __assign(__assign({}, state), { localMessages: state.localMessages.filter(function (m) { return !compareIds(hasReqId(m) && m.reqId, action.payload); }) });
268
+ })
269
+ .with({ type: SET_EMOJI_CONTAINER }, function (action) {
270
+ return __assign(__assign({}, state), { emojiContainer: action.payload });
271
+ })
272
+ .with({ type: ON_REACTION_UPDATED }, function (action) {
273
+ return __assign(__assign({}, state), { allMessages: state.allMessages.map(function (m) {
274
+ if (compareIds(m.messageId, action.payload.messageId)) {
275
+ if (m.applyReactionEvent
276
+ && typeof m.applyReactionEvent === 'function') {
277
+ m.applyReactionEvent(action.payload);
278
+ }
279
+ return m;
280
+ }
281
+ return m;
282
+ }) });
283
+ })
284
+ .with({ type: MESSAGE_LIST_PARAMS_CHANGED }, function (action) {
285
+ return __assign(__assign({}, state), { messageListParams: action.payload });
286
+ })
287
+ .with({ type: ON_FILE_INFO_UPLOADED }, function (action) {
288
+ var _a, _b;
289
+ var _c = action.payload, channelUrl = _c.channelUrl, requestId = _c.requestId, index = _c.index, uploadableFileInfo = _c.uploadableFileInfo, error = _c.error;
290
+ if (!compareIds(channelUrl, (_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url)) {
291
+ return state;
292
+ }
293
+ /**
294
+ * We don't have to do anything here because
295
+ * onFailed() will be called so handle error there instead.
296
+ */
297
+ if (error)
298
+ return state;
299
+ var localMessages = state.localMessages;
300
+ var messageToUpdate = localMessages.find(function (message) { return compareIds(hasReqId(message) && message.reqId, requestId); });
301
+ var fileInfoList = (_b = messageToUpdate
302
+ .messageParams) === null || _b === void 0 ? void 0 : _b.fileInfoList;
303
+ if (Array.isArray(fileInfoList)) {
304
+ fileInfoList[index] = uploadableFileInfo;
305
+ }
306
+ return __assign(__assign({}, state), { localMessages: localMessages });
307
+ })
308
+ .with({ type: ON_TYPING_STATUS_UPDATED }, function (action) {
309
+ var _a;
310
+ var _b = action.payload, channel = _b.channel, typingMembers = _b.typingMembers;
311
+ if (!compareIds(channel.url, (_a = state === null || state === void 0 ? void 0 : state.currentGroupChannel) === null || _a === void 0 ? void 0 : _a.url)) {
312
+ return state;
313
+ }
314
+ return __assign(__assign({}, state), { typingMembers: typingMembers });
315
+ })
316
+ .otherwise(function () { return state; });
318
317
  }
319
318
 
320
- var DELIVERY_RECEIPT = 'delivery_receipt';
321
- function useHandleChannelEvents(_a, _b) {
322
- var _c, _d, _e;
323
- var sdkInit = _a.sdkInit, currentGroupChannel = _a.currentGroupChannel, disableMarkAsRead = _a.disableMarkAsRead;
324
- var sdk = _b.sdk, logger = _b.logger, scrollRef = _b.scrollRef, setQuoteMessage = _b.setQuoteMessage, messagesDispatcher = _b.messagesDispatcher;
325
- var store = useSendbirdStateContext();
326
- var _f = store.config, markAsReadScheduler = _f.markAsReadScheduler, markAsDeliveredScheduler = _f.markAsDeliveredScheduler, disableMarkAsDelivered = _f.disableMarkAsDelivered;
327
- 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); });
328
- useEffect(function () {
329
- var _a;
330
- var channelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
331
- var channelHandlerId = uuidv4();
332
- if (channelUrl && sdkInit) {
333
- var channelHandler = {
334
- onMessageReceived: function (channel, message) {
335
- var _a, _b;
336
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
337
- var scrollToEnd = false;
338
- try {
339
- var current = scrollRef.current;
340
- scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight - 10;
341
- // 10 is a buffer
342
- }
343
- catch (error) {
344
- //
345
- }
346
- logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);
347
- messagesDispatcher({
348
- type: ON_MESSAGE_RECEIVED,
349
- payload: { channel: channel, message: message },
350
- });
351
- if (scrollToEnd
352
- && ((_a = document.getElementById('sendbird-dropdown-portal')) === null || _a === void 0 ? void 0 : _a.childElementCount) === 0
353
- && ((_b = document.getElementById('sendbird-emoji-list-portal')) === null || _b === void 0 ? void 0 : _b.childElementCount) === 0) {
354
- // and !openContextMenu
355
- try {
356
- setTimeout(function () { return scrollIntoLast(0, scrollRef); });
357
- if (!disableMarkAsRead) {
358
- markAsReadScheduler.push(currentGroupChannel);
359
- }
360
- if (canSetMarkAsDelivered && !disableMarkAsDelivered) {
361
- markAsDeliveredScheduler.push(currentGroupChannel);
362
- }
363
- }
364
- catch (error) {
365
- logger.warning('Channel | onMessageReceived | scroll to end failed');
366
- }
367
- }
368
- }
369
- },
370
- onUnreadMemberStatusUpdated: function (channel) {
371
- logger.info('Channel | useHandleChannelEvents: onUnreadMemberStatusUpdated', channel);
372
- if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
373
- messagesDispatcher({
374
- type: SET_CURRENT_CHANNEL,
375
- payload: channel,
376
- });
377
- }
378
- },
379
- // before(onDeliveryReceiptUpdated)
380
- onUndeliveredMemberStatusUpdated: function (channel) {
381
- if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
382
- logger.info('Channel | useHandleChannelEvents: onDeliveryReceiptUpdated', channel);
383
- messagesDispatcher({
384
- type: SET_CURRENT_CHANNEL,
385
- payload: channel,
386
- });
387
- }
388
- },
389
- onMessageUpdated: function (channel, message) {
390
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
391
- logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);
392
- messagesDispatcher({
393
- type: ON_MESSAGE_UPDATED,
394
- payload: { channel: channel, message: message },
395
- });
396
- }
397
- },
398
- onThreadInfoUpdated: function (channel, threadInfoUpdateEvent) {
399
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
400
- logger.info('Channel | useHandleChannelEvents: onThreadInfoUpdated', { channel: channel, threadInfoUpdateEvent: threadInfoUpdateEvent });
401
- messagesDispatcher({
402
- type: ON_MESSAGE_THREAD_INFO_UPDATED,
403
- payload: { channel: channel, event: threadInfoUpdateEvent },
404
- });
405
- }
406
- },
407
- onMessageDeleted: function (channel, messageId) {
408
- logger.info('Channel | useHandleChannelEvents: onMessageDeleted', { channel: channel, messageId: messageId });
409
- setQuoteMessage(null);
410
- messagesDispatcher({
411
- type: ON_MESSAGE_DELETED,
412
- payload: messageId,
413
- });
414
- },
415
- onReactionUpdated: function (channel, reactionEvent) {
416
- logger.info('Channel | useHandleChannelEvents: onReactionUpdated', { channel: channel, reactionEvent: reactionEvent });
417
- messagesDispatcher({
418
- type: ON_REACTION_UPDATED,
419
- payload: reactionEvent,
420
- });
421
- },
422
- onChannelChanged: function (channel) {
423
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
424
- logger.info('Channel | useHandleChannelEvents: onChannelChanged', channel);
425
- messagesDispatcher({
426
- type: SET_CURRENT_CHANNEL,
427
- payload: channel,
428
- });
429
- }
430
- },
431
- onChannelFrozen: function (channel) {
432
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
433
- logger.info('Channel | useHandleChannelEvents: onChannelFrozen', channel);
434
- messagesDispatcher({
435
- type: SET_CURRENT_CHANNEL,
436
- payload: channel,
437
- });
438
- }
439
- },
440
- onChannelUnfrozen: function (channel) {
441
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
442
- logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', channel);
443
- messagesDispatcher({
444
- type: SET_CURRENT_CHANNEL,
445
- payload: channel,
446
- });
447
- }
448
- },
449
- onUserMuted: function (channel, user) {
450
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
451
- logger.info('Channel | useHandleChannelEvents: onUserMuted', { channel: channel, user: user });
452
- messagesDispatcher({
453
- type: SET_CURRENT_CHANNEL,
454
- payload: channel,
455
- });
456
- }
457
- },
458
- onUserUnmuted: function (channel, user) {
459
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
460
- logger.info('Channel | useHandleChannelEvents: onUserUnmuted', { channel: channel, user: user });
461
- messagesDispatcher({
462
- type: SET_CURRENT_CHANNEL,
463
- payload: channel,
464
- });
465
- }
466
- },
467
- onUserBanned: function (channel, user) {
468
- var _a;
469
- if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
470
- logger.info('Channel | useHandleChannelEvents: onUserBanned', { channel: channel, user: user });
471
- 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);
472
- messagesDispatcher({
473
- type: SET_CURRENT_CHANNEL,
474
- payload: isByMe ? null : channel,
475
- });
476
- }
477
- },
478
- onOperatorUpdated: function (channel, users) {
479
- if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
480
- logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', { channel: channel, users: users });
481
- messagesDispatcher({
482
- type: SET_CURRENT_CHANNEL,
483
- payload: channel,
484
- });
485
- }
486
- },
487
- onUserLeft: function (channel, user) {
488
- var _a;
489
- if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
490
- logger.info('Channel | useHandleChannelEvents: onUserLeft', { channel: channel, user: user });
491
- 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);
492
- messagesDispatcher({
493
- type: SET_CURRENT_CHANNEL,
494
- payload: isByMe ? null : channel,
495
- });
496
- }
497
- },
498
- onTypingStatusUpdated: function (channel) {
499
- if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
500
- logger.info('Channel | onTypingStatusUpdated', { channel: channel });
501
- var typingMembers = channel.getTypingUsers();
502
- messagesDispatcher({
503
- type: ON_TYPING_STATUS_UPDATED,
504
- payload: {
505
- channel: channel,
506
- typingMembers: typingMembers,
507
- },
508
- });
509
- }
510
- },
511
- };
512
- logger.info('Channel | useHandleChannelEvents: Setup event handler', { channelHandlerId: channelHandlerId, channelHandler: channelHandler });
513
- // Add this group channel handler to the Sendbird chat instance
514
- (_a = sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.addGroupChannelHandler(channelHandlerId, new GroupChannelHandler(channelHandler));
515
- }
516
- return function () {
517
- var _a;
518
- if ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.removeGroupChannelHandler) {
519
- logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', channelHandlerId);
520
- sdk.groupChannel.removeGroupChannelHandler(channelHandlerId);
521
- }
522
- else if (sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) {
523
- logger.error('Channel | useHandleChannelEvents: Not found the removeGroupChannelHandler');
524
- }
525
- };
526
- }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, sdkInit]);
319
+ var DELIVERY_RECEIPT = 'delivery_receipt';
320
+ function useHandleChannelEvents(_a, _b) {
321
+ var _c, _d, _e;
322
+ var sdkInit = _a.sdkInit, currentGroupChannel = _a.currentGroupChannel, disableMarkAsRead = _a.disableMarkAsRead;
323
+ var sdk = _b.sdk, logger = _b.logger, scrollRef = _b.scrollRef, setQuoteMessage = _b.setQuoteMessage, messagesDispatcher = _b.messagesDispatcher;
324
+ var store = useSendbirdStateContext();
325
+ var _f = store.config, markAsReadScheduler = _f.markAsReadScheduler, markAsDeliveredScheduler = _f.markAsDeliveredScheduler, disableMarkAsDelivered = _f.disableMarkAsDelivered;
326
+ 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); });
327
+ useEffect(function () {
328
+ var _a;
329
+ var channelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
330
+ var channelHandlerId = uuidv4();
331
+ if (channelUrl && sdkInit) {
332
+ var channelHandler = {
333
+ onMessageReceived: function (channel, message) {
334
+ var _a, _b;
335
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
336
+ var scrollToEnd = false;
337
+ try {
338
+ var current = scrollRef.current;
339
+ scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight - 10;
340
+ // 10 is a buffer
341
+ }
342
+ catch (error) {
343
+ //
344
+ }
345
+ logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);
346
+ messagesDispatcher({
347
+ type: ON_MESSAGE_RECEIVED,
348
+ payload: { channel: channel, message: message },
349
+ });
350
+ if (scrollToEnd
351
+ && ((_a = document.getElementById('sendbird-dropdown-portal')) === null || _a === void 0 ? void 0 : _a.childElementCount) === 0
352
+ && ((_b = document.getElementById('sendbird-emoji-list-portal')) === null || _b === void 0 ? void 0 : _b.childElementCount) === 0) {
353
+ // and !openContextMenu
354
+ try {
355
+ setTimeout(function () { return scrollIntoLast(0, scrollRef); });
356
+ if (!disableMarkAsRead) {
357
+ markAsReadScheduler.push(currentGroupChannel);
358
+ }
359
+ if (canSetMarkAsDelivered && !disableMarkAsDelivered) {
360
+ markAsDeliveredScheduler.push(currentGroupChannel);
361
+ }
362
+ }
363
+ catch (error) {
364
+ logger.warning('Channel | onMessageReceived | scroll to end failed');
365
+ }
366
+ }
367
+ }
368
+ },
369
+ onUnreadMemberStatusUpdated: function (channel) {
370
+ logger.info('Channel | useHandleChannelEvents: onUnreadMemberStatusUpdated', channel);
371
+ if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
372
+ messagesDispatcher({
373
+ type: SET_CURRENT_CHANNEL,
374
+ payload: channel,
375
+ });
376
+ }
377
+ },
378
+ // before(onDeliveryReceiptUpdated)
379
+ onUndeliveredMemberStatusUpdated: function (channel) {
380
+ if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
381
+ logger.info('Channel | useHandleChannelEvents: onDeliveryReceiptUpdated', channel);
382
+ messagesDispatcher({
383
+ type: SET_CURRENT_CHANNEL,
384
+ payload: channel,
385
+ });
386
+ }
387
+ },
388
+ onMessageUpdated: function (channel, message) {
389
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
390
+ logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);
391
+ messagesDispatcher({
392
+ type: ON_MESSAGE_UPDATED,
393
+ payload: { channel: channel, message: message },
394
+ });
395
+ }
396
+ },
397
+ onThreadInfoUpdated: function (channel, threadInfoUpdateEvent) {
398
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
399
+ logger.info('Channel | useHandleChannelEvents: onThreadInfoUpdated', { channel: channel, threadInfoUpdateEvent: threadInfoUpdateEvent });
400
+ messagesDispatcher({
401
+ type: ON_MESSAGE_THREAD_INFO_UPDATED,
402
+ payload: { channel: channel, event: threadInfoUpdateEvent },
403
+ });
404
+ }
405
+ },
406
+ onMessageDeleted: function (channel, messageId) {
407
+ logger.info('Channel | useHandleChannelEvents: onMessageDeleted', { channel: channel, messageId: messageId });
408
+ setQuoteMessage(null);
409
+ messagesDispatcher({
410
+ type: ON_MESSAGE_DELETED,
411
+ payload: messageId,
412
+ });
413
+ },
414
+ onReactionUpdated: function (channel, reactionEvent) {
415
+ logger.info('Channel | useHandleChannelEvents: onReactionUpdated', { channel: channel, reactionEvent: reactionEvent });
416
+ messagesDispatcher({
417
+ type: ON_REACTION_UPDATED,
418
+ payload: reactionEvent,
419
+ });
420
+ },
421
+ onChannelChanged: function (channel) {
422
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
423
+ logger.info('Channel | useHandleChannelEvents: onChannelChanged', channel);
424
+ messagesDispatcher({
425
+ type: SET_CURRENT_CHANNEL,
426
+ payload: channel,
427
+ });
428
+ }
429
+ },
430
+ onChannelFrozen: function (channel) {
431
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
432
+ logger.info('Channel | useHandleChannelEvents: onChannelFrozen', channel);
433
+ messagesDispatcher({
434
+ type: SET_CURRENT_CHANNEL,
435
+ payload: channel,
436
+ });
437
+ }
438
+ },
439
+ onChannelUnfrozen: function (channel) {
440
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
441
+ logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', channel);
442
+ messagesDispatcher({
443
+ type: SET_CURRENT_CHANNEL,
444
+ payload: channel,
445
+ });
446
+ }
447
+ },
448
+ onUserMuted: function (channel, user) {
449
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
450
+ logger.info('Channel | useHandleChannelEvents: onUserMuted', { channel: channel, user: user });
451
+ messagesDispatcher({
452
+ type: SET_CURRENT_CHANNEL,
453
+ payload: channel,
454
+ });
455
+ }
456
+ },
457
+ onUserUnmuted: function (channel, user) {
458
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
459
+ logger.info('Channel | useHandleChannelEvents: onUserUnmuted', { channel: channel, user: user });
460
+ messagesDispatcher({
461
+ type: SET_CURRENT_CHANNEL,
462
+ payload: channel,
463
+ });
464
+ }
465
+ },
466
+ onUserBanned: function (channel, user) {
467
+ var _a;
468
+ if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
469
+ logger.info('Channel | useHandleChannelEvents: onUserBanned', { channel: channel, user: user });
470
+ 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);
471
+ messagesDispatcher({
472
+ type: SET_CURRENT_CHANNEL,
473
+ payload: isByMe ? null : channel,
474
+ });
475
+ }
476
+ },
477
+ onOperatorUpdated: function (channel, users) {
478
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
479
+ logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', { channel: channel, users: users });
480
+ messagesDispatcher({
481
+ type: SET_CURRENT_CHANNEL,
482
+ payload: channel,
483
+ });
484
+ }
485
+ },
486
+ onUserLeft: function (channel, user) {
487
+ var _a;
488
+ if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
489
+ logger.info('Channel | useHandleChannelEvents: onUserLeft', { channel: channel, user: user });
490
+ 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);
491
+ messagesDispatcher({
492
+ type: SET_CURRENT_CHANNEL,
493
+ payload: isByMe ? null : channel,
494
+ });
495
+ }
496
+ },
497
+ onTypingStatusUpdated: function (channel) {
498
+ if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
499
+ logger.info('Channel | onTypingStatusUpdated', { channel: channel });
500
+ var typingMembers = channel.getTypingUsers();
501
+ messagesDispatcher({
502
+ type: ON_TYPING_STATUS_UPDATED,
503
+ payload: {
504
+ channel: channel,
505
+ typingMembers: typingMembers,
506
+ },
507
+ });
508
+ }
509
+ },
510
+ };
511
+ logger.info('Channel | useHandleChannelEvents: Setup event handler', { channelHandlerId: channelHandlerId, channelHandler: channelHandler });
512
+ // Add this group channel handler to the Sendbird chat instance
513
+ (_a = sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.addGroupChannelHandler(channelHandlerId, new GroupChannelHandler(channelHandler));
514
+ }
515
+ return function () {
516
+ var _a;
517
+ if ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.removeGroupChannelHandler) {
518
+ logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', channelHandlerId);
519
+ sdk.groupChannel.removeGroupChannelHandler(channelHandlerId);
520
+ }
521
+ else if (sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) {
522
+ logger.error('Channel | useHandleChannelEvents: Not found the removeGroupChannelHandler');
523
+ }
524
+ };
525
+ }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, sdkInit]);
527
526
  }
528
527
 
529
- function useGetChannel(_a, _b) {
530
- var channelUrl = _a.channelUrl, sdkInit = _a.sdkInit, disableMarkAsRead = _a.disableMarkAsRead;
531
- var messagesDispatcher = _b.messagesDispatcher, sdk = _b.sdk, logger = _b.logger, markAsReadScheduler = _b.markAsReadScheduler;
532
- useEffect(function () {
533
- if (channelUrl && sdkInit && sdk && sdk.groupChannel) {
534
- logger.info('Channel | useSetChannel fetching channel', channelUrl);
535
- sdk.groupChannel
536
- .getChannel(channelUrl)
537
- .then(function (groupChannel) {
538
- logger.info('Channel | useSetChannel fetched channel', groupChannel);
539
- messagesDispatcher({
540
- type: SET_CURRENT_CHANNEL,
541
- payload: groupChannel,
542
- });
543
- logger.info('Channel: Mark as read', groupChannel);
544
- if (!disableMarkAsRead) {
545
- markAsReadScheduler.push(groupChannel);
546
- }
547
- })
548
- .catch(function (e) {
549
- logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl: channelUrl, e: e });
550
- messagesDispatcher({
551
- type: SET_CHANNEL_INVALID,
552
- });
553
- });
554
- sdk
555
- .getAllEmoji()
556
- .then(function (emojiContainer_) {
557
- logger.info('Channel: Getting emojis success', emojiContainer_);
558
- messagesDispatcher({
559
- type: SET_EMOJI_CONTAINER,
560
- payload: emojiContainer_,
561
- });
562
- })
563
- .catch(function (err) {
564
- logger.error('Channel: Getting emojis failed', err);
565
- });
566
- }
567
- }, [channelUrl, sdkInit]);
528
+ function useGetChannel(_a, _b) {
529
+ var channelUrl = _a.channelUrl, sdkInit = _a.sdkInit, disableMarkAsRead = _a.disableMarkAsRead;
530
+ var messagesDispatcher = _b.messagesDispatcher, sdk = _b.sdk, logger = _b.logger, markAsReadScheduler = _b.markAsReadScheduler;
531
+ useEffect(function () {
532
+ if (channelUrl && sdkInit && sdk && sdk.groupChannel) {
533
+ logger.info('Channel | useSetChannel fetching channel', channelUrl);
534
+ sdk.groupChannel
535
+ .getChannel(channelUrl)
536
+ .then(function (groupChannel) {
537
+ logger.info('Channel | useSetChannel fetched channel', groupChannel);
538
+ messagesDispatcher({
539
+ type: SET_CURRENT_CHANNEL,
540
+ payload: groupChannel,
541
+ });
542
+ logger.info('Channel: Mark as read', groupChannel);
543
+ if (!disableMarkAsRead) {
544
+ markAsReadScheduler.push(groupChannel);
545
+ }
546
+ })
547
+ .catch(function (e) {
548
+ logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl: channelUrl, e: e });
549
+ messagesDispatcher({
550
+ type: SET_CHANNEL_INVALID,
551
+ });
552
+ });
553
+ sdk
554
+ .getAllEmoji()
555
+ .then(function (emojiContainer_) {
556
+ logger.info('Channel: Getting emojis success', emojiContainer_);
557
+ messagesDispatcher({
558
+ type: SET_EMOJI_CONTAINER,
559
+ payload: emojiContainer_,
560
+ });
561
+ })
562
+ .catch(function (err) {
563
+ logger.error('Channel: Getting emojis failed', err);
564
+ });
565
+ }
566
+ }, [channelUrl, sdkInit]);
568
567
  }
569
568
 
570
- function useHandleReconnect(_a, _b) {
571
- var isOnline = _a.isOnline, replyType = _a.replyType, disableMarkAsRead = _a.disableMarkAsRead, reconnectOnIdle = _a.reconnectOnIdle;
572
- var logger = _b.logger, sdk = _b.sdk, scrollRef = _b.scrollRef, currentGroupChannel = _b.currentGroupChannel, messagesDispatcher = _b.messagesDispatcher, markAsReadScheduler = _b.markAsReadScheduler, userFilledMessageListQuery = _b.userFilledMessageListQuery;
573
- var shouldReconnect = useReconnectOnIdle(isOnline, currentGroupChannel, reconnectOnIdle).shouldReconnect;
574
- useEffect(function () {
575
- return function () {
576
- var _a, _b;
577
- // state changed from offline to online AND tab is visible
578
- if (shouldReconnect) {
579
- logger.info('Refreshing conversation state');
580
- var isReactionEnabled = ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.appInfo) === null || _a === void 0 ? void 0 : _a.useReaction) || false;
581
- var messageListParams_1 = {
582
- prevResultSize: PREV_RESULT_SIZE,
583
- isInclusive: true,
584
- includeReactions: isReactionEnabled,
585
- includeMetaArray: true,
586
- nextResultSize: NEXT_RESULT_SIZE,
587
- };
588
- if (replyType && replyType === 'QUOTE_REPLY') {
589
- messageListParams_1.includeThreadInfo = true;
590
- messageListParams_1.includeParentMessageInfo = true;
591
- messageListParams_1.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
592
- }
593
- if (userFilledMessageListQuery) {
594
- Object.keys(userFilledMessageListQuery).forEach(function (key) {
595
- messageListParams_1[key] = userFilledMessageListQuery[key];
596
- });
597
- }
598
- logger.info('Channel: Fetching messages', { currentGroupChannel: currentGroupChannel, userFilledMessageListQuery: userFilledMessageListQuery });
599
- messagesDispatcher({
600
- type: FETCH_INITIAL_MESSAGES_START,
601
- payload: null,
602
- });
603
- (_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) {
604
- var lastMessageTime = new Date().getTime();
605
- groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams_1)
606
- .then(function (messages) {
607
- messagesDispatcher({
608
- type: FETCH_INITIAL_MESSAGES_SUCCESS,
609
- payload: {
610
- currentGroupChannel: currentGroupChannel,
611
- messages: messages,
612
- },
613
- });
614
- setTimeout(function () { return scrollIntoLast(0, scrollRef); }, SCROLL_BOTTOM_DELAY_FOR_FETCH);
615
- })
616
- .catch(function (error) {
617
- logger.error('Channel: Fetching messages failed', error);
618
- messagesDispatcher({
619
- type: FETCH_INITIAL_MESSAGES_FAILURE,
620
- payload: { currentGroupChannel: currentGroupChannel },
621
- });
622
- });
623
- if (!disableMarkAsRead) {
624
- markAsReadScheduler.push(currentGroupChannel);
625
- }
626
- });
627
- }
628
- };
629
- }, [shouldReconnect, replyType]);
569
+ function useHandleReconnect(_a, _b) {
570
+ var isOnline = _a.isOnline, replyType = _a.replyType, disableMarkAsRead = _a.disableMarkAsRead, reconnectOnIdle = _a.reconnectOnIdle;
571
+ var logger = _b.logger, sdk = _b.sdk, scrollRef = _b.scrollRef, currentGroupChannel = _b.currentGroupChannel, messagesDispatcher = _b.messagesDispatcher, markAsReadScheduler = _b.markAsReadScheduler, userFilledMessageListQuery = _b.userFilledMessageListQuery;
572
+ var shouldReconnect = useReconnectOnIdle(isOnline, currentGroupChannel, reconnectOnIdle).shouldReconnect;
573
+ useEffect(function () {
574
+ return function () {
575
+ var _a, _b;
576
+ // state changed from offline to online AND tab is visible
577
+ if (shouldReconnect) {
578
+ logger.info('Refreshing conversation state');
579
+ var isReactionEnabled = ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.appInfo) === null || _a === void 0 ? void 0 : _a.useReaction) || false;
580
+ var messageListParams_1 = {
581
+ prevResultSize: PREV_RESULT_SIZE,
582
+ isInclusive: true,
583
+ includeReactions: isReactionEnabled,
584
+ includeMetaArray: true,
585
+ nextResultSize: NEXT_RESULT_SIZE,
586
+ };
587
+ if (replyType && replyType === 'QUOTE_REPLY') {
588
+ messageListParams_1.includeThreadInfo = true;
589
+ messageListParams_1.includeParentMessageInfo = true;
590
+ messageListParams_1.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
591
+ }
592
+ if (userFilledMessageListQuery) {
593
+ Object.keys(userFilledMessageListQuery).forEach(function (key) {
594
+ messageListParams_1[key] = userFilledMessageListQuery[key];
595
+ });
596
+ }
597
+ logger.info('Channel: Fetching messages', { currentGroupChannel: currentGroupChannel, userFilledMessageListQuery: userFilledMessageListQuery });
598
+ messagesDispatcher({
599
+ type: FETCH_INITIAL_MESSAGES_START,
600
+ payload: null,
601
+ });
602
+ (_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) {
603
+ var lastMessageTime = new Date().getTime();
604
+ groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams_1)
605
+ .then(function (messages) {
606
+ messagesDispatcher({
607
+ type: FETCH_INITIAL_MESSAGES_SUCCESS,
608
+ payload: {
609
+ currentGroupChannel: currentGroupChannel,
610
+ messages: messages,
611
+ },
612
+ });
613
+ setTimeout(function () { return scrollIntoLast(0, scrollRef); }, SCROLL_BOTTOM_DELAY_FOR_FETCH);
614
+ })
615
+ .catch(function (error) {
616
+ logger.error('Channel: Fetching messages failed', error);
617
+ messagesDispatcher({
618
+ type: FETCH_INITIAL_MESSAGES_FAILURE,
619
+ payload: { currentGroupChannel: currentGroupChannel },
620
+ });
621
+ });
622
+ if (!disableMarkAsRead) {
623
+ markAsReadScheduler.push(currentGroupChannel);
624
+ }
625
+ });
626
+ }
627
+ };
628
+ }, [shouldReconnect, replyType]);
630
629
  }
631
630
 
632
- function useScrollCallback(_a, _b) {
633
- var currentGroupChannel = _a.currentGroupChannel, oldestMessageTimeStamp = _a.oldestMessageTimeStamp, userFilledMessageListQuery = _a.userFilledMessageListQuery, replyType = _a.replyType;
634
- var hasMorePrev = _b.hasMorePrev, logger = _b.logger, messagesDispatcher = _b.messagesDispatcher, sdk = _b.sdk;
635
- return useCallback(function (callback) {
636
- var _a, _b;
637
- if (!hasMorePrev) {
638
- return;
639
- }
640
- var messageListParams = {
641
- prevResultSize: PREV_RESULT_SIZE,
642
- isInclusive: true,
643
- includeMetaArray: true,
644
- 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,
645
- };
646
- if (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') {
647
- messageListParams.includeThreadInfo = true;
648
- messageListParams.includeParentMessageInfo = true;
649
- messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
650
- }
651
- if (userFilledMessageListQuery) {
652
- Object.keys(userFilledMessageListQuery).forEach(function (key) {
653
- messageListParams[key] = userFilledMessageListQuery[key];
654
- });
655
- }
656
- logger.info('Channel: Fetching messages', {
657
- currentGroupChannel: currentGroupChannel,
658
- userFilledMessageListQuery: userFilledMessageListQuery,
659
- });
660
- currentGroupChannel
661
- .getMessagesByTimestamp(oldestMessageTimeStamp || new Date().getTime(), messageListParams)
662
- .then(function (messages) {
663
- messagesDispatcher({
664
- type: FETCH_PREV_MESSAGES_SUCCESS,
665
- payload: { currentGroupChannel: currentGroupChannel, messages: messages },
666
- });
667
- if (callback)
668
- setTimeout(function () { return callback(); });
669
- })
670
- .catch(function () {
671
- messagesDispatcher({
672
- type: FETCH_PREV_MESSAGES_FAILURE,
673
- payload: { currentGroupChannel: currentGroupChannel },
674
- });
675
- });
676
- }, [currentGroupChannel, oldestMessageTimeStamp, replyType]);
631
+ function useScrollCallback(_a, _b) {
632
+ var currentGroupChannel = _a.currentGroupChannel, oldestMessageTimeStamp = _a.oldestMessageTimeStamp, userFilledMessageListQuery = _a.userFilledMessageListQuery, replyType = _a.replyType;
633
+ var hasMorePrev = _b.hasMorePrev, logger = _b.logger, messagesDispatcher = _b.messagesDispatcher, sdk = _b.sdk;
634
+ return useCallback(function (callback) {
635
+ var _a, _b;
636
+ if (!hasMorePrev) {
637
+ return;
638
+ }
639
+ var messageListParams = {
640
+ prevResultSize: PREV_RESULT_SIZE,
641
+ isInclusive: true,
642
+ includeMetaArray: true,
643
+ 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,
644
+ };
645
+ if (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') {
646
+ messageListParams.includeThreadInfo = true;
647
+ messageListParams.includeParentMessageInfo = true;
648
+ messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
649
+ }
650
+ if (userFilledMessageListQuery) {
651
+ Object.keys(userFilledMessageListQuery).forEach(function (key) {
652
+ messageListParams[key] = userFilledMessageListQuery[key];
653
+ });
654
+ }
655
+ logger.info('Channel: Fetching messages', {
656
+ currentGroupChannel: currentGroupChannel,
657
+ userFilledMessageListQuery: userFilledMessageListQuery,
658
+ });
659
+ currentGroupChannel
660
+ .getMessagesByTimestamp(oldestMessageTimeStamp || new Date().getTime(), messageListParams)
661
+ .then(function (messages) {
662
+ messagesDispatcher({
663
+ type: FETCH_PREV_MESSAGES_SUCCESS,
664
+ payload: { currentGroupChannel: currentGroupChannel, messages: messages },
665
+ });
666
+ if (callback)
667
+ setTimeout(function () { return callback(); });
668
+ })
669
+ .catch(function () {
670
+ messagesDispatcher({
671
+ type: FETCH_PREV_MESSAGES_FAILURE,
672
+ payload: { currentGroupChannel: currentGroupChannel },
673
+ });
674
+ });
675
+ }, [currentGroupChannel, oldestMessageTimeStamp, replyType]);
677
676
  }
678
677
 
679
- function useScrollDownCallback(_a, _b) {
680
- var currentGroupChannel = _a.currentGroupChannel, latestMessageTimeStamp = _a.latestMessageTimeStamp, userFilledMessageListQuery = _a.userFilledMessageListQuery, hasMoreNext = _a.hasMoreNext, replyType = _a.replyType;
681
- var logger = _b.logger, messagesDispatcher = _b.messagesDispatcher, sdk = _b.sdk;
682
- return useCallback(function (cb) {
683
- var _a, _b;
684
- if (!hasMoreNext) {
685
- return;
686
- }
687
- 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;
688
- var messageListParams = {
689
- nextResultSize: NEXT_RESULT_SIZE,
690
- isInclusive: true,
691
- includeReactions: isReactionEnabled,
692
- includeMetaArray: true,
693
- };
694
- if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {
695
- messageListParams.includeThreadInfo = true;
696
- messageListParams.includeParentMessageInfo = true;
697
- messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
698
- }
699
- if (userFilledMessageListQuery) {
700
- Object.keys(userFilledMessageListQuery).forEach(function (key) {
701
- messageListParams[key] = userFilledMessageListQuery[key];
702
- });
703
- }
704
- logger.info('Channel: Fetching later messages', { currentGroupChannel: currentGroupChannel, userFilledMessageListQuery: userFilledMessageListQuery });
705
- currentGroupChannel
706
- .getMessagesByTimestamp(latestMessageTimeStamp || new Date().getTime(), messageListParams)
707
- .then(function (messages) {
708
- messagesDispatcher({
709
- type: FETCH_NEXT_MESSAGES_SUCCESS,
710
- payload: { currentGroupChannel: currentGroupChannel, messages: messages },
711
- });
712
- setTimeout(function () { return cb([messages, null]); });
713
- })
714
- .catch(function (error) {
715
- logger.error('Channel: Fetching later messages failed', error);
716
- messagesDispatcher({
717
- type: FETCH_NEXT_MESSAGES_FAILURE,
718
- payload: { currentGroupChannel: currentGroupChannel },
719
- });
720
- setTimeout(function () { return cb([null, error]); });
721
- });
722
- }, [currentGroupChannel, latestMessageTimeStamp, hasMoreNext, replyType]);
678
+ function useScrollDownCallback(_a, _b) {
679
+ var currentGroupChannel = _a.currentGroupChannel, latestMessageTimeStamp = _a.latestMessageTimeStamp, userFilledMessageListQuery = _a.userFilledMessageListQuery, hasMoreNext = _a.hasMoreNext, replyType = _a.replyType;
680
+ var logger = _b.logger, messagesDispatcher = _b.messagesDispatcher, sdk = _b.sdk;
681
+ return useCallback(function (cb) {
682
+ var _a, _b;
683
+ if (!hasMoreNext) {
684
+ return;
685
+ }
686
+ 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;
687
+ var messageListParams = {
688
+ nextResultSize: NEXT_RESULT_SIZE,
689
+ isInclusive: true,
690
+ includeReactions: isReactionEnabled,
691
+ includeMetaArray: true,
692
+ };
693
+ if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {
694
+ messageListParams.includeThreadInfo = true;
695
+ messageListParams.includeParentMessageInfo = true;
696
+ messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
697
+ }
698
+ if (userFilledMessageListQuery) {
699
+ Object.keys(userFilledMessageListQuery).forEach(function (key) {
700
+ messageListParams[key] = userFilledMessageListQuery[key];
701
+ });
702
+ }
703
+ logger.info('Channel: Fetching later messages', { currentGroupChannel: currentGroupChannel, userFilledMessageListQuery: userFilledMessageListQuery });
704
+ currentGroupChannel
705
+ .getMessagesByTimestamp(latestMessageTimeStamp || new Date().getTime(), messageListParams)
706
+ .then(function (messages) {
707
+ messagesDispatcher({
708
+ type: FETCH_NEXT_MESSAGES_SUCCESS,
709
+ payload: { currentGroupChannel: currentGroupChannel, messages: messages },
710
+ });
711
+ setTimeout(function () { return cb([messages, null]); });
712
+ })
713
+ .catch(function (error) {
714
+ logger.error('Channel: Fetching later messages failed', error);
715
+ messagesDispatcher({
716
+ type: FETCH_NEXT_MESSAGES_FAILURE,
717
+ payload: { currentGroupChannel: currentGroupChannel },
718
+ });
719
+ setTimeout(function () { return cb([null, error]); });
720
+ });
721
+ }, [currentGroupChannel, latestMessageTimeStamp, hasMoreNext, replyType]);
723
722
  }
724
723
 
725
- function useDeleteMessageCallback(_a, _b) {
726
- var currentGroupChannel = _a.currentGroupChannel, messagesDispatcher = _a.messagesDispatcher;
727
- var logger = _b.logger;
728
- return useCallback(function (message) {
729
- logger.info('Channel | useDeleteMessageCallback: Deleting message', message);
730
- var sendingStatus = isSendableMessage(message) ? message.sendingStatus : undefined;
731
- return new Promise(function (resolve, reject) {
732
- logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', sendingStatus);
733
- // Message is only on local
734
- if ((sendingStatus === SendingStatus.FAILED || sendingStatus === SendingStatus.PENDING) && 'reqId' in message) {
735
- logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);
736
- messagesDispatcher({
737
- type: ON_MESSAGE_DELETED_BY_REQ_ID,
738
- payload: message.reqId,
739
- });
740
- resolve();
741
- }
742
- else {
743
- logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', sendingStatus);
744
- currentGroupChannel
745
- .deleteMessage(message)
746
- .then(function () {
747
- logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);
748
- messagesDispatcher({
749
- type: ON_MESSAGE_DELETED,
750
- payload: message.messageId,
751
- });
752
- resolve();
753
- })
754
- .catch(function (err) {
755
- logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);
756
- reject(err);
757
- });
758
- }
759
- });
760
- }, [currentGroupChannel, messagesDispatcher]);
724
+ function useDeleteMessageCallback(_a, _b) {
725
+ var currentGroupChannel = _a.currentGroupChannel, messagesDispatcher = _a.messagesDispatcher;
726
+ var logger = _b.logger;
727
+ return useCallback(function (message) {
728
+ logger.info('Channel | useDeleteMessageCallback: Deleting message', message);
729
+ var sendingStatus = isSendableMessage(message) ? message.sendingStatus : undefined;
730
+ return new Promise(function (resolve, reject) {
731
+ logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', sendingStatus);
732
+ // Message is only on local
733
+ if ((sendingStatus === SendingStatus.FAILED || sendingStatus === SendingStatus.PENDING) && 'reqId' in message) {
734
+ logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);
735
+ messagesDispatcher({
736
+ type: ON_MESSAGE_DELETED_BY_REQ_ID,
737
+ payload: message.reqId,
738
+ });
739
+ resolve();
740
+ }
741
+ else {
742
+ logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', sendingStatus);
743
+ currentGroupChannel
744
+ .deleteMessage(message)
745
+ .then(function () {
746
+ logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);
747
+ messagesDispatcher({
748
+ type: ON_MESSAGE_DELETED,
749
+ payload: message.messageId,
750
+ });
751
+ resolve();
752
+ })
753
+ .catch(function (err) {
754
+ logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);
755
+ reject(err);
756
+ });
757
+ }
758
+ });
759
+ }, [currentGroupChannel, messagesDispatcher]);
761
760
  }
762
761
 
763
- function useUpdateMessageCallback(_a, _b) {
764
- var currentGroupChannel = _a.currentGroupChannel, messagesDispatcher = _a.messagesDispatcher, onBeforeUpdateUserMessage = _a.onBeforeUpdateUserMessage, isMentionEnabled = _a.isMentionEnabled;
765
- var logger = _b.logger, pubSub = _b.pubSub;
766
- return useCallback(function (props, callback) {
767
- var messageId = props.messageId, message = props.message, mentionedUsers = props.mentionedUsers, mentionTemplate = props.mentionTemplate;
768
- var createParamsDefault = function (message) {
769
- var params = {
770
- message: message,
771
- };
772
- if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
773
- params.mentionedUsers = mentionedUsers;
774
- }
775
- if (isMentionEnabled && mentionTemplate) {
776
- params.mentionedMessageTemplate = mentionTemplate;
777
- }
778
- else {
779
- params.mentionedMessageTemplate = message;
780
- }
781
- return params;
782
- };
783
- var shouldCreateCustomParams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function';
784
- if (shouldCreateCustomParams) {
785
- logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);
786
- }
787
- var params = shouldCreateCustomParams ? onBeforeUpdateUserMessage(message) : createParamsDefault(message);
788
- logger.info('Channel: Updating message!', params);
789
- currentGroupChannel
790
- .updateUserMessage(messageId, params)
791
- .then(function (msg) {
792
- if (callback) {
793
- callback(null, msg);
794
- }
795
- logger.info('Channel: Updating message success!', msg);
796
- messagesDispatcher({
797
- type: ON_MESSAGE_UPDATED,
798
- payload: {
799
- channel: currentGroupChannel,
800
- message: msg,
801
- },
802
- });
803
- pubSub.publish(pubSubTopics.UPDATE_USER_MESSAGE, {
804
- message: msg,
805
- channel: currentGroupChannel,
806
- publishingModules: [PublishingModuleType.CHANNEL],
807
- });
808
- })
809
- .catch(function (err) {
810
- if (callback) {
811
- callback(err, null);
812
- }
813
- });
814
- }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);
762
+ function useUpdateMessageCallback(_a, _b) {
763
+ var currentGroupChannel = _a.currentGroupChannel, messagesDispatcher = _a.messagesDispatcher, onBeforeUpdateUserMessage = _a.onBeforeUpdateUserMessage, isMentionEnabled = _a.isMentionEnabled;
764
+ var logger = _b.logger, pubSub = _b.pubSub;
765
+ return useCallback(function (props, callback) {
766
+ var messageId = props.messageId, message = props.message, mentionedUsers = props.mentionedUsers, mentionTemplate = props.mentionTemplate;
767
+ var createParamsDefault = function (message) {
768
+ var params = {
769
+ message: message,
770
+ };
771
+ if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
772
+ params.mentionedUsers = mentionedUsers;
773
+ }
774
+ if (isMentionEnabled && mentionTemplate) {
775
+ params.mentionedMessageTemplate = mentionTemplate;
776
+ }
777
+ else {
778
+ params.mentionedMessageTemplate = message;
779
+ }
780
+ return params;
781
+ };
782
+ var shouldCreateCustomParams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function';
783
+ if (shouldCreateCustomParams) {
784
+ logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);
785
+ }
786
+ var params = shouldCreateCustomParams ? onBeforeUpdateUserMessage(message) : createParamsDefault(message);
787
+ logger.info('Channel: Updating message!', params);
788
+ currentGroupChannel
789
+ .updateUserMessage(messageId, params)
790
+ .then(function (msg) {
791
+ if (callback) {
792
+ callback(null, msg);
793
+ }
794
+ logger.info('Channel: Updating message success!', msg);
795
+ messagesDispatcher({
796
+ type: ON_MESSAGE_UPDATED,
797
+ payload: {
798
+ channel: currentGroupChannel,
799
+ message: msg,
800
+ },
801
+ });
802
+ pubSub.publish(pubSubTopics.UPDATE_USER_MESSAGE, {
803
+ message: msg,
804
+ channel: currentGroupChannel,
805
+ publishingModules: [PublishingModuleType.CHANNEL],
806
+ });
807
+ })
808
+ .catch(function (err) {
809
+ if (callback) {
810
+ callback(err, null);
811
+ }
812
+ });
813
+ }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);
815
814
  }
816
815
 
817
- function useResendMessageCallback(_a, _b) {
818
- var currentGroupChannel = _a.currentGroupChannel, messagesDispatcher = _a.messagesDispatcher;
819
- var logger = _b.logger, pubSub = _b.pubSub;
820
- return useCallback(function (failedMessage) {
821
- logger.info('Channel: Resending message has started', failedMessage);
822
- if (failedMessage === null || failedMessage === void 0 ? void 0 : failedMessage.isResendable) {
823
- // userMessage
824
- if (failedMessage.isUserMessage()) {
825
- currentGroupChannel
826
- .resendMessage(failedMessage)
827
- .onPending(function (message) {
828
- logger.info('Channel: Resending message start!', message);
829
- messagesDispatcher({
830
- type: RESEND_MESSAGE_START,
831
- payload: message,
832
- });
833
- })
834
- .onSucceeded(function (message) {
835
- logger.info('Channel: Resending message success!', message);
836
- messagesDispatcher({
837
- type: SEND_MESSAGE_SUCCESS,
838
- payload: message,
839
- });
840
- })
841
- .onFailed(function (e, message) {
842
- logger.warning('Channel: Resending message failed!', e);
843
- messagesDispatcher({
844
- type: SEND_MESSAGE_FAILURE,
845
- payload: message,
846
- });
847
- });
848
- }
849
- else if (failedMessage.isFileMessage()) {
850
- currentGroupChannel
851
- .resendMessage(failedMessage)
852
- .onPending(function (message) {
853
- logger.info('Channel: Resending file message start!', message);
854
- messagesDispatcher({
855
- type: RESEND_MESSAGE_START,
856
- payload: message,
857
- });
858
- })
859
- .onSucceeded(function (message) {
860
- logger.info('Channel: Resending file message success!', message);
861
- messagesDispatcher({
862
- type: SEND_MESSAGE_SUCCESS,
863
- payload: message,
864
- });
865
- })
866
- .onFailed(function (e, message) {
867
- logger.warning('Channel: Resending file message failed!', e);
868
- messagesDispatcher({
869
- type: SEND_MESSAGE_FAILURE,
870
- payload: message,
871
- });
872
- });
873
- }
874
- else if (failedMessage.isMultipleFilesMessage()) {
875
- currentGroupChannel
876
- .resendMessage(failedMessage)
877
- .onPending(function (message) {
878
- logger.info('Channel: Resending multiple files message start!', message);
879
- messagesDispatcher({
880
- type: RESEND_MESSAGE_START,
881
- payload: message,
882
- });
883
- })
884
- .onFileUploaded(function (requestId, index, uploadableFileInfo, error) {
885
- logger.info('Channel: Resending multiple files message file uploaded!', {
886
- requestId: requestId,
887
- index: index,
888
- error: error,
889
- uploadableFileInfo: uploadableFileInfo,
890
- });
891
- pubSub.publish(pubSubTopics.ON_FILE_INFO_UPLOADED, {
892
- response: {
893
- channelUrl: currentGroupChannel.url,
894
- requestId: requestId,
895
- index: index,
896
- uploadableFileInfo: uploadableFileInfo,
897
- error: error,
898
- },
899
- publishingModules: [PublishingModuleType.CHANNEL],
900
- });
901
- })
902
- .onSucceeded(function (message) {
903
- logger.info('Channel: Resending multiple files message success!', message);
904
- messagesDispatcher({
905
- type: SEND_MESSAGE_SUCCESS,
906
- payload: message,
907
- });
908
- })
909
- .onFailed(function (e, message) {
910
- logger.warning('Channel: Resending multiple files message failed!', e);
911
- messagesDispatcher({
912
- type: SEND_MESSAGE_FAILURE,
913
- payload: message,
914
- });
915
- });
916
- }
917
- }
918
- else {
919
- logger.error('Message is not resendable', failedMessage);
920
- }
921
- }, [currentGroupChannel, messagesDispatcher]);
816
+ function useResendMessageCallback(_a, _b) {
817
+ var currentGroupChannel = _a.currentGroupChannel, messagesDispatcher = _a.messagesDispatcher;
818
+ var logger = _b.logger, pubSub = _b.pubSub;
819
+ return useCallback(function (failedMessage) {
820
+ logger.info('Channel: Resending message has started', failedMessage);
821
+ if (failedMessage === null || failedMessage === void 0 ? void 0 : failedMessage.isResendable) {
822
+ // userMessage
823
+ if (failedMessage.isUserMessage()) {
824
+ currentGroupChannel
825
+ .resendMessage(failedMessage)
826
+ .onPending(function (message) {
827
+ logger.info('Channel: Resending message start!', message);
828
+ messagesDispatcher({
829
+ type: RESEND_MESSAGE_START,
830
+ payload: message,
831
+ });
832
+ })
833
+ .onSucceeded(function (message) {
834
+ logger.info('Channel: Resending message success!', message);
835
+ messagesDispatcher({
836
+ type: SEND_MESSAGE_SUCCESS,
837
+ payload: message,
838
+ });
839
+ })
840
+ .onFailed(function (e, message) {
841
+ logger.warning('Channel: Resending message failed!', e);
842
+ messagesDispatcher({
843
+ type: SEND_MESSAGE_FAILURE,
844
+ payload: message,
845
+ });
846
+ });
847
+ }
848
+ else if (failedMessage.isFileMessage()) {
849
+ currentGroupChannel
850
+ .resendMessage(failedMessage)
851
+ .onPending(function (message) {
852
+ logger.info('Channel: Resending file message start!', message);
853
+ messagesDispatcher({
854
+ type: RESEND_MESSAGE_START,
855
+ payload: message,
856
+ });
857
+ })
858
+ .onSucceeded(function (message) {
859
+ logger.info('Channel: Resending file message success!', message);
860
+ messagesDispatcher({
861
+ type: SEND_MESSAGE_SUCCESS,
862
+ payload: message,
863
+ });
864
+ })
865
+ .onFailed(function (e, message) {
866
+ logger.warning('Channel: Resending file message failed!', e);
867
+ messagesDispatcher({
868
+ type: SEND_MESSAGE_FAILURE,
869
+ payload: message,
870
+ });
871
+ });
872
+ }
873
+ else if (failedMessage.isMultipleFilesMessage()) {
874
+ currentGroupChannel
875
+ .resendMessage(failedMessage)
876
+ .onPending(function (message) {
877
+ logger.info('Channel: Resending multiple files message start!', message);
878
+ messagesDispatcher({
879
+ type: RESEND_MESSAGE_START,
880
+ payload: message,
881
+ });
882
+ })
883
+ .onFileUploaded(function (requestId, index, uploadableFileInfo, error) {
884
+ logger.info('Channel: Resending multiple files message file uploaded!', {
885
+ requestId: requestId,
886
+ index: index,
887
+ error: error,
888
+ uploadableFileInfo: uploadableFileInfo,
889
+ });
890
+ pubSub.publish(pubSubTopics.ON_FILE_INFO_UPLOADED, {
891
+ response: {
892
+ channelUrl: currentGroupChannel.url,
893
+ requestId: requestId,
894
+ index: index,
895
+ uploadableFileInfo: uploadableFileInfo,
896
+ error: error,
897
+ },
898
+ publishingModules: [PublishingModuleType.CHANNEL],
899
+ });
900
+ })
901
+ .onSucceeded(function (message) {
902
+ logger.info('Channel: Resending multiple files message success!', message);
903
+ messagesDispatcher({
904
+ type: SEND_MESSAGE_SUCCESS,
905
+ payload: message,
906
+ });
907
+ })
908
+ .onFailed(function (e, message) {
909
+ logger.warning('Channel: Resending multiple files message failed!', e);
910
+ messagesDispatcher({
911
+ type: SEND_MESSAGE_FAILURE,
912
+ payload: message,
913
+ });
914
+ });
915
+ }
916
+ }
917
+ else {
918
+ logger.error('Message is not resendable', failedMessage);
919
+ }
920
+ }, [currentGroupChannel, messagesDispatcher]);
922
921
  }
923
922
 
924
- function useSendMessageCallback(_a, _b) {
925
- var isMentionEnabled = _a.isMentionEnabled, currentGroupChannel = _a.currentGroupChannel, onBeforeSendUserMessage = _a.onBeforeSendUserMessage;
926
- var logger = _b.logger, pubSub = _b.pubSub, scrollRef = _b.scrollRef, messagesDispatcher = _b.messagesDispatcher;
927
- var messageInputRef = useRef(null);
928
- var sendMessage = useCallback(function (_a) {
929
- var quoteMessage = _a.quoteMessage, message = _a.message, mentionTemplate = _a.mentionTemplate,
930
- // mentionedUserIds,
931
- mentionedUsers = _a.mentionedUsers;
932
- var createParamsDefault = function () {
933
- var params = {
934
- message: message,
935
- };
936
- // if (isMentionEnabled && mentionedUserIds?.length > 0) {
937
- if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
938
- // params.mentionedUserIds = mentionedUserIds;
939
- params.mentionedUsers = mentionedUsers;
940
- }
941
- // if (isMentionEnabled && mentionTemplate && mentionedUserIds?.length > 0) {
942
- if (isMentionEnabled && mentionTemplate && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
943
- params.mentionedMessageTemplate = mentionTemplate;
944
- }
945
- if (quoteMessage) {
946
- params.isReplyToChannel = true;
947
- params.parentMessageId = quoteMessage.messageId;
948
- }
949
- return params;
950
- };
951
- var shouldCreateCustomParams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';
952
- if (shouldCreateCustomParams) {
953
- logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);
954
- }
955
- var params = shouldCreateCustomParams ? onBeforeSendUserMessage(message, quoteMessage) : createParamsDefault();
956
- logger.info('Channel: Sending message has started', params);
957
- currentGroupChannel
958
- .sendUserMessage(params)
959
- .onPending(function (pendingMsg) {
960
- pubSub.publish(pubSubTopics.SEND_MESSAGE_START, {
961
- /* pubSub is used instead of messagesDispatcher
962
- to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
963
- message: pendingMsg,
964
- channel: currentGroupChannel,
965
- publishingModules: [PublishingModuleType.CHANNEL],
966
- });
967
- setTimeout(function () { return scrollIntoLast(0, scrollRef); }, SCROLL_BOTTOM_DELAY_FOR_SEND);
968
- })
969
- .onFailed(function (err, msg) {
970
- logger.warning('Channel: Sending message failed!', { message: msg, error: err });
971
- messagesDispatcher({
972
- type: SEND_MESSAGE_FAILURE,
973
- payload: msg,
974
- });
975
- })
976
- .onSucceeded(function (msg) {
977
- logger.info('Channel: Sending message success!', msg);
978
- messagesDispatcher({
979
- type: SEND_MESSAGE_SUCCESS,
980
- payload: msg,
981
- });
982
- });
983
- }, [currentGroupChannel, onBeforeSendUserMessage]);
984
- return [messageInputRef, sendMessage];
923
+ function useSendMessageCallback(_a, _b) {
924
+ var isMentionEnabled = _a.isMentionEnabled, currentGroupChannel = _a.currentGroupChannel, onBeforeSendUserMessage = _a.onBeforeSendUserMessage;
925
+ var logger = _b.logger, pubSub = _b.pubSub, scrollRef = _b.scrollRef, messagesDispatcher = _b.messagesDispatcher;
926
+ var messageInputRef = useRef(null);
927
+ var sendMessage = useCallback(function (_a) {
928
+ var quoteMessage = _a.quoteMessage, message = _a.message, mentionTemplate = _a.mentionTemplate,
929
+ // mentionedUserIds,
930
+ mentionedUsers = _a.mentionedUsers;
931
+ var createParamsDefault = function () {
932
+ var params = {
933
+ message: message,
934
+ };
935
+ // if (isMentionEnabled && mentionedUserIds?.length > 0) {
936
+ if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
937
+ // params.mentionedUserIds = mentionedUserIds;
938
+ params.mentionedUsers = mentionedUsers;
939
+ }
940
+ // if (isMentionEnabled && mentionTemplate && mentionedUserIds?.length > 0) {
941
+ if (isMentionEnabled && mentionTemplate && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
942
+ params.mentionedMessageTemplate = mentionTemplate;
943
+ }
944
+ if (quoteMessage) {
945
+ params.isReplyToChannel = true;
946
+ params.parentMessageId = quoteMessage.messageId;
947
+ }
948
+ return params;
949
+ };
950
+ var shouldCreateCustomParams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';
951
+ if (shouldCreateCustomParams) {
952
+ logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);
953
+ }
954
+ var params = shouldCreateCustomParams ? onBeforeSendUserMessage(message, quoteMessage) : createParamsDefault();
955
+ logger.info('Channel: Sending message has started', params);
956
+ currentGroupChannel
957
+ .sendUserMessage(params)
958
+ .onPending(function (pendingMsg) {
959
+ pubSub.publish(pubSubTopics.SEND_MESSAGE_START, {
960
+ /* pubSub is used instead of messagesDispatcher
961
+ to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
962
+ message: pendingMsg,
963
+ channel: currentGroupChannel,
964
+ publishingModules: [PublishingModuleType.CHANNEL],
965
+ });
966
+ setTimeout(function () { return scrollIntoLast(0, scrollRef); }, SCROLL_BOTTOM_DELAY_FOR_SEND);
967
+ })
968
+ .onFailed(function (err, msg) {
969
+ logger.warning('Channel: Sending message failed!', { message: msg, error: err });
970
+ messagesDispatcher({
971
+ type: SEND_MESSAGE_FAILURE,
972
+ payload: msg,
973
+ });
974
+ })
975
+ .onSucceeded(function (msg) {
976
+ logger.info('Channel: Sending message success!', msg);
977
+ messagesDispatcher({
978
+ type: SEND_MESSAGE_SUCCESS,
979
+ payload: msg,
980
+ });
981
+ });
982
+ }, [currentGroupChannel, onBeforeSendUserMessage]);
983
+ return [messageInputRef, sendMessage];
985
984
  }
986
985
 
987
- function useSendFileMessageCallback(_a, _b) {
988
- var currentGroupChannel = _a.currentGroupChannel, onBeforeSendFileMessage = _a.onBeforeSendFileMessage, imageCompression = _a.imageCompression;
989
- var logger = _b.logger, pubSub = _b.pubSub, scrollRef = _b.scrollRef, messagesDispatcher = _b.messagesDispatcher;
990
- var sendMessage = useCallback(function (compressedFile, quoteMessage) {
991
- if (quoteMessage === void 0) { quoteMessage = null; }
992
- return new Promise(function (resolve, reject) {
993
- // Create FileMessageParams
994
- var params = onBeforeSendFileMessage === null || onBeforeSendFileMessage === void 0 ? void 0 : onBeforeSendFileMessage(compressedFile, quoteMessage);
995
- if (!params) {
996
- params = { file: compressedFile };
997
- if (quoteMessage) {
998
- params.isReplyToChannel = true;
999
- params.parentMessageId = quoteMessage.messageId;
1000
- }
1001
- }
1002
- // Send FileMessage
1003
- logger.info('Channel: Uploading file message start!', params);
1004
- currentGroupChannel
1005
- .sendFileMessage(params)
1006
- .onPending(function (pendingMessage) {
1007
- pubSub.publish(pubSubTopics.SEND_MESSAGE_START, {
1008
- /* pubSub is used instead of messagesDispatcher
1009
- to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
1010
- // TODO: remove data pollution
1011
- message: __assign(__assign({}, pendingMessage), { url: URL.createObjectURL(compressedFile),
1012
- // pending thumbnail message seems to be failed
1013
- requestState: 'pending', isUserMessage: pendingMessage.isUserMessage, isFileMessage: pendingMessage.isFileMessage, isAdminMessage: pendingMessage.isAdminMessage, isMultipleFilesMessage: pendingMessage.isMultipleFilesMessage }),
1014
- channel: currentGroupChannel,
1015
- publishingModules: [PublishingModuleType.CHANNEL],
1016
- });
1017
- setTimeout(function () { return scrollIntoLast(0, scrollRef); }, SCROLL_BOTTOM_DELAY_FOR_SEND);
1018
- })
1019
- .onFailed(function (err, failedMessage) {
1020
- logger.error('Channel: Sending file message failed!', { failedMessage: failedMessage, err: err });
1021
- // TODO: v4 - remove logic that modifies the original object.
1022
- // It makes the code difficult to track, likely causing unpredictable side effects.
1023
- // @ts-ignore eslint-disable-next-line no-param-reassign
1024
- failedMessage.localUrl = URL.createObjectURL(compressedFile);
1025
- // @ts-ignore eslint-disable-next-line no-param-reassign
1026
- failedMessage.file = compressedFile;
1027
- messagesDispatcher({
1028
- type: SEND_MESSAGE_FAILURE,
1029
- payload: failedMessage,
1030
- });
1031
- reject(err);
1032
- })
1033
- .onSucceeded(function (succeededMessage) {
1034
- logger.info('Channel: Sending file message success!', succeededMessage);
1035
- messagesDispatcher({
1036
- type: SEND_MESSAGE_SUCCESS,
1037
- payload: succeededMessage,
1038
- });
1039
- resolve(succeededMessage);
1040
- });
1041
- });
1042
- }, [currentGroupChannel, onBeforeSendFileMessage, imageCompression]);
1043
- return [sendMessage];
986
+ function useSendFileMessageCallback(_a, _b) {
987
+ var currentGroupChannel = _a.currentGroupChannel, onBeforeSendFileMessage = _a.onBeforeSendFileMessage, imageCompression = _a.imageCompression;
988
+ var logger = _b.logger, pubSub = _b.pubSub, scrollRef = _b.scrollRef, messagesDispatcher = _b.messagesDispatcher;
989
+ var sendMessage = useCallback(function (compressedFile, quoteMessage) {
990
+ if (quoteMessage === void 0) { quoteMessage = null; }
991
+ return new Promise(function (resolve, reject) {
992
+ // Create FileMessageParams
993
+ var params = onBeforeSendFileMessage === null || onBeforeSendFileMessage === void 0 ? void 0 : onBeforeSendFileMessage(compressedFile, quoteMessage);
994
+ if (!params) {
995
+ params = { file: compressedFile };
996
+ if (quoteMessage) {
997
+ params.isReplyToChannel = true;
998
+ params.parentMessageId = quoteMessage.messageId;
999
+ }
1000
+ }
1001
+ // Send FileMessage
1002
+ logger.info('Channel: Uploading file message start!', params);
1003
+ currentGroupChannel
1004
+ .sendFileMessage(params)
1005
+ .onPending(function (pendingMessage) {
1006
+ pubSub.publish(pubSubTopics.SEND_MESSAGE_START, {
1007
+ /* pubSub is used instead of messagesDispatcher
1008
+ to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
1009
+ // TODO: remove data pollution
1010
+ message: __assign(__assign({}, pendingMessage), { url: URL.createObjectURL(compressedFile),
1011
+ // pending thumbnail message seems to be failed
1012
+ requestState: 'pending', isUserMessage: pendingMessage.isUserMessage, isFileMessage: pendingMessage.isFileMessage, isAdminMessage: pendingMessage.isAdminMessage, isMultipleFilesMessage: pendingMessage.isMultipleFilesMessage }),
1013
+ channel: currentGroupChannel,
1014
+ publishingModules: [PublishingModuleType.CHANNEL],
1015
+ });
1016
+ setTimeout(function () { return scrollIntoLast(0, scrollRef); }, SCROLL_BOTTOM_DELAY_FOR_SEND);
1017
+ })
1018
+ .onFailed(function (err, failedMessage) {
1019
+ logger.error('Channel: Sending file message failed!', { failedMessage: failedMessage, err: err });
1020
+ // TODO: v4 - remove logic that modifies the original object.
1021
+ // It makes the code difficult to track, likely causing unpredictable side effects.
1022
+ // @ts-ignore eslint-disable-next-line no-param-reassign
1023
+ failedMessage.localUrl = URL.createObjectURL(compressedFile);
1024
+ // @ts-ignore eslint-disable-next-line no-param-reassign
1025
+ failedMessage.file = compressedFile;
1026
+ messagesDispatcher({
1027
+ type: SEND_MESSAGE_FAILURE,
1028
+ payload: failedMessage,
1029
+ });
1030
+ reject(err);
1031
+ })
1032
+ .onSucceeded(function (succeededMessage) {
1033
+ logger.info('Channel: Sending file message success!', succeededMessage);
1034
+ messagesDispatcher({
1035
+ type: SEND_MESSAGE_SUCCESS,
1036
+ payload: succeededMessage,
1037
+ });
1038
+ resolve(succeededMessage);
1039
+ });
1040
+ });
1041
+ }, [currentGroupChannel, onBeforeSendFileMessage, imageCompression]);
1042
+ return [sendMessage];
1044
1043
  }
1045
1044
 
1046
- // To prevent multiple clicks on the message in the channel while scrolling
1047
- function deactivateClick(scrollRef) {
1048
- var element = scrollRef.current;
1049
- var parentNode = element === null || element === void 0 ? void 0 : element.parentNode;
1050
- if (element && parentNode) {
1051
- element.style.pointerEvents = 'none';
1052
- parentNode.style.cursor = 'wait';
1053
- }
1054
- }
1055
- function activateClick(scrollRef) {
1056
- var element = scrollRef.current;
1057
- var parentNode = element === null || element === void 0 ? void 0 : element.parentNode;
1058
- if (element && parentNode) {
1059
- element.style.pointerEvents = 'auto';
1060
- parentNode.style.cursor = 'auto';
1061
- }
1062
- }
1063
- function useScrollToMessage(_a, _b) {
1064
- var setInitialTimeStamp = _a.setInitialTimeStamp, setAnimatedMessageId = _a.setAnimatedMessageId, allMessages = _a.allMessages, scrollRef = _a.scrollRef;
1065
- var logger = _b.logger;
1066
- return useCallback(function (createdAt, messageId) {
1067
- var isPresent = allMessages.find(function (m) { return (m.messageId === messageId); });
1068
- setAnimatedMessageId(null);
1069
- setTimeout(function () {
1070
- try {
1071
- logger.info('Channel: scroll to message - disabling mouse events');
1072
- deactivateClick(scrollRef);
1073
- if (isPresent) {
1074
- logger.info('Channel: scroll to message - message is present');
1075
- setAnimatedMessageId(messageId);
1076
- scrollToRenderedMessage(scrollRef, createdAt);
1077
- }
1078
- else {
1079
- logger.info('Channel: scroll to message - fetching older messages');
1080
- setInitialTimeStamp(null);
1081
- setInitialTimeStamp(createdAt);
1082
- setAnimatedMessageId(messageId);
1083
- }
1084
- }
1085
- finally {
1086
- logger.info('Channel: scroll to message - enabled mouse events');
1087
- activateClick(scrollRef);
1088
- }
1089
- });
1090
- }, [
1091
- setInitialTimeStamp,
1092
- setAnimatedMessageId,
1093
- allMessages,
1094
- ]);
1045
+ // To prevent multiple clicks on the message in the channel while scrolling
1046
+ function deactivateClick(scrollRef) {
1047
+ var element = scrollRef.current;
1048
+ var parentNode = element === null || element === void 0 ? void 0 : element.parentNode;
1049
+ if (element && parentNode) {
1050
+ element.style.pointerEvents = 'none';
1051
+ parentNode.style.cursor = 'wait';
1052
+ }
1053
+ }
1054
+ function activateClick(scrollRef) {
1055
+ var element = scrollRef.current;
1056
+ var parentNode = element === null || element === void 0 ? void 0 : element.parentNode;
1057
+ if (element && parentNode) {
1058
+ element.style.pointerEvents = 'auto';
1059
+ parentNode.style.cursor = 'auto';
1060
+ }
1061
+ }
1062
+ function useScrollToMessage(_a, _b) {
1063
+ var setInitialTimeStamp = _a.setInitialTimeStamp, setAnimatedMessageId = _a.setAnimatedMessageId, allMessages = _a.allMessages, scrollRef = _a.scrollRef;
1064
+ var logger = _b.logger;
1065
+ return useCallback(function (createdAt, messageId) {
1066
+ var isPresent = allMessages.find(function (m) { return (m.messageId === messageId); });
1067
+ setAnimatedMessageId(null);
1068
+ setTimeout(function () {
1069
+ try {
1070
+ logger.info('Channel: scroll to message - disabling mouse events');
1071
+ deactivateClick(scrollRef);
1072
+ if (isPresent) {
1073
+ logger.info('Channel: scroll to message - message is present');
1074
+ setAnimatedMessageId(messageId);
1075
+ scrollToRenderedMessage(scrollRef, createdAt);
1076
+ }
1077
+ else {
1078
+ logger.info('Channel: scroll to message - fetching older messages');
1079
+ setInitialTimeStamp(null);
1080
+ setInitialTimeStamp(createdAt);
1081
+ setAnimatedMessageId(messageId);
1082
+ }
1083
+ }
1084
+ finally {
1085
+ logger.info('Channel: scroll to message - enabled mouse events');
1086
+ activateClick(scrollRef);
1087
+ }
1088
+ });
1089
+ }, [
1090
+ setInitialTimeStamp,
1091
+ setAnimatedMessageId,
1092
+ allMessages,
1093
+ ]);
1095
1094
  }
1096
1095
 
1097
- var useSendVoiceMessageCallback = function (_a, _b) {
1098
- var currentGroupChannel = _a.currentGroupChannel, onBeforeSendVoiceMessage = _a.onBeforeSendVoiceMessage;
1099
- var logger = _b.logger, pubSub = _b.pubSub, scrollRef = _b.scrollRef, messagesDispatcher = _b.messagesDispatcher;
1100
- var sendMessage = useCallback(function (file, duration, quoteMessage) { return new Promise(function (resolve, reject) {
1101
- if (!currentGroupChannel) {
1102
- return;
1103
- }
1104
- var messageParams = (onBeforeSendVoiceMessage
1105
- && typeof onBeforeSendVoiceMessage === 'function')
1106
- ? onBeforeSendVoiceMessage(file, quoteMessage)
1107
- : {
1108
- file: file,
1109
- fileName: VOICE_MESSAGE_FILE_NAME,
1110
- mimeType: VOICE_MESSAGE_MIME_TYPE,
1111
- metaArrays: [
1112
- new MessageMetaArray({
1113
- key: META_ARRAY_VOICE_DURATION_KEY,
1114
- value: ["".concat(duration)],
1115
- }),
1116
- new MessageMetaArray({
1117
- key: META_ARRAY_MESSAGE_TYPE_KEY,
1118
- value: [META_ARRAY_MESSAGE_TYPE_VALUE__VOICE],
1119
- }),
1120
- ],
1121
- };
1122
- if (quoteMessage) {
1123
- messageParams.isReplyToChannel = true;
1124
- messageParams.parentMessageId = quoteMessage.messageId;
1125
- }
1126
- logger.info('Channel: Start sending voice message', messageParams);
1127
- currentGroupChannel.sendFileMessage(messageParams)
1128
- .onPending(function (pendingMessage) {
1129
- pubSub.publish(pubSubTopics.SEND_MESSAGE_START, {
1130
- /* pubSub is used instead of messagesDispatcher
1131
- to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
1132
- message: pendingMessage,
1133
- channel: currentGroupChannel,
1134
- publishingModules: [PublishingModuleType.CHANNEL],
1135
- });
1136
- setTimeout(function () { return scrollIntoLast(0, scrollRef); }, SCROLL_BOTTOM_DELAY_FOR_SEND);
1137
- })
1138
- .onFailed(function (err, failedMessage) {
1139
- logger.error('Channel: Sending voice message failed!', { failedMessage: failedMessage, err: err });
1140
- messagesDispatcher({
1141
- type: SEND_MESSAGE_FAILURE,
1142
- payload: failedMessage,
1143
- });
1144
- reject(err);
1145
- })
1146
- .onSucceeded(function (succeededMessage) {
1147
- logger.info('Channel: Sending voice message success!', succeededMessage);
1148
- messagesDispatcher({
1149
- type: SEND_MESSAGE_SUCCESS,
1150
- payload: succeededMessage,
1151
- });
1152
- resolve(succeededMessage);
1153
- });
1154
- }); }, [
1155
- currentGroupChannel,
1156
- onBeforeSendVoiceMessage,
1157
- ]);
1158
- return [sendMessage];
1096
+ var useSendVoiceMessageCallback = function (_a, _b) {
1097
+ var currentGroupChannel = _a.currentGroupChannel, onBeforeSendVoiceMessage = _a.onBeforeSendVoiceMessage;
1098
+ var logger = _b.logger, pubSub = _b.pubSub, scrollRef = _b.scrollRef, messagesDispatcher = _b.messagesDispatcher;
1099
+ var sendMessage = useCallback(function (file, duration, quoteMessage) { return new Promise(function (resolve, reject) {
1100
+ if (!currentGroupChannel) {
1101
+ return;
1102
+ }
1103
+ var messageParams = (onBeforeSendVoiceMessage
1104
+ && typeof onBeforeSendVoiceMessage === 'function')
1105
+ ? onBeforeSendVoiceMessage(file, quoteMessage)
1106
+ : {
1107
+ file: file,
1108
+ fileName: VOICE_MESSAGE_FILE_NAME,
1109
+ mimeType: VOICE_MESSAGE_MIME_TYPE,
1110
+ metaArrays: [
1111
+ new MessageMetaArray({
1112
+ key: META_ARRAY_VOICE_DURATION_KEY,
1113
+ value: ["".concat(duration)],
1114
+ }),
1115
+ new MessageMetaArray({
1116
+ key: META_ARRAY_MESSAGE_TYPE_KEY,
1117
+ value: [META_ARRAY_MESSAGE_TYPE_VALUE__VOICE],
1118
+ }),
1119
+ ],
1120
+ };
1121
+ if (quoteMessage) {
1122
+ messageParams.isReplyToChannel = true;
1123
+ messageParams.parentMessageId = quoteMessage.messageId;
1124
+ }
1125
+ logger.info('Channel: Start sending voice message', messageParams);
1126
+ currentGroupChannel.sendFileMessage(messageParams)
1127
+ .onPending(function (pendingMessage) {
1128
+ pubSub.publish(pubSubTopics.SEND_MESSAGE_START, {
1129
+ /* pubSub is used instead of messagesDispatcher
1130
+ to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
1131
+ message: pendingMessage,
1132
+ channel: currentGroupChannel,
1133
+ publishingModules: [PublishingModuleType.CHANNEL],
1134
+ });
1135
+ setTimeout(function () { return scrollIntoLast(0, scrollRef); }, SCROLL_BOTTOM_DELAY_FOR_SEND);
1136
+ })
1137
+ .onFailed(function (err, failedMessage) {
1138
+ logger.error('Channel: Sending voice message failed!', { failedMessage: failedMessage, err: err });
1139
+ messagesDispatcher({
1140
+ type: SEND_MESSAGE_FAILURE,
1141
+ payload: failedMessage,
1142
+ });
1143
+ reject(err);
1144
+ })
1145
+ .onSucceeded(function (succeededMessage) {
1146
+ logger.info('Channel: Sending voice message success!', succeededMessage);
1147
+ messagesDispatcher({
1148
+ type: SEND_MESSAGE_SUCCESS,
1149
+ payload: succeededMessage,
1150
+ });
1151
+ resolve(succeededMessage);
1152
+ });
1153
+ }); }, [
1154
+ currentGroupChannel,
1155
+ onBeforeSendVoiceMessage,
1156
+ ]);
1157
+ return [sendMessage];
1159
1158
  };
1160
1159
 
1161
- var useHandleChannelPubsubEvents = function (_a) {
1162
- var channelUrl = _a.channelUrl, sdkInit = _a.sdkInit, pubSub = _a.pubSub, dispatcher = _a.dispatcher, scrollRef = _a.scrollRef;
1163
- useEffect(function () {
1164
- var subscriber = new Map();
1165
- if (pubSub === null || pubSub === void 0 ? void 0 : pubSub.subscribe) {
1166
- subscriber.set(PUBSUB_TOPICS.SEND_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_USER_MESSAGE, function (props) {
1167
- var channel = props.channel, message = props.message;
1168
- if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
1169
- dispatcher({
1170
- type: SEND_MESSAGE_SUCCESS,
1171
- payload: message,
1172
- });
1173
- setTimeout(function () { return scrollIntoLast(0, scrollRef); }, SCROLL_BOTTOM_DELAY_FOR_SEND);
1174
- }
1175
- }));
1176
- subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_START, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_START, function (props) {
1177
- var channel = props.channel, message = props.message, publishingModules = props.publishingModules;
1178
- if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url) && shouldPubSubPublishToChannel(publishingModules)) {
1179
- dispatcher({
1180
- type: SEND_MESSAGE_START,
1181
- payload: message,
1182
- });
1183
- }
1184
- }));
1185
- subscriber.set(PUBSUB_TOPICS.ON_FILE_INFO_UPLOADED, pubSub.subscribe(PUBSUB_TOPICS.ON_FILE_INFO_UPLOADED, function (props) {
1186
- var response = props.response, publishingModules = props.publishingModules;
1187
- if (channelUrl === response.channelUrl && shouldPubSubPublishToChannel(publishingModules)) {
1188
- dispatcher({
1189
- type: ON_FILE_INFO_UPLOADED,
1190
- payload: response,
1191
- });
1192
- }
1193
- }));
1194
- subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, function (props) {
1195
- var channel = props.channel, message = props.message, publishingModules = props.publishingModules;
1196
- if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url) && shouldPubSubPublishToChannel(publishingModules)) {
1197
- dispatcher({
1198
- type: SEND_MESSAGE_FAILURE,
1199
- payload: message,
1200
- });
1201
- }
1202
- }));
1203
- subscriber.set(PUBSUB_TOPICS.SEND_FILE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_FILE_MESSAGE, function (props) {
1204
- var channel = props.channel, message = props.message;
1205
- if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
1206
- dispatcher({
1207
- type: SEND_MESSAGE_SUCCESS,
1208
- payload: message,
1209
- });
1210
- setTimeout(function () { return scrollIntoLast(0, scrollRef); }, SCROLL_BOTTOM_DELAY_FOR_SEND);
1211
- }
1212
- }));
1213
- subscriber.set(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, function (props) {
1214
- var channel = props.channel, message = props.message, fromSelector = props.fromSelector;
1215
- if (fromSelector && (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) && channel.isGroupChannel()) {
1216
- dispatcher({
1217
- type: ON_MESSAGE_UPDATED,
1218
- payload: { channel: channel, message: message },
1219
- });
1220
- }
1221
- }));
1222
- subscriber.set(PUBSUB_TOPICS.DELETE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.DELETE_MESSAGE, function (props) {
1223
- var channel = props.channel, messageId = props.messageId;
1224
- if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
1225
- dispatcher({
1226
- type: ON_MESSAGE_DELETED,
1227
- payload: messageId,
1228
- });
1229
- }
1230
- }));
1231
- }
1232
- return function () {
1233
- subscriber.forEach(function (s) {
1234
- try {
1235
- s.remove();
1236
- }
1237
- catch (_a) {
1238
- //
1239
- }
1240
- });
1241
- };
1242
- }, [
1243
- channelUrl,
1244
- sdkInit,
1245
- ]);
1160
+ var useHandleChannelPubsubEvents = function (_a) {
1161
+ var channelUrl = _a.channelUrl, sdkInit = _a.sdkInit, pubSub = _a.pubSub, dispatcher = _a.dispatcher, scrollRef = _a.scrollRef;
1162
+ useEffect(function () {
1163
+ var subscriber = new Map();
1164
+ if (pubSub === null || pubSub === void 0 ? void 0 : pubSub.subscribe) {
1165
+ subscriber.set(PUBSUB_TOPICS.SEND_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_USER_MESSAGE, function (props) {
1166
+ var channel = props.channel, message = props.message;
1167
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
1168
+ dispatcher({
1169
+ type: SEND_MESSAGE_SUCCESS,
1170
+ payload: message,
1171
+ });
1172
+ setTimeout(function () { return scrollIntoLast(0, scrollRef); }, SCROLL_BOTTOM_DELAY_FOR_SEND);
1173
+ }
1174
+ }));
1175
+ subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_START, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_START, function (props) {
1176
+ var channel = props.channel, message = props.message, publishingModules = props.publishingModules;
1177
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url) && shouldPubSubPublishToChannel(publishingModules)) {
1178
+ dispatcher({
1179
+ type: SEND_MESSAGE_START,
1180
+ payload: message,
1181
+ });
1182
+ }
1183
+ }));
1184
+ subscriber.set(PUBSUB_TOPICS.ON_FILE_INFO_UPLOADED, pubSub.subscribe(PUBSUB_TOPICS.ON_FILE_INFO_UPLOADED, function (props) {
1185
+ var response = props.response, publishingModules = props.publishingModules;
1186
+ if (channelUrl === response.channelUrl && shouldPubSubPublishToChannel(publishingModules)) {
1187
+ dispatcher({
1188
+ type: ON_FILE_INFO_UPLOADED,
1189
+ payload: response,
1190
+ });
1191
+ }
1192
+ }));
1193
+ subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, function (props) {
1194
+ var channel = props.channel, message = props.message, publishingModules = props.publishingModules;
1195
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url) && shouldPubSubPublishToChannel(publishingModules)) {
1196
+ dispatcher({
1197
+ type: SEND_MESSAGE_FAILURE,
1198
+ payload: message,
1199
+ });
1200
+ }
1201
+ }));
1202
+ subscriber.set(PUBSUB_TOPICS.SEND_FILE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_FILE_MESSAGE, function (props) {
1203
+ var channel = props.channel, message = props.message;
1204
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
1205
+ dispatcher({
1206
+ type: SEND_MESSAGE_SUCCESS,
1207
+ payload: message,
1208
+ });
1209
+ setTimeout(function () { return scrollIntoLast(0, scrollRef); }, SCROLL_BOTTOM_DELAY_FOR_SEND);
1210
+ }
1211
+ }));
1212
+ subscriber.set(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, function (props) {
1213
+ var channel = props.channel, message = props.message, fromSelector = props.fromSelector;
1214
+ if (fromSelector && (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) && channel.isGroupChannel()) {
1215
+ dispatcher({
1216
+ type: ON_MESSAGE_UPDATED,
1217
+ payload: { channel: channel, message: message },
1218
+ });
1219
+ }
1220
+ }));
1221
+ subscriber.set(PUBSUB_TOPICS.DELETE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.DELETE_MESSAGE, function (props) {
1222
+ var channel = props.channel, messageId = props.messageId;
1223
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
1224
+ dispatcher({
1225
+ type: ON_MESSAGE_DELETED,
1226
+ payload: messageId,
1227
+ });
1228
+ }
1229
+ }));
1230
+ }
1231
+ return function () {
1232
+ subscriber.forEach(function (s) {
1233
+ try {
1234
+ s.remove();
1235
+ }
1236
+ catch (_a) {
1237
+ //
1238
+ }
1239
+ });
1240
+ };
1241
+ }, [
1242
+ channelUrl,
1243
+ sdkInit,
1244
+ ]);
1246
1245
  };
1247
1246
 
1248
- var ChannelContext = React__default.createContext(undefined);
1249
- var ChannelProvider = function (props) {
1250
- var _a, _b, _c, _d, _e, _f;
1251
- 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;
1252
- var globalStore = useSendbirdStateContext();
1253
- var config = globalStore.config;
1254
- var replyType = channelReplyType !== null && channelReplyType !== void 0 ? channelReplyType : config.replyType;
1255
- 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;
1256
- 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;
1257
- 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;
1258
- var globalConfigs = globalStore === null || globalStore === void 0 ? void 0 : globalStore.config;
1259
- var _l = useState(startingPoint), initialTimeStamp = _l[0], setInitialTimeStamp = _l[1];
1260
- useEffect(function () {
1261
- setInitialTimeStamp(startingPoint);
1262
- }, [startingPoint, channelUrl]);
1263
- var _m = useState(null), animatedMessageId = _m[0], setAnimatedMessageId = _m[1];
1264
- var _o = useState(highlightedMessage), highLightedMessageId = _o[0], setHighLightedMessageId = _o[1];
1265
- useEffect(function () {
1266
- setHighLightedMessageId(highlightedMessage);
1267
- }, [highlightedMessage]);
1268
- var userFilledMessageListQuery = queries === null || queries === void 0 ? void 0 : queries.messageListParams;
1269
- var _p = useState(null), quoteMessage = _p[0], setQuoteMessage = _p[1];
1270
- var _q = useState(false), isScrolled = _q[0], setIsScrolled = _q[1];
1271
- var _r = useReducer(channelReducer, initialState), messagesStore = _r[0], messagesDispatcher = _r[1];
1272
- var scrollRef = useRef(null);
1273
- 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;
1274
- var usingReaction = getIsReactionEnabled({
1275
- channel: currentGroupChannel,
1276
- config: config,
1277
- moduleLevel: isReactionEnabled,
1278
- });
1279
- var emojiAllMap = useMemo(function () { return (usingReaction
1280
- ? getAllEmojisMapFromEmojiContainer(emojiContainer)
1281
- : new Map()); }, [emojiContainer]);
1282
- var nicknamesMap = useMemo(function () { return ((usingReaction && currentGroupChannel)
1283
- ? getNicknamesMapFromMembers(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members)
1284
- : new Map()); }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members]);
1285
- // Animate message
1286
- useEffect(function () {
1287
- if (animatedMessage) {
1288
- setAnimatedMessageId(animatedMessage);
1289
- }
1290
- }, [animatedMessage]);
1291
- // Scrollup is default scroll for channel
1292
- var onScrollCallback = useScrollCallback({
1293
- currentGroupChannel: currentGroupChannel,
1294
- oldestMessageTimeStamp: oldestMessageTimeStamp,
1295
- userFilledMessageListQuery: userFilledMessageListQuery,
1296
- replyType: replyType,
1297
- }, {
1298
- hasMorePrev: hasMorePrev,
1299
- logger: logger,
1300
- messagesDispatcher: messagesDispatcher,
1301
- sdk: sdk,
1302
- });
1303
- var scrollToMessage = useScrollToMessage({
1304
- setInitialTimeStamp: setInitialTimeStamp,
1305
- setAnimatedMessageId: setAnimatedMessageId,
1306
- allMessages: allMessages,
1307
- scrollRef: scrollRef,
1308
- }, { logger: logger });
1309
- // onScrollDownCallback is added for navigation to different timestamps on messageSearch
1310
- // hasMorePrev, onScrollCallback -> scroll up(default behavior)
1311
- // hasMoreNext, onScrollDownCallback -> scroll down
1312
- var onScrollDownCallback = useScrollDownCallback({
1313
- currentGroupChannel: currentGroupChannel,
1314
- latestMessageTimeStamp: latestMessageTimeStamp,
1315
- userFilledMessageListQuery: userFilledMessageListQuery,
1316
- hasMoreNext: hasMoreNext,
1317
- replyType: replyType,
1318
- }, {
1319
- logger: logger,
1320
- messagesDispatcher: messagesDispatcher,
1321
- sdk: sdk,
1322
- });
1323
- var toggleReaction = useToggleReactionCallback(currentGroupChannel, logger);
1324
- // to create message-datasource
1325
- // this hook sets currentGroupChannel asynchronously
1326
- useGetChannel({ channelUrl: channelUrl, sdkInit: sdkInit, disableMarkAsRead: disableMarkAsRead }, { messagesDispatcher: messagesDispatcher, sdk: sdk, logger: logger, markAsReadScheduler: markAsReadScheduler });
1327
- // to set quote message as null
1328
- useEffect(function () {
1329
- setQuoteMessage(null);
1330
- }, [channelUrl]);
1331
- // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher
1332
- useHandleChannelEvents({
1333
- currentGroupChannel: currentGroupChannel,
1334
- sdkInit: sdkInit,
1335
- currentUserId: userId,
1336
- disableMarkAsRead: disableMarkAsRead,
1337
- }, {
1338
- messagesDispatcher: messagesDispatcher,
1339
- sdk: sdk,
1340
- logger: logger,
1341
- scrollRef: scrollRef,
1342
- setQuoteMessage: setQuoteMessage,
1343
- });
1344
- // hook that fetches messages when channel changes
1345
- // to be clear here useGetChannel sets currentGroupChannel
1346
- // and useInitialMessagesFetch executes when currentGroupChannel changes
1347
- // p.s This one executes on initialTimeStamp change too
1348
- useInitialMessagesFetch({
1349
- currentGroupChannel: currentGroupChannel,
1350
- userFilledMessageListQuery: userFilledMessageListQuery,
1351
- initialTimeStamp: initialTimeStamp,
1352
- replyType: replyType,
1353
- setIsScrolled: setIsScrolled,
1354
- }, {
1355
- logger: logger,
1356
- scrollRef: scrollRef,
1357
- messagesDispatcher: messagesDispatcher,
1358
- });
1359
- // handles API calls from withSendbird
1360
- useHandleChannelPubsubEvents({
1361
- channelUrl: channelUrl,
1362
- sdkInit: sdkInit,
1363
- pubSub: pubSub,
1364
- dispatcher: messagesDispatcher,
1365
- scrollRef: scrollRef,
1366
- });
1367
- // handling connection breaks
1368
- useHandleReconnect({ isOnline: isOnline, replyType: replyType, disableMarkAsRead: disableMarkAsRead, reconnectOnIdle: reconnectOnIdle }, {
1369
- logger: logger,
1370
- sdk: sdk,
1371
- scrollRef: scrollRef,
1372
- currentGroupChannel: currentGroupChannel,
1373
- messagesDispatcher: messagesDispatcher,
1374
- userFilledMessageListQuery: userFilledMessageListQuery,
1375
- markAsReadScheduler: markAsReadScheduler,
1376
- });
1377
- // callbacks for Message CURD actions
1378
- var deleteMessage = useDeleteMessageCallback({ currentGroupChannel: currentGroupChannel, messagesDispatcher: messagesDispatcher }, { logger: logger });
1379
- var updateMessage = useUpdateMessageCallback({ currentGroupChannel: currentGroupChannel, messagesDispatcher: messagesDispatcher, onBeforeUpdateUserMessage: onBeforeUpdateUserMessage, isMentionEnabled: isMentionEnabled }, { logger: logger, pubSub: pubSub });
1380
- var resendMessage = useResendMessageCallback({ currentGroupChannel: currentGroupChannel, messagesDispatcher: messagesDispatcher }, { logger: logger, pubSub: pubSub });
1381
- var _s = useSendMessageCallback({
1382
- currentGroupChannel: currentGroupChannel,
1383
- isMentionEnabled: isMentionEnabled,
1384
- onBeforeSendUserMessage: onBeforeSendUserMessage,
1385
- }, {
1386
- logger: logger,
1387
- pubSub: pubSub,
1388
- scrollRef: scrollRef,
1389
- messagesDispatcher: messagesDispatcher,
1390
- }), messageInputRef = _s[0], sendMessage = _s[1];
1391
- var sendFileMessage = useSendFileMessageCallback({
1392
- currentGroupChannel: currentGroupChannel,
1393
- imageCompression: imageCompression,
1394
- onBeforeSendFileMessage: onBeforeSendFileMessage,
1395
- }, {
1396
- logger: logger,
1397
- pubSub: pubSub,
1398
- scrollRef: scrollRef,
1399
- messagesDispatcher: messagesDispatcher,
1400
- })[0];
1401
- var sendVoiceMessage = useSendVoiceMessageCallback({
1402
- currentGroupChannel: currentGroupChannel,
1403
- onBeforeSendVoiceMessage: onBeforeSendVoiceMessage,
1404
- }, {
1405
- logger: logger,
1406
- pubSub: pubSub,
1407
- scrollRef: scrollRef,
1408
- messagesDispatcher: messagesDispatcher,
1409
- })[0];
1410
- var sendMultipleFilesMessage = useSendMultipleFilesMessage({
1411
- currentChannel: currentGroupChannel,
1412
- onBeforeSendMultipleFilesMessage: onBeforeSendMultipleFilesMessage,
1413
- publishingModules: [PublishingModuleType.CHANNEL],
1414
- }, {
1415
- logger: logger,
1416
- pubSub: pubSub,
1417
- scrollRef: scrollRef,
1418
- })[0];
1419
- return (React__default.createElement(ChannelContext.Provider, { value: {
1420
- // props
1421
- channelUrl: channelUrl,
1422
- isReactionEnabled: usingReaction,
1423
- isMessageGroupingEnabled: isMessageGroupingEnabled,
1424
- isMultipleFilesMessageEnabled: isMultipleFilesMessageEnabled,
1425
- showSearchIcon: showSearchIcon !== null && showSearchIcon !== void 0 ? showSearchIcon : globalConfigs.showSearchIcon,
1426
- highlightedMessage: highlightedMessage,
1427
- startingPoint: startingPoint,
1428
- onBeforeSendUserMessage: onBeforeSendUserMessage,
1429
- onBeforeSendFileMessage: onBeforeSendFileMessage,
1430
- onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
1431
- onChatHeaderActionClick: onChatHeaderActionClick,
1432
- onSearchClick: onSearchClick,
1433
- onBackClick: onBackClick,
1434
- replyType: replyType,
1435
- threadReplySelectType: (_e = threadReplySelectType !== null && threadReplySelectType !== void 0 ? threadReplySelectType : getCaseResolvedThreadReplySelectType(groupChannel.threadReplySelectType).upperCase) !== null && _e !== void 0 ? _e : ThreadReplySelectType.THREAD,
1436
- queries: queries,
1437
- filterMessageList: filterMessageList,
1438
- disableMarkAsRead: disableMarkAsRead,
1439
- onReplyInThread: onReplyInThread,
1440
- onQuoteMessageClick: onQuoteMessageClick,
1441
- onMessageAnimated: onMessageAnimated,
1442
- onMessageHighlighted: onMessageHighlighted,
1443
- // messagesStore
1444
- allMessages: allMessages,
1445
- localMessages: localMessages,
1446
- loading: loading,
1447
- initialized: initialized,
1448
- unreadSince: unreadSince,
1449
- unreadSinceDate: unreadSinceDate,
1450
- isInvalid: isInvalid,
1451
- currentGroupChannel: currentGroupChannel,
1452
- hasMorePrev: hasMorePrev,
1453
- hasMoreNext: hasMoreNext,
1454
- oldestMessageTimeStamp: oldestMessageTimeStamp,
1455
- latestMessageTimeStamp: latestMessageTimeStamp,
1456
- emojiContainer: emojiContainer,
1457
- readStatus: readStatus,
1458
- typingMembers: typingMembers,
1459
- // utils
1460
- scrollToMessage: scrollToMessage,
1461
- quoteMessage: quoteMessage,
1462
- setQuoteMessage: setQuoteMessage,
1463
- deleteMessage: deleteMessage,
1464
- updateMessage: updateMessage,
1465
- resendMessage: resendMessage,
1466
- messageInputRef: messageInputRef,
1467
- sendMessage: sendMessage,
1468
- sendFileMessage: sendFileMessage,
1469
- sendVoiceMessage: sendVoiceMessage,
1470
- sendMultipleFilesMessage: sendMultipleFilesMessage,
1471
- initialTimeStamp: initialTimeStamp,
1472
- messageActionTypes: channelActions,
1473
- messagesDispatcher: messagesDispatcher,
1474
- setInitialTimeStamp: setInitialTimeStamp,
1475
- setAnimatedMessageId: setAnimatedMessageId,
1476
- setHighLightedMessageId: setHighLightedMessageId,
1477
- animatedMessageId: animatedMessageId,
1478
- highLightedMessageId: highLightedMessageId,
1479
- nicknamesMap: nicknamesMap,
1480
- emojiAllMap: emojiAllMap,
1481
- onScrollCallback: onScrollCallback,
1482
- onScrollDownCallback: onScrollDownCallback,
1483
- scrollRef: scrollRef,
1484
- scrollBehavior: scrollBehavior,
1485
- toggleReaction: toggleReaction,
1486
- isScrolled: isScrolled,
1487
- setIsScrolled: setIsScrolled,
1488
- } },
1489
- 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)));
1490
- };
1247
+ var ChannelContext = React__default.createContext(undefined);
1248
+ var ChannelProvider = function (props) {
1249
+ var _a, _b, _c, _d, _e, _f, _g;
1250
+ var channelUrl = props.channelUrl, children = props.children, isReactionEnabled = props.isReactionEnabled, _h = props.isMessageGroupingEnabled, isMessageGroupingEnabled = _h === void 0 ? true : _h, 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, threadReplySelectType = props.threadReplySelectType, queries = props.queries, filterMessageList = props.filterMessageList, _j = props.disableMarkAsRead, disableMarkAsRead = _j === void 0 ? false : _j, onReplyInThread = props.onReplyInThread, onQuoteMessageClick = props.onQuoteMessageClick, onMessageAnimated = props.onMessageAnimated, onMessageHighlighted = props.onMessageHighlighted, _k = props.scrollBehavior, scrollBehavior = _k === void 0 ? 'auto' : _k, _l = props.reconnectOnIdle, reconnectOnIdle = _l === void 0 ? true : _l;
1251
+ var globalStore = useSendbirdStateContext();
1252
+ var config = globalStore.config;
1253
+ var replyType = (_a = props.replyType) !== null && _a !== void 0 ? _a : getCaseResolvedReplyType(config.groupChannel.replyType).upperCase;
1254
+ var pubSub = config.pubSub, logger = config.logger, userId = config.userId, isOnline = config.isOnline, imageCompression = config.imageCompression, onUserProfileMessage = config.onUserProfileMessage, markAsReadScheduler = config.markAsReadScheduler, groupChannel = config.groupChannel;
1255
+ var sdk = (_c = (_b = globalStore === null || globalStore === void 0 ? void 0 : globalStore.stores) === null || _b === void 0 ? void 0 : _b.sdkStore) === null || _c === void 0 ? void 0 : _c.sdk;
1256
+ var sdkInit = (_e = (_d = globalStore === null || globalStore === void 0 ? void 0 : globalStore.stores) === null || _d === void 0 ? void 0 : _d.sdkStore) === null || _e === void 0 ? void 0 : _e.initialized;
1257
+ var globalConfigs = globalStore === null || globalStore === void 0 ? void 0 : globalStore.config;
1258
+ var _m = useState(startingPoint), initialTimeStamp = _m[0], setInitialTimeStamp = _m[1];
1259
+ useEffect(function () {
1260
+ setInitialTimeStamp(startingPoint);
1261
+ }, [startingPoint, channelUrl]);
1262
+ var _o = useState(null), animatedMessageId = _o[0], setAnimatedMessageId = _o[1];
1263
+ var _p = useState(highlightedMessage), highLightedMessageId = _p[0], setHighLightedMessageId = _p[1];
1264
+ useEffect(function () {
1265
+ setHighLightedMessageId(highlightedMessage);
1266
+ }, [highlightedMessage]);
1267
+ var userFilledMessageListQuery = queries === null || queries === void 0 ? void 0 : queries.messageListParams;
1268
+ var _q = useState(null), quoteMessage = _q[0], setQuoteMessage = _q[1];
1269
+ var _r = useState(false), isScrolled = _r[0], setIsScrolled = _r[1];
1270
+ var _s = useReducer(channelReducer, initialState), messagesStore = _s[0], messagesDispatcher = _s[1];
1271
+ var scrollRef = useRef(null);
1272
+ var isMentionEnabled = groupChannel.enableMention;
1273
+ 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;
1274
+ var usingReaction = getIsReactionEnabled({
1275
+ channel: currentGroupChannel,
1276
+ config: config,
1277
+ moduleLevel: isReactionEnabled,
1278
+ });
1279
+ var emojiAllMap = useMemo(function () { return (usingReaction
1280
+ ? getAllEmojisMapFromEmojiContainer(emojiContainer)
1281
+ : new Map()); }, [emojiContainer]);
1282
+ var nicknamesMap = useMemo(function () { return ((usingReaction && currentGroupChannel)
1283
+ ? getNicknamesMapFromMembers(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members)
1284
+ : new Map()); }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members]);
1285
+ // Animate message
1286
+ useEffect(function () {
1287
+ if (animatedMessage) {
1288
+ setAnimatedMessageId(animatedMessage);
1289
+ }
1290
+ }, [animatedMessage]);
1291
+ // Scrollup is default scroll for channel
1292
+ var onScrollCallback = useScrollCallback({
1293
+ currentGroupChannel: currentGroupChannel,
1294
+ oldestMessageTimeStamp: oldestMessageTimeStamp,
1295
+ userFilledMessageListQuery: userFilledMessageListQuery,
1296
+ replyType: replyType,
1297
+ }, {
1298
+ hasMorePrev: hasMorePrev,
1299
+ logger: logger,
1300
+ messagesDispatcher: messagesDispatcher,
1301
+ sdk: sdk,
1302
+ });
1303
+ var scrollToMessage = useScrollToMessage({
1304
+ setInitialTimeStamp: setInitialTimeStamp,
1305
+ setAnimatedMessageId: setAnimatedMessageId,
1306
+ allMessages: allMessages,
1307
+ scrollRef: scrollRef,
1308
+ }, { logger: logger });
1309
+ // onScrollDownCallback is added for navigation to different timestamps on messageSearch
1310
+ // hasMorePrev, onScrollCallback -> scroll up(default behavior)
1311
+ // hasMoreNext, onScrollDownCallback -> scroll down
1312
+ var onScrollDownCallback = useScrollDownCallback({
1313
+ currentGroupChannel: currentGroupChannel,
1314
+ latestMessageTimeStamp: latestMessageTimeStamp,
1315
+ userFilledMessageListQuery: userFilledMessageListQuery,
1316
+ hasMoreNext: hasMoreNext,
1317
+ replyType: replyType,
1318
+ }, {
1319
+ logger: logger,
1320
+ messagesDispatcher: messagesDispatcher,
1321
+ sdk: sdk,
1322
+ });
1323
+ var toggleReaction = useToggleReactionCallback(currentGroupChannel, logger);
1324
+ // to create message-datasource
1325
+ // this hook sets currentGroupChannel asynchronously
1326
+ useGetChannel({ channelUrl: channelUrl, sdkInit: sdkInit, disableMarkAsRead: disableMarkAsRead }, { messagesDispatcher: messagesDispatcher, sdk: sdk, logger: logger, markAsReadScheduler: markAsReadScheduler });
1327
+ // to set quote message as null
1328
+ useEffect(function () {
1329
+ setQuoteMessage(null);
1330
+ }, [channelUrl]);
1331
+ // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher
1332
+ useHandleChannelEvents({
1333
+ currentGroupChannel: currentGroupChannel,
1334
+ sdkInit: sdkInit,
1335
+ currentUserId: userId,
1336
+ disableMarkAsRead: disableMarkAsRead,
1337
+ }, {
1338
+ messagesDispatcher: messagesDispatcher,
1339
+ sdk: sdk,
1340
+ logger: logger,
1341
+ scrollRef: scrollRef,
1342
+ setQuoteMessage: setQuoteMessage,
1343
+ });
1344
+ // hook that fetches messages when channel changes
1345
+ // to be clear here useGetChannel sets currentGroupChannel
1346
+ // and useInitialMessagesFetch executes when currentGroupChannel changes
1347
+ // p.s This one executes on initialTimeStamp change too
1348
+ useInitialMessagesFetch({
1349
+ currentGroupChannel: currentGroupChannel,
1350
+ userFilledMessageListQuery: userFilledMessageListQuery,
1351
+ initialTimeStamp: initialTimeStamp,
1352
+ replyType: replyType,
1353
+ setIsScrolled: setIsScrolled,
1354
+ }, {
1355
+ logger: logger,
1356
+ scrollRef: scrollRef,
1357
+ messagesDispatcher: messagesDispatcher,
1358
+ });
1359
+ // handles API calls from withSendbird
1360
+ useHandleChannelPubsubEvents({
1361
+ channelUrl: channelUrl,
1362
+ sdkInit: sdkInit,
1363
+ pubSub: pubSub,
1364
+ dispatcher: messagesDispatcher,
1365
+ scrollRef: scrollRef,
1366
+ });
1367
+ // handling connection breaks
1368
+ useHandleReconnect({ isOnline: isOnline, replyType: replyType, disableMarkAsRead: disableMarkAsRead, reconnectOnIdle: reconnectOnIdle }, {
1369
+ logger: logger,
1370
+ sdk: sdk,
1371
+ scrollRef: scrollRef,
1372
+ currentGroupChannel: currentGroupChannel,
1373
+ messagesDispatcher: messagesDispatcher,
1374
+ userFilledMessageListQuery: userFilledMessageListQuery,
1375
+ markAsReadScheduler: markAsReadScheduler,
1376
+ });
1377
+ // callbacks for Message CURD actions
1378
+ var deleteMessage = useDeleteMessageCallback({ currentGroupChannel: currentGroupChannel, messagesDispatcher: messagesDispatcher }, { logger: logger });
1379
+ var updateMessage = useUpdateMessageCallback({ currentGroupChannel: currentGroupChannel, messagesDispatcher: messagesDispatcher, onBeforeUpdateUserMessage: onBeforeUpdateUserMessage, isMentionEnabled: isMentionEnabled }, { logger: logger, pubSub: pubSub });
1380
+ var resendMessage = useResendMessageCallback({ currentGroupChannel: currentGroupChannel, messagesDispatcher: messagesDispatcher }, { logger: logger, pubSub: pubSub });
1381
+ var _t = useSendMessageCallback({
1382
+ currentGroupChannel: currentGroupChannel,
1383
+ isMentionEnabled: isMentionEnabled,
1384
+ onBeforeSendUserMessage: onBeforeSendUserMessage,
1385
+ }, {
1386
+ logger: logger,
1387
+ pubSub: pubSub,
1388
+ scrollRef: scrollRef,
1389
+ messagesDispatcher: messagesDispatcher,
1390
+ }), messageInputRef = _t[0], sendMessage = _t[1];
1391
+ var sendFileMessage = useSendFileMessageCallback({
1392
+ currentGroupChannel: currentGroupChannel,
1393
+ imageCompression: imageCompression,
1394
+ onBeforeSendFileMessage: onBeforeSendFileMessage,
1395
+ }, {
1396
+ logger: logger,
1397
+ pubSub: pubSub,
1398
+ scrollRef: scrollRef,
1399
+ messagesDispatcher: messagesDispatcher,
1400
+ })[0];
1401
+ var sendVoiceMessage = useSendVoiceMessageCallback({
1402
+ currentGroupChannel: currentGroupChannel,
1403
+ onBeforeSendVoiceMessage: onBeforeSendVoiceMessage,
1404
+ }, {
1405
+ logger: logger,
1406
+ pubSub: pubSub,
1407
+ scrollRef: scrollRef,
1408
+ messagesDispatcher: messagesDispatcher,
1409
+ })[0];
1410
+ var sendMultipleFilesMessage = useSendMultipleFilesMessage({
1411
+ currentChannel: currentGroupChannel,
1412
+ onBeforeSendMultipleFilesMessage: onBeforeSendMultipleFilesMessage,
1413
+ publishingModules: [PublishingModuleType.CHANNEL],
1414
+ }, {
1415
+ logger: logger,
1416
+ pubSub: pubSub,
1417
+ scrollRef: scrollRef,
1418
+ })[0];
1419
+ return (React__default.createElement(ChannelContext.Provider, { value: {
1420
+ // props
1421
+ channelUrl: channelUrl,
1422
+ isReactionEnabled: usingReaction,
1423
+ isMessageGroupingEnabled: isMessageGroupingEnabled,
1424
+ isMultipleFilesMessageEnabled: isMultipleFilesMessageEnabled,
1425
+ showSearchIcon: showSearchIcon !== null && showSearchIcon !== void 0 ? showSearchIcon : globalConfigs.groupChannelSettings.enableMessageSearch,
1426
+ highlightedMessage: highlightedMessage,
1427
+ startingPoint: startingPoint,
1428
+ onBeforeSendUserMessage: onBeforeSendUserMessage,
1429
+ onBeforeSendFileMessage: onBeforeSendFileMessage,
1430
+ onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
1431
+ onChatHeaderActionClick: onChatHeaderActionClick,
1432
+ onSearchClick: onSearchClick,
1433
+ onBackClick: onBackClick,
1434
+ replyType: replyType,
1435
+ threadReplySelectType: (_f = threadReplySelectType !== null && threadReplySelectType !== void 0 ? threadReplySelectType : getCaseResolvedThreadReplySelectType(groupChannel.threadReplySelectType).upperCase) !== null && _f !== void 0 ? _f : ThreadReplySelectType.THREAD,
1436
+ queries: queries,
1437
+ filterMessageList: filterMessageList,
1438
+ disableMarkAsRead: disableMarkAsRead,
1439
+ onReplyInThread: onReplyInThread,
1440
+ onQuoteMessageClick: onQuoteMessageClick,
1441
+ onMessageAnimated: onMessageAnimated,
1442
+ onMessageHighlighted: onMessageHighlighted,
1443
+ // messagesStore
1444
+ allMessages: allMessages,
1445
+ localMessages: localMessages,
1446
+ loading: loading,
1447
+ initialized: initialized,
1448
+ unreadSince: unreadSince,
1449
+ unreadSinceDate: unreadSinceDate,
1450
+ isInvalid: isInvalid,
1451
+ currentGroupChannel: currentGroupChannel,
1452
+ hasMorePrev: hasMorePrev,
1453
+ hasMoreNext: hasMoreNext,
1454
+ oldestMessageTimeStamp: oldestMessageTimeStamp,
1455
+ latestMessageTimeStamp: latestMessageTimeStamp,
1456
+ emojiContainer: emojiContainer,
1457
+ readStatus: readStatus,
1458
+ typingMembers: typingMembers,
1459
+ // utils
1460
+ scrollToMessage: scrollToMessage,
1461
+ quoteMessage: quoteMessage,
1462
+ setQuoteMessage: setQuoteMessage,
1463
+ deleteMessage: deleteMessage,
1464
+ updateMessage: updateMessage,
1465
+ resendMessage: resendMessage,
1466
+ messageInputRef: messageInputRef,
1467
+ sendMessage: sendMessage,
1468
+ sendFileMessage: sendFileMessage,
1469
+ sendVoiceMessage: sendVoiceMessage,
1470
+ sendMultipleFilesMessage: sendMultipleFilesMessage,
1471
+ initialTimeStamp: initialTimeStamp,
1472
+ messageActionTypes: channelActions,
1473
+ messagesDispatcher: messagesDispatcher,
1474
+ setInitialTimeStamp: setInitialTimeStamp,
1475
+ setAnimatedMessageId: setAnimatedMessageId,
1476
+ setHighLightedMessageId: setHighLightedMessageId,
1477
+ animatedMessageId: animatedMessageId,
1478
+ highLightedMessageId: highLightedMessageId,
1479
+ nicknamesMap: nicknamesMap,
1480
+ emojiAllMap: emojiAllMap,
1481
+ onScrollCallback: onScrollCallback,
1482
+ onScrollDownCallback: onScrollDownCallback,
1483
+ scrollRef: scrollRef,
1484
+ scrollBehavior: scrollBehavior,
1485
+ toggleReaction: toggleReaction,
1486
+ isScrolled: isScrolled,
1487
+ setIsScrolled: setIsScrolled,
1488
+ } },
1489
+ React__default.createElement(UserProfileProvider, { disableUserProfile: (_g = props === null || props === void 0 ? void 0 : props.disableUserProfile) !== null && _g !== void 0 ? _g : !config.common.enableUsingDefaultUserProfile, renderUserProfile: props === null || props === void 0 ? void 0 : props.renderUserProfile, onUserProfileMessage: onUserProfileMessage }, children)));
1490
+ };
1491
1491
  var useChannelContext = function () { return React__default.useContext(ChannelContext); };
1492
1492
 
1493
1493
  export { ChannelProvider, useChannelContext };