@sendbird/uikit-react 3.10.0 → 3.10.2-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1042) hide show
  1. package/App.js +366 -190
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +17 -1
  4. package/Channel/components/ChannelHeader.js +35 -61
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +78 -111
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +35 -81
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +8 -12
  11. package/Channel/components/FrozenNotification.js.map +1 -1
  12. package/Channel/components/Message.js +63 -317
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageFeedbackModal.js +15 -14
  15. package/Channel/components/MessageFeedbackModal.js.map +1 -1
  16. package/Channel/components/MessageInput.js +65 -191
  17. package/Channel/components/MessageInput.js.map +1 -1
  18. package/Channel/components/MessageList.js +61 -58
  19. package/Channel/components/MessageList.js.map +1 -1
  20. package/Channel/components/RemoveMessageModal.js +31 -44
  21. package/Channel/components/RemoveMessageModal.js.map +1 -1
  22. package/Channel/components/SuggestedMentionList.js +37 -191
  23. package/Channel/components/SuggestedMentionList.js.map +1 -1
  24. package/Channel/components/TypingIndicator.js +12 -80
  25. package/Channel/components/TypingIndicator.js.map +1 -1
  26. package/Channel/components/UnreadCount.js +11 -29
  27. package/Channel/components/UnreadCount.js.map +1 -1
  28. package/Channel/context.js +1502 -21
  29. package/Channel/context.js.map +1 -1
  30. package/Channel/hooks/useHandleUploadFiles.js +14 -13
  31. package/Channel/hooks/useHandleUploadFiles.js.map +1 -1
  32. package/Channel/hooks/useInitialMessagesFetch.js +7 -8
  33. package/Channel/hooks/useInitialMessagesFetch.js.map +1 -1
  34. package/Channel/utils/compareMessagesForGrouping.js +40 -8
  35. package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  36. package/Channel/utils/getMessagePartsInfo.js +10 -9
  37. package/Channel/utils/getMessagePartsInfo.js.map +1 -1
  38. package/Channel.js +78 -74
  39. package/Channel.js.map +1 -1
  40. package/ChannelList/components/AddChannel.js +28 -47
  41. package/ChannelList/components/AddChannel.js.map +1 -1
  42. package/ChannelList/components/ChannelListHeader.js +13 -35
  43. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  44. package/ChannelList/components/ChannelListUI.js +61 -135
  45. package/ChannelList/components/ChannelListUI.js.map +1 -1
  46. package/ChannelList/components/ChannelPreview.js +42 -126
  47. package/ChannelList/components/ChannelPreview.js.map +1 -1
  48. package/ChannelList/components/ChannelPreviewAction.js +19 -66
  49. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  50. package/ChannelList/context.js +10 -9
  51. package/ChannelList/context.js.map +1 -1
  52. package/ChannelList.js +58 -59
  53. package/ChannelList.js.map +1 -1
  54. package/ChannelSettings/components/ChannelProfile.js +14 -14
  55. package/ChannelSettings/components/ChannelSettingsUI.js +26 -20
  56. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  57. package/ChannelSettings/components/EditDetailsModal.js +14 -14
  58. package/ChannelSettings/components/LeaveChannel.js +11 -11
  59. package/ChannelSettings/components/ModerationPanel.js +41 -23
  60. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  61. package/ChannelSettings/components/UserListItem.js +14 -13
  62. package/ChannelSettings/components/UserListItem.js.map +1 -1
  63. package/ChannelSettings/components/UserPanel.js +23 -16
  64. package/ChannelSettings/components/UserPanel.js.map +1 -1
  65. package/ChannelSettings/context.js +3 -3
  66. package/ChannelSettings.js +26 -20
  67. package/ChannelSettings.js.map +1 -1
  68. package/CreateChannel/components/CreateChannelUI.js +17 -16
  69. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  70. package/CreateChannel/components/InviteUsers.js +24 -25
  71. package/CreateChannel/components/InviteUsers.js.map +1 -1
  72. package/CreateChannel/components/SelectChannelType.js +10 -10
  73. package/CreateChannel/context.js +4 -4
  74. package/CreateChannel.js +19 -19
  75. package/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -12
  76. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  77. package/CreateOpenChannel/context.js +1 -1
  78. package/CreateOpenChannel.js +11 -12
  79. package/CreateOpenChannel.js.map +1 -1
  80. package/EditUserProfile/components/EditUserProfileUI.js +12 -13
  81. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  82. package/EditUserProfile.js +12 -13
  83. package/EditUserProfile.js.map +1 -1
  84. package/Message/hooks/useDirtyGetMentions.js +2 -2
  85. package/MessageSearch/components/MessageSearchUI.js +15 -15
  86. package/MessageSearch/context.js +14 -3
  87. package/MessageSearch/context.js.map +1 -1
  88. package/MessageSearch.js +15 -15
  89. package/OpenChannel/components/FrozenChannelNotification.js +5 -5
  90. package/OpenChannel/components/OpenChannelHeader.js +18 -19
  91. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  92. package/OpenChannel/components/OpenChannelInput.js +26 -26
  93. package/OpenChannel/components/OpenChannelMessage.js +36 -35
  94. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  95. package/OpenChannel/components/OpenChannelMessageList.js +41 -38
  96. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  97. package/OpenChannel/components/OpenChannelUI.js +41 -38
  98. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  99. package/OpenChannel/context.js +17 -18
  100. package/OpenChannel/context.js.map +1 -1
  101. package/OpenChannel.js +41 -38
  102. package/OpenChannel.js.map +1 -1
  103. package/OpenChannelList/components/OpenChannelListUI.js +14 -15
  104. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  105. package/OpenChannelList/components/OpenChannelPreview.js +6 -7
  106. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  107. package/OpenChannelList/context.js +3 -3
  108. package/OpenChannelList.js +14 -15
  109. package/OpenChannelList.js.map +1 -1
  110. package/OpenChannelSettings/components/EditDetailsModal.js +15 -15
  111. package/OpenChannelSettings/components/OpenChannelProfile.js +15 -15
  112. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +20 -19
  113. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  114. package/OpenChannelSettings/components/OperatorUI.js +20 -19
  115. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  116. package/OpenChannelSettings/components/ParticipantUI.js +18 -17
  117. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  118. package/OpenChannelSettings/context.js +3 -3
  119. package/OpenChannelSettings.js +20 -19
  120. package/OpenChannelSettings.js.map +1 -1
  121. package/SendbirdProvider.js +82 -223
  122. package/SendbirdProvider.js.map +1 -1
  123. package/Thread/components/ParentMessageInfo.js +44 -45
  124. package/Thread/components/ParentMessageInfo.js.map +1 -1
  125. package/Thread/components/ParentMessageInfoItem.js +36 -34
  126. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  127. package/Thread/components/ThreadHeader.js +7 -7
  128. package/Thread/components/ThreadList.js +49 -49
  129. package/Thread/components/ThreadListItem.js +49 -50
  130. package/Thread/components/ThreadListItem.js.map +1 -1
  131. package/Thread/components/ThreadMessageInput.js +50 -43
  132. package/Thread/components/ThreadMessageInput.js.map +1 -1
  133. package/Thread/components/ThreadUI.js +60 -52
  134. package/Thread/components/ThreadUI.js.map +1 -1
  135. package/Thread/context.js +151 -160
  136. package/Thread/context.js.map +1 -1
  137. package/Thread.js +60 -52
  138. package/Thread.js.map +1 -1
  139. package/VoicePlayer/context.js +3 -3
  140. package/VoicePlayer/useVoicePlayer.js +10 -10
  141. package/VoiceRecorder/context.js +12 -11
  142. package/VoiceRecorder/context.js.map +1 -1
  143. package/VoiceRecorder/useVoiceRecorder.js +9 -9
  144. package/chunks/{bundle-Kt1S-50v.js → bundle-0J_EdUWI.js} +2 -2
  145. package/chunks/bundle-0J_EdUWI.js.map +1 -0
  146. package/chunks/{bundle-tLQ87Jwz.js → bundle-0jbuC1o3.js} +3 -3
  147. package/chunks/bundle-0jbuC1o3.js.map +1 -0
  148. package/chunks/{bundle-oW5LS1AU.js → bundle-1zn-WT_r.js} +12 -30
  149. package/{cjs/chunks/bundle-YTD5gh4h.js.map → chunks/bundle-1zn-WT_r.js.map} +1 -1
  150. package/chunks/bundle-3GWXgoxj.js +44 -0
  151. package/chunks/bundle-3GWXgoxj.js.map +1 -0
  152. package/chunks/{bundle-iifpyLxR.js → bundle-3i31KNu7.js} +10 -10
  153. package/{cjs/chunks/bundle-FJe6Dl-f.js.map → chunks/bundle-3i31KNu7.js.map} +1 -1
  154. package/chunks/{bundle-X2Sm7pn5.js → bundle-4GPpeoNf.js} +1 -1
  155. package/chunks/bundle-4GPpeoNf.js.map +1 -0
  156. package/chunks/{bundle-M-Qfv2tU.js → bundle-4Ib7FkR6.js} +1 -1
  157. package/chunks/bundle-4Ib7FkR6.js.map +1 -0
  158. package/chunks/{bundle-tZrqMc_G.js → bundle-62ej9afV.js} +5 -5
  159. package/chunks/{bundle-tZrqMc_G.js.map → bundle-62ej9afV.js.map} +1 -1
  160. package/chunks/{bundle-GGqhdR8L.js → bundle-79-Y-lX2.js} +3 -3
  161. package/chunks/{bundle-GGqhdR8L.js.map → bundle-79-Y-lX2.js.map} +1 -1
  162. package/chunks/{bundle-EeL8s1uR.js → bundle-8JX3bIpj.js} +3 -3
  163. package/chunks/{bundle-EeL8s1uR.js.map → bundle-8JX3bIpj.js.map} +1 -1
  164. package/chunks/{bundle-KnWMPlLu.js → bundle-AXNVQw91.js} +9 -8
  165. package/chunks/bundle-AXNVQw91.js.map +1 -0
  166. package/chunks/{bundle-Dv_OpODB.js → bundle-BA7tv0JB.js} +14 -2
  167. package/chunks/{bundle-Dv_OpODB.js.map → bundle-BA7tv0JB.js.map} +1 -1
  168. package/chunks/{bundle-AilPIINY.js → bundle-BBjosDA0.js} +3 -3
  169. package/chunks/bundle-BBjosDA0.js.map +1 -0
  170. package/chunks/bundle-BVtLlpwZ.js +88 -0
  171. package/chunks/bundle-BVtLlpwZ.js.map +1 -0
  172. package/chunks/bundle-D1V3P366.js +23 -0
  173. package/chunks/bundle-D1V3P366.js.map +1 -0
  174. package/chunks/bundle-DSoowPBh.js +388 -0
  175. package/chunks/bundle-DSoowPBh.js.map +1 -0
  176. package/chunks/{bundle-8tjyQiRi.js → bundle-F6-2aFsp.js} +1 -1
  177. package/chunks/bundle-F6-2aFsp.js.map +1 -0
  178. package/chunks/bundle-G7HnuZsw.js +13 -0
  179. package/chunks/bundle-G7HnuZsw.js.map +1 -0
  180. package/chunks/{bundle-84jQZIDS.js → bundle-GGE6HRof.js} +1 -1
  181. package/chunks/bundle-GGE6HRof.js.map +1 -0
  182. package/chunks/bundle-GJ-4hPvC.js +57 -0
  183. package/chunks/bundle-GJ-4hPvC.js.map +1 -0
  184. package/chunks/bundle-GnFOVDL2.js +230 -0
  185. package/chunks/{bundle-P_LfQm7L.js.map → bundle-GnFOVDL2.js.map} +1 -1
  186. package/chunks/{bundle-cYhstyoi.js → bundle-I8JFwttJ.js} +3 -3
  187. package/chunks/bundle-I8JFwttJ.js.map +1 -0
  188. package/chunks/{bundle-ZExhHi47.js → bundle-IRlSmJVg.js} +29 -13
  189. package/chunks/bundle-IRlSmJVg.js.map +1 -0
  190. package/chunks/{bundle-fDGhJhA3.js → bundle-J3DrW9X2.js} +8 -8
  191. package/chunks/bundle-J3DrW9X2.js.map +1 -0
  192. package/chunks/{bundle-y_DSrC-A.js → bundle-LWD0OLz8.js} +1 -1
  193. package/chunks/bundle-LWD0OLz8.js.map +1 -0
  194. package/chunks/{bundle-QjcHKpDK.js → bundle-MBrlu_LK.js} +2 -2
  195. package/chunks/bundle-MBrlu_LK.js.map +1 -0
  196. package/chunks/{bundle-aD4V4aI8.js → bundle-N9hMnIRl.js} +26 -24
  197. package/chunks/{bundle-aD4V4aI8.js.map → bundle-N9hMnIRl.js.map} +1 -1
  198. package/chunks/bundle-NjNqsDXb.js +11 -0
  199. package/chunks/bundle-NjNqsDXb.js.map +1 -0
  200. package/chunks/{bundle-1pnUZsGs.js → bundle-NwZvowyL.js} +1 -1
  201. package/chunks/bundle-NwZvowyL.js.map +1 -0
  202. package/chunks/bundle-OAJaPWYb.js +27 -0
  203. package/chunks/bundle-OAJaPWYb.js.map +1 -0
  204. package/chunks/{bundle-Lxhlm_wG.js → bundle-OFH4qWaN.js} +4 -4
  205. package/chunks/{bundle-Lxhlm_wG.js.map → bundle-OFH4qWaN.js.map} +1 -1
  206. package/chunks/{bundle-XkweI7LG.js → bundle-OJ-0ytxX.js} +1 -1
  207. package/chunks/bundle-OJ-0ytxX.js.map +1 -0
  208. package/chunks/bundle-Q8kUKu5l.js +34 -0
  209. package/chunks/bundle-Q8kUKu5l.js.map +1 -0
  210. package/chunks/{bundle-HVtbYmj3.js → bundle-Qufz6_i_.js} +4 -5
  211. package/chunks/bundle-Qufz6_i_.js.map +1 -0
  212. package/chunks/{bundle-OwmPKW49.js → bundle-RZWoLRNe.js} +96 -59
  213. package/chunks/bundle-RZWoLRNe.js.map +1 -0
  214. package/chunks/bundle-Rz5QaIhK.js +12 -0
  215. package/chunks/bundle-Rz5QaIhK.js.map +1 -0
  216. package/chunks/{bundle-2Rw-coMg.js → bundle-SlaQb7y0.js} +2 -2
  217. package/chunks/{bundle-2Rw-coMg.js.map → bundle-SlaQb7y0.js.map} +1 -1
  218. package/chunks/{bundle-26VX7FQg.js → bundle-ULVw0l0r.js} +1 -1
  219. package/chunks/{bundle-26VX7FQg.js.map → bundle-ULVw0l0r.js.map} +1 -1
  220. package/chunks/bundle-VbkO6hwH.js +29 -0
  221. package/chunks/{bundle-QGpFq71p.js.map → bundle-VbkO6hwH.js.map} +1 -1
  222. package/chunks/bundle-Wzk9dnsn.js +199 -0
  223. package/chunks/bundle-Wzk9dnsn.js.map +1 -0
  224. package/chunks/bundle-Xytq6xaz.js +179 -0
  225. package/{cjs/chunks/bundle-tJKWfbHM.js.map → chunks/bundle-Xytq6xaz.js.map} +1 -1
  226. package/chunks/{bundle-oW9dQm2o.js → bundle-YHAMs1sP.js} +1 -1
  227. package/chunks/bundle-YHAMs1sP.js.map +1 -0
  228. package/chunks/{bundle-GXGH9ESl.js → bundle-YVEtWFVy.js} +2 -2
  229. package/chunks/bundle-YVEtWFVy.js.map +1 -0
  230. package/chunks/{bundle-mccz6DbW.js → bundle-YoWLsJ0C.js} +1 -1
  231. package/chunks/bundle-YoWLsJ0C.js.map +1 -0
  232. package/chunks/{bundle-QGpFq71p.js → bundle-ZOCAUrJO.js} +2 -2
  233. package/chunks/bundle-ZOCAUrJO.js.map +1 -0
  234. package/chunks/{bundle-ej1sc1yZ.js → bundle-_cXVZn5n.js} +1 -1
  235. package/chunks/bundle-_cXVZn5n.js.map +1 -0
  236. package/chunks/{bundle-rQ1k1Cpu.js → bundle-aKXnhi3A.js} +1 -1
  237. package/chunks/{bundle-rQ1k1Cpu.js.map → bundle-aKXnhi3A.js.map} +1 -1
  238. package/chunks/{bundle-YD2b0cnK.js → bundle-agW9Hw66.js} +4 -4
  239. package/chunks/bundle-agW9Hw66.js.map +1 -0
  240. package/chunks/bundle-bAY1j7eP.js +34 -0
  241. package/chunks/bundle-bAY1j7eP.js.map +1 -0
  242. package/chunks/bundle-beMggMMW.js +289 -0
  243. package/chunks/bundle-beMggMMW.js.map +1 -0
  244. package/chunks/bundle-bjEEGmYA.js +197 -0
  245. package/chunks/bundle-bjEEGmYA.js.map +1 -0
  246. package/chunks/{bundle-OHK1QMwn.js → bundle-c1LUbaVa.js} +12 -41
  247. package/chunks/{bundle-OHK1QMwn.js.map → bundle-c1LUbaVa.js.map} +1 -1
  248. package/chunks/{bundle-kHH52OEM.js → bundle-cA_r9HRx.js} +2 -3
  249. package/chunks/bundle-cA_r9HRx.js.map +1 -0
  250. package/chunks/bundle-cBbT3DlY.js +148 -0
  251. package/chunks/bundle-cBbT3DlY.js.map +1 -0
  252. package/chunks/{bundle-wNtXTu0c.js → bundle-ctAjRHDW.js} +14 -8
  253. package/{cjs/chunks/bundle-IVfrW5UV.js.map → chunks/bundle-ctAjRHDW.js.map} +1 -1
  254. package/chunks/{bundle-4vHal8Yn.js → bundle-cvTUkQV_.js} +6 -6
  255. package/chunks/bundle-cvTUkQV_.js.map +1 -0
  256. package/chunks/{bundle-KpJtSqe-.js → bundle-d5KevIXI.js} +4 -28
  257. package/chunks/bundle-d5KevIXI.js.map +1 -0
  258. package/chunks/bundle-dOD0mfTw.js +120 -0
  259. package/chunks/bundle-dOD0mfTw.js.map +1 -0
  260. package/chunks/{bundle-8XsN_e3a.js → bundle-drww6xht.js} +42 -30
  261. package/{cjs/chunks/bundle-1GRgJFEb.js.map → chunks/bundle-drww6xht.js.map} +1 -1
  262. package/chunks/{bundle-YWlIaifS.js → bundle-fQ1V_U8F.js} +1 -1
  263. package/chunks/bundle-fQ1V_U8F.js.map +1 -0
  264. package/chunks/{bundle-gzQGUVJt.js → bundle-hDx2-CRe.js} +39 -39
  265. package/chunks/{bundle-gzQGUVJt.js.map → bundle-hDx2-CRe.js.map} +1 -1
  266. package/chunks/{bundle-hpM7HwDV.js → bundle-iwZaUd9o.js} +1 -1
  267. package/chunks/bundle-iwZaUd9o.js.map +1 -0
  268. package/chunks/{bundle-s5uFV3hh.js → bundle-jDjj3eHU.js} +1 -1
  269. package/chunks/bundle-jDjj3eHU.js.map +1 -0
  270. package/chunks/{bundle-P_LfQm7L.js → bundle-jy6_UG14.js} +1 -1
  271. package/chunks/{bundle-8XsN_e3a.js.map → bundle-jy6_UG14.js.map} +1 -1
  272. package/chunks/bundle-khgxDrnA.js +61 -0
  273. package/chunks/bundle-khgxDrnA.js.map +1 -0
  274. package/chunks/{bundle-cN2gAFB_.js → bundle-lUrIOx9p.js} +3 -3
  275. package/chunks/{bundle-cN2gAFB_.js.map → bundle-lUrIOx9p.js.map} +1 -1
  276. package/chunks/{bundle-B_aR2jdp.js → bundle-lVxQMV9H.js} +6 -6
  277. package/chunks/bundle-lVxQMV9H.js.map +1 -0
  278. package/chunks/{bundle-Abz9zH51.js → bundle-laVKAiJ-.js} +5 -40
  279. package/{cjs/chunks/bundle-Pa-zxMUU.js.map → chunks/bundle-laVKAiJ-.js.map} +1 -1
  280. package/chunks/{bundle-1_Rwzd0f.js → bundle-mn6nwwm3.js} +2 -2
  281. package/chunks/{bundle-1_Rwzd0f.js.map → bundle-mn6nwwm3.js.map} +1 -1
  282. package/chunks/{bundle-6LRbbWyh.js → bundle-nD2ZWBq4.js} +2 -2
  283. package/chunks/{bundle-6LRbbWyh.js.map → bundle-nD2ZWBq4.js.map} +1 -1
  284. package/chunks/{bundle-tD8xAWw2.js → bundle-nlOgiAcu.js} +1 -1
  285. package/chunks/bundle-nlOgiAcu.js.map +1 -0
  286. package/chunks/{bundle-edTAi5zj.js → bundle-o1Ev7FSN.js} +5 -47
  287. package/chunks/bundle-o1Ev7FSN.js.map +1 -0
  288. package/chunks/{bundle-pnJu3fWb.js → bundle-otzUyFE_.js} +165 -59
  289. package/{cjs/chunks/bundle-2_VQBtF9.js.map → chunks/bundle-otzUyFE_.js.map} +1 -1
  290. package/chunks/{bundle-zx8iuoIh.js → bundle-poK2Vr1v.js} +2 -4
  291. package/chunks/bundle-poK2Vr1v.js.map +1 -0
  292. package/chunks/bundle-qAc60kip.js +48 -0
  293. package/chunks/bundle-qAc60kip.js.map +1 -0
  294. package/chunks/{bundle-Uw736N77.js → bundle-r9j_eCHc.js} +1 -1
  295. package/chunks/bundle-r9j_eCHc.js.map +1 -0
  296. package/chunks/bundle-tPCzzoc1.js +34 -0
  297. package/chunks/bundle-tPCzzoc1.js.map +1 -0
  298. package/chunks/bundle-uIetzCLw.js +64 -0
  299. package/chunks/bundle-uIetzCLw.js.map +1 -0
  300. package/chunks/bundle-v3WxYU8s.js +30 -0
  301. package/chunks/bundle-v3WxYU8s.js.map +1 -0
  302. package/chunks/{bundle-8XAFqDsw.js → bundle-vOT5acXc.js} +1 -1
  303. package/chunks/bundle-vOT5acXc.js.map +1 -0
  304. package/chunks/{bundle-TztVqjoB.js → bundle-vz3GEsoi.js} +3 -3
  305. package/chunks/bundle-vz3GEsoi.js.map +1 -0
  306. package/chunks/{bundle-5iL1VCKs.js → bundle-w1C-Xmf3.js} +3 -3
  307. package/chunks/bundle-w1C-Xmf3.js.map +1 -0
  308. package/chunks/{bundle-hNJ4PtSG.js → bundle-wMP1pqZM.js} +10 -10
  309. package/chunks/bundle-wMP1pqZM.js.map +1 -0
  310. package/chunks/bundle-x_yt1Yd5.js +30 -0
  311. package/chunks/bundle-x_yt1Yd5.js.map +1 -0
  312. package/chunks/bundle-zKBdD-J6.js +550 -0
  313. package/chunks/bundle-zKBdD-J6.js.map +1 -0
  314. package/chunks/{bundle-imm3o8vY.js → bundle-zV8TJWvL.js} +1 -1
  315. package/chunks/bundle-zV8TJWvL.js.map +1 -0
  316. package/cjs/App.js +365 -189
  317. package/cjs/App.js.map +1 -1
  318. package/cjs/Channel/components/ChannelHeader.js +40 -59
  319. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  320. package/cjs/Channel/components/ChannelUI.js +80 -109
  321. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  322. package/cjs/Channel/components/FileViewer.js +38 -80
  323. package/cjs/Channel/components/FileViewer.js.map +1 -1
  324. package/cjs/Channel/components/FrozenNotification.js +9 -13
  325. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  326. package/cjs/Channel/components/Message.js +64 -314
  327. package/cjs/Channel/components/Message.js.map +1 -1
  328. package/cjs/Channel/components/MessageFeedbackModal.js +15 -14
  329. package/cjs/Channel/components/MessageFeedbackModal.js.map +1 -1
  330. package/cjs/Channel/components/MessageInput.js +65 -191
  331. package/cjs/Channel/components/MessageInput.js.map +1 -1
  332. package/cjs/Channel/components/MessageList.js +65 -59
  333. package/cjs/Channel/components/MessageList.js.map +1 -1
  334. package/cjs/Channel/components/RemoveMessageModal.js +33 -42
  335. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  336. package/cjs/Channel/components/SuggestedMentionList.js +39 -190
  337. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  338. package/cjs/Channel/components/TypingIndicator.js +12 -83
  339. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  340. package/cjs/Channel/components/UnreadCount.js +12 -30
  341. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  342. package/cjs/Channel/context.js +1500 -23
  343. package/cjs/Channel/context.js.map +1 -1
  344. package/cjs/Channel/hooks/useHandleUploadFiles.js +14 -13
  345. package/cjs/Channel/hooks/useHandleUploadFiles.js.map +1 -1
  346. package/cjs/Channel/hooks/useInitialMessagesFetch.js +7 -8
  347. package/cjs/Channel/hooks/useInitialMessagesFetch.js.map +1 -1
  348. package/cjs/Channel/utils/compareMessagesForGrouping.js +46 -9
  349. package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  350. package/cjs/Channel/utils/getMessagePartsInfo.js +10 -9
  351. package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
  352. package/cjs/Channel.js +78 -74
  353. package/cjs/Channel.js.map +1 -1
  354. package/cjs/ChannelList/components/AddChannel.js +31 -46
  355. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  356. package/cjs/ChannelList/components/ChannelListHeader.js +13 -35
  357. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  358. package/cjs/ChannelList/components/ChannelListUI.js +63 -133
  359. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  360. package/cjs/ChannelList/components/ChannelPreview.js +44 -124
  361. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  362. package/cjs/ChannelList/components/ChannelPreviewAction.js +20 -63
  363. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  364. package/cjs/ChannelList/context.js +10 -9
  365. package/cjs/ChannelList/context.js.map +1 -1
  366. package/cjs/ChannelList.js +58 -59
  367. package/cjs/ChannelList.js.map +1 -1
  368. package/cjs/ChannelSettings/components/ChannelProfile.js +14 -14
  369. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +26 -20
  370. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  371. package/cjs/ChannelSettings/components/EditDetailsModal.js +14 -14
  372. package/cjs/ChannelSettings/components/LeaveChannel.js +11 -11
  373. package/cjs/ChannelSettings/components/ModerationPanel.js +41 -23
  374. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  375. package/cjs/ChannelSettings/components/UserListItem.js +14 -13
  376. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  377. package/cjs/ChannelSettings/components/UserPanel.js +23 -16
  378. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  379. package/cjs/ChannelSettings/context.js +3 -3
  380. package/cjs/ChannelSettings.js +26 -20
  381. package/cjs/ChannelSettings.js.map +1 -1
  382. package/cjs/CreateChannel/components/CreateChannelUI.js +17 -16
  383. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  384. package/cjs/CreateChannel/components/InviteUsers.js +24 -25
  385. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  386. package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
  387. package/cjs/CreateChannel/context.js +4 -4
  388. package/cjs/CreateChannel.js +19 -19
  389. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -12
  390. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  391. package/cjs/CreateOpenChannel/context.js +1 -1
  392. package/cjs/CreateOpenChannel.js +11 -12
  393. package/cjs/CreateOpenChannel.js.map +1 -1
  394. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -13
  395. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  396. package/cjs/EditUserProfile.js +12 -13
  397. package/cjs/EditUserProfile.js.map +1 -1
  398. package/cjs/Message/hooks/useDirtyGetMentions.js +2 -2
  399. package/cjs/MessageSearch/components/MessageSearchUI.js +15 -15
  400. package/cjs/MessageSearch/context.js +14 -3
  401. package/cjs/MessageSearch/context.js.map +1 -1
  402. package/cjs/MessageSearch.js +15 -15
  403. package/cjs/OpenChannel/components/FrozenChannelNotification.js +5 -5
  404. package/cjs/OpenChannel/components/OpenChannelHeader.js +18 -19
  405. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  406. package/cjs/OpenChannel/components/OpenChannelInput.js +26 -26
  407. package/cjs/OpenChannel/components/OpenChannelMessage.js +36 -35
  408. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  409. package/cjs/OpenChannel/components/OpenChannelMessageList.js +42 -39
  410. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  411. package/cjs/OpenChannel/components/OpenChannelUI.js +41 -38
  412. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  413. package/cjs/OpenChannel/context.js +17 -18
  414. package/cjs/OpenChannel/context.js.map +1 -1
  415. package/cjs/OpenChannel.js +41 -38
  416. package/cjs/OpenChannel.js.map +1 -1
  417. package/cjs/OpenChannelList/components/OpenChannelListUI.js +14 -15
  418. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  419. package/cjs/OpenChannelList/components/OpenChannelPreview.js +6 -7
  420. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  421. package/cjs/OpenChannelList/context.js +3 -3
  422. package/cjs/OpenChannelList.js +14 -15
  423. package/cjs/OpenChannelList.js.map +1 -1
  424. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +15 -15
  425. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +15 -15
  426. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +20 -19
  427. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  428. package/cjs/OpenChannelSettings/components/OperatorUI.js +20 -19
  429. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  430. package/cjs/OpenChannelSettings/components/ParticipantUI.js +18 -17
  431. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  432. package/cjs/OpenChannelSettings/context.js +3 -3
  433. package/cjs/OpenChannelSettings.js +20 -19
  434. package/cjs/OpenChannelSettings.js.map +1 -1
  435. package/cjs/SendbirdProvider.js +86 -227
  436. package/cjs/SendbirdProvider.js.map +1 -1
  437. package/cjs/Thread/components/ParentMessageInfo.js +46 -47
  438. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  439. package/cjs/Thread/components/ParentMessageInfoItem.js +39 -37
  440. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  441. package/cjs/Thread/components/ThreadHeader.js +7 -7
  442. package/cjs/Thread/components/ThreadList.js +51 -51
  443. package/cjs/Thread/components/ThreadListItem.js +54 -55
  444. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  445. package/cjs/Thread/components/ThreadMessageInput.js +52 -45
  446. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  447. package/cjs/Thread/components/ThreadUI.js +60 -52
  448. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  449. package/cjs/Thread/context.js +151 -160
  450. package/cjs/Thread/context.js.map +1 -1
  451. package/cjs/Thread.js +60 -52
  452. package/cjs/Thread.js.map +1 -1
  453. package/cjs/VoicePlayer/context.js +3 -3
  454. package/cjs/VoicePlayer/useVoicePlayer.js +10 -10
  455. package/cjs/VoiceRecorder/context.js +12 -11
  456. package/cjs/VoiceRecorder/context.js.map +1 -1
  457. package/cjs/VoiceRecorder/useVoiceRecorder.js +9 -9
  458. package/cjs/chunks/bundle--1R8Yp9p.js +553 -0
  459. package/cjs/chunks/bundle--1R8Yp9p.js.map +1 -0
  460. package/cjs/chunks/{bundle-wOZ3z_BG.js → bundle--A9iQL7y.js} +3 -3
  461. package/cjs/chunks/{bundle-wOZ3z_BG.js.map → bundle--A9iQL7y.js.map} +1 -1
  462. package/cjs/chunks/bundle--QPuGnli.js +183 -0
  463. package/{chunks/bundle-4uNbb5ZI.js.map → cjs/chunks/bundle--QPuGnli.js.map} +1 -1
  464. package/cjs/chunks/bundle--t85OO-4.js +37 -0
  465. package/cjs/chunks/bundle--t85OO-4.js.map +1 -0
  466. package/cjs/chunks/{bundle-EKK1TWOg.js → bundle--tki3Ejh.js} +1 -1
  467. package/cjs/chunks/bundle--tki3Ejh.js.map +1 -0
  468. package/cjs/chunks/{bundle-jayPpL4B.js → bundle-0zagc7hR.js} +1 -1
  469. package/cjs/chunks/bundle-0zagc7hR.js.map +1 -0
  470. package/cjs/chunks/{bundle-j5FA7ApI.js → bundle-1dcvUZjP.js} +1 -1
  471. package/cjs/chunks/bundle-1dcvUZjP.js.map +1 -0
  472. package/cjs/chunks/bundle-1tu4OFP8.js +51 -0
  473. package/cjs/chunks/bundle-1tu4OFP8.js.map +1 -0
  474. package/cjs/chunks/{bundle-RWm1ToHA.js → bundle-2hJhRu5W.js} +3 -3
  475. package/cjs/chunks/bundle-2hJhRu5W.js.map +1 -0
  476. package/cjs/chunks/{bundle-jr9hFzH_.js → bundle-3_XFLnnt.js} +4 -4
  477. package/cjs/chunks/bundle-3_XFLnnt.js.map +1 -0
  478. package/cjs/chunks/bundle-3eaFVTUX.js +36 -0
  479. package/cjs/chunks/bundle-3eaFVTUX.js.map +1 -0
  480. package/cjs/chunks/bundle-5UyAossc.js +67 -0
  481. package/cjs/chunks/bundle-5UyAossc.js.map +1 -0
  482. package/cjs/chunks/{bundle-3ZyqiHAN.js → bundle-66GvrL2V.js} +2 -2
  483. package/cjs/chunks/bundle-66GvrL2V.js.map +1 -0
  484. package/cjs/chunks/{bundle-7iyslQY5.js → bundle-6L4HCLmb.js} +6 -6
  485. package/cjs/chunks/bundle-6L4HCLmb.js.map +1 -0
  486. package/cjs/chunks/{bundle-M_JdGFB9.js → bundle-6SzyBwQ5.js} +3 -3
  487. package/cjs/chunks/bundle-6SzyBwQ5.js.map +1 -0
  488. package/cjs/chunks/{bundle-R55qwYIC.js → bundle-6zBNmPOP.js} +1 -1
  489. package/cjs/chunks/bundle-6zBNmPOP.js.map +1 -0
  490. package/cjs/chunks/{bundle-Q7Qb_8Qy.js → bundle-77qvrXp8.js} +1 -1
  491. package/cjs/chunks/bundle-77qvrXp8.js.map +1 -0
  492. package/cjs/chunks/{bundle-lk7syGfV.js → bundle-AN4eZ2xs.js} +1 -1
  493. package/cjs/chunks/{bundle-lk7syGfV.js.map → bundle-AN4eZ2xs.js.map} +1 -1
  494. package/cjs/chunks/bundle-CDUgp575.js +14 -0
  495. package/cjs/chunks/bundle-CDUgp575.js.map +1 -0
  496. package/cjs/chunks/bundle-CZTvTAu-.js +32 -0
  497. package/cjs/chunks/bundle-CZTvTAu-.js.map +1 -0
  498. package/cjs/chunks/bundle-Cbklvbls.js +233 -0
  499. package/cjs/chunks/bundle-Cbklvbls.js.map +1 -0
  500. package/cjs/chunks/{bundle-tJKWfbHM.js → bundle-CrbMqpah.js} +3 -29
  501. package/cjs/chunks/bundle-CrbMqpah.js.map +1 -0
  502. package/cjs/chunks/bundle-DfMlIvtm.js +31 -0
  503. package/cjs/chunks/bundle-DfMlIvtm.js.map +1 -0
  504. package/cjs/chunks/{bundle-UHsDbhGB.js → bundle-DhtZdKsr.js} +14 -1
  505. package/cjs/chunks/bundle-DhtZdKsr.js.map +1 -0
  506. package/cjs/chunks/bundle-Eqd9bAds.js +292 -0
  507. package/cjs/chunks/bundle-Eqd9bAds.js.map +1 -0
  508. package/cjs/chunks/{bundle-FJe6Dl-f.js → bundle-H9rcn1PJ.js} +1 -1
  509. package/{chunks/bundle-iifpyLxR.js.map → cjs/chunks/bundle-H9rcn1PJ.js.map} +1 -1
  510. package/cjs/chunks/{bundle-EdNscsik.js → bundle-HQAiUNev.js} +1 -1
  511. package/cjs/chunks/bundle-HQAiUNev.js.map +1 -0
  512. package/cjs/chunks/bundle-JBbKwE7L.js +25 -0
  513. package/cjs/chunks/bundle-JBbKwE7L.js.map +1 -0
  514. package/cjs/chunks/{bundle-IVfrW5UV.js → bundle-KBZdi1sN.js} +14 -8
  515. package/cjs/chunks/bundle-KBZdi1sN.js.map +1 -0
  516. package/cjs/chunks/{bundle-4F7u20x2.js → bundle-KWR-0b7P.js} +3 -3
  517. package/cjs/chunks/bundle-KWR-0b7P.js.map +1 -0
  518. package/cjs/chunks/bundle-LsJ9u7uN.js +64 -0
  519. package/cjs/chunks/bundle-LsJ9u7uN.js.map +1 -0
  520. package/cjs/chunks/{bundle-waeY4XbU.js → bundle-MNUU2JEo.js} +1 -5
  521. package/cjs/chunks/bundle-MNUU2JEo.js.map +1 -0
  522. package/cjs/chunks/bundle-Msh8rb3L.js +13 -0
  523. package/cjs/chunks/bundle-Msh8rb3L.js.map +1 -0
  524. package/cjs/chunks/{bundle-TGcw51ZD.js → bundle-NALzAgLv.js} +10 -10
  525. package/cjs/chunks/bundle-NALzAgLv.js.map +1 -0
  526. package/cjs/chunks/{bundle-sGVgQ4l8.js → bundle-NPzNlnHJ.js} +10 -10
  527. package/cjs/chunks/bundle-NPzNlnHJ.js.map +1 -0
  528. package/cjs/chunks/{bundle-fKDcA4eI.js → bundle-NZvAE9FS.js} +1 -1
  529. package/cjs/chunks/bundle-NZvAE9FS.js.map +1 -0
  530. package/cjs/chunks/bundle-Njt4gDEW.js +91 -0
  531. package/cjs/chunks/bundle-Njt4gDEW.js.map +1 -0
  532. package/cjs/chunks/{bundle-OmshX9RP.js → bundle-O6Mos2Xn.js} +1 -1
  533. package/cjs/chunks/bundle-O6Mos2Xn.js.map +1 -0
  534. package/cjs/chunks/{bundle-_8JkuEc5.js → bundle-OdZXNc-g.js} +5 -48
  535. package/cjs/chunks/bundle-OdZXNc-g.js.map +1 -0
  536. package/cjs/chunks/{bundle-wwqhN6T8.js → bundle-Oq2rnNn_.js} +1 -1
  537. package/cjs/chunks/bundle-Oq2rnNn_.js.map +1 -0
  538. package/cjs/chunks/{bundle-7tLE_fm_.js → bundle-PSEoX-EH.js} +3 -3
  539. package/cjs/chunks/bundle-PSEoX-EH.js.map +1 -0
  540. package/cjs/chunks/{bundle-dD_wqelx.js → bundle-PhGdgkei.js} +3 -3
  541. package/cjs/chunks/{bundle-dD_wqelx.js.map → bundle-PhGdgkei.js.map} +1 -1
  542. package/cjs/chunks/{bundle-idn81XsS.js → bundle-Pzvqu5yR.js} +7 -7
  543. package/cjs/chunks/bundle-Pzvqu5yR.js.map +1 -0
  544. package/cjs/chunks/{bundle-s5Lt0vKF.js → bundle-RUqSDidW.js} +1 -1
  545. package/cjs/chunks/bundle-RUqSDidW.js.map +1 -0
  546. package/cjs/chunks/{bundle-XwSBmqOP.js → bundle-RquYsY0d.js} +2 -2
  547. package/cjs/chunks/{bundle-XwSBmqOP.js.map → bundle-RquYsY0d.js.map} +1 -1
  548. package/cjs/chunks/{bundle-Ox6f1Pr4.js → bundle-TB_UEIPg.js} +1 -1
  549. package/cjs/chunks/bundle-TB_UEIPg.js.map +1 -0
  550. package/cjs/chunks/{bundle-e6jRRPqy.js → bundle-TPy0gj60.js} +1 -1
  551. package/cjs/chunks/bundle-TPy0gj60.js.map +1 -0
  552. package/cjs/chunks/{bundle-trkwub16.js → bundle-UAspU0bH.js} +1 -1
  553. package/cjs/chunks/bundle-UAspU0bH.js.map +1 -0
  554. package/cjs/chunks/{bundle-OU36L4lP.js → bundle-UuftRMuc.js} +1 -1
  555. package/cjs/chunks/bundle-UuftRMuc.js.map +1 -0
  556. package/cjs/chunks/{bundle-99TH6XOD.js → bundle-VP5r38Gj.js} +6 -6
  557. package/cjs/chunks/bundle-VP5r38Gj.js.map +1 -0
  558. package/cjs/chunks/{bundle-wDJ0vmp7.js → bundle-VxcYXhwp.js} +3 -3
  559. package/cjs/chunks/bundle-VxcYXhwp.js.map +1 -0
  560. package/cjs/chunks/{bundle-wTtkySLW.js → bundle-Y-_KhZFq.js} +1 -3
  561. package/cjs/chunks/bundle-Y-_KhZFq.js.map +1 -0
  562. package/cjs/chunks/bundle-Y86Tvf8p.js +204 -0
  563. package/cjs/chunks/bundle-Y86Tvf8p.js.map +1 -0
  564. package/cjs/chunks/{bundle-F9aI-PNs.js → bundle-YjNFrYVt.js} +1 -1
  565. package/cjs/chunks/bundle-YjNFrYVt.js.map +1 -0
  566. package/cjs/chunks/bundle-ZvLEz_GA.js +391 -0
  567. package/cjs/chunks/bundle-ZvLEz_GA.js.map +1 -0
  568. package/cjs/chunks/{bundle-BtjxYBby.js → bundle-bDQKUQ5r.js} +95 -58
  569. package/cjs/chunks/bundle-bDQKUQ5r.js.map +1 -0
  570. package/cjs/chunks/{bundle-YTD5gh4h.js → bundle-eCBAJmJN.js} +4 -40
  571. package/cjs/chunks/bundle-eCBAJmJN.js.map +1 -0
  572. package/cjs/chunks/{bundle-oLDSV_xg.js → bundle-ekyeVpZG.js} +2 -2
  573. package/cjs/chunks/bundle-ekyeVpZG.js.map +1 -0
  574. package/cjs/chunks/{bundle-hVnmDMOX.js → bundle-fTMJH5JE.js} +18 -36
  575. package/cjs/chunks/bundle-fTMJH5JE.js.map +1 -0
  576. package/cjs/chunks/bundle-fUWIw3RI.js +32 -0
  577. package/cjs/chunks/bundle-fUWIw3RI.js.map +1 -0
  578. package/cjs/chunks/bundle-fzSiKesI.js +202 -0
  579. package/cjs/chunks/bundle-fzSiKesI.js.map +1 -0
  580. package/cjs/chunks/{bundle-wCSyCEPr.js → bundle-gW6qz9z9.js} +9 -8
  581. package/cjs/chunks/bundle-gW6qz9z9.js.map +1 -0
  582. package/cjs/chunks/{bundle-DwxvWTiX.js → bundle-haAptps1.js} +29 -13
  583. package/cjs/chunks/bundle-haAptps1.js.map +1 -0
  584. package/cjs/chunks/{bundle-PLz0cFBi.js → bundle-iY19D_aw.js} +1 -1
  585. package/cjs/chunks/bundle-iY19D_aw.js.map +1 -0
  586. package/cjs/chunks/bundle-jYLCAuUn.js +123 -0
  587. package/cjs/chunks/bundle-jYLCAuUn.js.map +1 -0
  588. package/cjs/chunks/bundle-jcgWT1ad.js +40 -0
  589. package/cjs/chunks/bundle-jcgWT1ad.js.map +1 -0
  590. package/cjs/chunks/{bundle-85IKKe_e.js → bundle-nYBtJl9e.js} +1 -1
  591. package/cjs/chunks/bundle-nYBtJl9e.js.map +1 -0
  592. package/cjs/chunks/{bundle-bPLEZuwe.js → bundle-nox41MG6.js} +25 -24
  593. package/cjs/chunks/{bundle-bPLEZuwe.js.map → bundle-nox41MG6.js.map} +1 -1
  594. package/cjs/chunks/{bundle-h6fKs5yW.js → bundle-pp7tp7GG.js} +11 -41
  595. package/cjs/chunks/{bundle-h6fKs5yW.js.map → bundle-pp7tp7GG.js.map} +1 -1
  596. package/cjs/chunks/bundle-qRiLsSwC.js +153 -0
  597. package/cjs/chunks/bundle-qRiLsSwC.js.map +1 -0
  598. package/cjs/chunks/bundle-rcw3KtAu.js +30 -0
  599. package/cjs/chunks/bundle-rcw3KtAu.js.map +1 -0
  600. package/cjs/chunks/{bundle-NZXUf6_L.js → bundle-s--ExKtj.js} +2 -2
  601. package/cjs/chunks/bundle-s--ExKtj.js.map +1 -0
  602. package/cjs/chunks/{bundle-XIMyjFuW.js → bundle-t2GWOYzL.js} +5 -5
  603. package/{chunks/bundle-Abz9zH51.js.map → cjs/chunks/bundle-t2GWOYzL.js.map} +1 -1
  604. package/cjs/chunks/{bundle-LWd8plnK.js → bundle-tntEm-Mv.js} +39 -39
  605. package/cjs/chunks/{bundle-LWd8plnK.js.map → bundle-tntEm-Mv.js.map} +1 -1
  606. package/cjs/chunks/bundle-u7wWilEW.js +15 -0
  607. package/cjs/chunks/bundle-u7wWilEW.js.map +1 -0
  608. package/cjs/chunks/{bundle-XqtnTNnc.js → bundle-v5-SR4v4.js} +2 -2
  609. package/cjs/chunks/bundle-v5-SR4v4.js.map +1 -0
  610. package/cjs/chunks/{bundle-gBGbUm4f.js → bundle-vMF9NM5u.js} +1 -1
  611. package/cjs/chunks/bundle-vMF9NM5u.js.map +1 -0
  612. package/cjs/chunks/{bundle-OOMB_O1L.js → bundle-w0ATt2gt.js} +4 -5
  613. package/cjs/chunks/bundle-w0ATt2gt.js.map +1 -0
  614. package/cjs/chunks/{bundle-qbpoRdJa.js → bundle-wZDX1pVR.js} +3 -3
  615. package/cjs/chunks/bundle-wZDX1pVR.js.map +1 -0
  616. package/cjs/chunks/{bundle-X1vsWmGi.js → bundle-xM2DAzE6.js} +1 -1
  617. package/cjs/chunks/{bundle-X1vsWmGi.js.map → bundle-xM2DAzE6.js.map} +1 -1
  618. package/cjs/chunks/{bundle-1GRgJFEb.js → bundle-zAQuo6rI.js} +42 -30
  619. package/{chunks/bundle-oW5LS1AU.js.map → cjs/chunks/bundle-zAQuo6rI.js.map} +1 -1
  620. package/cjs/chunks/{bundle-WuVcsZSE.js → bundle-zDh-X-Q4.js} +1 -1
  621. package/cjs/chunks/bundle-zDh-X-Q4.js.map +1 -0
  622. package/cjs/chunks/{bundle-2_VQBtF9.js → bundle-zGSEOOdl.js} +164 -58
  623. package/{chunks/bundle-pnJu3fWb.js.map → cjs/chunks/bundle-zGSEOOdl.js.map} +1 -1
  624. package/cjs/chunks/bundle-zHDXCFIb.js +60 -0
  625. package/cjs/chunks/bundle-zHDXCFIb.js.map +1 -0
  626. package/cjs/chunks/{bundle-ImsJYvdy.js → bundle-zLoe4MOM.js} +4 -4
  627. package/{chunks/bundle-edTAi5zj.js.map → cjs/chunks/bundle-zLoe4MOM.js.map} +1 -1
  628. package/cjs/chunks/bundle-zRJE2NjU.js +47 -0
  629. package/cjs/chunks/bundle-zRJE2NjU.js.map +1 -0
  630. package/cjs/hooks/useModal.js +9 -9
  631. package/cjs/index.js +136 -126
  632. package/cjs/index.js.map +1 -1
  633. package/cjs/pubSub/topics.js +1 -1
  634. package/cjs/sendbirdSelectors.js +2 -2
  635. package/cjs/ui/Accordion.js +3 -3
  636. package/cjs/ui/AccordionGroup.js +2 -2
  637. package/cjs/ui/AdminMessage.js +3 -3
  638. package/cjs/ui/Avatar.js +4 -5
  639. package/cjs/ui/Avatar.js.map +1 -1
  640. package/cjs/ui/Badge.js +5 -5
  641. package/cjs/ui/BottomSheet.js +9 -9
  642. package/cjs/ui/Button.js +3 -3
  643. package/cjs/ui/ChannelAvatar.js +6 -7
  644. package/cjs/ui/ChannelAvatar.js.map +1 -1
  645. package/cjs/ui/ConnectionStatus.js +6 -6
  646. package/cjs/ui/ContextMenu.js +7 -6
  647. package/cjs/ui/ContextMenu.js.map +1 -1
  648. package/cjs/ui/DateSeparator.js +4 -4
  649. package/cjs/ui/EmojiReactions.js +32 -22
  650. package/cjs/ui/EmojiReactions.js.map +1 -1
  651. package/cjs/ui/FileMessageItemBody.js +9 -8
  652. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  653. package/cjs/ui/FileViewer.js +16 -16
  654. package/cjs/ui/Icon.js +2 -2
  655. package/cjs/ui/IconButton.js +1 -1
  656. package/cjs/ui/ImageRenderer.js +96 -69
  657. package/cjs/ui/ImageRenderer.js.map +1 -1
  658. package/cjs/ui/Input.js +3 -3
  659. package/cjs/ui/Label.js +3 -3
  660. package/cjs/ui/LinkLabel.js +3 -3
  661. package/cjs/ui/Loader.js +2 -2
  662. package/cjs/ui/MentionLabel.js +14 -13
  663. package/cjs/ui/MentionLabel.js.map +1 -1
  664. package/cjs/ui/MentionUserLabel.js +1 -1
  665. package/cjs/ui/MessageContent.js +135 -108
  666. package/cjs/ui/MessageContent.js.map +1 -1
  667. package/cjs/ui/MessageInput/hooks/usePaste.js +5 -5
  668. package/cjs/ui/MessageInput.js +20 -19
  669. package/cjs/ui/MessageInput.js.map +1 -1
  670. package/cjs/ui/MessageItemMenu.js +13 -30
  671. package/cjs/ui/MessageItemMenu.js.map +1 -1
  672. package/cjs/ui/MessageItemReactionMenu.js +16 -12
  673. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  674. package/cjs/ui/MessageSearchFileItem.js +15 -15
  675. package/cjs/ui/MessageSearchItem.js +11 -12
  676. package/cjs/ui/MessageSearchItem.js.map +1 -1
  677. package/cjs/ui/MessageStatus.js +13 -12
  678. package/cjs/ui/MessageStatus.js.map +1 -1
  679. package/cjs/ui/MobileFeedbackMenu.js +9 -9
  680. package/cjs/ui/Modal.js +8 -8
  681. package/cjs/ui/MutedAvatarOverlay.js +2 -2
  682. package/cjs/ui/OGMessageItemBody.js +17 -16
  683. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  684. package/cjs/ui/OpenChannelAdminMessage.js +3 -3
  685. package/cjs/ui/OpenChannelAvatar.js +8 -9
  686. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  687. package/cjs/ui/OpenchannelConversationHeader.js +8 -9
  688. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  689. package/cjs/ui/OpenchannelFileMessage.js +19 -18
  690. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  691. package/cjs/ui/OpenchannelOGMessage.js +21 -20
  692. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  693. package/cjs/ui/OpenchannelThumbnailMessage.js +18 -17
  694. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  695. package/cjs/ui/OpenchannelUserMessage.js +19 -18
  696. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  697. package/cjs/ui/PlaceHolder.js +6 -6
  698. package/cjs/ui/PlaybackTime.js +3 -3
  699. package/cjs/ui/QuoteMessage.js +10 -9
  700. package/cjs/ui/QuoteMessage.js.map +1 -1
  701. package/cjs/ui/QuoteMessageInput.js +10 -9
  702. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  703. package/cjs/ui/ReactionBadge.js +3 -3
  704. package/cjs/ui/ReactionButton.js +4 -4
  705. package/cjs/ui/SortByRow.js +2 -2
  706. package/cjs/ui/TextButton.js +2 -2
  707. package/cjs/ui/TextMessageItemBody.js +17 -16
  708. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  709. package/cjs/ui/ThreadReplies.js +9 -10
  710. package/cjs/ui/ThreadReplies.js.map +1 -1
  711. package/cjs/ui/ThumbnailMessageItemBody.js +12 -8
  712. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  713. package/cjs/ui/Toggle.js +1 -1
  714. package/cjs/ui/Tooltip.js +3 -3
  715. package/cjs/ui/TooltipWrapper.js +1 -1
  716. package/cjs/ui/TypingIndicatorBubble.js +4 -5
  717. package/cjs/ui/TypingIndicatorBubble.js.map +1 -1
  718. package/cjs/ui/UnknownMessageItemBody.js +8 -7
  719. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  720. package/cjs/ui/UserListItem.js +14 -13
  721. package/cjs/ui/UserListItem.js.map +1 -1
  722. package/cjs/ui/UserProfile.js +10 -11
  723. package/cjs/ui/UserProfile.js.map +1 -1
  724. package/cjs/ui/VoiceMessageInput.js +9 -9
  725. package/cjs/ui/VoiceMessageItemBody.js +10 -10
  726. package/cjs/ui/Word.js +14 -13
  727. package/cjs/ui/Word.js.map +1 -1
  728. package/cjs/useSendbirdStateContext.js +1 -1
  729. package/cjs/utils/message/isVoiceMessage.js +4 -3
  730. package/cjs/utils/message/isVoiceMessage.js.map +1 -1
  731. package/cjs/withSendbird.js +1 -1
  732. package/dist/index.css +2973 -2899
  733. package/dist/index.css.map +1 -1
  734. package/hooks/useModal.js +10 -10
  735. package/index.js +136 -126
  736. package/index.js.map +1 -1
  737. package/package.json +11 -11
  738. package/pubSub/topics.js +1 -1
  739. package/sendbirdSelectors.js +2 -2
  740. package/types/hooks/VoicePlayer/dux/actionTypes.d.ts +2 -0
  741. package/types/hooks/VoicePlayer/dux/reducer.d.ts +2 -0
  742. package/types/hooks/useOnScrollReachedEndDetector/index.d.ts +10 -5
  743. package/types/hooks/useThrottleCallback.d.ts +11 -1
  744. package/types/lib/UserProfileContext.d.ts +1 -1
  745. package/types/lib/emojiManager.d.ts +29 -0
  746. package/types/lib/pubSub/topics.d.ts +5 -5
  747. package/types/lib/selectors.d.ts +2 -2
  748. package/types/lib/types.d.ts +6 -1
  749. package/types/modules/App/index.d.ts +5 -0
  750. package/types/modules/App/types.d.ts +1 -0
  751. package/types/modules/Channel/components/ChannelHeader/index.d.ts +2 -3
  752. package/types/modules/Channel/components/ChannelUI/index.d.ts +5 -4
  753. package/types/modules/Channel/components/FileViewer/index.d.ts +3 -16
  754. package/types/modules/Channel/components/FrozenNotification/index.d.ts +1 -6
  755. package/types/modules/Channel/components/Message/index.d.ts +2 -14
  756. package/types/modules/Channel/components/MessageFeedbackModal/index.d.ts +3 -3
  757. package/types/modules/Channel/components/MessageInputWrapper/index.d.ts +11 -0
  758. package/types/modules/Channel/components/MessageList/index.d.ts +2 -2
  759. package/types/modules/Channel/components/RemoveMessageModal/index.d.ts +4 -0
  760. package/types/modules/Channel/components/SuggestedMentionList/index.d.ts +3 -18
  761. package/types/modules/Channel/components/TypingIndicator.d.ts +1 -7
  762. package/types/modules/Channel/components/UnreadCount/index.d.ts +1 -11
  763. package/types/modules/Channel/context/ChannelProvider.d.ts +9 -9
  764. package/types/modules/Channel/context/hooks/useDeleteMessageCallback.d.ts +2 -2
  765. package/types/modules/Channel/context/hooks/useFileInfoListWithUploaded.d.ts +3 -0
  766. package/types/modules/Channel/context/hooks/useHandleReconnectForChannelList.d.ts +23 -0
  767. package/types/modules/Channel/context/hooks/useSendVoiceMessageCallback.d.ts +3 -3
  768. package/types/modules/Channel/context/utils.d.ts +0 -1
  769. package/types/modules/Channel/index.d.ts +1 -1
  770. package/types/modules/ChannelList/components/AddChannel/index.d.ts +1 -1
  771. package/types/modules/ChannelList/components/ChannelListHeader/index.d.ts +1 -10
  772. package/types/modules/ChannelList/components/ChannelListUI/index.d.ts +1 -3
  773. package/types/modules/ChannelList/components/ChannelPreview/utils.d.ts +1 -10
  774. package/types/modules/ChannelList/components/LeaveChannel/index.d.ts +1 -8
  775. package/types/modules/ChannelList/context/ChannelListProvider.d.ts +9 -8
  776. package/types/modules/ChannelList/dux/actionTypes.d.ts +5 -2
  777. package/types/modules/ChannelList/utils.d.ts +6 -1
  778. package/types/modules/ChannelSettings/components/ModerationPanel/InviteUsersModal.d.ts +4 -3
  779. package/types/modules/CreateChannel/context/CreateChannelProvider.d.ts +45 -7
  780. package/types/modules/GroupChannel/components/FileViewer/FileViewerView.d.ts +22 -0
  781. package/types/modules/GroupChannel/components/FileViewer/index.d.ts +8 -0
  782. package/types/modules/GroupChannel/components/FrozenNotification/index.d.ts +7 -0
  783. package/types/modules/GroupChannel/components/GroupChannelHeader/GroupChannelHeaderView.d.ts +13 -0
  784. package/types/modules/GroupChannel/components/GroupChannelHeader/index.d.ts +6 -0
  785. package/types/modules/GroupChannel/components/GroupChannelUI/GroupChannelUIView.d.ts +10 -0
  786. package/types/modules/GroupChannel/components/GroupChannelUI/index.d.ts +24 -0
  787. package/types/modules/GroupChannel/components/Message/MessageView.d.ts +64 -0
  788. package/types/modules/GroupChannel/components/Message/index.d.ts +4 -0
  789. package/types/modules/GroupChannel/components/MessageInputWrapper/MessageInputWrapperView.d.ts +30 -0
  790. package/types/modules/{Channel/components/MessageInput → GroupChannel/components/MessageInputWrapper}/index.d.ts +4 -5
  791. package/types/modules/GroupChannel/components/MessageInputWrapper/useHandleUploadFiles.d.ts +18 -0
  792. package/types/modules/GroupChannel/components/MessageList/hooks/useScrollBehavior.d.ts +1 -0
  793. package/types/modules/GroupChannel/components/MessageList/index.d.ts +15 -0
  794. package/types/modules/GroupChannel/components/RemoveMessageModal/RemoveMessageModalView.d.ts +13 -0
  795. package/types/modules/GroupChannel/components/RemoveMessageModal/index.d.ts +4 -0
  796. package/types/modules/GroupChannel/components/SuggestedMentionList/SuggestedMentionListView.d.ts +22 -0
  797. package/types/modules/GroupChannel/components/SuggestedMentionList/index.d.ts +5 -0
  798. package/types/modules/GroupChannel/components/TypingIndicator.d.ts +11 -0
  799. package/types/modules/GroupChannel/components/UnreadCount/index.d.ts +12 -0
  800. package/types/modules/GroupChannel/context/GroupChannelProvider.d.ts +74 -0
  801. package/types/modules/GroupChannel/context/const.d.ts +7 -0
  802. package/types/modules/GroupChannel/context/hooks/useMessageActions.d.ts +23 -0
  803. package/types/modules/GroupChannel/context/hooks/useMessageListScroll.d.ts +26 -0
  804. package/types/modules/GroupChannel/context/hooks/usePreventDuplicateRequest.d.ts +9 -0
  805. package/types/modules/GroupChannel/context/hooks/useToggleReactionCallback.d.ts +4 -0
  806. package/types/modules/GroupChannel/context/utils.d.ts +8 -0
  807. package/types/modules/GroupChannel/index.d.ts +7 -0
  808. package/types/modules/GroupChannelList/components/AddGroupChannel/AddGroupChannelView.d.ts +11 -0
  809. package/types/modules/GroupChannelList/components/AddGroupChannel/index.d.ts +3 -0
  810. package/types/modules/GroupChannelList/components/GroupChannelListHeader/index.d.ts +10 -0
  811. package/types/modules/GroupChannelList/components/GroupChannelListItem/GroupChannelListItemView.d.ts +16 -0
  812. package/types/modules/GroupChannelList/components/GroupChannelListItem/index.d.ts +16 -0
  813. package/types/modules/GroupChannelList/components/GroupChannelListItem/utils.d.ts +10 -0
  814. package/types/modules/GroupChannelList/components/GroupChannelListUI/GroupChannelListUIView.d.ts +21 -0
  815. package/types/modules/GroupChannelList/components/GroupChannelListUI/index.d.ts +16 -0
  816. package/types/modules/GroupChannelList/components/GroupChannelPreviewAction.d.ts +9 -0
  817. package/types/modules/GroupChannelList/components/LeaveGroupChannel/index.d.ts +9 -0
  818. package/types/modules/GroupChannelList/context/GroupChannelListProvider.d.ts +40 -0
  819. package/types/modules/GroupChannelList/index.d.ts +7 -0
  820. package/types/modules/OpenChannel/context/utils.d.ts +1 -3
  821. package/types/modules/Thread/components/SuggestedMentionList.d.ts +5 -0
  822. package/types/modules/Thread/components/ThreadList/index.d.ts +1 -1
  823. package/types/modules/Thread/components/ThreadMessageInput/index.d.ts +1 -0
  824. package/types/modules/Thread/context/ThreadProvider.d.ts +2 -2
  825. package/types/modules/Thread/context/hooks/useDeleteMessageCallback.d.ts +1 -1
  826. package/types/modules/Thread/context/hooks/useThreadFetchers.d.ts +21 -0
  827. package/types/modules/Thread/context/utils.d.ts +0 -2
  828. package/types/modules/Thread/index.d.ts +1 -1
  829. package/types/types.d.ts +11 -3
  830. package/types/ui/FileViewer/index.d.ts +2 -2
  831. package/types/ui/ImageRenderer/index.d.ts +1 -3
  832. package/types/ui/MessageContent/index.d.ts +1 -1
  833. package/types/ui/MessageItemMenu/index.d.ts +2 -1
  834. package/types/ui/MobileMenu/types.d.ts +1 -1
  835. package/types/ui/MultipleFilesMessageItemBody/index.d.ts +2 -2
  836. package/types/utils/index.d.ts +9 -3
  837. package/types/utils/messages.d.ts +17 -0
  838. package/types/utils/typeHelpers/partialRequired.d.ts +1 -0
  839. package/ui/Accordion.js +3 -3
  840. package/ui/AccordionGroup.js +2 -2
  841. package/ui/AdminMessage.js +3 -3
  842. package/ui/Avatar.js +4 -5
  843. package/ui/Avatar.js.map +1 -1
  844. package/ui/Badge.js +5 -5
  845. package/ui/BottomSheet.js +9 -9
  846. package/ui/Button.js +3 -3
  847. package/ui/ChannelAvatar.js +6 -7
  848. package/ui/ChannelAvatar.js.map +1 -1
  849. package/ui/ConnectionStatus.js +6 -6
  850. package/ui/ContextMenu.js +7 -6
  851. package/ui/ContextMenu.js.map +1 -1
  852. package/ui/DateSeparator.js +4 -4
  853. package/ui/EmojiReactions.js +32 -22
  854. package/ui/EmojiReactions.js.map +1 -1
  855. package/ui/FileMessageItemBody.js +9 -8
  856. package/ui/FileMessageItemBody.js.map +1 -1
  857. package/ui/FileViewer.js +16 -16
  858. package/ui/Icon.js +2 -2
  859. package/ui/IconButton.js +1 -1
  860. package/ui/ImageRenderer.js +97 -70
  861. package/ui/ImageRenderer.js.map +1 -1
  862. package/ui/Input.js +3 -3
  863. package/ui/Label.js +3 -3
  864. package/ui/LinkLabel.js +3 -3
  865. package/ui/Loader.js +2 -2
  866. package/ui/MentionLabel.js +14 -13
  867. package/ui/MentionLabel.js.map +1 -1
  868. package/ui/MentionUserLabel.js +1 -1
  869. package/ui/MessageContent.js +133 -106
  870. package/ui/MessageContent.js.map +1 -1
  871. package/ui/MessageInput/hooks/usePaste.js +5 -5
  872. package/ui/MessageInput.js +20 -19
  873. package/ui/MessageInput.js.map +1 -1
  874. package/ui/MessageItemMenu.js +13 -30
  875. package/ui/MessageItemMenu.js.map +1 -1
  876. package/ui/MessageItemReactionMenu.js +16 -12
  877. package/ui/MessageItemReactionMenu.js.map +1 -1
  878. package/ui/MessageSearchFileItem.js +15 -15
  879. package/ui/MessageSearchItem.js +11 -12
  880. package/ui/MessageSearchItem.js.map +1 -1
  881. package/ui/MessageStatus.js +13 -12
  882. package/ui/MessageStatus.js.map +1 -1
  883. package/ui/MobileFeedbackMenu.js +9 -9
  884. package/ui/Modal.js +8 -8
  885. package/ui/MutedAvatarOverlay.js +2 -2
  886. package/ui/OGMessageItemBody.js +17 -16
  887. package/ui/OGMessageItemBody.js.map +1 -1
  888. package/ui/OpenChannelAdminMessage.js +3 -3
  889. package/ui/OpenChannelAvatar.js +8 -9
  890. package/ui/OpenChannelAvatar.js.map +1 -1
  891. package/ui/OpenchannelConversationHeader.js +8 -9
  892. package/ui/OpenchannelConversationHeader.js.map +1 -1
  893. package/ui/OpenchannelFileMessage.js +19 -18
  894. package/ui/OpenchannelFileMessage.js.map +1 -1
  895. package/ui/OpenchannelOGMessage.js +21 -20
  896. package/ui/OpenchannelOGMessage.js.map +1 -1
  897. package/ui/OpenchannelThumbnailMessage.js +18 -17
  898. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  899. package/ui/OpenchannelUserMessage.js +19 -18
  900. package/ui/OpenchannelUserMessage.js.map +1 -1
  901. package/ui/PlaceHolder.js +6 -6
  902. package/ui/PlaybackTime.js +3 -3
  903. package/ui/QuoteMessage.js +10 -9
  904. package/ui/QuoteMessage.js.map +1 -1
  905. package/ui/QuoteMessageInput.js +10 -9
  906. package/ui/QuoteMessageInput.js.map +1 -1
  907. package/ui/ReactionBadge.js +3 -3
  908. package/ui/ReactionButton.js +4 -4
  909. package/ui/SortByRow.js +2 -2
  910. package/ui/TextButton.js +2 -2
  911. package/ui/TextMessageItemBody.js +17 -16
  912. package/ui/TextMessageItemBody.js.map +1 -1
  913. package/ui/ThreadReplies.js +9 -10
  914. package/ui/ThreadReplies.js.map +1 -1
  915. package/ui/ThumbnailMessageItemBody.js +12 -8
  916. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  917. package/ui/Toggle.js +1 -1
  918. package/ui/Tooltip.js +3 -3
  919. package/ui/TooltipWrapper.js +1 -1
  920. package/ui/TypingIndicatorBubble.js +4 -5
  921. package/ui/TypingIndicatorBubble.js.map +1 -1
  922. package/ui/UnknownMessageItemBody.js +8 -7
  923. package/ui/UnknownMessageItemBody.js.map +1 -1
  924. package/ui/UserListItem.js +14 -13
  925. package/ui/UserListItem.js.map +1 -1
  926. package/ui/UserProfile.js +10 -11
  927. package/ui/UserProfile.js.map +1 -1
  928. package/ui/VoiceMessageInput.js +9 -9
  929. package/ui/VoiceMessageItemBody.js +10 -10
  930. package/ui/Word.js +14 -13
  931. package/ui/Word.js.map +1 -1
  932. package/useSendbirdStateContext.js +1 -1
  933. package/utils/message/isVoiceMessage.js +4 -3
  934. package/utils/message/isVoiceMessage.js.map +1 -1
  935. package/withSendbird.js +1 -1
  936. package/chunks/bundle-1pnUZsGs.js.map +0 -1
  937. package/chunks/bundle-4uNbb5ZI.js +0 -174
  938. package/chunks/bundle-4vHal8Yn.js.map +0 -1
  939. package/chunks/bundle-5iL1VCKs.js.map +0 -1
  940. package/chunks/bundle-84jQZIDS.js.map +0 -1
  941. package/chunks/bundle-8XAFqDsw.js.map +0 -1
  942. package/chunks/bundle-8tjyQiRi.js.map +0 -1
  943. package/chunks/bundle-AilPIINY.js.map +0 -1
  944. package/chunks/bundle-B_aR2jdp.js.map +0 -1
  945. package/chunks/bundle-GXGH9ESl.js.map +0 -1
  946. package/chunks/bundle-HVtbYmj3.js.map +0 -1
  947. package/chunks/bundle-KnWMPlLu.js.map +0 -1
  948. package/chunks/bundle-KpJtSqe-.js.map +0 -1
  949. package/chunks/bundle-Kt1S-50v.js.map +0 -1
  950. package/chunks/bundle-M-Qfv2tU.js.map +0 -1
  951. package/chunks/bundle-OwmPKW49.js.map +0 -1
  952. package/chunks/bundle-QSb_mwts.js +0 -1551
  953. package/chunks/bundle-QSb_mwts.js.map +0 -1
  954. package/chunks/bundle-QjcHKpDK.js.map +0 -1
  955. package/chunks/bundle-TztVqjoB.js.map +0 -1
  956. package/chunks/bundle-Uw736N77.js.map +0 -1
  957. package/chunks/bundle-X2Sm7pn5.js.map +0 -1
  958. package/chunks/bundle-XkweI7LG.js.map +0 -1
  959. package/chunks/bundle-YD2b0cnK.js.map +0 -1
  960. package/chunks/bundle-YWlIaifS.js.map +0 -1
  961. package/chunks/bundle-ZExhHi47.js.map +0 -1
  962. package/chunks/bundle-cYhstyoi.js.map +0 -1
  963. package/chunks/bundle-ej1sc1yZ.js.map +0 -1
  964. package/chunks/bundle-fDGhJhA3.js.map +0 -1
  965. package/chunks/bundle-hNJ4PtSG.js.map +0 -1
  966. package/chunks/bundle-hpM7HwDV.js.map +0 -1
  967. package/chunks/bundle-imm3o8vY.js.map +0 -1
  968. package/chunks/bundle-kHH52OEM.js.map +0 -1
  969. package/chunks/bundle-mccz6DbW.js.map +0 -1
  970. package/chunks/bundle-ms16euCo.js +0 -134
  971. package/chunks/bundle-ms16euCo.js.map +0 -1
  972. package/chunks/bundle-oW9dQm2o.js.map +0 -1
  973. package/chunks/bundle-s5uFV3hh.js.map +0 -1
  974. package/chunks/bundle-tD8xAWw2.js.map +0 -1
  975. package/chunks/bundle-tLQ87Jwz.js.map +0 -1
  976. package/chunks/bundle-wNtXTu0c.js.map +0 -1
  977. package/chunks/bundle-y_DSrC-A.js.map +0 -1
  978. package/chunks/bundle-zx8iuoIh.js.map +0 -1
  979. package/cjs/chunks/bundle-3ZyqiHAN.js.map +0 -1
  980. package/cjs/chunks/bundle-4F7u20x2.js.map +0 -1
  981. package/cjs/chunks/bundle-7iyslQY5.js.map +0 -1
  982. package/cjs/chunks/bundle-7tLE_fm_.js.map +0 -1
  983. package/cjs/chunks/bundle-85IKKe_e.js.map +0 -1
  984. package/cjs/chunks/bundle-99TH6XOD.js.map +0 -1
  985. package/cjs/chunks/bundle-BtjxYBby.js.map +0 -1
  986. package/cjs/chunks/bundle-DwxvWTiX.js.map +0 -1
  987. package/cjs/chunks/bundle-EKK1TWOg.js.map +0 -1
  988. package/cjs/chunks/bundle-EdNscsik.js.map +0 -1
  989. package/cjs/chunks/bundle-F9aI-PNs.js.map +0 -1
  990. package/cjs/chunks/bundle-ImsJYvdy.js.map +0 -1
  991. package/cjs/chunks/bundle-M_JdGFB9.js.map +0 -1
  992. package/cjs/chunks/bundle-NZXUf6_L.js.map +0 -1
  993. package/cjs/chunks/bundle-OOMB_O1L.js.map +0 -1
  994. package/cjs/chunks/bundle-OU36L4lP.js.map +0 -1
  995. package/cjs/chunks/bundle-OmshX9RP.js.map +0 -1
  996. package/cjs/chunks/bundle-Ox6f1Pr4.js.map +0 -1
  997. package/cjs/chunks/bundle-PLz0cFBi.js.map +0 -1
  998. package/cjs/chunks/bundle-Pa-zxMUU.js +0 -179
  999. package/cjs/chunks/bundle-Q7Qb_8Qy.js.map +0 -1
  1000. package/cjs/chunks/bundle-R55qwYIC.js.map +0 -1
  1001. package/cjs/chunks/bundle-RWm1ToHA.js.map +0 -1
  1002. package/cjs/chunks/bundle-TGcw51ZD.js.map +0 -1
  1003. package/cjs/chunks/bundle-UHsDbhGB.js.map +0 -1
  1004. package/cjs/chunks/bundle-WuVcsZSE.js.map +0 -1
  1005. package/cjs/chunks/bundle-XIMyjFuW.js.map +0 -1
  1006. package/cjs/chunks/bundle-XqtnTNnc.js.map +0 -1
  1007. package/cjs/chunks/bundle-_8JkuEc5.js.map +0 -1
  1008. package/cjs/chunks/bundle-ccJm_pud.js +0 -136
  1009. package/cjs/chunks/bundle-ccJm_pud.js.map +0 -1
  1010. package/cjs/chunks/bundle-e6jRRPqy.js.map +0 -1
  1011. package/cjs/chunks/bundle-fKDcA4eI.js.map +0 -1
  1012. package/cjs/chunks/bundle-gBGbUm4f.js.map +0 -1
  1013. package/cjs/chunks/bundle-hVnmDMOX.js.map +0 -1
  1014. package/cjs/chunks/bundle-idn81XsS.js.map +0 -1
  1015. package/cjs/chunks/bundle-j5FA7ApI.js.map +0 -1
  1016. package/cjs/chunks/bundle-jayPpL4B.js.map +0 -1
  1017. package/cjs/chunks/bundle-jr9hFzH_.js.map +0 -1
  1018. package/cjs/chunks/bundle-oLDSV_xg.js.map +0 -1
  1019. package/cjs/chunks/bundle-qbpoRdJa.js.map +0 -1
  1020. package/cjs/chunks/bundle-rD_EqTu8.js +0 -1555
  1021. package/cjs/chunks/bundle-rD_EqTu8.js.map +0 -1
  1022. package/cjs/chunks/bundle-s5Lt0vKF.js.map +0 -1
  1023. package/cjs/chunks/bundle-sGVgQ4l8.js.map +0 -1
  1024. package/cjs/chunks/bundle-trkwub16.js.map +0 -1
  1025. package/cjs/chunks/bundle-wCSyCEPr.js.map +0 -1
  1026. package/cjs/chunks/bundle-wDJ0vmp7.js.map +0 -1
  1027. package/cjs/chunks/bundle-wTtkySLW.js.map +0 -1
  1028. package/cjs/chunks/bundle-waeY4XbU.js.map +0 -1
  1029. package/cjs/chunks/bundle-wwqhN6T8.js.map +0 -1
  1030. package/types/modules/Channel/components/RemoveMessageModal.d.ts +0 -9
  1031. package/types/modules/Channel/context/compareMessagesForGrouping.d.ts +0 -10
  1032. package/types/modules/Channel/context/hooks/useStatefulFileInfoList.d.ts +0 -3
  1033. package/types/modules/Thread/context/hooks/useGetNextThreadsCallback.d.ts +0 -17
  1034. package/types/modules/Thread/context/hooks/useGetPrevThreadsCallback.d.ts +0 -17
  1035. package/types/modules/Thread/context/hooks/useGetThreadList.d.ts +0 -14
  1036. package/types/utils/createStatefulFileInfoList.d.ts +0 -11
  1037. package/types/modules/{Channel/components/ChannelHeader → GroupChannel/components/GroupChannelHeader}/utils.d.ts +0 -0
  1038. package/types/modules/{Channel/components/MessageInput → GroupChannel/components/MessageInputWrapper}/VoiceMessageInputWrapper.d.ts +1 -1
  1039. /package/types/modules/{Channel → GroupChannel}/components/MessageList/getMessagePartsInfo.d.ts +0 -0
  1040. /package/types/modules/{Channel → GroupChannel}/components/SuggestedMentionList/SuggestedUserMentionItem.d.ts +0 -0
  1041. /package/types/modules/{Channel → GroupChannel}/components/SuggestedMentionList/utils.d.ts +0 -0
  1042. /package/types/modules/{Channel → GroupChannel}/components/SuggestedReplies/index.d.ts +0 -0
@@ -1,24 +1,1505 @@
1
- import 'react';
2
- import '../chunks/bundle-8XAFqDsw.js';
3
- import '../useSendbirdStateContext.js';
4
- import '../chunks/bundle-zx8iuoIh.js';
5
- import '../chunks/bundle-KpJtSqe-.js';
6
- export { C as ChannelProvider, u as useChannelContext } from '../chunks/bundle-QSb_mwts.js';
7
- import '../chunks/bundle-ej1sc1yZ.js';
8
- import './hooks/useInitialMessagesFetch.js';
9
- import '../chunks/bundle-QGpFq71p.js';
10
- import '../chunks/bundle-Abz9zH51.js';
11
- import '../chunks/bundle-tD8xAWw2.js';
1
+ import React__default, { useEffect, useCallback, useRef, useState, useReducer, useMemo } from 'react';
2
+ import { U as UserProfileProvider } from '../chunks/bundle-vOT5acXc.js';
3
+ import { useSendbirdStateContext } from '../useSendbirdStateContext.js';
4
+ import { P as PREV_RESULT_SIZE, N as NEXT_RESULT_SIZE, T as ThreadReplySelectType } from '../chunks/bundle-poK2Vr1v.js';
5
+ import { m as mergeAndSortMessages, p as passUnsuccessfullMessages, s as scrollIntoLast, a as scrollToRenderedMessage, g as getAllEmojisMapFromEmojiContainer, d as getNicknamesMapFromMembers } from '../chunks/bundle-d5KevIXI.js';
6
+ import { g as getIsReactionEnabled } from '../chunks/bundle-NjNqsDXb.js';
7
+ import { _ as __assign, a as __spreadArray } from '../chunks/bundle-BA7tv0JB.js';
8
+ import { f as format } from '../chunks/bundle-hDx2-CRe.js';
9
+ import { SendingStatus, ReplyType, MessageMetaArray } from '@sendbird/chat/message';
10
+ import { K, S } from '../chunks/bundle-aKXnhi3A.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-_cXVZn5n.js';
12
+ import { c as compareIds } from '../chunks/bundle-NwZvowyL.js';
13
+ import { Q as isSendableMessage, V as filterMessageListParams, a as isMultipleFilesMessage } from '../chunks/bundle-N9hMnIRl.js';
14
+ import { GroupChannelHandler } from '@sendbird/chat/groupChannel';
15
+ import { u as uuidv4 } from '../chunks/bundle-YoWLsJ0C.js';
16
+ import useInitialMessagesFetch from './hooks/useInitialMessagesFetch.js';
17
+ import { u as useReconnectOnIdle } from '../chunks/bundle-D1V3P366.js';
18
+ import { p as pubSubTopics, P as PublishingModuleType, b as PUBSUB_TOPICS, s as shouldPubSubPublishToChannel } from '../chunks/bundle-nlOgiAcu.js';
19
+ import { u as useToggleReactionCallback } from '../chunks/bundle-Q8kUKu5l.js';
20
+ import { a as VOICE_MESSAGE_FILE_NAME, b as VOICE_MESSAGE_MIME_TYPE, M as META_ARRAY_VOICE_DURATION_KEY, h as META_ARRAY_MESSAGE_TYPE_KEY, i as META_ARRAY_MESSAGE_TYPE_VALUE__VOICE } from '../chunks/bundle-MBrlu_LK.js';
21
+ import { a as getCaseResolvedThreadReplySelectType } from '../chunks/bundle-ZOCAUrJO.js';
22
+ import { u as useSendMultipleFilesMessage } from '../chunks/bundle-laVKAiJ-.js';
12
23
  import '../withSendbird.js';
13
- import '../chunks/bundle-Dv_OpODB.js';
14
- import '../chunks/bundle-gzQGUVJt.js';
15
- import '../chunks/bundle-26VX7FQg.js';
16
- import '../chunks/bundle-aD4V4aI8.js';
24
+ import '../chunks/bundle-ULVw0l0r.js';
17
25
  import '../utils/message/getOutgoingMessageState.js';
18
- import '../chunks/bundle-rQ1k1Cpu.js';
19
- import '@sendbird/chat/message';
20
- import '../chunks/bundle-1pnUZsGs.js';
21
- import '@sendbird/chat/groupChannel';
22
- import '../chunks/bundle-mccz6DbW.js';
23
- import '../chunks/bundle-QjcHKpDK.js';
26
+
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: [],
57
+ };
58
+
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; });
318
+ }
319
+
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 () {
357
+ scrollIntoLast(0, scrollRef);
358
+ });
359
+ if (!disableMarkAsRead) {
360
+ markAsReadScheduler.push(currentGroupChannel);
361
+ }
362
+ if (canSetMarkAsDelivered && !disableMarkAsDelivered) {
363
+ markAsDeliveredScheduler.push(currentGroupChannel);
364
+ }
365
+ }
366
+ catch (error) {
367
+ logger.warning('Channel | onMessageReceived | scroll to end failed');
368
+ }
369
+ }
370
+ }
371
+ },
372
+ onUnreadMemberStatusUpdated: function (channel) {
373
+ logger.info('Channel | useHandleChannelEvents: onUnreadMemberStatusUpdated', channel);
374
+ if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
375
+ messagesDispatcher({
376
+ type: SET_CURRENT_CHANNEL,
377
+ payload: channel,
378
+ });
379
+ }
380
+ },
381
+ // before(onDeliveryReceiptUpdated)
382
+ onUndeliveredMemberStatusUpdated: function (channel) {
383
+ if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
384
+ logger.info('Channel | useHandleChannelEvents: onDeliveryReceiptUpdated', channel);
385
+ messagesDispatcher({
386
+ type: SET_CURRENT_CHANNEL,
387
+ payload: channel,
388
+ });
389
+ }
390
+ },
391
+ onMessageUpdated: function (channel, message) {
392
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
393
+ logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);
394
+ messagesDispatcher({
395
+ type: ON_MESSAGE_UPDATED,
396
+ payload: { channel: channel, message: message },
397
+ });
398
+ }
399
+ },
400
+ onThreadInfoUpdated: function (channel, threadInfoUpdateEvent) {
401
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
402
+ logger.info('Channel | useHandleChannelEvents: onThreadInfoUpdated', { channel: channel, threadInfoUpdateEvent: threadInfoUpdateEvent });
403
+ messagesDispatcher({
404
+ type: ON_MESSAGE_THREAD_INFO_UPDATED,
405
+ payload: { channel: channel, event: threadInfoUpdateEvent },
406
+ });
407
+ }
408
+ },
409
+ onMessageDeleted: function (channel, messageId) {
410
+ logger.info('Channel | useHandleChannelEvents: onMessageDeleted', { channel: channel, messageId: messageId });
411
+ setQuoteMessage(null);
412
+ messagesDispatcher({
413
+ type: ON_MESSAGE_DELETED,
414
+ payload: messageId,
415
+ });
416
+ },
417
+ onReactionUpdated: function (channel, reactionEvent) {
418
+ logger.info('Channel | useHandleChannelEvents: onReactionUpdated', { channel: channel, reactionEvent: reactionEvent });
419
+ messagesDispatcher({
420
+ type: ON_REACTION_UPDATED,
421
+ payload: reactionEvent,
422
+ });
423
+ },
424
+ onChannelChanged: function (channel) {
425
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
426
+ logger.info('Channel | useHandleChannelEvents: onChannelChanged', channel);
427
+ messagesDispatcher({
428
+ type: SET_CURRENT_CHANNEL,
429
+ payload: channel,
430
+ });
431
+ }
432
+ },
433
+ onChannelFrozen: function (channel) {
434
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
435
+ logger.info('Channel | useHandleChannelEvents: onChannelFrozen', channel);
436
+ messagesDispatcher({
437
+ type: SET_CURRENT_CHANNEL,
438
+ payload: channel,
439
+ });
440
+ }
441
+ },
442
+ onChannelUnfrozen: function (channel) {
443
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
444
+ logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', channel);
445
+ messagesDispatcher({
446
+ type: SET_CURRENT_CHANNEL,
447
+ payload: channel,
448
+ });
449
+ }
450
+ },
451
+ onUserMuted: function (channel, user) {
452
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
453
+ logger.info('Channel | useHandleChannelEvents: onUserMuted', { channel: channel, user: user });
454
+ messagesDispatcher({
455
+ type: SET_CURRENT_CHANNEL,
456
+ payload: channel,
457
+ });
458
+ }
459
+ },
460
+ onUserUnmuted: function (channel, user) {
461
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
462
+ logger.info('Channel | useHandleChannelEvents: onUserUnmuted', { channel: channel, user: user });
463
+ messagesDispatcher({
464
+ type: SET_CURRENT_CHANNEL,
465
+ payload: channel,
466
+ });
467
+ }
468
+ },
469
+ onUserBanned: function (channel, user) {
470
+ var _a;
471
+ if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
472
+ logger.info('Channel | useHandleChannelEvents: onUserBanned', { channel: channel, user: user });
473
+ 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);
474
+ messagesDispatcher({
475
+ type: SET_CURRENT_CHANNEL,
476
+ payload: isByMe ? null : channel,
477
+ });
478
+ }
479
+ },
480
+ onOperatorUpdated: function (channel, users) {
481
+ if (channel.isGroupChannel() && compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
482
+ logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', { channel: channel, users: users });
483
+ messagesDispatcher({
484
+ type: SET_CURRENT_CHANNEL,
485
+ payload: channel,
486
+ });
487
+ }
488
+ },
489
+ onUserLeft: function (channel, user) {
490
+ var _a;
491
+ if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
492
+ logger.info('Channel | useHandleChannelEvents: onUserLeft', { channel: channel, user: user });
493
+ 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);
494
+ messagesDispatcher({
495
+ type: SET_CURRENT_CHANNEL,
496
+ payload: isByMe ? null : channel,
497
+ });
498
+ }
499
+ },
500
+ onTypingStatusUpdated: function (channel) {
501
+ if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
502
+ logger.info('Channel | onTypingStatusUpdated', { channel: channel });
503
+ var typingMembers = channel.getTypingUsers();
504
+ messagesDispatcher({
505
+ type: ON_TYPING_STATUS_UPDATED,
506
+ payload: {
507
+ channel: channel,
508
+ typingMembers: typingMembers,
509
+ },
510
+ });
511
+ }
512
+ },
513
+ };
514
+ logger.info('Channel | useHandleChannelEvents: Setup event handler', { channelHandlerId: channelHandlerId, channelHandler: channelHandler });
515
+ // Add this group channel handler to the Sendbird chat instance
516
+ (_a = sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.addGroupChannelHandler(channelHandlerId, new GroupChannelHandler(channelHandler));
517
+ }
518
+ return function () {
519
+ var _a;
520
+ if ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.removeGroupChannelHandler) {
521
+ logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', channelHandlerId);
522
+ sdk.groupChannel.removeGroupChannelHandler(channelHandlerId);
523
+ }
524
+ else if (sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) {
525
+ logger.error('Channel | useHandleChannelEvents: Not found the removeGroupChannelHandler');
526
+ }
527
+ };
528
+ }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, sdkInit]);
529
+ }
530
+
531
+ function useGetChannel(_a, _b) {
532
+ var channelUrl = _a.channelUrl, sdkInit = _a.sdkInit, disableMarkAsRead = _a.disableMarkAsRead;
533
+ var messagesDispatcher = _b.messagesDispatcher, sdk = _b.sdk, logger = _b.logger, markAsReadScheduler = _b.markAsReadScheduler;
534
+ useEffect(function () {
535
+ if (channelUrl && sdkInit && sdk && sdk.groupChannel) {
536
+ logger.info('Channel | useSetChannel fetching channel', channelUrl);
537
+ sdk.groupChannel
538
+ .getChannel(channelUrl)
539
+ .then(function (groupChannel) {
540
+ logger.info('Channel | useSetChannel fetched channel', groupChannel);
541
+ messagesDispatcher({
542
+ type: SET_CURRENT_CHANNEL,
543
+ payload: groupChannel,
544
+ });
545
+ logger.info('Channel: Mark as read', groupChannel);
546
+ if (!disableMarkAsRead) {
547
+ markAsReadScheduler.push(groupChannel);
548
+ }
549
+ })
550
+ .catch(function (e) {
551
+ logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl: channelUrl, e: e });
552
+ messagesDispatcher({
553
+ type: SET_CHANNEL_INVALID,
554
+ });
555
+ });
556
+ sdk
557
+ .getAllEmoji()
558
+ .then(function (emojiContainer_) {
559
+ logger.info('Channel: Getting emojis success', emojiContainer_);
560
+ messagesDispatcher({
561
+ type: SET_EMOJI_CONTAINER,
562
+ payload: emojiContainer_,
563
+ });
564
+ })
565
+ .catch(function (err) {
566
+ logger.error('Channel: Getting emojis failed', err);
567
+ });
568
+ }
569
+ }, [channelUrl, sdkInit]);
570
+ }
571
+
572
+ function useHandleReconnect(_a, _b) {
573
+ var isOnline = _a.isOnline, replyType = _a.replyType, disableMarkAsRead = _a.disableMarkAsRead, reconnectOnIdle = _a.reconnectOnIdle;
574
+ var logger = _b.logger, sdk = _b.sdk, scrollRef = _b.scrollRef, currentGroupChannel = _b.currentGroupChannel, messagesDispatcher = _b.messagesDispatcher, markAsReadScheduler = _b.markAsReadScheduler, userFilledMessageListQuery = _b.userFilledMessageListQuery;
575
+ var shouldReconnect = useReconnectOnIdle(isOnline, currentGroupChannel, reconnectOnIdle).shouldReconnect;
576
+ useEffect(function () {
577
+ return function () {
578
+ var _a, _b;
579
+ // state changed from offline to online AND tab is visible
580
+ if (shouldReconnect) {
581
+ logger.info('Refreshing conversation state');
582
+ var isReactionEnabled = ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.appInfo) === null || _a === void 0 ? void 0 : _a.useReaction) || false;
583
+ var messageListParams_1 = {
584
+ prevResultSize: PREV_RESULT_SIZE,
585
+ isInclusive: true,
586
+ includeReactions: isReactionEnabled,
587
+ includeMetaArray: true,
588
+ nextResultSize: NEXT_RESULT_SIZE,
589
+ };
590
+ if (replyType && replyType === 'QUOTE_REPLY') {
591
+ messageListParams_1.includeThreadInfo = true;
592
+ messageListParams_1.includeParentMessageInfo = true;
593
+ messageListParams_1.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
594
+ }
595
+ if (userFilledMessageListQuery) {
596
+ Object.keys(userFilledMessageListQuery).forEach(function (key) {
597
+ messageListParams_1[key] = userFilledMessageListQuery[key];
598
+ });
599
+ }
600
+ logger.info('Channel: Fetching messages', { currentGroupChannel: currentGroupChannel, userFilledMessageListQuery: userFilledMessageListQuery });
601
+ messagesDispatcher({
602
+ type: FETCH_INITIAL_MESSAGES_START,
603
+ payload: null,
604
+ });
605
+ var multipleFilesMessageCount_1 = 0;
606
+ (_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) {
607
+ var lastMessageTime = new Date().getTime();
608
+ groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams_1)
609
+ .then(function (messages) {
610
+ messagesDispatcher({
611
+ type: FETCH_INITIAL_MESSAGES_SUCCESS,
612
+ payload: {
613
+ currentGroupChannel: currentGroupChannel,
614
+ messages: messages,
615
+ },
616
+ });
617
+ multipleFilesMessageCount_1 = messages.filter(function (message) { return isMultipleFilesMessage(message); }).length;
618
+ setTimeout(function () { return scrollIntoLast(0, scrollRef); },
619
+ /**
620
+ * Rendering MFM takes long time so we need this.
621
+ * But later we should find better solution.
622
+ */
623
+ Math.min(multipleFilesMessageCount_1 * 100, 1000));
624
+ })
625
+ .catch(function (error) {
626
+ logger.error('Channel: Fetching messages failed', error);
627
+ messagesDispatcher({
628
+ type: FETCH_INITIAL_MESSAGES_FAILURE,
629
+ payload: { currentGroupChannel: currentGroupChannel },
630
+ });
631
+ });
632
+ if (!disableMarkAsRead) {
633
+ markAsReadScheduler.push(currentGroupChannel);
634
+ }
635
+ });
636
+ }
637
+ };
638
+ }, [shouldReconnect, replyType]);
639
+ }
640
+
641
+ function useScrollCallback(_a, _b) {
642
+ var currentGroupChannel = _a.currentGroupChannel, oldestMessageTimeStamp = _a.oldestMessageTimeStamp, userFilledMessageListQuery = _a.userFilledMessageListQuery, replyType = _a.replyType;
643
+ var hasMorePrev = _b.hasMorePrev, logger = _b.logger, messagesDispatcher = _b.messagesDispatcher, sdk = _b.sdk;
644
+ return useCallback(function (callback) {
645
+ var _a, _b;
646
+ if (!hasMorePrev) {
647
+ return;
648
+ }
649
+ var messageListParams = {
650
+ prevResultSize: PREV_RESULT_SIZE,
651
+ isInclusive: true,
652
+ includeMetaArray: true,
653
+ 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,
654
+ };
655
+ if (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') {
656
+ messageListParams.includeThreadInfo = true;
657
+ messageListParams.includeParentMessageInfo = true;
658
+ messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
659
+ }
660
+ if (userFilledMessageListQuery) {
661
+ Object.keys(userFilledMessageListQuery).forEach(function (key) {
662
+ messageListParams[key] = userFilledMessageListQuery[key];
663
+ });
664
+ }
665
+ logger.info('Channel: Fetching messages', {
666
+ currentGroupChannel: currentGroupChannel,
667
+ userFilledMessageListQuery: userFilledMessageListQuery,
668
+ });
669
+ currentGroupChannel
670
+ .getMessagesByTimestamp(oldestMessageTimeStamp || new Date().getTime(), messageListParams)
671
+ .then(function (messages) {
672
+ messagesDispatcher({
673
+ type: FETCH_PREV_MESSAGES_SUCCESS,
674
+ payload: { currentGroupChannel: currentGroupChannel, messages: messages },
675
+ });
676
+ if (callback)
677
+ setTimeout(function () { return callback(); });
678
+ })
679
+ .catch(function () {
680
+ messagesDispatcher({
681
+ type: FETCH_PREV_MESSAGES_FAILURE,
682
+ payload: { currentGroupChannel: currentGroupChannel },
683
+ });
684
+ });
685
+ }, [currentGroupChannel, oldestMessageTimeStamp, replyType]);
686
+ }
687
+
688
+ function useScrollDownCallback(_a, _b) {
689
+ var currentGroupChannel = _a.currentGroupChannel, latestMessageTimeStamp = _a.latestMessageTimeStamp, userFilledMessageListQuery = _a.userFilledMessageListQuery, hasMoreNext = _a.hasMoreNext, replyType = _a.replyType;
690
+ var logger = _b.logger, messagesDispatcher = _b.messagesDispatcher, sdk = _b.sdk;
691
+ return useCallback(function (cb) {
692
+ var _a, _b;
693
+ if (!hasMoreNext) {
694
+ return;
695
+ }
696
+ 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;
697
+ var messageListParams = {
698
+ nextResultSize: NEXT_RESULT_SIZE,
699
+ isInclusive: true,
700
+ includeReactions: isReactionEnabled,
701
+ includeMetaArray: true,
702
+ };
703
+ if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {
704
+ messageListParams.includeThreadInfo = true;
705
+ messageListParams.includeParentMessageInfo = true;
706
+ messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
707
+ }
708
+ if (userFilledMessageListQuery) {
709
+ Object.keys(userFilledMessageListQuery).forEach(function (key) {
710
+ messageListParams[key] = userFilledMessageListQuery[key];
711
+ });
712
+ }
713
+ logger.info('Channel: Fetching later messages', { currentGroupChannel: currentGroupChannel, userFilledMessageListQuery: userFilledMessageListQuery });
714
+ currentGroupChannel
715
+ .getMessagesByTimestamp(latestMessageTimeStamp || new Date().getTime(), messageListParams)
716
+ .then(function (messages) {
717
+ messagesDispatcher({
718
+ type: FETCH_NEXT_MESSAGES_SUCCESS,
719
+ payload: { currentGroupChannel: currentGroupChannel, messages: messages },
720
+ });
721
+ setTimeout(function () { return cb([messages, null]); });
722
+ })
723
+ .catch(function (error) {
724
+ logger.error('Channel: Fetching later messages failed', error);
725
+ messagesDispatcher({
726
+ type: FETCH_NEXT_MESSAGES_FAILURE,
727
+ payload: { currentGroupChannel: currentGroupChannel },
728
+ });
729
+ setTimeout(function () { return cb([null, error]); });
730
+ });
731
+ }, [currentGroupChannel, latestMessageTimeStamp, hasMoreNext, replyType]);
732
+ }
733
+
734
+ function useDeleteMessageCallback(_a, _b) {
735
+ var currentGroupChannel = _a.currentGroupChannel, messagesDispatcher = _a.messagesDispatcher;
736
+ var logger = _b.logger;
737
+ return useCallback(function (message) {
738
+ logger.info('Channel | useDeleteMessageCallback: Deleting message', message);
739
+ var sendingStatus = isSendableMessage(message) ? message.sendingStatus : undefined;
740
+ return new Promise(function (resolve, reject) {
741
+ logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', sendingStatus);
742
+ // Message is only on local
743
+ if ((sendingStatus === SendingStatus.FAILED || sendingStatus === SendingStatus.PENDING) && 'reqId' in message) {
744
+ logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);
745
+ messagesDispatcher({
746
+ type: ON_MESSAGE_DELETED_BY_REQ_ID,
747
+ payload: message.reqId,
748
+ });
749
+ resolve();
750
+ }
751
+ else {
752
+ logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', sendingStatus);
753
+ currentGroupChannel
754
+ .deleteMessage(message)
755
+ .then(function () {
756
+ logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);
757
+ messagesDispatcher({
758
+ type: ON_MESSAGE_DELETED,
759
+ payload: message.messageId,
760
+ });
761
+ resolve();
762
+ })
763
+ .catch(function (err) {
764
+ logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);
765
+ reject(err);
766
+ });
767
+ }
768
+ });
769
+ }, [currentGroupChannel, messagesDispatcher]);
770
+ }
771
+
772
+ function useUpdateMessageCallback(_a, _b) {
773
+ var currentGroupChannel = _a.currentGroupChannel, messagesDispatcher = _a.messagesDispatcher, onBeforeUpdateUserMessage = _a.onBeforeUpdateUserMessage, isMentionEnabled = _a.isMentionEnabled;
774
+ var logger = _b.logger, pubSub = _b.pubSub;
775
+ return useCallback(function (props, callback) {
776
+ var messageId = props.messageId, message = props.message, mentionedUsers = props.mentionedUsers, mentionTemplate = props.mentionTemplate;
777
+ var createParamsDefault = function (message) {
778
+ var params = {
779
+ message: message,
780
+ };
781
+ if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
782
+ params.mentionedUsers = mentionedUsers;
783
+ }
784
+ if (isMentionEnabled && mentionTemplate) {
785
+ params.mentionedMessageTemplate = mentionTemplate;
786
+ }
787
+ else {
788
+ params.mentionedMessageTemplate = message;
789
+ }
790
+ return params;
791
+ };
792
+ var shouldCreateCustomParams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function';
793
+ if (shouldCreateCustomParams) {
794
+ logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);
795
+ }
796
+ var params = shouldCreateCustomParams ? onBeforeUpdateUserMessage(message) : createParamsDefault(message);
797
+ logger.info('Channel: Updating message!', params);
798
+ currentGroupChannel
799
+ .updateUserMessage(messageId, params)
800
+ .then(function (msg) {
801
+ if (callback) {
802
+ callback(null, msg);
803
+ }
804
+ logger.info('Channel: Updating message success!', msg);
805
+ messagesDispatcher({
806
+ type: ON_MESSAGE_UPDATED,
807
+ payload: {
808
+ channel: currentGroupChannel,
809
+ message: msg,
810
+ },
811
+ });
812
+ pubSub.publish(pubSubTopics.UPDATE_USER_MESSAGE, {
813
+ message: msg,
814
+ channel: currentGroupChannel,
815
+ publishingModules: [PublishingModuleType.CHANNEL],
816
+ });
817
+ })
818
+ .catch(function (err) {
819
+ if (callback) {
820
+ callback(err, null);
821
+ }
822
+ });
823
+ }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);
824
+ }
825
+
826
+ function useResendMessageCallback(_a, _b) {
827
+ var currentGroupChannel = _a.currentGroupChannel, messagesDispatcher = _a.messagesDispatcher;
828
+ var logger = _b.logger, pubSub = _b.pubSub;
829
+ return useCallback(function (failedMessage) {
830
+ logger.info('Channel: Resending message has started', failedMessage);
831
+ if (failedMessage === null || failedMessage === void 0 ? void 0 : failedMessage.isResendable) {
832
+ // userMessage
833
+ if (failedMessage.isUserMessage()) {
834
+ currentGroupChannel
835
+ .resendMessage(failedMessage)
836
+ .onPending(function (message) {
837
+ logger.info('Channel: Resending message start!', message);
838
+ messagesDispatcher({
839
+ type: RESEND_MESSAGE_START,
840
+ payload: message,
841
+ });
842
+ })
843
+ .onSucceeded(function (message) {
844
+ logger.info('Channel: Resending message success!', message);
845
+ messagesDispatcher({
846
+ type: SEND_MESSAGE_SUCCESS,
847
+ payload: message,
848
+ });
849
+ })
850
+ .onFailed(function (e, message) {
851
+ logger.warning('Channel: Resending message failed!', e);
852
+ messagesDispatcher({
853
+ type: SEND_MESSAGE_FAILURE,
854
+ payload: message,
855
+ });
856
+ });
857
+ }
858
+ else if (failedMessage.isFileMessage()) {
859
+ currentGroupChannel
860
+ .resendMessage(failedMessage)
861
+ .onPending(function (message) {
862
+ logger.info('Channel: Resending file message start!', message);
863
+ messagesDispatcher({
864
+ type: RESEND_MESSAGE_START,
865
+ payload: message,
866
+ });
867
+ })
868
+ .onSucceeded(function (message) {
869
+ logger.info('Channel: Resending file message success!', message);
870
+ messagesDispatcher({
871
+ type: SEND_MESSAGE_SUCCESS,
872
+ payload: message,
873
+ });
874
+ })
875
+ .onFailed(function (e, message) {
876
+ logger.warning('Channel: Resending file message failed!', e);
877
+ messagesDispatcher({
878
+ type: SEND_MESSAGE_FAILURE,
879
+ payload: message,
880
+ });
881
+ });
882
+ }
883
+ else if (failedMessage.isMultipleFilesMessage()) {
884
+ currentGroupChannel
885
+ .resendMessage(failedMessage)
886
+ .onPending(function (message) {
887
+ logger.info('Channel: Resending multiple files message start!', message);
888
+ messagesDispatcher({
889
+ type: RESEND_MESSAGE_START,
890
+ payload: message,
891
+ });
892
+ })
893
+ .onFileUploaded(function (requestId, index, uploadableFileInfo, error) {
894
+ logger.info('Channel: Resending multiple files message file uploaded!', {
895
+ requestId: requestId,
896
+ index: index,
897
+ error: error,
898
+ uploadableFileInfo: uploadableFileInfo,
899
+ });
900
+ pubSub.publish(pubSubTopics.ON_FILE_INFO_UPLOADED, {
901
+ response: {
902
+ channelUrl: currentGroupChannel.url,
903
+ requestId: requestId,
904
+ index: index,
905
+ uploadableFileInfo: uploadableFileInfo,
906
+ error: error,
907
+ },
908
+ publishingModules: [PublishingModuleType.CHANNEL],
909
+ });
910
+ })
911
+ .onSucceeded(function (message) {
912
+ logger.info('Channel: Resending multiple files message success!', message);
913
+ messagesDispatcher({
914
+ type: SEND_MESSAGE_SUCCESS,
915
+ payload: message,
916
+ });
917
+ })
918
+ .onFailed(function (e, message) {
919
+ logger.warning('Channel: Resending multiple files message failed!', e);
920
+ messagesDispatcher({
921
+ type: SEND_MESSAGE_FAILURE,
922
+ payload: message,
923
+ });
924
+ });
925
+ }
926
+ }
927
+ else {
928
+ logger.error('Message is not resendable', failedMessage);
929
+ }
930
+ }, [currentGroupChannel, messagesDispatcher]);
931
+ }
932
+
933
+ function useSendMessageCallback(_a, _b) {
934
+ var isMentionEnabled = _a.isMentionEnabled, currentGroupChannel = _a.currentGroupChannel, onBeforeSendUserMessage = _a.onBeforeSendUserMessage;
935
+ var logger = _b.logger, pubSub = _b.pubSub, scrollRef = _b.scrollRef, messagesDispatcher = _b.messagesDispatcher;
936
+ var messageInputRef = useRef(null);
937
+ var sendMessage = useCallback(function (_a) {
938
+ var quoteMessage = _a.quoteMessage, message = _a.message, mentionTemplate = _a.mentionTemplate,
939
+ // mentionedUserIds,
940
+ mentionedUsers = _a.mentionedUsers;
941
+ var createParamsDefault = function () {
942
+ var params = {
943
+ message: message,
944
+ };
945
+ // if (isMentionEnabled && mentionedUserIds?.length > 0) {
946
+ if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
947
+ // params.mentionedUserIds = mentionedUserIds;
948
+ params.mentionedUsers = mentionedUsers;
949
+ }
950
+ // if (isMentionEnabled && mentionTemplate && mentionedUserIds?.length > 0) {
951
+ if (isMentionEnabled && mentionTemplate && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
952
+ params.mentionedMessageTemplate = mentionTemplate;
953
+ }
954
+ if (quoteMessage) {
955
+ params.isReplyToChannel = true;
956
+ params.parentMessageId = quoteMessage.messageId;
957
+ }
958
+ return params;
959
+ };
960
+ var shouldCreateCustomParams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';
961
+ if (shouldCreateCustomParams) {
962
+ logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);
963
+ }
964
+ var params = shouldCreateCustomParams ? onBeforeSendUserMessage(message, quoteMessage) : createParamsDefault();
965
+ logger.info('Channel: Sending message has started', params);
966
+ currentGroupChannel
967
+ .sendUserMessage(params)
968
+ .onPending(function (pendingMsg) {
969
+ pubSub.publish(pubSubTopics.SEND_MESSAGE_START, {
970
+ /* pubSub is used instead of messagesDispatcher
971
+ to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
972
+ message: pendingMsg,
973
+ channel: currentGroupChannel,
974
+ publishingModules: [PublishingModuleType.CHANNEL],
975
+ });
976
+ setTimeout(function () { return scrollIntoLast(0, scrollRef); });
977
+ })
978
+ .onFailed(function (err, msg) {
979
+ logger.warning('Channel: Sending message failed!', { message: msg, error: err });
980
+ messagesDispatcher({
981
+ type: SEND_MESSAGE_FAILURE,
982
+ payload: msg,
983
+ });
984
+ })
985
+ .onSucceeded(function (msg) {
986
+ logger.info('Channel: Sending message success!', msg);
987
+ messagesDispatcher({
988
+ type: SEND_MESSAGE_SUCCESS,
989
+ payload: msg,
990
+ });
991
+ });
992
+ }, [currentGroupChannel, onBeforeSendUserMessage]);
993
+ return [messageInputRef, sendMessage];
994
+ }
995
+
996
+ function useSendFileMessageCallback(_a, _b) {
997
+ var currentGroupChannel = _a.currentGroupChannel, onBeforeSendFileMessage = _a.onBeforeSendFileMessage, imageCompression = _a.imageCompression;
998
+ var logger = _b.logger, pubSub = _b.pubSub, scrollRef = _b.scrollRef, messagesDispatcher = _b.messagesDispatcher;
999
+ var sendMessage = useCallback(function (compressedFile, quoteMessage) {
1000
+ if (quoteMessage === void 0) { quoteMessage = null; }
1001
+ return new Promise(function (resolve, reject) {
1002
+ // Create FileMessageParams
1003
+ var params = onBeforeSendFileMessage === null || onBeforeSendFileMessage === void 0 ? void 0 : onBeforeSendFileMessage(compressedFile, quoteMessage);
1004
+ if (!params) {
1005
+ params = { file: compressedFile };
1006
+ if (quoteMessage) {
1007
+ params.isReplyToChannel = true;
1008
+ params.parentMessageId = quoteMessage.messageId;
1009
+ }
1010
+ }
1011
+ // Send FileMessage
1012
+ logger.info('Channel: Uploading file message start!', params);
1013
+ currentGroupChannel
1014
+ .sendFileMessage(params)
1015
+ .onPending(function (pendingMessage) {
1016
+ pubSub.publish(pubSubTopics.SEND_MESSAGE_START, {
1017
+ /* pubSub is used instead of messagesDispatcher
1018
+ to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
1019
+ message: __assign(__assign({}, pendingMessage), { url: URL.createObjectURL(compressedFile),
1020
+ // pending thumbnail message seems to be failed
1021
+ requestState: 'pending' }),
1022
+ channel: currentGroupChannel,
1023
+ publishingModules: [PublishingModuleType.CHANNEL],
1024
+ });
1025
+ setTimeout(function () { return scrollIntoLast(0, scrollRef); }, 1000);
1026
+ })
1027
+ .onFailed(function (err, failedMessage) {
1028
+ logger.error('Channel: Sending file message failed!', { failedMessage: failedMessage, err: err });
1029
+ // TODO: v4 - remove logic that modifies the original object.
1030
+ // It makes the code difficult to track, likely causing unpredictable side effects.
1031
+ // @ts-ignore eslint-disable-next-line no-param-reassign
1032
+ failedMessage.localUrl = URL.createObjectURL(compressedFile);
1033
+ // @ts-ignore eslint-disable-next-line no-param-reassign
1034
+ failedMessage.file = compressedFile;
1035
+ messagesDispatcher({
1036
+ type: SEND_MESSAGE_FAILURE,
1037
+ payload: failedMessage,
1038
+ });
1039
+ reject(err);
1040
+ })
1041
+ .onSucceeded(function (succeededMessage) {
1042
+ logger.info('Channel: Sending file message success!', succeededMessage);
1043
+ messagesDispatcher({
1044
+ type: SEND_MESSAGE_SUCCESS,
1045
+ payload: succeededMessage,
1046
+ });
1047
+ resolve(succeededMessage);
1048
+ });
1049
+ });
1050
+ }, [currentGroupChannel, onBeforeSendFileMessage, imageCompression]);
1051
+ return [sendMessage];
1052
+ }
1053
+
1054
+ // To prevent multiple clicks on the message in the channel while scrolling
1055
+ function deactivateClick(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 = 'none';
1060
+ parentNode.style.cursor = 'wait';
1061
+ }
1062
+ }
1063
+ function activateClick(scrollRef) {
1064
+ var element = scrollRef.current;
1065
+ var parentNode = element === null || element === void 0 ? void 0 : element.parentNode;
1066
+ if (element && parentNode) {
1067
+ element.style.pointerEvents = 'auto';
1068
+ parentNode.style.cursor = 'auto';
1069
+ }
1070
+ }
1071
+ function useScrollToMessage(_a, _b) {
1072
+ var setInitialTimeStamp = _a.setInitialTimeStamp, setAnimatedMessageId = _a.setAnimatedMessageId, allMessages = _a.allMessages, scrollRef = _a.scrollRef;
1073
+ var logger = _b.logger;
1074
+ return useCallback(function (createdAt, messageId) {
1075
+ var isPresent = allMessages.find(function (m) { return (m.messageId === messageId); });
1076
+ setAnimatedMessageId(null);
1077
+ setTimeout(function () {
1078
+ try {
1079
+ logger.info('Channel: scroll to message - disabling mouse events');
1080
+ deactivateClick(scrollRef);
1081
+ if (isPresent) {
1082
+ logger.info('Channel: scroll to message - message is present');
1083
+ setAnimatedMessageId(messageId);
1084
+ scrollToRenderedMessage(scrollRef, createdAt);
1085
+ }
1086
+ else {
1087
+ logger.info('Channel: scroll to message - fetching older messages');
1088
+ setInitialTimeStamp(null);
1089
+ setInitialTimeStamp(createdAt);
1090
+ setAnimatedMessageId(messageId);
1091
+ }
1092
+ }
1093
+ finally {
1094
+ logger.info('Channel: scroll to message - enabled mouse events');
1095
+ activateClick(scrollRef);
1096
+ }
1097
+ });
1098
+ }, [
1099
+ setInitialTimeStamp,
1100
+ setAnimatedMessageId,
1101
+ allMessages,
1102
+ ]);
1103
+ }
1104
+
1105
+ var useSendVoiceMessageCallback = function (_a, _b) {
1106
+ var currentGroupChannel = _a.currentGroupChannel, onBeforeSendVoiceMessage = _a.onBeforeSendVoiceMessage;
1107
+ var logger = _b.logger, pubSub = _b.pubSub, scrollRef = _b.scrollRef, messagesDispatcher = _b.messagesDispatcher;
1108
+ var sendMessage = useCallback(function (file, duration, quoteMessage) { return new Promise(function (resolve, reject) {
1109
+ if (!currentGroupChannel) {
1110
+ return;
1111
+ }
1112
+ var messageParams = (onBeforeSendVoiceMessage
1113
+ && typeof onBeforeSendVoiceMessage === 'function')
1114
+ ? onBeforeSendVoiceMessage(file, quoteMessage)
1115
+ : {
1116
+ file: file,
1117
+ fileName: VOICE_MESSAGE_FILE_NAME,
1118
+ mimeType: VOICE_MESSAGE_MIME_TYPE,
1119
+ metaArrays: [
1120
+ new MessageMetaArray({
1121
+ key: META_ARRAY_VOICE_DURATION_KEY,
1122
+ value: ["".concat(duration)],
1123
+ }),
1124
+ new MessageMetaArray({
1125
+ key: META_ARRAY_MESSAGE_TYPE_KEY,
1126
+ value: [META_ARRAY_MESSAGE_TYPE_VALUE__VOICE],
1127
+ }),
1128
+ ],
1129
+ };
1130
+ if (quoteMessage) {
1131
+ messageParams.isReplyToChannel = true;
1132
+ messageParams.parentMessageId = quoteMessage.messageId;
1133
+ }
1134
+ logger.info('Channel: Start sending voice message', messageParams);
1135
+ currentGroupChannel.sendFileMessage(messageParams)
1136
+ .onPending(function (pendingMessage) {
1137
+ pubSub.publish(pubSubTopics.SEND_MESSAGE_START, {
1138
+ /* pubSub is used instead of messagesDispatcher
1139
+ to avoid redundantly calling `messageActionTypes.SEND_MESSAGE_START` */
1140
+ message: pendingMessage,
1141
+ channel: currentGroupChannel,
1142
+ publishingModules: [PublishingModuleType.CHANNEL],
1143
+ });
1144
+ setTimeout(function () { return scrollIntoLast(0, scrollRef); }, 1000);
1145
+ })
1146
+ .onFailed(function (err, failedMessage) {
1147
+ logger.error('Channel: Sending voice message failed!', { failedMessage: failedMessage, err: err });
1148
+ messagesDispatcher({
1149
+ type: SEND_MESSAGE_FAILURE,
1150
+ payload: failedMessage,
1151
+ });
1152
+ reject(err);
1153
+ })
1154
+ .onSucceeded(function (succeededMessage) {
1155
+ logger.info('Channel: Sending voice message success!', succeededMessage);
1156
+ messagesDispatcher({
1157
+ type: SEND_MESSAGE_SUCCESS,
1158
+ payload: succeededMessage,
1159
+ });
1160
+ resolve(succeededMessage);
1161
+ });
1162
+ }); }, [
1163
+ currentGroupChannel,
1164
+ onBeforeSendVoiceMessage,
1165
+ ]);
1166
+ return [sendMessage];
1167
+ };
1168
+
1169
+ var useHandleChannelPubsubEvents = function (_a) {
1170
+ var channelUrl = _a.channelUrl, sdkInit = _a.sdkInit, pubSub = _a.pubSub, dispatcher = _a.dispatcher, scrollRef = _a.scrollRef;
1171
+ useEffect(function () {
1172
+ var subscriber = new Map();
1173
+ if (pubSub === null || pubSub === void 0 ? void 0 : pubSub.subscribe) {
1174
+ subscriber.set(PUBSUB_TOPICS.SEND_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_USER_MESSAGE, function (props) {
1175
+ var channel = props.channel, message = props.message;
1176
+ scrollIntoLast(0, scrollRef);
1177
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
1178
+ dispatcher({
1179
+ type: SEND_MESSAGE_SUCCESS,
1180
+ payload: message,
1181
+ });
1182
+ }
1183
+ }));
1184
+ subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_START, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_START, function (props) {
1185
+ var channel = props.channel, message = props.message, publishingModules = props.publishingModules;
1186
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url) && shouldPubSubPublishToChannel(publishingModules)) {
1187
+ dispatcher({
1188
+ type: SEND_MESSAGE_START,
1189
+ payload: message,
1190
+ });
1191
+ }
1192
+ }));
1193
+ subscriber.set(PUBSUB_TOPICS.ON_FILE_INFO_UPLOADED, pubSub.subscribe(PUBSUB_TOPICS.ON_FILE_INFO_UPLOADED, function (props) {
1194
+ var response = props.response, publishingModules = props.publishingModules;
1195
+ if (channelUrl === response.channelUrl && shouldPubSubPublishToChannel(publishingModules)) {
1196
+ dispatcher({
1197
+ type: ON_FILE_INFO_UPLOADED,
1198
+ payload: response,
1199
+ });
1200
+ }
1201
+ }));
1202
+ subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, function (props) {
1203
+ var channel = props.channel, message = props.message, publishingModules = props.publishingModules;
1204
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url) && shouldPubSubPublishToChannel(publishingModules)) {
1205
+ dispatcher({
1206
+ type: SEND_MESSAGE_FAILURE,
1207
+ payload: message,
1208
+ });
1209
+ }
1210
+ }));
1211
+ subscriber.set(PUBSUB_TOPICS.SEND_FILE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_FILE_MESSAGE, function (props) {
1212
+ var channel = props.channel, message = props.message;
1213
+ scrollIntoLast(0, scrollRef);
1214
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
1215
+ dispatcher({
1216
+ type: SEND_MESSAGE_SUCCESS,
1217
+ payload: message,
1218
+ });
1219
+ }
1220
+ }));
1221
+ subscriber.set(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, function (props) {
1222
+ var channel = props.channel, message = props.message, fromSelector = props.fromSelector;
1223
+ if (fromSelector && (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) && channel.isGroupChannel()) {
1224
+ dispatcher({
1225
+ type: ON_MESSAGE_UPDATED,
1226
+ payload: { channel: channel, message: message },
1227
+ });
1228
+ }
1229
+ }));
1230
+ subscriber.set(PUBSUB_TOPICS.DELETE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.DELETE_MESSAGE, function (props) {
1231
+ var channel = props.channel, messageId = props.messageId;
1232
+ if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
1233
+ dispatcher({
1234
+ type: ON_MESSAGE_DELETED,
1235
+ payload: messageId,
1236
+ });
1237
+ }
1238
+ }));
1239
+ }
1240
+ return function () {
1241
+ subscriber.forEach(function (s) {
1242
+ try {
1243
+ s.remove();
1244
+ }
1245
+ catch (_a) {
1246
+ //
1247
+ }
1248
+ });
1249
+ };
1250
+ }, [
1251
+ channelUrl,
1252
+ sdkInit,
1253
+ ]);
1254
+ };
1255
+
1256
+ var ChannelContext = React__default.createContext(undefined);
1257
+ var ChannelProvider = function (props) {
1258
+ var _a, _b, _c, _d, _e, _f;
1259
+ 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;
1260
+ var globalStore = useSendbirdStateContext();
1261
+ var config = globalStore.config;
1262
+ var replyType = channelReplyType !== null && channelReplyType !== void 0 ? channelReplyType : config.replyType;
1263
+ 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;
1264
+ 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;
1265
+ 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;
1266
+ var globalConfigs = globalStore === null || globalStore === void 0 ? void 0 : globalStore.config;
1267
+ var _l = useState(startingPoint), initialTimeStamp = _l[0], setInitialTimeStamp = _l[1];
1268
+ useEffect(function () {
1269
+ setInitialTimeStamp(startingPoint);
1270
+ }, [startingPoint, channelUrl]);
1271
+ var _m = useState(0), animatedMessageId = _m[0], setAnimatedMessageId = _m[1];
1272
+ var _o = useState(highlightedMessage), highLightedMessageId = _o[0], setHighLightedMessageId = _o[1];
1273
+ useEffect(function () {
1274
+ setHighLightedMessageId(highlightedMessage);
1275
+ }, [highlightedMessage]);
1276
+ var userFilledMessageListQuery = queries === null || queries === void 0 ? void 0 : queries.messageListParams;
1277
+ var _p = useState(null), quoteMessage = _p[0], setQuoteMessage = _p[1];
1278
+ var _q = useState(false), isScrolled = _q[0], setIsScrolled = _q[1];
1279
+ var _r = useReducer(channelReducer, initialState), messagesStore = _r[0], messagesDispatcher = _r[1];
1280
+ var scrollRef = useRef(null);
1281
+ 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;
1282
+ var isSuper = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isSuper) || false;
1283
+ var isBroadcast = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isBroadcast) || false;
1284
+ var usingReaction = getIsReactionEnabled({
1285
+ isBroadcast: isBroadcast,
1286
+ isSuper: isSuper,
1287
+ globalLevel: config === null || config === void 0 ? void 0 : config.isReactionEnabled,
1288
+ moduleLevel: isReactionEnabled,
1289
+ });
1290
+ var emojiAllMap = useMemo(function () { return (usingReaction
1291
+ ? getAllEmojisMapFromEmojiContainer(emojiContainer)
1292
+ : new Map()); }, [emojiContainer]);
1293
+ var nicknamesMap = useMemo(function () { return ((usingReaction && currentGroupChannel)
1294
+ ? getNicknamesMapFromMembers(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members)
1295
+ : new Map()); }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members]);
1296
+ // Animate message
1297
+ useEffect(function () {
1298
+ if (animatedMessage) {
1299
+ setAnimatedMessageId(animatedMessage);
1300
+ }
1301
+ }, [animatedMessage]);
1302
+ // Scrollup is default scroll for channel
1303
+ var onScrollCallback = useScrollCallback({
1304
+ currentGroupChannel: currentGroupChannel,
1305
+ oldestMessageTimeStamp: oldestMessageTimeStamp,
1306
+ userFilledMessageListQuery: userFilledMessageListQuery,
1307
+ replyType: replyType,
1308
+ }, {
1309
+ hasMorePrev: hasMorePrev,
1310
+ logger: logger,
1311
+ messagesDispatcher: messagesDispatcher,
1312
+ sdk: sdk,
1313
+ });
1314
+ var scrollToMessage = useScrollToMessage({
1315
+ setInitialTimeStamp: setInitialTimeStamp,
1316
+ setAnimatedMessageId: setAnimatedMessageId,
1317
+ allMessages: allMessages,
1318
+ scrollRef: scrollRef,
1319
+ }, { logger: logger });
1320
+ // onScrollDownCallback is added for navigation to different timestamps on messageSearch
1321
+ // hasMorePrev, onScrollCallback -> scroll up(default behavior)
1322
+ // hasMoreNext, onScrollDownCallback -> scroll down
1323
+ var onScrollDownCallback = useScrollDownCallback({
1324
+ currentGroupChannel: currentGroupChannel,
1325
+ latestMessageTimeStamp: latestMessageTimeStamp,
1326
+ userFilledMessageListQuery: userFilledMessageListQuery,
1327
+ hasMoreNext: hasMoreNext,
1328
+ replyType: replyType,
1329
+ }, {
1330
+ logger: logger,
1331
+ messagesDispatcher: messagesDispatcher,
1332
+ sdk: sdk,
1333
+ });
1334
+ var toggleReaction = useToggleReactionCallback(currentGroupChannel, logger);
1335
+ // to create message-datasource
1336
+ // this hook sets currentGroupChannel asynchronously
1337
+ useGetChannel({ channelUrl: channelUrl, sdkInit: sdkInit, disableMarkAsRead: disableMarkAsRead }, { messagesDispatcher: messagesDispatcher, sdk: sdk, logger: logger, markAsReadScheduler: markAsReadScheduler });
1338
+ // to set quote message as null
1339
+ useEffect(function () {
1340
+ setQuoteMessage(null);
1341
+ }, [channelUrl]);
1342
+ // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher
1343
+ useHandleChannelEvents({
1344
+ currentGroupChannel: currentGroupChannel,
1345
+ sdkInit: sdkInit,
1346
+ currentUserId: userId,
1347
+ disableMarkAsRead: disableMarkAsRead,
1348
+ }, {
1349
+ messagesDispatcher: messagesDispatcher,
1350
+ sdk: sdk,
1351
+ logger: logger,
1352
+ scrollRef: scrollRef,
1353
+ setQuoteMessage: setQuoteMessage,
1354
+ });
1355
+ // hook that fetches messages when channel changes
1356
+ // to be clear here useGetChannel sets currentGroupChannel
1357
+ // and useInitialMessagesFetch executes when currentGroupChannel changes
1358
+ // p.s This one executes on initialTimeStamp change too
1359
+ useInitialMessagesFetch({
1360
+ currentGroupChannel: currentGroupChannel,
1361
+ userFilledMessageListQuery: userFilledMessageListQuery,
1362
+ initialTimeStamp: initialTimeStamp,
1363
+ replyType: replyType,
1364
+ setIsScrolled: setIsScrolled,
1365
+ }, {
1366
+ logger: logger,
1367
+ scrollRef: scrollRef,
1368
+ messagesDispatcher: messagesDispatcher,
1369
+ });
1370
+ // handles API calls from withSendbird
1371
+ useHandleChannelPubsubEvents({
1372
+ channelUrl: channelUrl,
1373
+ sdkInit: sdkInit,
1374
+ pubSub: pubSub,
1375
+ dispatcher: messagesDispatcher,
1376
+ scrollRef: scrollRef,
1377
+ });
1378
+ // handling connection breaks
1379
+ useHandleReconnect({ isOnline: isOnline, replyType: replyType, disableMarkAsRead: disableMarkAsRead, reconnectOnIdle: reconnectOnIdle }, {
1380
+ logger: logger,
1381
+ sdk: sdk,
1382
+ scrollRef: scrollRef,
1383
+ currentGroupChannel: currentGroupChannel,
1384
+ messagesDispatcher: messagesDispatcher,
1385
+ userFilledMessageListQuery: userFilledMessageListQuery,
1386
+ markAsReadScheduler: markAsReadScheduler,
1387
+ });
1388
+ // callbacks for Message CURD actions
1389
+ var deleteMessage = useDeleteMessageCallback({ currentGroupChannel: currentGroupChannel, messagesDispatcher: messagesDispatcher }, { logger: logger });
1390
+ var updateMessage = useUpdateMessageCallback({ currentGroupChannel: currentGroupChannel, messagesDispatcher: messagesDispatcher, onBeforeUpdateUserMessage: onBeforeUpdateUserMessage, isMentionEnabled: isMentionEnabled }, { logger: logger, pubSub: pubSub });
1391
+ var resendMessage = useResendMessageCallback({ currentGroupChannel: currentGroupChannel, messagesDispatcher: messagesDispatcher }, { logger: logger, pubSub: pubSub });
1392
+ var _s = useSendMessageCallback({
1393
+ currentGroupChannel: currentGroupChannel,
1394
+ isMentionEnabled: isMentionEnabled,
1395
+ onBeforeSendUserMessage: onBeforeSendUserMessage,
1396
+ }, {
1397
+ logger: logger,
1398
+ pubSub: pubSub,
1399
+ scrollRef: scrollRef,
1400
+ messagesDispatcher: messagesDispatcher,
1401
+ }), messageInputRef = _s[0], sendMessage = _s[1];
1402
+ var sendFileMessage = useSendFileMessageCallback({
1403
+ currentGroupChannel: currentGroupChannel,
1404
+ imageCompression: imageCompression,
1405
+ onBeforeSendFileMessage: onBeforeSendFileMessage,
1406
+ }, {
1407
+ logger: logger,
1408
+ pubSub: pubSub,
1409
+ scrollRef: scrollRef,
1410
+ messagesDispatcher: messagesDispatcher,
1411
+ })[0];
1412
+ var sendVoiceMessage = useSendVoiceMessageCallback({
1413
+ currentGroupChannel: currentGroupChannel,
1414
+ onBeforeSendVoiceMessage: onBeforeSendVoiceMessage,
1415
+ }, {
1416
+ logger: logger,
1417
+ pubSub: pubSub,
1418
+ scrollRef: scrollRef,
1419
+ messagesDispatcher: messagesDispatcher,
1420
+ })[0];
1421
+ var sendMultipleFilesMessage = useSendMultipleFilesMessage({
1422
+ currentChannel: currentGroupChannel,
1423
+ onBeforeSendMultipleFilesMessage: onBeforeSendMultipleFilesMessage,
1424
+ publishingModules: [PublishingModuleType.CHANNEL],
1425
+ }, {
1426
+ logger: logger,
1427
+ pubSub: pubSub,
1428
+ scrollRef: scrollRef,
1429
+ })[0];
1430
+ return (React__default.createElement(ChannelContext.Provider, { value: {
1431
+ // props
1432
+ channelUrl: channelUrl,
1433
+ isReactionEnabled: usingReaction,
1434
+ isMessageGroupingEnabled: isMessageGroupingEnabled,
1435
+ isMultipleFilesMessageEnabled: isMultipleFilesMessageEnabled,
1436
+ showSearchIcon: showSearchIcon !== null && showSearchIcon !== void 0 ? showSearchIcon : globalConfigs.showSearchIcon,
1437
+ highlightedMessage: highlightedMessage,
1438
+ startingPoint: startingPoint,
1439
+ onBeforeSendUserMessage: onBeforeSendUserMessage,
1440
+ onBeforeSendFileMessage: onBeforeSendFileMessage,
1441
+ onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
1442
+ onChatHeaderActionClick: onChatHeaderActionClick,
1443
+ onSearchClick: onSearchClick,
1444
+ onBackClick: onBackClick,
1445
+ replyType: replyType,
1446
+ threadReplySelectType: (_e = threadReplySelectType !== null && threadReplySelectType !== void 0 ? threadReplySelectType : getCaseResolvedThreadReplySelectType(groupChannel.threadReplySelectType).upperCase) !== null && _e !== void 0 ? _e : ThreadReplySelectType.THREAD,
1447
+ queries: queries,
1448
+ filterMessageList: filterMessageList,
1449
+ disableMarkAsRead: disableMarkAsRead,
1450
+ onReplyInThread: onReplyInThread,
1451
+ onQuoteMessageClick: onQuoteMessageClick,
1452
+ onMessageAnimated: onMessageAnimated,
1453
+ onMessageHighlighted: onMessageHighlighted,
1454
+ // messagesStore
1455
+ allMessages: allMessages,
1456
+ localMessages: localMessages,
1457
+ loading: loading,
1458
+ initialized: initialized,
1459
+ unreadSince: unreadSince,
1460
+ unreadSinceDate: unreadSinceDate,
1461
+ isInvalid: isInvalid,
1462
+ currentGroupChannel: currentGroupChannel,
1463
+ hasMorePrev: hasMorePrev,
1464
+ hasMoreNext: hasMoreNext,
1465
+ oldestMessageTimeStamp: oldestMessageTimeStamp,
1466
+ latestMessageTimeStamp: latestMessageTimeStamp,
1467
+ emojiContainer: emojiContainer,
1468
+ readStatus: readStatus,
1469
+ typingMembers: typingMembers,
1470
+ // utils
1471
+ scrollToMessage: scrollToMessage,
1472
+ quoteMessage: quoteMessage,
1473
+ setQuoteMessage: setQuoteMessage,
1474
+ deleteMessage: deleteMessage,
1475
+ updateMessage: updateMessage,
1476
+ resendMessage: resendMessage,
1477
+ messageInputRef: messageInputRef,
1478
+ sendMessage: sendMessage,
1479
+ sendFileMessage: sendFileMessage,
1480
+ sendVoiceMessage: sendVoiceMessage,
1481
+ sendMultipleFilesMessage: sendMultipleFilesMessage,
1482
+ initialTimeStamp: initialTimeStamp,
1483
+ messageActionTypes: channelActions,
1484
+ messagesDispatcher: messagesDispatcher,
1485
+ setInitialTimeStamp: setInitialTimeStamp,
1486
+ setAnimatedMessageId: setAnimatedMessageId,
1487
+ setHighLightedMessageId: setHighLightedMessageId,
1488
+ animatedMessageId: animatedMessageId,
1489
+ highLightedMessageId: highLightedMessageId,
1490
+ nicknamesMap: nicknamesMap,
1491
+ emojiAllMap: emojiAllMap,
1492
+ onScrollCallback: onScrollCallback,
1493
+ onScrollDownCallback: onScrollDownCallback,
1494
+ scrollRef: scrollRef,
1495
+ scrollBehavior: scrollBehavior,
1496
+ toggleReaction: toggleReaction,
1497
+ isScrolled: isScrolled,
1498
+ setIsScrolled: setIsScrolled,
1499
+ } },
1500
+ 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)));
1501
+ };
1502
+ var useChannelContext = function () { return React__default.useContext(ChannelContext); };
1503
+
1504
+ export { ChannelProvider, useChannelContext };
24
1505
  //# sourceMappingURL=context.js.map