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