@sendbird/uikit-react 3.5.0-rc.1 → 3.5.1

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 (936) hide show
  1. package/App.js +323 -238
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +556 -0
  4. package/Channel/components/ChannelHeader.js +46 -41
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +104 -131
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +56 -52
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +12 -7
  11. package/Channel/components/FrozenNotification.js.map +1 -1
  12. package/Channel/components/Message.js +240 -230
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageInput.js +152 -129
  15. package/Channel/components/MessageInput.js.map +1 -1
  16. package/Channel/components/MessageList.js +270 -175
  17. package/Channel/components/MessageList.js.map +1 -1
  18. package/Channel/components/RemoveMessageModal.js +34 -30
  19. package/Channel/components/RemoveMessageModal.js.map +1 -1
  20. package/Channel/components/SuggestedMentionList.js +139 -193
  21. package/Channel/components/SuggestedMentionList.js.map +1 -1
  22. package/Channel/components/TypingIndicator.js +44 -61
  23. package/Channel/components/TypingIndicator.js.map +1 -1
  24. package/Channel/components/UnreadCount.js +18 -20
  25. package/Channel/components/UnreadCount.js.map +1 -1
  26. package/Channel/context.js +12 -19
  27. package/Channel/context.js.map +1 -1
  28. package/Channel.js +69 -44
  29. package/Channel.js.map +1 -1
  30. package/ChannelList/components/AddChannel.js +29 -30
  31. package/ChannelList/components/AddChannel.js.map +1 -1
  32. package/ChannelList/components/ChannelListHeader.js +32 -28
  33. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  34. package/ChannelList/components/ChannelListUI.js +101 -142
  35. package/ChannelList/components/ChannelListUI.js.map +1 -1
  36. package/ChannelList/components/ChannelPreview.js +72 -82
  37. package/ChannelList/components/ChannelPreview.js.map +1 -1
  38. package/ChannelList/components/ChannelPreviewAction.js +36 -36
  39. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  40. package/ChannelList/context.js +7 -8
  41. package/ChannelList/context.js.map +1 -1
  42. package/ChannelList.js +32 -31
  43. package/ChannelList.js.map +1 -1
  44. package/{ChannelListProvider-1d36e2e9.js → ChannelListProvider-643a2b47.js} +234 -286
  45. package/ChannelListProvider-643a2b47.js.map +1 -0
  46. package/{ChannelProvider-289cd35f.js → ChannelProvider-33559192.js} +661 -727
  47. package/ChannelProvider-33559192.js.map +1 -0
  48. package/ChannelSettings/components/ChannelProfile.js +33 -46
  49. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  50. package/ChannelSettings/components/ChannelSettingsUI.js +45 -48
  51. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  52. package/ChannelSettings/components/EditDetailsModal.js +47 -58
  53. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  54. package/ChannelSettings/components/LeaveChannel.js +40 -46
  55. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  56. package/ChannelSettings/components/ModerationPanel.js +522 -605
  57. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  58. package/ChannelSettings/components/UserListItem.js +71 -72
  59. package/ChannelSettings/components/UserListItem.js.map +1 -1
  60. package/ChannelSettings/components/UserPanel.js +29 -32
  61. package/ChannelSettings/components/UserPanel.js.map +1 -1
  62. package/ChannelSettings/context.js +55 -58
  63. package/ChannelSettings/context.js.map +1 -1
  64. package/ChannelSettings.js +20 -20
  65. package/ChannelSettings.js.map +1 -1
  66. package/CreateChannel/components/CreateChannelUI.js +24 -24
  67. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  68. package/CreateChannel/components/InviteUsers.js +102 -124
  69. package/CreateChannel/components/InviteUsers.js.map +1 -1
  70. package/CreateChannel/components/SelectChannelType.js +41 -42
  71. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  72. package/CreateChannel/context.js +4 -4
  73. package/CreateChannel.js +22 -21
  74. package/CreateChannel.js.map +1 -1
  75. package/CreateChannelProvider-5b006b58.js +44 -0
  76. package/CreateChannelProvider-5b006b58.js.map +1 -0
  77. package/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
  78. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  79. package/CreateOpenChannel/context.js +33 -33
  80. package/CreateOpenChannel/context.js.map +1 -1
  81. package/CreateOpenChannel.js +18 -17
  82. package/CreateOpenChannel.js.map +1 -1
  83. package/EditUserProfile/components/EditUserProfileUI.js +12 -13
  84. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  85. package/EditUserProfile/context.js +0 -2
  86. package/EditUserProfile/context.js.map +1 -1
  87. package/EditUserProfile.js +18 -17
  88. package/EditUserProfile.js.map +1 -1
  89. package/LocalizationContext-25d6694d.js +20 -0
  90. package/{LocalizationContext-289c1917.js.map → LocalizationContext-25d6694d.js.map} +1 -1
  91. package/MediaQueryContext-94c9086a.js +87 -0
  92. package/MediaQueryContext-94c9086a.js.map +1 -0
  93. package/MemberList-9f8950db.js +403 -0
  94. package/MemberList-9f8950db.js.map +1 -0
  95. package/Message/context.js +31 -0
  96. package/Message/context.js.map +1 -0
  97. package/MessageSearch/components/MessageSearchUI.js +62 -71
  98. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  99. package/MessageSearch/context.js +201 -224
  100. package/MessageSearch/context.js.map +1 -1
  101. package/MessageSearch.js +46 -58
  102. package/MessageSearch.js.map +1 -1
  103. package/OpenChannel/components/FrozenChannelNotification.js +8 -6
  104. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  105. package/OpenChannel/components/OpenChannelHeader.js +27 -25
  106. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  107. package/OpenChannel/components/OpenChannelInput.js +50 -35
  108. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  109. package/OpenChannel/components/OpenChannelMessage.js +174 -191
  110. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  111. package/OpenChannel/components/OpenChannelMessageList.js +72 -92
  112. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  113. package/OpenChannel/components/OpenChannelUI.js +52 -49
  114. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  115. package/OpenChannel/context.js +8 -9
  116. package/OpenChannel/context.js.map +1 -1
  117. package/OpenChannel.js +36 -30
  118. package/OpenChannel.js.map +1 -1
  119. package/OpenChannelList/components/OpenChannelListUI.js +61 -76
  120. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  121. package/OpenChannelList/components/OpenChannelPreview.js +21 -22
  122. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  123. package/OpenChannelList/context.js +3 -4
  124. package/OpenChannelList/context.js.map +1 -1
  125. package/OpenChannelList.js +26 -24
  126. package/OpenChannelList.js.map +1 -1
  127. package/OpenChannelListProvider-7c6b2f84.js +429 -0
  128. package/OpenChannelListProvider-7c6b2f84.js.map +1 -0
  129. package/OpenChannelProvider-18fa6128.js +1885 -0
  130. package/OpenChannelProvider-18fa6128.js.map +1 -0
  131. package/OpenChannelSettings/components/EditDetailsModal.js +47 -56
  132. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  133. package/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
  134. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  135. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
  136. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  137. package/OpenChannelSettings/components/OperatorUI.js +516 -586
  138. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  139. package/OpenChannelSettings/components/ParticipantUI.js +15 -16
  140. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  141. package/OpenChannelSettings/context.js +57 -70
  142. package/OpenChannelSettings/context.js.map +1 -1
  143. package/OpenChannelSettings.js +19 -20
  144. package/OpenChannelSettings.js.map +1 -1
  145. package/README.md +62 -13
  146. package/RemoveMessageModal-9c0350c0.js +36 -0
  147. package/RemoveMessageModal-9c0350c0.js.map +1 -0
  148. package/SendbirdProvider.js +749 -408
  149. package/SendbirdProvider.js.map +1 -1
  150. package/Thread/components/ParentMessageInfo.js +238 -217
  151. package/Thread/components/ParentMessageInfo.js.map +1 -1
  152. package/Thread/components/ParentMessageInfoItem.js +112 -89
  153. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  154. package/Thread/components/ThreadHeader.js +22 -23
  155. package/Thread/components/ThreadHeader.js.map +1 -1
  156. package/Thread/components/ThreadList.js +108 -83
  157. package/Thread/components/ThreadList.js.map +1 -1
  158. package/Thread/components/ThreadListItem.js +306 -276
  159. package/Thread/components/ThreadListItem.js.map +1 -1
  160. package/Thread/components/ThreadMessageInput.js +146 -113
  161. package/Thread/components/ThreadMessageInput.js.map +1 -1
  162. package/Thread/components/ThreadUI.js +169 -138
  163. package/Thread/components/ThreadUI.js.map +1 -1
  164. package/Thread/context/types.js +9 -14
  165. package/Thread/context/types.js.map +1 -1
  166. package/Thread/context.js +8 -8
  167. package/Thread.js +87 -57
  168. package/Thread.js.map +1 -1
  169. package/ThreadProvider-6ae0b041.js +1695 -0
  170. package/ThreadProvider-6ae0b041.js.map +1 -0
  171. package/{UserProfileContext-e3530842.js → UserProfileContext-a56cc682.js} +1 -4
  172. package/{UserProfileContext-e3530842.js.map → UserProfileContext-a56cc682.js.map} +1 -1
  173. package/VoiceMessageInputWrapper-69ac1f5a.js +170 -0
  174. package/VoiceMessageInputWrapper-69ac1f5a.js.map +1 -0
  175. package/VoicePlayer/context.js +7 -0
  176. package/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
  177. package/VoicePlayer/useVoicePlayer.js +84 -0
  178. package/VoicePlayer/useVoicePlayer.js.map +1 -0
  179. package/VoiceRecorder/context.js +156 -0
  180. package/VoiceRecorder/context.js.map +1 -0
  181. package/VoiceRecorder/useVoiceRecorder.js +121 -0
  182. package/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  183. package/WebAudioUtils-16540f03.js +123 -0
  184. package/WebAudioUtils-16540f03.js.map +1 -0
  185. package/{_rollupPluginBabelHelpers-519f674b.js → _rollupPluginBabelHelpers-1be219c2.js} +17 -11
  186. package/_rollupPluginBabelHelpers-1be219c2.js.map +1 -0
  187. package/actionTypes-a8140d53.js +8 -0
  188. package/actionTypes-a8140d53.js.map +1 -0
  189. package/cjs/App.js +324 -239
  190. package/cjs/App.js.map +1 -1
  191. package/cjs/Channel/components/ChannelHeader.js +46 -41
  192. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  193. package/cjs/Channel/components/ChannelUI.js +102 -129
  194. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  195. package/cjs/Channel/components/FileViewer.js +56 -52
  196. package/cjs/Channel/components/FileViewer.js.map +1 -1
  197. package/cjs/Channel/components/FrozenNotification.js +12 -7
  198. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  199. package/cjs/Channel/components/Message.js +243 -233
  200. package/cjs/Channel/components/Message.js.map +1 -1
  201. package/cjs/Channel/components/MessageInput.js +151 -128
  202. package/cjs/Channel/components/MessageInput.js.map +1 -1
  203. package/cjs/Channel/components/MessageList.js +270 -175
  204. package/cjs/Channel/components/MessageList.js.map +1 -1
  205. package/cjs/Channel/components/RemoveMessageModal.js +34 -30
  206. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  207. package/cjs/Channel/components/SuggestedMentionList.js +139 -193
  208. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  209. package/cjs/Channel/components/TypingIndicator.js +44 -61
  210. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  211. package/cjs/Channel/components/UnreadCount.js +18 -20
  212. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  213. package/cjs/Channel/context.js +12 -23
  214. package/cjs/Channel/context.js.map +1 -1
  215. package/cjs/Channel.js +69 -44
  216. package/cjs/Channel.js.map +1 -1
  217. package/cjs/ChannelList/components/AddChannel.js +29 -30
  218. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  219. package/cjs/ChannelList/components/ChannelListHeader.js +32 -28
  220. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  221. package/cjs/ChannelList/components/ChannelListUI.js +100 -141
  222. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  223. package/cjs/ChannelList/components/ChannelPreview.js +72 -82
  224. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  225. package/cjs/ChannelList/components/ChannelPreviewAction.js +36 -36
  226. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  227. package/cjs/ChannelList/context.js +7 -8
  228. package/cjs/ChannelList/context.js.map +1 -1
  229. package/cjs/ChannelList.js +32 -31
  230. package/cjs/ChannelList.js.map +1 -1
  231. package/cjs/{ChannelListProvider-0de52d2b.js → ChannelListProvider-1d4a8060.js} +233 -285
  232. package/cjs/ChannelListProvider-1d4a8060.js.map +1 -0
  233. package/cjs/{ChannelProvider-fc58e60e.js → ChannelProvider-2c7ec64b.js} +659 -725
  234. package/cjs/ChannelProvider-2c7ec64b.js.map +1 -0
  235. package/cjs/ChannelSettings/components/ChannelProfile.js +33 -46
  236. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  237. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +45 -48
  238. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  239. package/cjs/ChannelSettings/components/EditDetailsModal.js +47 -58
  240. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  241. package/cjs/ChannelSettings/components/LeaveChannel.js +40 -46
  242. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  243. package/cjs/ChannelSettings/components/ModerationPanel.js +522 -605
  244. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  245. package/cjs/ChannelSettings/components/UserListItem.js +71 -72
  246. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  247. package/cjs/ChannelSettings/components/UserPanel.js +29 -32
  248. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  249. package/cjs/ChannelSettings/context.js +57 -60
  250. package/cjs/ChannelSettings/context.js.map +1 -1
  251. package/cjs/ChannelSettings.js +20 -20
  252. package/cjs/ChannelSettings.js.map +1 -1
  253. package/cjs/CreateChannel/components/CreateChannelUI.js +24 -24
  254. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  255. package/cjs/CreateChannel/components/InviteUsers.js +102 -124
  256. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  257. package/cjs/CreateChannel/components/SelectChannelType.js +41 -42
  258. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  259. package/cjs/CreateChannel/context.js +4 -4
  260. package/cjs/CreateChannel.js +22 -21
  261. package/cjs/CreateChannel.js.map +1 -1
  262. package/cjs/CreateChannelProvider-f7d36126.js +52 -0
  263. package/cjs/CreateChannelProvider-f7d36126.js.map +1 -0
  264. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
  265. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  266. package/cjs/CreateOpenChannel/context.js +33 -33
  267. package/cjs/CreateOpenChannel/context.js.map +1 -1
  268. package/cjs/CreateOpenChannel.js +18 -17
  269. package/cjs/CreateOpenChannel.js.map +1 -1
  270. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -13
  271. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  272. package/cjs/EditUserProfile/context.js +0 -2
  273. package/cjs/EditUserProfile/context.js.map +1 -1
  274. package/cjs/EditUserProfile.js +18 -17
  275. package/cjs/EditUserProfile.js.map +1 -1
  276. package/cjs/{LocalizationContext-bddc5c2b.js → LocalizationContext-bd54275c.js} +9 -11
  277. package/cjs/{LocalizationContext-bddc5c2b.js.map → LocalizationContext-bd54275c.js.map} +1 -1
  278. package/cjs/MediaQueryContext-ebcb159a.js +94 -0
  279. package/cjs/MediaQueryContext-ebcb159a.js.map +1 -0
  280. package/cjs/MemberList-2204c0b1.js +409 -0
  281. package/cjs/MemberList-2204c0b1.js.map +1 -0
  282. package/cjs/Message/context.js +40 -0
  283. package/cjs/Message/context.js.map +1 -0
  284. package/cjs/MessageSearch/components/MessageSearchUI.js +61 -70
  285. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  286. package/cjs/MessageSearch/context.js +201 -224
  287. package/cjs/MessageSearch/context.js.map +1 -1
  288. package/cjs/MessageSearch.js +46 -58
  289. package/cjs/MessageSearch.js.map +1 -1
  290. package/cjs/OpenChannel/components/FrozenChannelNotification.js +8 -6
  291. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  292. package/cjs/OpenChannel/components/OpenChannelHeader.js +27 -25
  293. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  294. package/cjs/OpenChannel/components/OpenChannelInput.js +50 -35
  295. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  296. package/cjs/OpenChannel/components/OpenChannelMessage.js +174 -191
  297. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  298. package/cjs/OpenChannel/components/OpenChannelMessageList.js +72 -92
  299. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  300. package/cjs/OpenChannel/components/OpenChannelUI.js +52 -49
  301. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  302. package/cjs/OpenChannel/context.js +8 -9
  303. package/cjs/OpenChannel/context.js.map +1 -1
  304. package/cjs/OpenChannel.js +36 -30
  305. package/cjs/OpenChannel.js.map +1 -1
  306. package/cjs/OpenChannelList/components/OpenChannelListUI.js +61 -76
  307. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  308. package/cjs/OpenChannelList/components/OpenChannelPreview.js +21 -22
  309. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  310. package/cjs/OpenChannelList/context.js +3 -4
  311. package/cjs/OpenChannelList/context.js.map +1 -1
  312. package/cjs/OpenChannelList.js +26 -24
  313. package/cjs/OpenChannelList.js.map +1 -1
  314. package/cjs/OpenChannelListProvider-865700d5.js +439 -0
  315. package/cjs/OpenChannelListProvider-865700d5.js.map +1 -0
  316. package/cjs/OpenChannelProvider-083e5628.js +1894 -0
  317. package/cjs/OpenChannelProvider-083e5628.js.map +1 -0
  318. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +47 -56
  319. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  320. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
  321. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  322. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
  323. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  324. package/cjs/OpenChannelSettings/components/OperatorUI.js +516 -586
  325. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  326. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -16
  327. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  328. package/cjs/OpenChannelSettings/context.js +58 -71
  329. package/cjs/OpenChannelSettings/context.js.map +1 -1
  330. package/cjs/OpenChannelSettings.js +19 -20
  331. package/cjs/OpenChannelSettings.js.map +1 -1
  332. package/cjs/{RemoveMessageModal-9169766a.js → RemoveMessageModal-822e0fac.js} +19 -14
  333. package/cjs/RemoveMessageModal-822e0fac.js.map +1 -0
  334. package/cjs/SendbirdProvider.js +748 -408
  335. package/cjs/SendbirdProvider.js.map +1 -1
  336. package/cjs/Thread/components/ParentMessageInfo.js +237 -216
  337. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  338. package/cjs/Thread/components/ParentMessageInfoItem.js +111 -88
  339. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  340. package/cjs/Thread/components/ThreadHeader.js +22 -23
  341. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  342. package/cjs/Thread/components/ThreadList.js +108 -83
  343. package/cjs/Thread/components/ThreadList.js.map +1 -1
  344. package/cjs/Thread/components/ThreadListItem.js +305 -275
  345. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  346. package/cjs/Thread/components/ThreadMessageInput.js +146 -113
  347. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  348. package/cjs/Thread/components/ThreadUI.js +170 -139
  349. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  350. package/cjs/Thread/context/types.js +13 -14
  351. package/cjs/Thread/context/types.js.map +1 -1
  352. package/cjs/Thread/context.js +8 -8
  353. package/cjs/Thread.js +87 -57
  354. package/cjs/Thread.js.map +1 -1
  355. package/cjs/ThreadProvider-09392c06.js +1704 -0
  356. package/cjs/ThreadProvider-09392c06.js.map +1 -0
  357. package/cjs/{UserProfileContext-8d0dee57.js → UserProfileContext-10e1ac24.js} +1 -4
  358. package/cjs/{UserProfileContext-8d0dee57.js.map → UserProfileContext-10e1ac24.js.map} +1 -1
  359. package/cjs/VoiceMessageInputWrapper-fee2ede6.js +176 -0
  360. package/cjs/VoiceMessageInputWrapper-fee2ede6.js.map +1 -0
  361. package/cjs/VoicePlayer/context.js +17 -0
  362. package/cjs/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
  363. package/cjs/VoicePlayer/useVoicePlayer.js +88 -0
  364. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -0
  365. package/cjs/VoiceRecorder/context.js +166 -0
  366. package/cjs/VoiceRecorder/context.js.map +1 -0
  367. package/cjs/VoiceRecorder/useVoiceRecorder.js +126 -0
  368. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  369. package/cjs/WebAudioUtils-9dfbd5a9.js +126 -0
  370. package/cjs/WebAudioUtils-9dfbd5a9.js.map +1 -0
  371. package/cjs/{_rollupPluginBabelHelpers-fed1e122.js → _rollupPluginBabelHelpers-53e83515.js} +17 -10
  372. package/cjs/_rollupPluginBabelHelpers-53e83515.js.map +1 -0
  373. package/cjs/actionTypes-b1275c7f.js +10 -0
  374. package/cjs/actionTypes-b1275c7f.js.map +1 -0
  375. package/cjs/{color-f47044b3.js → color-e7fbb496.js} +13 -21
  376. package/cjs/color-e7fbb496.js.map +1 -0
  377. package/cjs/{compareIds-4124b297.js → compareIds-03cd7437.js} +5 -6
  378. package/cjs/compareIds-03cd7437.js.map +1 -0
  379. package/cjs/{const-fd64914b.js → const-8728e4b6.js} +4 -4
  380. package/cjs/const-8728e4b6.js.map +1 -0
  381. package/cjs/const-b3585ae0.js +20 -0
  382. package/cjs/const-b3585ae0.js.map +1 -0
  383. package/cjs/consts-6bd1cfe3.js +6 -0
  384. package/cjs/consts-6bd1cfe3.js.map +1 -0
  385. package/cjs/consts-a006bc78.js +6 -0
  386. package/cjs/consts-a006bc78.js.map +1 -0
  387. package/cjs/consts-a0e35044.js +6 -0
  388. package/cjs/consts-a0e35044.js.map +1 -0
  389. package/cjs/consts-aa056322.js +41 -0
  390. package/cjs/consts-aa056322.js.map +1 -0
  391. package/cjs/{context-7a0e057b.js → context-ad45a982.js} +6 -5
  392. package/cjs/{context-7a0e057b.js.map → context-ad45a982.js.map} +1 -1
  393. package/cjs/dist/index.css +1847 -1394
  394. package/cjs/dist/index.css.map +1 -1
  395. package/cjs/handlers/OpenChannelHandler.js.map +1 -1
  396. package/cjs/handlers/SessionHandler.js.map +1 -1
  397. package/cjs/{index-343cd84a.js → index-165d52b7.js} +2 -2
  398. package/cjs/{index-343cd84a.js.map → index-165d52b7.js.map} +1 -1
  399. package/cjs/index-288afd10.js +367 -0
  400. package/cjs/index-288afd10.js.map +1 -0
  401. package/cjs/{index-9ca07037.js → index-2f206bb6.js} +29 -37
  402. package/cjs/index-2f206bb6.js.map +1 -0
  403. package/cjs/index-32244c73.js +585 -0
  404. package/cjs/index-32244c73.js.map +1 -0
  405. package/cjs/index-35d641f7.js +202 -0
  406. package/cjs/index-35d641f7.js.map +1 -0
  407. package/cjs/{index-c475c3c8.js → index-3e924a85.js} +55 -63
  408. package/cjs/index-3e924a85.js.map +1 -0
  409. package/cjs/index-4a2ec2ae.js +456 -0
  410. package/cjs/index-4a2ec2ae.js.map +1 -0
  411. package/cjs/{index-d14a43c4.js → index-745c9ce1.js} +1 -1
  412. package/cjs/{index-d14a43c4.js.map → index-745c9ce1.js.map} +1 -1
  413. package/cjs/index-7bd7f678.js +79 -0
  414. package/cjs/index-7bd7f678.js.map +1 -0
  415. package/cjs/index-7d2d89a2.js +330 -0
  416. package/cjs/index-7d2d89a2.js.map +1 -0
  417. package/cjs/{index-c5cd589d.js → index-8ada6055.js} +1 -1
  418. package/cjs/index-8ada6055.js.map +1 -0
  419. package/cjs/{index-3a4f8219.js → index-9a94e768.js} +42 -51
  420. package/cjs/index-9a94e768.js.map +1 -0
  421. package/cjs/index-9f2a1c52.js +161 -0
  422. package/cjs/index-9f2a1c52.js.map +1 -0
  423. package/cjs/{index-abbc8024.js → index-9feae73e.js} +57 -3
  424. package/cjs/index-9feae73e.js.map +1 -0
  425. package/cjs/{index-8de8f28a.js → index-a01673e9.js} +2 -2
  426. package/cjs/{index-8de8f28a.js.map → index-a01673e9.js.map} +1 -1
  427. package/cjs/index-d0b4f3c0.js +57 -0
  428. package/cjs/index-d0b4f3c0.js.map +1 -0
  429. package/cjs/{index-5d5497c2.js → index-f6621210.js} +11 -25
  430. package/cjs/index-f6621210.js.map +1 -0
  431. package/cjs/index.js +84 -63
  432. package/cjs/index.js.map +1 -1
  433. package/cjs/index.module-02ae6df9.js +6 -0
  434. package/cjs/index.module-02ae6df9.js.map +1 -0
  435. package/cjs/lame.all.js +2541 -0
  436. package/cjs/lame.all.js.map +1 -0
  437. package/cjs/resolvedReplyType-da86056c.js +32 -0
  438. package/cjs/resolvedReplyType-da86056c.js.map +1 -0
  439. package/cjs/sendbirdSelectors.js +307 -417
  440. package/cjs/sendbirdSelectors.js.map +1 -1
  441. package/cjs/{stringSet-3e6167ef.js → stringSet-d212a015.js} +112 -90
  442. package/cjs/stringSet-d212a015.js.map +1 -0
  443. package/cjs/tokenize-b019fb84.js +164 -0
  444. package/cjs/tokenize-b019fb84.js.map +1 -0
  445. package/cjs/topics-77576a9c.js +18 -0
  446. package/cjs/topics-77576a9c.js.map +1 -0
  447. package/cjs/types-36ee2d00.js +17 -0
  448. package/cjs/types-36ee2d00.js.map +1 -0
  449. package/cjs/ui/Accordion.js +21 -24
  450. package/cjs/ui/Accordion.js.map +1 -1
  451. package/cjs/ui/AccordionGroup.js +10 -13
  452. package/cjs/ui/AccordionGroup.js.map +1 -1
  453. package/cjs/ui/AdminMessage.js +10 -13
  454. package/cjs/ui/AdminMessage.js.map +1 -1
  455. package/cjs/ui/Avatar.js +57 -79
  456. package/cjs/ui/Avatar.js.map +1 -1
  457. package/cjs/ui/Badge.js +16 -15
  458. package/cjs/ui/Badge.js.map +1 -1
  459. package/cjs/ui/BottomSheet.js +14 -12
  460. package/cjs/ui/BottomSheet.js.map +1 -1
  461. package/cjs/ui/Button.js +20 -35
  462. package/cjs/ui/Button.js.map +1 -1
  463. package/cjs/ui/ChannelAvatar.js +38 -41
  464. package/cjs/ui/ChannelAvatar.js.map +1 -1
  465. package/cjs/ui/Checkbox.js +11 -13
  466. package/cjs/ui/Checkbox.js.map +1 -1
  467. package/cjs/ui/ConnectionStatus.js +7 -5
  468. package/cjs/ui/ConnectionStatus.js.map +1 -1
  469. package/cjs/ui/ContextMenu.js +175 -199
  470. package/cjs/ui/ContextMenu.js.map +1 -1
  471. package/cjs/ui/DateSeparator.js +12 -14
  472. package/cjs/ui/DateSeparator.js.map +1 -1
  473. package/cjs/ui/EmojiReactions.js +299 -107
  474. package/cjs/ui/EmojiReactions.js.map +1 -1
  475. package/cjs/ui/FileMessageItemBody.js +22 -23
  476. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  477. package/cjs/ui/FileViewer.js +36 -36
  478. package/cjs/ui/FileViewer.js.map +1 -1
  479. package/cjs/ui/Icon.js +447 -623
  480. package/cjs/ui/Icon.js.map +1 -1
  481. package/cjs/ui/IconButton.js +20 -31
  482. package/cjs/ui/IconButton.js.map +1 -1
  483. package/cjs/ui/ImageRenderer.js +34 -43
  484. package/cjs/ui/ImageRenderer.js.map +1 -1
  485. package/cjs/ui/Input.js +16 -16
  486. package/cjs/ui/Input.js.map +1 -1
  487. package/cjs/ui/Label.js +2 -2
  488. package/cjs/ui/LinkLabel.js +4 -3
  489. package/cjs/ui/LinkLabel.js.map +1 -1
  490. package/cjs/ui/Loader.js +10 -12
  491. package/cjs/ui/Loader.js.map +1 -1
  492. package/cjs/ui/MentionLabel.js +58 -65
  493. package/cjs/ui/MentionLabel.js.map +1 -1
  494. package/cjs/ui/MentionUserLabel.js +12 -10
  495. package/cjs/ui/MentionUserLabel.js.map +1 -1
  496. package/cjs/ui/MessageContent.js +216 -550
  497. package/cjs/ui/MessageContent.js.map +1 -1
  498. package/cjs/ui/MessageInput.js +392 -119
  499. package/cjs/ui/MessageInput.js.map +1 -1
  500. package/cjs/ui/MessageItemMenu.js +83 -83
  501. package/cjs/ui/MessageItemMenu.js.map +1 -1
  502. package/cjs/ui/MessageItemReactionMenu.js +58 -62
  503. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  504. package/cjs/ui/MessageSearchFileItem.js +56 -51
  505. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  506. package/cjs/ui/MessageSearchItem.js +42 -41
  507. package/cjs/ui/MessageSearchItem.js.map +1 -1
  508. package/cjs/ui/MessageStatus.js +10 -11
  509. package/cjs/ui/MessageStatus.js.map +1 -1
  510. package/cjs/ui/Modal.js +52 -46
  511. package/cjs/ui/Modal.js.map +1 -1
  512. package/cjs/ui/MutedAvatarOverlay.js +10 -10
  513. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  514. package/cjs/ui/OGMessageItemBody.js +67 -63
  515. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  516. package/cjs/ui/OpenChannelAdminMessage.js +8 -7
  517. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  518. package/cjs/ui/OpenChannelAvatar.js +18 -17
  519. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  520. package/cjs/ui/OpenchannelConversationHeader.js +17 -13
  521. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  522. package/cjs/ui/OpenchannelFileMessage.js +140 -151
  523. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  524. package/cjs/ui/OpenchannelOGMessage.js +204 -233
  525. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  526. package/cjs/ui/OpenchannelThumbnailMessage.js +215 -222
  527. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  528. package/cjs/ui/OpenchannelUserMessage.js +168 -178
  529. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  530. package/cjs/ui/PlaceHolder.js +5 -6
  531. package/cjs/ui/PlaceHolder.js.map +1 -1
  532. package/cjs/ui/PlaybackTime.js +35 -0
  533. package/cjs/ui/PlaybackTime.js.map +1 -0
  534. package/cjs/ui/ProgressBar.js +40 -0
  535. package/cjs/ui/ProgressBar.js.map +1 -0
  536. package/cjs/ui/QuoteMessage.js +50 -44
  537. package/cjs/ui/QuoteMessage.js.map +1 -1
  538. package/cjs/ui/QuoteMessageInput.js +31 -29
  539. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  540. package/cjs/ui/ReactionBadge.js +13 -21
  541. package/cjs/ui/ReactionBadge.js.map +1 -1
  542. package/cjs/ui/ReactionButton.js +30 -27
  543. package/cjs/ui/ReactionButton.js.map +1 -1
  544. package/cjs/ui/SortByRow.js +14 -18
  545. package/cjs/ui/SortByRow.js.map +1 -1
  546. package/cjs/ui/TextButton.js +13 -21
  547. package/cjs/ui/TextButton.js.map +1 -1
  548. package/cjs/ui/TextMessageItemBody.js +41 -48
  549. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  550. package/cjs/ui/ThreadReplies.js +25 -22
  551. package/cjs/ui/ThreadReplies.js.map +1 -1
  552. package/cjs/ui/ThumbnailMessageItemBody.js +36 -45
  553. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  554. package/cjs/ui/Toggle.js +202 -0
  555. package/cjs/ui/Toggle.js.map +1 -0
  556. package/cjs/ui/Tooltip.js +8 -9
  557. package/cjs/ui/Tooltip.js.map +1 -1
  558. package/cjs/ui/TooltipWrapper.js +17 -20
  559. package/cjs/ui/TooltipWrapper.js.map +1 -1
  560. package/cjs/ui/UnknownMessageItemBody.js +21 -22
  561. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  562. package/cjs/ui/UserListItem.js +76 -76
  563. package/cjs/ui/UserListItem.js.map +1 -1
  564. package/cjs/ui/UserProfile.js +31 -29
  565. package/cjs/ui/UserProfile.js.map +1 -1
  566. package/cjs/ui/VoiceMessageItemBody.js +119 -0
  567. package/cjs/ui/VoiceMessageItemBody.js.map +1 -0
  568. package/cjs/ui/VoiceMessgeInput.js +22 -0
  569. package/cjs/ui/VoiceMessgeInput.js.map +1 -0
  570. package/cjs/ui/Word.js +31 -39
  571. package/cjs/ui/Word.js.map +1 -1
  572. package/cjs/useDirtyGetMentions-792a65af.js +77 -0
  573. package/cjs/useDirtyGetMentions-792a65af.js.map +1 -0
  574. package/cjs/useLongPress-50d2028a.js +87 -0
  575. package/cjs/useLongPress-50d2028a.js.map +1 -0
  576. package/cjs/useSendbirdStateContext.js +2 -3
  577. package/cjs/useSendbirdStateContext.js.map +1 -1
  578. package/cjs/utils/message/getOutgoingMessageState.js +16 -21
  579. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  580. package/cjs/utils/message/isVoiceMessage.js +12 -0
  581. package/cjs/utils/message/isVoiceMessage.js.map +1 -0
  582. package/cjs/{utils-374d57b4.js → utils-85ff9137.js} +1 -1
  583. package/cjs/{utils-374d57b4.js.map → utils-85ff9137.js.map} +1 -1
  584. package/cjs/{utils-5f86a394.js → utils-8ce3a247.js} +3 -7
  585. package/cjs/{utils-5f86a394.js.map → utils-8ce3a247.js.map} +1 -1
  586. package/cjs/utils-c2543c4d.js +31 -0
  587. package/cjs/utils-c2543c4d.js.map +1 -0
  588. package/cjs/utils-d2648e7d.js +35 -0
  589. package/cjs/utils-d2648e7d.js.map +1 -0
  590. package/cjs/uuid-97ce2508.js +15 -0
  591. package/cjs/{uuid-2475ef6c.js.map → uuid-97ce2508.js.map} +1 -1
  592. package/cjs/withSendbird.js +5 -6
  593. package/cjs/withSendbird.js.map +1 -1
  594. package/{color-163ba24d.js → color-04427a41.js} +5 -14
  595. package/{color-163ba24d.js.map → color-04427a41.js.map} +1 -1
  596. package/{compareIds-ef41eb2c.js → compareIds-e75af4f9.js} +5 -6
  597. package/compareIds-e75af4f9.js.map +1 -0
  598. package/{const-76d87f47.js → const-8d418b81.js} +4 -4
  599. package/const-8d418b81.js.map +1 -0
  600. package/const-ec18f7f8.js +13 -0
  601. package/const-ec18f7f8.js.map +1 -0
  602. package/consts-01a1e3c0.js +4 -0
  603. package/consts-01a1e3c0.js.map +1 -0
  604. package/consts-4d93ce13.js +4 -0
  605. package/consts-4d93ce13.js.map +1 -0
  606. package/consts-a5106683.js +4 -0
  607. package/consts-a5106683.js.map +1 -0
  608. package/consts-e6fdc559.js +27 -0
  609. package/consts-e6fdc559.js.map +1 -0
  610. package/context-6272efa3.js +13 -0
  611. package/{context-10475c77.js.map → context-6272efa3.js.map} +1 -1
  612. package/dist/index.css +1847 -1394
  613. package/dist/index.css.map +1 -1
  614. package/handlers/OpenChannelHandler.js.map +1 -1
  615. package/handlers/SessionHandler.js.map +1 -1
  616. package/{index-12754b45.js → index-19daf00f.js} +55 -63
  617. package/index-19daf00f.js.map +1 -0
  618. package/index-24f4354d.js +450 -0
  619. package/index-24f4354d.js.map +1 -0
  620. package/index-2d858f6d.js +187 -0
  621. package/index-2d858f6d.js.map +1 -0
  622. package/{index-232388fa.js → index-32a56033.js} +29 -37
  623. package/index-32a56033.js.map +1 -0
  624. package/index-36d49e08.js +154 -0
  625. package/index-36d49e08.js.map +1 -0
  626. package/{index-2f346069.js → index-5819e39d.js} +1 -1
  627. package/index-5819e39d.js.map +1 -0
  628. package/index-7ff2c073.js +360 -0
  629. package/index-7ff2c073.js.map +1 -0
  630. package/index-9a62272f.js +51 -0
  631. package/index-9a62272f.js.map +1 -0
  632. package/{index-4ebfc7a7.js → index-a4552c13.js} +1 -1
  633. package/{index-4ebfc7a7.js.map → index-a4552c13.js.map} +1 -1
  634. package/index-b3c3e1aa.js +76 -0
  635. package/index-b3c3e1aa.js.map +1 -0
  636. package/index-c589f349.js +540 -0
  637. package/index-c589f349.js.map +1 -0
  638. package/{index-2784bdd8.js → index-d88e3ef9.js} +11 -25
  639. package/index-d88e3ef9.js.map +1 -0
  640. package/{index-751f97ce.js → index-dcaf3cb8.js} +57 -4
  641. package/index-dcaf3cb8.js.map +1 -0
  642. package/{index-a02da5bd.js → index-dd8e8ea1.js} +2 -2
  643. package/{index-a02da5bd.js.map → index-dd8e8ea1.js.map} +1 -1
  644. package/index-f4374646.js +320 -0
  645. package/index-f4374646.js.map +1 -0
  646. package/{index-aea7b7d6.js → index-fe7ed4c0.js} +39 -48
  647. package/index-fe7ed4c0.js.map +1 -0
  648. package/{index-3c013a28.js → index-fea4f7d3.js} +2 -2
  649. package/{index-3c013a28.js.map → index-fea4f7d3.js.map} +1 -1
  650. package/index.d.ts +176 -124
  651. package/index.js +84 -63
  652. package/index.js.map +1 -1
  653. package/index.module-1ba8586e.js +4 -0
  654. package/index.module-1ba8586e.js.map +1 -0
  655. package/lame.all.js +2537 -0
  656. package/lame.all.js.map +1 -0
  657. package/package.json +62 -41
  658. package/resolvedReplyType-94a089b3.js +29 -0
  659. package/resolvedReplyType-94a089b3.js.map +1 -0
  660. package/sendbirdSelectors.js +307 -417
  661. package/sendbirdSelectors.js.map +1 -1
  662. package/{stringSet-9ae71b7d.js → stringSet-3649b375.js} +112 -90
  663. package/stringSet-3649b375.js.map +1 -0
  664. package/tokenize-053e921e.js +159 -0
  665. package/tokenize-053e921e.js.map +1 -0
  666. package/topics-d0dcd2f2.js +16 -0
  667. package/topics-d0dcd2f2.js.map +1 -0
  668. package/types-54edb45d.js +15 -0
  669. package/types-54edb45d.js.map +1 -0
  670. package/ui/Accordion.js +21 -24
  671. package/ui/Accordion.js.map +1 -1
  672. package/ui/AccordionGroup.js +10 -13
  673. package/ui/AccordionGroup.js.map +1 -1
  674. package/ui/AdminMessage.js +10 -13
  675. package/ui/AdminMessage.js.map +1 -1
  676. package/ui/Avatar.js +57 -79
  677. package/ui/Avatar.js.map +1 -1
  678. package/ui/Badge.js +16 -15
  679. package/ui/Badge.js.map +1 -1
  680. package/ui/BottomSheet.js +14 -12
  681. package/ui/BottomSheet.js.map +1 -1
  682. package/ui/Button.js +20 -35
  683. package/ui/Button.js.map +1 -1
  684. package/ui/ChannelAvatar.js +38 -41
  685. package/ui/ChannelAvatar.js.map +1 -1
  686. package/ui/Checkbox.js +11 -13
  687. package/ui/Checkbox.js.map +1 -1
  688. package/ui/ConnectionStatus.js +7 -5
  689. package/ui/ConnectionStatus.js.map +1 -1
  690. package/ui/ContextMenu.js +176 -200
  691. package/ui/ContextMenu.js.map +1 -1
  692. package/ui/DateSeparator.js +12 -14
  693. package/ui/DateSeparator.js.map +1 -1
  694. package/ui/EmojiReactions.js +300 -108
  695. package/ui/EmojiReactions.js.map +1 -1
  696. package/ui/FileMessageItemBody.js +22 -23
  697. package/ui/FileMessageItemBody.js.map +1 -1
  698. package/ui/FileViewer.js +36 -36
  699. package/ui/FileViewer.js.map +1 -1
  700. package/ui/Icon.js +448 -622
  701. package/ui/Icon.js.map +1 -1
  702. package/ui/IconButton.js +20 -31
  703. package/ui/IconButton.js.map +1 -1
  704. package/ui/ImageRenderer.js +34 -43
  705. package/ui/ImageRenderer.js.map +1 -1
  706. package/ui/Input.js +16 -16
  707. package/ui/Input.js.map +1 -1
  708. package/ui/Label.js +2 -2
  709. package/ui/LinkLabel.js +4 -3
  710. package/ui/LinkLabel.js.map +1 -1
  711. package/ui/Loader.js +10 -12
  712. package/ui/Loader.js.map +1 -1
  713. package/ui/MentionLabel.js +58 -65
  714. package/ui/MentionLabel.js.map +1 -1
  715. package/ui/MentionUserLabel.js +12 -10
  716. package/ui/MentionUserLabel.js.map +1 -1
  717. package/ui/MessageContent.js +219 -553
  718. package/ui/MessageContent.js.map +1 -1
  719. package/ui/MessageInput.js +392 -120
  720. package/ui/MessageInput.js.map +1 -1
  721. package/ui/MessageItemMenu.js +83 -83
  722. package/ui/MessageItemMenu.js.map +1 -1
  723. package/ui/MessageItemReactionMenu.js +58 -62
  724. package/ui/MessageItemReactionMenu.js.map +1 -1
  725. package/ui/MessageSearchFileItem.js +55 -50
  726. package/ui/MessageSearchFileItem.js.map +1 -1
  727. package/ui/MessageSearchItem.js +41 -40
  728. package/ui/MessageSearchItem.js.map +1 -1
  729. package/ui/MessageStatus.js +10 -11
  730. package/ui/MessageStatus.js.map +1 -1
  731. package/ui/Modal.js +52 -46
  732. package/ui/Modal.js.map +1 -1
  733. package/ui/MutedAvatarOverlay.js +10 -10
  734. package/ui/MutedAvatarOverlay.js.map +1 -1
  735. package/ui/OGMessageItemBody.js +68 -64
  736. package/ui/OGMessageItemBody.js.map +1 -1
  737. package/ui/OpenChannelAdminMessage.js +8 -7
  738. package/ui/OpenChannelAdminMessage.js.map +1 -1
  739. package/ui/OpenChannelAvatar.js +18 -17
  740. package/ui/OpenChannelAvatar.js.map +1 -1
  741. package/ui/OpenchannelConversationHeader.js +17 -13
  742. package/ui/OpenchannelConversationHeader.js.map +1 -1
  743. package/ui/OpenchannelFileMessage.js +140 -151
  744. package/ui/OpenchannelFileMessage.js.map +1 -1
  745. package/ui/OpenchannelOGMessage.js +204 -233
  746. package/ui/OpenchannelOGMessage.js.map +1 -1
  747. package/ui/OpenchannelThumbnailMessage.js +215 -222
  748. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  749. package/ui/OpenchannelUserMessage.js +168 -178
  750. package/ui/OpenchannelUserMessage.js.map +1 -1
  751. package/ui/PlaceHolder.js +5 -6
  752. package/ui/PlaceHolder.js.map +1 -1
  753. package/ui/PlaybackTime.js +26 -0
  754. package/ui/PlaybackTime.js.map +1 -0
  755. package/ui/ProgressBar.js +30 -0
  756. package/ui/ProgressBar.js.map +1 -0
  757. package/ui/QuoteMessage.js +50 -44
  758. package/ui/QuoteMessage.js.map +1 -1
  759. package/ui/QuoteMessageInput.js +31 -29
  760. package/ui/QuoteMessageInput.js.map +1 -1
  761. package/ui/ReactionBadge.js +13 -21
  762. package/ui/ReactionBadge.js.map +1 -1
  763. package/ui/ReactionButton.js +30 -27
  764. package/ui/ReactionButton.js.map +1 -1
  765. package/ui/SortByRow.js +14 -18
  766. package/ui/SortByRow.js.map +1 -1
  767. package/ui/TextButton.js +13 -21
  768. package/ui/TextButton.js.map +1 -1
  769. package/ui/TextMessageItemBody.js +41 -48
  770. package/ui/TextMessageItemBody.js.map +1 -1
  771. package/ui/ThreadReplies.js +25 -22
  772. package/ui/ThreadReplies.js.map +1 -1
  773. package/ui/ThumbnailMessageItemBody.js +36 -45
  774. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  775. package/ui/Toggle.js +191 -0
  776. package/ui/Toggle.js.map +1 -0
  777. package/ui/Tooltip.js +8 -9
  778. package/ui/Tooltip.js.map +1 -1
  779. package/ui/TooltipWrapper.js +17 -20
  780. package/ui/TooltipWrapper.js.map +1 -1
  781. package/ui/UnknownMessageItemBody.js +21 -22
  782. package/ui/UnknownMessageItemBody.js.map +1 -1
  783. package/ui/UserListItem.js +76 -76
  784. package/ui/UserListItem.js.map +1 -1
  785. package/ui/UserProfile.js +31 -29
  786. package/ui/UserProfile.js.map +1 -1
  787. package/ui/VoiceMessageItemBody.js +110 -0
  788. package/ui/VoiceMessageItemBody.js.map +1 -0
  789. package/ui/VoiceMessgeInput.js +14 -0
  790. package/ui/VoiceMessgeInput.js.map +1 -0
  791. package/ui/Word.js +31 -39
  792. package/ui/Word.js.map +1 -1
  793. package/useDirtyGetMentions-b9a9c21b.js +75 -0
  794. package/useDirtyGetMentions-b9a9c21b.js.map +1 -0
  795. package/useLongPress-5e28b292.js +85 -0
  796. package/useLongPress-5e28b292.js.map +1 -0
  797. package/useSendbirdStateContext.js +2 -3
  798. package/useSendbirdStateContext.js.map +1 -1
  799. package/utils/message/getOutgoingMessageState.js +9 -15
  800. package/utils/message/getOutgoingMessageState.js.map +1 -1
  801. package/utils/message/isVoiceMessage.js +8 -0
  802. package/utils/message/isVoiceMessage.js.map +1 -0
  803. package/utils-1f5c8b6c.js +29 -0
  804. package/utils-1f5c8b6c.js.map +1 -0
  805. package/{utils-ddb0df4c.js → utils-712b81f7.js} +3 -7
  806. package/{utils-ddb0df4c.js.map → utils-712b81f7.js.map} +1 -1
  807. package/{utils-ea66f822.js → utils-a1f2aa01.js} +1 -1
  808. package/{utils-ea66f822.js.map → utils-a1f2aa01.js.map} +1 -1
  809. package/utils-cbae9afc.js +31 -0
  810. package/utils-cbae9afc.js.map +1 -0
  811. package/uuid-8c96bee0.js +13 -0
  812. package/{uuid-7e004f47.js.map → uuid-8c96bee0.js.map} +1 -1
  813. package/withSendbird.js +5 -6
  814. package/withSendbird.js.map +1 -1
  815. package/ChannelListProvider-1d36e2e9.js.map +0 -1
  816. package/ChannelProvider-289cd35f.js.map +0 -1
  817. package/CreateChannelProvider-72b655e9.js +0 -55
  818. package/CreateChannelProvider-72b655e9.js.map +0 -1
  819. package/LocalizationContext-289c1917.js +0 -22
  820. package/MediaQueryContext-273d29f6.js +0 -90
  821. package/MediaQueryContext-273d29f6.js.map +0 -1
  822. package/MemberList-7ad0fa0b.js +0 -435
  823. package/MemberList-7ad0fa0b.js.map +0 -1
  824. package/NotificationChannel/components/NotificationChannelUI.js +0 -119
  825. package/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
  826. package/NotificationChannel/components/NotificationList.js +0 -111
  827. package/NotificationChannel/components/NotificationList.js.map +0 -1
  828. package/NotificationChannel/components/NotificationMessageWrap.js +0 -136
  829. package/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
  830. package/NotificationChannel/context.js +0 -12
  831. package/NotificationChannel.js +0 -58
  832. package/NotificationChannel.js.map +0 -1
  833. package/NotificationChannelProvider-ad556c64.js +0 -535
  834. package/NotificationChannelProvider-ad556c64.js.map +0 -1
  835. package/OpenChannelListProvider-0febf8b2.js +0 -434
  836. package/OpenChannelListProvider-0febf8b2.js.map +0 -1
  837. package/OpenChannelProvider-c254c663.js +0 -2000
  838. package/OpenChannelProvider-c254c663.js.map +0 -1
  839. package/RemoveMessageModal-d6cbf9fa.js +0 -31
  840. package/RemoveMessageModal-d6cbf9fa.js.map +0 -1
  841. package/ThreadProvider-8696ef31.js +0 -1644
  842. package/ThreadProvider-8696ef31.js.map +0 -1
  843. package/_rollupPluginBabelHelpers-519f674b.js.map +0 -1
  844. package/actionTypes-9f87e87f.js +0 -6
  845. package/actionTypes-9f87e87f.js.map +0 -1
  846. package/cjs/ChannelListProvider-0de52d2b.js.map +0 -1
  847. package/cjs/ChannelProvider-fc58e60e.js.map +0 -1
  848. package/cjs/CreateChannelProvider-a82d20f4.js +0 -62
  849. package/cjs/CreateChannelProvider-a82d20f4.js.map +0 -1
  850. package/cjs/MediaQueryContext-4711a81f.js +0 -97
  851. package/cjs/MediaQueryContext-4711a81f.js.map +0 -1
  852. package/cjs/MemberList-b2623166.js +0 -441
  853. package/cjs/MemberList-b2623166.js.map +0 -1
  854. package/cjs/NotificationChannel/components/NotificationChannelUI.js +0 -125
  855. package/cjs/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
  856. package/cjs/NotificationChannel/components/NotificationList.js +0 -117
  857. package/cjs/NotificationChannel/components/NotificationList.js.map +0 -1
  858. package/cjs/NotificationChannel/components/NotificationMessageWrap.js +0 -142
  859. package/cjs/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
  860. package/cjs/NotificationChannel/context.js +0 -21
  861. package/cjs/NotificationChannel.js +0 -64
  862. package/cjs/NotificationChannel.js.map +0 -1
  863. package/cjs/NotificationChannelProvider-2cdc7ff4.js +0 -543
  864. package/cjs/NotificationChannelProvider-2cdc7ff4.js.map +0 -1
  865. package/cjs/OpenChannelListProvider-60bc3c69.js +0 -443
  866. package/cjs/OpenChannelListProvider-60bc3c69.js.map +0 -1
  867. package/cjs/OpenChannelProvider-3ed4eb6e.js +0 -2009
  868. package/cjs/OpenChannelProvider-3ed4eb6e.js.map +0 -1
  869. package/cjs/RemoveMessageModal-9169766a.js.map +0 -1
  870. package/cjs/ThreadProvider-389f5031.js +0 -1653
  871. package/cjs/ThreadProvider-389f5031.js.map +0 -1
  872. package/cjs/_rollupPluginBabelHelpers-fed1e122.js.map +0 -1
  873. package/cjs/actionTypes-2f90e726.js +0 -10
  874. package/cjs/actionTypes-2f90e726.js.map +0 -1
  875. package/cjs/color-f47044b3.js.map +0 -1
  876. package/cjs/compareIds-4124b297.js.map +0 -1
  877. package/cjs/const-015e5589.js +0 -20
  878. package/cjs/const-015e5589.js.map +0 -1
  879. package/cjs/const-fd64914b.js.map +0 -1
  880. package/cjs/index-30c97863.js +0 -194
  881. package/cjs/index-30c97863.js.map +0 -1
  882. package/cjs/index-3a4f8219.js.map +0 -1
  883. package/cjs/index-40e4653a.js +0 -59
  884. package/cjs/index-40e4653a.js.map +0 -1
  885. package/cjs/index-5d5497c2.js.map +0 -1
  886. package/cjs/index-62c1bdfc.js +0 -701
  887. package/cjs/index-62c1bdfc.js.map +0 -1
  888. package/cjs/index-9ca07037.js.map +0 -1
  889. package/cjs/index-9f3670d0.js +0 -360
  890. package/cjs/index-9f3670d0.js.map +0 -1
  891. package/cjs/index-abbc8024.js.map +0 -1
  892. package/cjs/index-c475c3c8.js.map +0 -1
  893. package/cjs/index-c5cd589d.js.map +0 -1
  894. package/cjs/stringSet-3e6167ef.js.map +0 -1
  895. package/cjs/topics-56842e14.js +0 -22
  896. package/cjs/topics-56842e14.js.map +0 -1
  897. package/cjs/tslib.es6-b8ba50ef.js +0 -110
  898. package/cjs/tslib.es6-b8ba50ef.js.map +0 -1
  899. package/cjs/useLongPress-99c66f7f.js +0 -118
  900. package/cjs/useLongPress-99c66f7f.js.map +0 -1
  901. package/cjs/utils-9adfd244.js +0 -38
  902. package/cjs/utils-9adfd244.js.map +0 -1
  903. package/cjs/utils-f6a96ebf.js +0 -32
  904. package/cjs/utils-f6a96ebf.js.map +0 -1
  905. package/cjs/uuid-2475ef6c.js +0 -19
  906. package/compareIds-ef41eb2c.js.map +0 -1
  907. package/const-76d87f47.js.map +0 -1
  908. package/const-da6f3d34.js +0 -14
  909. package/const-da6f3d34.js.map +0 -1
  910. package/context-10475c77.js +0 -12
  911. package/index-12754b45.js.map +0 -1
  912. package/index-1e46e582.js +0 -179
  913. package/index-1e46e582.js.map +0 -1
  914. package/index-232388fa.js.map +0 -1
  915. package/index-2784bdd8.js.map +0 -1
  916. package/index-2f346069.js.map +0 -1
  917. package/index-4637b0de.js +0 -57
  918. package/index-4637b0de.js.map +0 -1
  919. package/index-4900e890.js +0 -353
  920. package/index-4900e890.js.map +0 -1
  921. package/index-751f97ce.js.map +0 -1
  922. package/index-855ef33d.js +0 -662
  923. package/index-855ef33d.js.map +0 -1
  924. package/index-aea7b7d6.js.map +0 -1
  925. package/stringSet-9ae71b7d.js.map +0 -1
  926. package/topics-e2963bba.js +0 -13
  927. package/topics-e2963bba.js.map +0 -1
  928. package/tslib.es6-72df3331.js +0 -104
  929. package/tslib.es6-72df3331.js.map +0 -1
  930. package/useLongPress-1a777e9e.js +0 -116
  931. package/useLongPress-1a777e9e.js.map +0 -1
  932. package/utils-2976f2c1.js +0 -30
  933. package/utils-2976f2c1.js.map +0 -1
  934. package/utils-6b69fb18.js +0 -34
  935. package/utils-6b69fb18.js.map +0 -1
  936. package/uuid-7e004f47.js +0 -17
@@ -1,20 +1,17 @@
1
- import React__default, { useEffect, useCallback, useRef, useMemo, useState, useReducer } from 'react';
2
- import { U as UserProfileProvider } from './UserProfileContext-e3530842.js';
1
+ import React__default, { useEffect, useCallback, useRef, useState, useReducer, useMemo } from 'react';
2
+ import { U as UserProfileProvider } from './UserProfileContext-a56cc682.js';
3
3
  import useSendbirdStateContext from './useSendbirdStateContext.js';
4
- import { f as format } from './index-3c013a28.js';
5
- import { a as SEND_USER_MESSAGE, S as SEND_MESSAGE_START, b as SEND_FILE_MESSAGE, U as UPDATE_USER_MESSAGE, D as DELETE_MESSAGE } from './topics-e2963bba.js';
6
- import { a as getSendingMessageStatus, b as isReadMessage, c as filterMessageListParams } from './index-855ef33d.js';
7
- import './utils/message/getOutgoingMessageState.js';
8
- import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-519f674b.js';
9
- import { c as compareIds } from './compareIds-ef41eb2c.js';
10
- import { N as NEXT_RESULT_SIZE, P as PREV_RESULT_SIZE } from './const-da6f3d34.js';
4
+ import { N as NEXT_RESULT_SIZE, P as PREV_RESULT_SIZE, T as ThreadReplySelectType } from './const-ec18f7f8.js';
5
+ import { f as format } from './index-fea4f7d3.js';
6
+ import { P as PUBSUB_TOPICS } from './topics-d0dcd2f2.js';
7
+ import { a as getSendingMessageStatus, b as isReadMessage, c as filterMessageListParams } from './index-c589f349.js';
8
+ import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-1be219c2.js';
9
+ import { c as compareIds } from './compareIds-e75af4f9.js';
11
10
  import { GroupChannelHandler } from '@sendbird/chat/groupChannel';
12
- import { u as uuidv4 } from './uuid-7e004f47.js';
13
- import { ReplyType } from '@sendbird/chat/message';
14
- import { EmojiListItems } from './ui/ContextMenu.js';
15
- import ReactionButton from './ui/ReactionButton.js';
16
- import ImageRenderer from './ui/ImageRenderer.js';
17
- import Icon, { IconTypes } from './ui/Icon.js';
11
+ import { u as uuidv4 } from './uuid-8c96bee0.js';
12
+ import { ReplyType, MessageMetaArray } from '@sendbird/chat/message';
13
+ import { b as VOICE_MESSAGE_FILE_NAME, c as VOICE_MESSAGE_MIME_TYPE, M as META_ARRAY_VOICE_DURATION_KEY, d as META_ARRAY_MESSAGE_TYPE_KEY, e as META_ARRAY_MESSAGE_TYPE_VALUE__VOICE } from './consts-e6fdc559.js';
14
+ import { a as getCaseResolvedThreadReplySelectType } from './resolvedReplyType-94a089b3.js';
18
15
 
19
16
  const RESET_MESSAGES = 'RESET_MESSAGES';
20
17
  const FETCH_INITIAL_MESSAGES_START = 'FETCH_INITIAL_MESSAGES_START';
@@ -73,19 +70,37 @@ const {
73
70
  FAILED,
74
71
  PENDING
75
72
  } = getSendingMessageStatus();
73
+ const scrollToRenderedMessage = (scrollRef, initialTimeStamp) => {
74
+ try {
75
+ var _container$querySelec;
76
+ const container = scrollRef.current;
77
+ // scroll into the message with initialTimeStamp
78
+ const element = (_container$querySelec = container.querySelectorAll(`[data-sb-created-at="${initialTimeStamp}"]`)) === null || _container$querySelec === void 0 ? void 0 : _container$querySelec[0];
79
+ if (element) {
80
+ // Calculate the offset of the element from the top of the container
81
+ const containerHeight = container.offsetHeight;
82
+ const elementHeight = element.offsetHeight;
83
+ const elementOffset = (containerHeight - elementHeight) / 2;
84
+ // Set the scroll position of the container to bring the element to the middle
85
+ container.scrollTop = element.offsetTop - elementOffset;
86
+ }
87
+ } catch (_unused) {
88
+ // do nothing
89
+ }
90
+ };
91
+
92
+ /* eslint-disable default-param-last */
76
93
  const scrollIntoLast = function () {
77
94
  let initialTry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
78
95
  let scrollRef = arguments.length > 1 ? arguments[1] : undefined;
79
96
  const MAX_TRIES = 10;
80
97
  const currentTry = initialTry;
81
-
82
98
  if (currentTry > MAX_TRIES) {
83
99
  return;
84
100
  }
85
-
86
101
  try {
87
- const scrollDOM = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || document.querySelector('.sendbird-conversation__messages-padding'); // eslint-disable-next-line no-multi-assign
88
-
102
+ const scrollDOM = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || document.querySelector('.sendbird-conversation__messages-padding');
103
+ // eslint-disable-next-line no-multi-assign
89
104
  scrollDOM.scrollTop = scrollDOM.scrollHeight;
90
105
  } catch (error) {
91
106
  setTimeout(() => {
@@ -97,7 +112,8 @@ const pubSubHandleRemover = subscriber => {
97
112
  subscriber.forEach(s => {
98
113
  try {
99
114
  s.remove();
100
- } catch (_unused) {//
115
+ } catch (_unused2) {
116
+ //
101
117
  }
102
118
  });
103
119
  };
@@ -110,13 +126,12 @@ const pubSubHandler = _ref => {
110
126
  } = _ref;
111
127
  const subscriber = new Map();
112
128
  if (!pubSub || !pubSub.subscribe) return subscriber;
113
- subscriber.set(SEND_USER_MESSAGE, pubSub.subscribe(SEND_USER_MESSAGE, msg => {
129
+ subscriber.set(PUBSUB_TOPICS.SEND_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_USER_MESSAGE, msg => {
114
130
  const {
115
131
  channel,
116
132
  message
117
133
  } = msg;
118
134
  scrollIntoLast(0, scrollRef);
119
-
120
135
  if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
121
136
  dispatcher({
122
137
  type: SEND_MESSAGEGE_SUCESS,
@@ -124,12 +139,11 @@ const pubSubHandler = _ref => {
124
139
  });
125
140
  }
126
141
  }));
127
- subscriber.set(SEND_MESSAGE_START, pubSub.subscribe(SEND_MESSAGE_START, msg => {
142
+ subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_START, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_START, msg => {
128
143
  const {
129
144
  channel,
130
145
  message
131
146
  } = msg;
132
-
133
147
  if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
134
148
  dispatcher({
135
149
  type: SEND_MESSAGEGE_START,
@@ -137,13 +151,12 @@ const pubSubHandler = _ref => {
137
151
  });
138
152
  }
139
153
  }));
140
- subscriber.set(SEND_FILE_MESSAGE, pubSub.subscribe(SEND_FILE_MESSAGE, msg => {
154
+ subscriber.set(PUBSUB_TOPICS.SEND_FILE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_FILE_MESSAGE, msg => {
141
155
  const {
142
156
  channel,
143
157
  message
144
158
  } = msg;
145
159
  scrollIntoLast(0, scrollRef);
146
-
147
160
  if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
148
161
  dispatcher({
149
162
  type: SEND_MESSAGEGE_SUCESS,
@@ -151,13 +164,12 @@ const pubSubHandler = _ref => {
151
164
  });
152
165
  }
153
166
  }));
154
- subscriber.set(UPDATE_USER_MESSAGE, pubSub.subscribe(UPDATE_USER_MESSAGE, msg => {
167
+ subscriber.set(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, msg => {
155
168
  const {
156
169
  channel,
157
170
  message,
158
171
  fromSelector
159
172
  } = msg;
160
-
161
173
  if (fromSelector && channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
162
174
  dispatcher({
163
175
  type: ON_MESSAGE_UPDATED,
@@ -168,12 +180,11 @@ const pubSubHandler = _ref => {
168
180
  });
169
181
  }
170
182
  }));
171
- subscriber.set(DELETE_MESSAGE, pubSub.subscribe(DELETE_MESSAGE, msg => {
183
+ subscriber.set(PUBSUB_TOPICS.DELETE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.DELETE_MESSAGE, msg => {
172
184
  const {
173
185
  channel,
174
186
  messageId
175
187
  } = msg;
176
-
177
188
  if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
178
189
  dispatcher({
179
190
  type: ON_MESSAGE_DELETED,
@@ -198,37 +209,16 @@ const isDisabledBecauseMuted = function () {
198
209
  const myMutedState = groupChannel === null || groupChannel === void 0 ? void 0 : groupChannel.myMutedState;
199
210
  return myMutedState === 'muted';
200
211
  };
201
- const getAllEmojisFromEmojiContainer = function () {
202
- let emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
203
- const {
204
- emojiCategories = []
205
- } = emojiContainer;
206
- const allEmojis = [];
207
-
208
- for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {
209
- const {
210
- emojis
211
- } = emojiCategories[categoryIndex];
212
-
213
- for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {
214
- allEmojis.push(emojis[emojiIndex]);
215
- }
216
- }
217
-
218
- return allEmojis;
219
- };
220
212
  const getAllEmojisMapFromEmojiContainer = function () {
221
213
  let emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
222
214
  const {
223
215
  emojiCategories = []
224
216
  } = emojiContainer;
225
217
  const allEmojisMap = new Map();
226
-
227
218
  for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {
228
219
  const {
229
220
  emojis
230
221
  } = emojiCategories[categoryIndex];
231
-
232
222
  for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {
233
223
  const {
234
224
  key,
@@ -237,13 +227,11 @@ const getAllEmojisMapFromEmojiContainer = function () {
237
227
  allEmojisMap.set(key, url);
238
228
  }
239
229
  }
240
-
241
230
  return allEmojisMap;
242
231
  };
243
232
  const getNicknamesMapFromMembers = function () {
244
233
  let members = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
245
234
  const nicknamesMap = new Map();
246
-
247
235
  for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {
248
236
  const {
249
237
  userId,
@@ -251,24 +239,39 @@ const getNicknamesMapFromMembers = function () {
251
239
  } = members[memberIndex];
252
240
  nicknamesMap.set(userId, nickname);
253
241
  }
254
-
255
242
  return nicknamesMap;
256
243
  };
244
+ const getUniqueListBy = (arr, key) => [...new Map(arr.map(item => [item[key], item])).values()];
245
+ const getUniqueListByMessageId = arr => getUniqueListBy(arr, 'messageId');
246
+ const sortByCreatedAt = messages => messages.sort((a, b) => a.createdAt - b.createdAt);
247
+ const mergeAndSortMessages = (oldMessages, newMessages) => {
248
+ const lastOldMessage = oldMessages[oldMessages.length - 1];
249
+ const firstNewMessage = newMessages[0];
250
+ // If the last message of oldMessages is older than the first message of newMessages,
251
+ // then we can safely append newMessages to oldMessages.
252
+ if ((lastOldMessage === null || lastOldMessage === void 0 ? void 0 : lastOldMessage.createdAt) < (firstNewMessage === null || firstNewMessage === void 0 ? void 0 : firstNewMessage.createdAt)) {
253
+ return [...oldMessages, ...newMessages];
254
+ }
255
+
256
+ // todo: optimize this
257
+ // If the last message of oldMessages is newer than the first message of newMessages,
258
+ // then we need to merge the two arrays and sort them by createdAt.
259
+ const mergedMessages = [...oldMessages, ...newMessages];
260
+ const unique = getUniqueListByMessageId(mergedMessages);
261
+ return sortByCreatedAt(unique);
262
+ };
257
263
  const getMessageCreatedAt = message => format(message.createdAt, 'p');
258
264
  const isSameGroup = (message, comparingMessage, currentChannel) => {
259
265
  var _message$sender, _comparingMessage$sen, _message$sender2, _comparingMessage$sen2;
260
-
261
266
  if (!(message && comparingMessage && message.messageType && message.messageType !== 'admin' && comparingMessage.messageType && (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.messageType) !== 'admin' && message !== null && message !== void 0 && message.sender && comparingMessage !== null && comparingMessage !== void 0 && comparingMessage.sender && message !== null && message !== void 0 && message.createdAt && comparingMessage !== null && comparingMessage !== void 0 && comparingMessage.createdAt && message !== null && message !== void 0 && (_message$sender = message.sender) !== null && _message$sender !== void 0 && _message$sender.userId && comparingMessage !== null && comparingMessage !== void 0 && (_comparingMessage$sen = comparingMessage.sender) !== null && _comparingMessage$sen !== void 0 && _comparingMessage$sen.userId)) {
262
267
  return false;
263
268
  }
264
-
265
269
  return (message === null || message === void 0 ? void 0 : message.sendingStatus) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sendingStatus) && (message === null || message === void 0 ? void 0 : (_message$sender2 = message.sender) === null || _message$sender2 === void 0 ? void 0 : _message$sender2.userId) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : (_comparingMessage$sen2 = comparingMessage.sender) === null || _comparingMessage$sen2 === void 0 ? void 0 : _comparingMessage$sen2.userId) && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage) && isReadMessage(currentChannel, message) === isReadMessage(currentChannel, comparingMessage);
266
270
  };
267
271
  const compareMessagesForGrouping = (prevMessage, currMessage, nextMessage, currentChannel, replyType) => {
268
272
  if (replyType === 'THREAD' && currMessage !== null && currMessage !== void 0 && currMessage.threadInfo) {
269
273
  return [false, false];
270
274
  }
271
-
272
275
  const sendingStatus = (currMessage === null || currMessage === void 0 ? void 0 : currMessage.sendingStatus) || '';
273
276
  const isAcceptable = sendingStatus !== 'pending' && sendingStatus !== 'failed';
274
277
  return [isSameGroup(prevMessage, currMessage, currentChannel) && isAcceptable, isSameGroup(currMessage, nextMessage, currentChannel) && isAcceptable];
@@ -277,36 +280,45 @@ const passUnsuccessfullMessages = (allMessages, newMessage) => {
277
280
  const {
278
281
  sendingStatus = UNDEFINED
279
282
  } = newMessage;
280
-
281
283
  if (sendingStatus === SUCCEEDED$1 || sendingStatus === PENDING) {
282
284
  const lastIndexOfSucceededMessage = allMessages.map(message => message.sendingStatus || (message.isAdminMessage && message.isAdminMessage() ? SUCCEEDED$1 : UNDEFINED)).lastIndexOf(SUCCEEDED$1);
283
-
284
285
  if (lastIndexOfSucceededMessage + 1 < allMessages.length) {
285
286
  const messages = [...allMessages];
286
287
  messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);
287
288
  return messages;
288
289
  }
289
290
  }
290
-
291
291
  return [...allMessages, newMessage];
292
292
  };
293
293
  const pxToNumber = px => {
294
294
  if (typeof px === 'number') {
295
295
  return px;
296
296
  }
297
-
298
297
  if (typeof px === 'string') {
299
298
  const parsed = Number.parseFloat(px);
300
-
301
299
  if (!Number.isNaN(parsed)) {
302
300
  return parsed;
303
301
  }
304
302
  }
305
-
306
303
  return null;
307
304
  };
308
305
  const isAboutSame = (a, b, px) => Math.abs(a - b) <= px;
309
306
 
307
+ /**
308
+ * This function helps consider the every condition
309
+ * related to enabling emoji reaction feature.
310
+ */
311
+
312
+ function getIsReactionEnabled(_ref) {
313
+ let {
314
+ isBroadcast = false,
315
+ isSuper = false,
316
+ globalLevel = true,
317
+ moduleLevel
318
+ } = _ref;
319
+ return !(isBroadcast || isSuper) && (moduleLevel !== null && moduleLevel !== void 0 ? moduleLevel : globalLevel);
320
+ }
321
+
310
322
  var messagesInitialState = {
311
323
  initialized: false,
312
324
  loading: true,
@@ -332,22 +344,18 @@ var messagesInitialState = {
332
344
  const {
333
345
  SUCCEEDED
334
346
  } = getSendingMessageStatus();
335
-
336
347
  const getOldestMessageTimeStamp = function () {
337
348
  let messages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
338
349
  const oldestMessage = messages[0];
339
350
  return oldestMessage && oldestMessage.createdAt || null;
340
351
  };
341
-
342
352
  const getLatestMessageTimeStamp = function () {
343
353
  let messages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
344
354
  const latestMessage = messages[messages.length - 1];
345
355
  return latestMessage && latestMessage.createdAt || null;
346
356
  };
347
-
348
357
  function reducer(state, action) {
349
358
  var _state$currentGroupCh7, _action$payload, _action$payload$chann;
350
-
351
359
  switch (action.type) {
352
360
  case RESET_MESSAGES:
353
361
  return _objectSpread2(_objectSpread2({}, state), {}, {
@@ -357,7 +365,6 @@ function reducer(state, action) {
357
365
  hasMoreNext: false,
358
366
  allMessages: []
359
367
  });
360
-
361
368
  case FETCH_INITIAL_MESSAGES_START:
362
369
  {
363
370
  return _objectSpread2(_objectSpread2({}, state), {}, {
@@ -365,20 +372,16 @@ function reducer(state, action) {
365
372
  allMessages: [...state.allMessages.filter(m => m.sendingStatus !== SUCCEEDED)]
366
373
  });
367
374
  }
368
-
369
375
  case FETCH_INITIAL_MESSAGES_SUCCESS:
370
376
  {
371
377
  var _state$currentGroupCh;
372
-
373
378
  const {
374
379
  currentGroupChannel,
375
380
  messages
376
381
  } = action.payload;
377
-
378
382
  if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_state$currentGroupCh = state.currentGroupChannel) === null || _state$currentGroupCh === void 0 ? void 0 : _state$currentGroupCh.url))) {
379
383
  return state;
380
384
  }
381
-
382
385
  const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
383
386
  const latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
384
387
  return _objectSpread2(_objectSpread2({}, state), {}, {
@@ -391,23 +394,20 @@ function reducer(state, action) {
391
394
  allMessages: [...messages]
392
395
  });
393
396
  }
394
-
395
397
  case FETCH_PREV_MESSAGES_SUCCESS:
396
398
  {
397
399
  var _state$currentGroupCh2;
398
-
399
400
  const {
400
401
  currentGroupChannel,
401
402
  messages
402
403
  } = action.payload;
403
-
404
404
  if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_state$currentGroupCh2 = state.currentGroupChannel) === null || _state$currentGroupCh2 === void 0 ? void 0 : _state$currentGroupCh2.url))) {
405
405
  return state;
406
406
  }
407
-
408
407
  const hasMorePrev = messages && messages.length === PREV_RESULT_SIZE + 1;
409
- const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages); // Remove duplicated messages
408
+ const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
410
409
 
410
+ // Remove duplicated messages
411
411
  const duplicatedMessageIds = [];
412
412
  const updatedOldMessages = state.allMessages.map(msg => {
413
413
  const duplicatedMessage = messages.find(_ref => {
@@ -416,11 +416,9 @@ function reducer(state, action) {
416
416
  } = _ref;
417
417
  return compareIds(messageId, msg.messageId);
418
418
  });
419
-
420
419
  if (!duplicatedMessage) {
421
420
  return msg;
422
421
  }
423
-
424
422
  duplicatedMessageIds.push(duplicatedMessage.messageId);
425
423
  return duplicatedMessage.updatedAt > msg.updatedAt ? duplicatedMessage : msg;
426
424
  });
@@ -431,61 +429,38 @@ function reducer(state, action) {
431
429
  allMessages: [...filteredNewMessages, ...updatedOldMessages]
432
430
  });
433
431
  }
434
-
435
432
  case FETCH_NEXT_MESSAGES_SUCCESS:
436
433
  {
437
434
  var _state$currentGroupCh3;
438
-
439
435
  const {
440
436
  currentGroupChannel,
441
437
  messages
442
438
  } = action.payload;
443
-
444
439
  if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_state$currentGroupCh3 = state.currentGroupChannel) === null || _state$currentGroupCh3 === void 0 ? void 0 : _state$currentGroupCh3.url))) {
445
440
  return state;
446
441
  }
447
-
448
442
  const hasMoreNext = messages && messages.length === NEXT_RESULT_SIZE + 1;
449
- const latestMessageTimeStamp = getLatestMessageTimeStamp(messages); // Remove duplicated messages
450
-
451
- const duplicatedMessageIds = [];
452
- const updatedOldMessages = state.allMessages.map(msg => {
453
- const duplicatedMessage = messages.find(_ref2 => {
454
- let {
455
- messageId
456
- } = _ref2;
457
- return compareIds(messageId, msg.messageId);
458
- });
459
-
460
- if (!duplicatedMessage) {
461
- return msg;
462
- }
443
+ const latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
463
444
 
464
- duplicatedMessageIds.push(duplicatedMessage.messageId);
465
- return duplicatedMessage.updatedAt > msg.updatedAt ? duplicatedMessage : msg;
466
- });
467
- const filteredNewMessages = duplicatedMessageIds.length > 0 ? messages.filter(msg => !duplicatedMessageIds.find(messageId => compareIds(messageId, msg.messageId))) : messages;
445
+ // sort ~
446
+ const sortedMessages = mergeAndSortMessages(state.allMessages, messages);
468
447
  return _objectSpread2(_objectSpread2({}, state), {}, {
469
448
  hasMoreNext,
470
449
  latestMessageTimeStamp,
471
- allMessages: [...updatedOldMessages, ...filteredNewMessages]
450
+ allMessages: sortedMessages
472
451
  });
473
452
  }
474
-
475
453
  case FETCH_INITIAL_MESSAGES_FAILURE:
476
454
  case FETCH_PREV_MESSAGES_FAILURE:
477
455
  case FETCH_NEXT_MESSAGES_FAILURE:
478
456
  {
479
457
  var _state$currentGroupCh4;
480
-
481
458
  const {
482
459
  currentGroupChannel
483
460
  } = action.payload;
484
-
485
461
  if ((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) !== (state === null || state === void 0 ? void 0 : (_state$currentGroupCh4 = state.currentGroupChannel) === null || _state$currentGroupCh4 === void 0 ? void 0 : _state$currentGroupCh4.url)) {
486
462
  return state;
487
463
  }
488
-
489
464
  return _objectSpread2(_objectSpread2({}, state), {}, {
490
465
  loading: false,
491
466
  initialized: false,
@@ -496,12 +471,10 @@ function reducer(state, action) {
496
471
  latestMessageTimeStamp: null
497
472
  });
498
473
  }
499
-
500
474
  case SEND_MESSAGEGE_START:
501
475
  return _objectSpread2(_objectSpread2({}, state), {}, {
502
476
  allMessages: [...state.allMessages, _objectSpread2({}, action.payload)]
503
477
  });
504
-
505
478
  case SEND_MESSAGEGE_SUCESS:
506
479
  {
507
480
  const message = action.payload;
@@ -511,7 +484,6 @@ function reducer(state, action) {
511
484
  allMessages: pendingIndex > -1 ? [...filteredMessages.slice(0, pendingIndex), message, ...filteredMessages.slice(pendingIndex)] : [...filteredMessages, message]
512
485
  });
513
486
  }
514
-
515
487
  case SEND_MESSAGEGE_FAILURE:
516
488
  {
517
489
  // eslint-disable-next-line no-param-reassign
@@ -520,7 +492,6 @@ function reducer(state, action) {
520
492
  allMessages: state.allMessages.map(m => compareIds(m.reqId, action.payload.reqId) ? action.payload : m)
521
493
  });
522
494
  }
523
-
524
495
  case SET_CURRENT_CHANNEL:
525
496
  {
526
497
  return _objectSpread2(_objectSpread2({}, state), {}, {
@@ -528,7 +499,6 @@ function reducer(state, action) {
528
499
  isInvalid: false
529
500
  });
530
501
  }
531
-
532
502
  case SET_CHANNEL_INVALID:
533
503
  {
534
504
  return _objectSpread2(_objectSpread2({}, state), {}, {
@@ -536,7 +506,6 @@ function reducer(state, action) {
536
506
  isInvalid: true
537
507
  });
538
508
  }
539
-
540
509
  case ON_MESSAGE_RECEIVED:
541
510
  {
542
511
  const {
@@ -554,57 +523,47 @@ function reducer(state, action) {
554
523
  unreadSince
555
524
  } = state;
556
525
  const currentGroupChannelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
557
-
558
526
  if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
559
527
  return state;
560
- } // Excluded overlapping messages
561
-
562
-
528
+ }
529
+ // Excluded overlapping messages
563
530
  if (state.allMessages.some(msg => msg.messageId === message.messageId)) {
564
531
  return state;
565
- } // Filter by userFilledQuery
566
-
567
-
532
+ }
533
+ // Filter by userFilledQuery
568
534
  if (state.messageListParams && !filterMessageListParams(state.messageListParams, message)) {
569
535
  return state;
570
536
  }
571
-
572
537
  if (message.isAdminMessage && message.isAdminMessage()) {
573
538
  return _objectSpread2(_objectSpread2({}, state), {}, {
574
539
  allMessages: passUnsuccessfullMessages(state.allMessages, message)
575
540
  });
576
- } // Update members when sender profileUrl, nickname, friendName has been changed
577
-
541
+ }
578
542
 
543
+ // Update members when sender profileUrl, nickname, friendName has been changed
579
544
  const senderMember = members === null || members === void 0 ? void 0 : members.find(m => (m === null || m === void 0 ? void 0 : m.userId) === (sender === null || sender === void 0 ? void 0 : sender.userId));
580
-
581
545
  if ((senderMember === null || senderMember === void 0 ? void 0 : senderMember.profileUrl) !== (sender === null || sender === void 0 ? void 0 : sender.profileUrl) || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.friendName) !== (sender === null || sender === void 0 ? void 0 : sender.friendName) || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.nickname) !== (sender === null || sender === void 0 ? void 0 : sender.nickname)) {
582
546
  channel.members = members.map(member => {
583
547
  if (member.userId === sender.userId) {
584
548
  return sender;
585
549
  }
586
-
587
550
  return member;
588
551
  });
589
552
  }
590
-
591
553
  return _objectSpread2(_objectSpread2({}, state), {}, {
592
554
  currentGroupChannel: channel,
593
555
  unreadSince: state !== null && state !== void 0 && state.unreadSince ? unreadSince : format(new Date(), 'p MMM dd'),
594
556
  allMessages: passUnsuccessfullMessages(state.allMessages, message)
595
557
  });
596
558
  }
597
-
598
559
  case ON_MESSAGE_UPDATED:
599
560
  {
600
561
  var _state$currentGroupCh5;
601
-
602
562
  const {
603
563
  channel,
604
564
  message
605
565
  } = action.payload;
606
566
  const currentGroupChannelUrl = (state === null || state === void 0 ? void 0 : (_state$currentGroupCh5 = state.currentGroupChannel) === null || _state$currentGroupCh5 === void 0 ? void 0 : _state$currentGroupCh5.url) || '';
607
-
608
567
  if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
609
568
  return state; // Ignore event when it is not for the current channel
610
569
  }
@@ -615,13 +574,11 @@ function reducer(state, action) {
615
574
  allMessages: state.allMessages.filter(m => !compareIds(m.messageId, message === null || message === void 0 ? void 0 : message.messageId))
616
575
  });
617
576
  }
618
-
619
577
  return _objectSpread2(_objectSpread2({}, state), {}, {
620
578
  allMessages: state.allMessages.map(m => {
621
579
  if (compareIds(m.messageId, message.messageId)) {
622
580
  return message;
623
581
  }
624
-
625
582
  if (compareIds(m.parentMessageId, message.messageId)) {
626
583
  m.parentMessage = message; // eslint-disable-line no-param-reassign
627
584
  }
@@ -630,11 +587,9 @@ function reducer(state, action) {
630
587
  })
631
588
  });
632
589
  }
633
-
634
590
  case ON_MESSAGE_THREAD_INFO_UPDATED:
635
591
  {
636
592
  var _state$currentGroupCh6;
637
-
638
593
  const {
639
594
  channel,
640
595
  event
@@ -645,7 +600,6 @@ function reducer(state, action) {
645
600
  targetMessageId
646
601
  } = event;
647
602
  const currentGroupChannelUrl = (state === null || state === void 0 ? void 0 : (_state$currentGroupCh6 = state.currentGroupChannel) === null || _state$currentGroupCh6 === void 0 ? void 0 : _state$currentGroupCh6.url) || '';
648
-
649
603
  if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl) || !compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
650
604
  return state; // Ignore event when it is not for the current channel
651
605
  }
@@ -661,38 +615,31 @@ function reducer(state, action) {
661
615
  })
662
616
  });
663
617
  }
664
-
665
618
  case RESEND_MESSAGEGE_START:
666
619
  return _objectSpread2(_objectSpread2({}, state), {}, {
667
620
  allMessages: state.allMessages.map(m => compareIds(m.reqId, action.payload.reqId) ? action.payload : m)
668
621
  });
669
-
670
622
  case MARK_AS_READ:
671
623
  if (((_state$currentGroupCh7 = state.currentGroupChannel) === null || _state$currentGroupCh7 === void 0 ? void 0 : _state$currentGroupCh7.url) !== ((_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : (_action$payload$chann = _action$payload.channel) === null || _action$payload$chann === void 0 ? void 0 : _action$payload$chann.url)) {
672
624
  return state;
673
625
  }
674
-
675
626
  return _objectSpread2(_objectSpread2({}, state), {}, {
676
627
  unreadSince: null
677
628
  });
678
-
679
629
  case ON_MESSAGE_DELETED:
680
630
  return _objectSpread2(_objectSpread2({}, state), {}, {
681
631
  allMessages: state.allMessages.filter(m => !compareIds(m.messageId, action.payload))
682
632
  });
683
-
684
633
  case ON_MESSAGE_DELETED_BY_REQ_ID:
685
634
  return _objectSpread2(_objectSpread2({}, state), {}, {
686
635
  allMessages: state.allMessages.filter(m => !compareIds(m.reqId, action.payload))
687
636
  });
688
-
689
637
  case SET_EMOJI_CONTAINER:
690
638
  {
691
639
  return _objectSpread2(_objectSpread2({}, state), {}, {
692
640
  emojiContainer: action.payload
693
641
  });
694
642
  }
695
-
696
643
  case ON_REACTION_UPDATED:
697
644
  {
698
645
  return _objectSpread2(_objectSpread2({}, state), {}, {
@@ -701,86 +648,102 @@ function reducer(state, action) {
701
648
  if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {
702
649
  m.applyReactionEvent(action.payload);
703
650
  }
704
-
705
651
  return m;
706
652
  }
707
-
708
653
  return m;
709
654
  })
710
655
  });
711
656
  }
712
-
713
657
  case MESSAGE_LIST_PARAMS_CHANGED:
714
658
  {
715
659
  return _objectSpread2(_objectSpread2({}, state), {}, {
716
660
  messageListParams: action.payload
717
661
  });
718
662
  }
719
-
720
663
  default:
721
664
  return state;
722
665
  }
723
666
  }
724
667
 
725
- function useHandleChannelEvents(_a, _b) {
726
- var sdkInit = _a.sdkInit,
727
- hasMoreNext = _a.hasMoreNext,
728
- currentUserId = _a.currentUserId,
729
- disableMarkAsRead = _a.disableMarkAsRead,
730
- currentGroupChannel = _a.currentGroupChannel;
731
- var sdk = _b.sdk,
732
- logger = _b.logger,
733
- scrollRef = _b.scrollRef,
734
- setQuoteMessage = _b.setQuoteMessage,
735
- messagesDispatcher = _b.messagesDispatcher;
736
- useEffect(function () {
737
- var _a;
738
-
739
- var channelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
740
- var channelHandlerId = uuidv4();
741
-
668
+ /**
669
+ * Handles ChannelEvents and send values to dispatcher using messagesDispatcher
670
+ * messagesDispatcher: Dispatcher
671
+ * sdk: sdkInstance
672
+ * logger: loggerInstance
673
+ * channelUrl: string
674
+ * sdkInit: bool
675
+ */
676
+
677
+ const DELIVERY_RECIPT = 'delivery_receipt';
678
+ function useHandleChannelEvents(_ref, _ref2) {
679
+ var _store$stores$sdkStor, _store$stores$sdkStor2, _store$stores$sdkStor3;
680
+ let {
681
+ sdkInit,
682
+ currentUserId,
683
+ currentGroupChannel,
684
+ disableMarkAsRead
685
+ } = _ref;
686
+ let {
687
+ sdk,
688
+ logger,
689
+ scrollRef,
690
+ setQuoteMessage,
691
+ messagesDispatcher
692
+ } = _ref2;
693
+ const store = useSendbirdStateContext();
694
+ const {
695
+ markAsReadScheduler,
696
+ markAsDeliveredScheduler,
697
+ disableMarkAsDelivered
698
+ } = store.config;
699
+ const canSetMarkAsDelivered = (_store$stores$sdkStor = store.stores.sdkStore.sdk) === null || _store$stores$sdkStor === void 0 ? void 0 : (_store$stores$sdkStor2 = _store$stores$sdkStor.appInfo) === null || _store$stores$sdkStor2 === void 0 ? void 0 : (_store$stores$sdkStor3 = _store$stores$sdkStor2.premiumFeatureList) === null || _store$stores$sdkStor3 === void 0 ? void 0 : _store$stores$sdkStor3.find(feature => feature === DELIVERY_RECIPT);
700
+ useEffect(() => {
701
+ const channelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
702
+ const channelHandlerId = uuidv4();
742
703
  if (channelUrl && sdkInit) {
743
- var channelHandler = {
744
- onMessageReceived: function (channel, message) {
745
- // Do not update when hasMoreNext
746
- if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl) && !hasMoreNext) {
747
- var scrollToEnd = false;
748
-
704
+ var _sdk$groupChannel;
705
+ const channelHandler = {
706
+ onMessageReceived: (channel, message) => {
707
+ if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
708
+ var _document$getElementB, _document$getElementB2;
709
+ let scrollToEnd = false;
749
710
  try {
750
- var current = scrollRef.current;
751
- scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight - 10; // 10 is a buffer
752
- } catch (error) {//
711
+ const {
712
+ current
713
+ } = scrollRef;
714
+ scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight - 10;
715
+ // 10 is a buffer
716
+ } catch (error) {
717
+ //
753
718
  }
754
-
755
719
  logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);
756
720
  messagesDispatcher({
757
721
  type: ON_MESSAGE_RECEIVED,
758
722
  payload: {
759
- channel: channel,
760
- message: message
723
+ channel,
724
+ message
761
725
  }
762
726
  });
763
-
764
- if (scrollToEnd) {
727
+ if (scrollToEnd && ((_document$getElementB = document.getElementById('sendbird-dropdown-portal')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.childElementCount) === 0 && ((_document$getElementB2 = document.getElementById('sendbird-emoji-list-portal')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.childElementCount) === 0) {
728
+ // and !openContextMenu
765
729
  try {
766
- setTimeout(function () {
767
- var _a;
768
-
769
- if (!disableMarkAsRead) {
770
- (_a = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.markAsRead) === null || _a === void 0 ? void 0 : _a.call(currentGroupChannel);
771
- }
772
-
730
+ setTimeout(() => {
773
731
  scrollIntoLast(0, scrollRef);
774
732
  });
733
+ if (!disableMarkAsRead) {
734
+ markAsReadScheduler.push(currentGroupChannel);
735
+ }
736
+ if (canSetMarkAsDelivered && !disableMarkAsDelivered) {
737
+ markAsDeliveredScheduler.push(currentGroupChannel);
738
+ }
775
739
  } catch (error) {
776
740
  logger.warning('Channel | onMessageReceived | scroll to end failed');
777
741
  }
778
742
  }
779
743
  }
780
744
  },
781
- onUnreadMemberStatusUpdated: function (channel) {
745
+ onUnreadMemberStatusUpdated: channel => {
782
746
  logger.info('Channel | useHandleChannelEvents: onUnreadMemberStatusUpdated', channel);
783
-
784
747
  if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
785
748
  messagesDispatcher({
786
749
  type: SET_CURRENT_CHANNEL,
@@ -789,7 +752,7 @@ function useHandleChannelEvents(_a, _b) {
789
752
  }
790
753
  },
791
754
  // before(onDeliveryReceiptUpdated)
792
- onUndeliveredMemberStatusUpdated: function (channel) {
755
+ onUndeliveredMemberStatusUpdated: channel => {
793
756
  if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
794
757
  logger.info('Channel | useHandleChannelEvents: onDeliveryReceiptUpdated', channel);
795
758
  messagesDispatcher({
@@ -798,33 +761,33 @@ function useHandleChannelEvents(_a, _b) {
798
761
  });
799
762
  }
800
763
  },
801
- onMessageUpdated: function (channel, message) {
764
+ onMessageUpdated: (channel, message) => {
802
765
  logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);
803
766
  messagesDispatcher({
804
767
  type: ON_MESSAGE_UPDATED,
805
768
  payload: {
806
- channel: channel,
807
- message: message
769
+ channel,
770
+ message
808
771
  }
809
772
  });
810
773
  },
811
- onThreadInfoUpdated: function (channel, threadInfoUpdateEvent) {
774
+ onThreadInfoUpdated: (channel, threadInfoUpdateEvent) => {
812
775
  logger.info('Channel | useHandleChannelEvents: onThreadInfoUpdated', {
813
- channel: channel,
814
- threadInfoUpdateEvent: threadInfoUpdateEvent
776
+ channel,
777
+ threadInfoUpdateEvent
815
778
  });
816
779
  messagesDispatcher({
817
780
  type: ON_MESSAGE_THREAD_INFO_UPDATED,
818
781
  payload: {
819
- channel: channel,
782
+ channel,
820
783
  event: threadInfoUpdateEvent
821
784
  }
822
785
  });
823
786
  },
824
- onMessageDeleted: function (channel, messageId) {
787
+ onMessageDeleted: (channel, messageId) => {
825
788
  logger.info('Channel | useHandleChannelEvents: onMessageDeleted', {
826
- channel: channel,
827
- messageId: messageId
789
+ channel,
790
+ messageId
828
791
  });
829
792
  setQuoteMessage(null);
830
793
  messagesDispatcher({
@@ -832,17 +795,17 @@ function useHandleChannelEvents(_a, _b) {
832
795
  payload: messageId
833
796
  });
834
797
  },
835
- onReactionUpdated: function (channel, reactionEvent) {
798
+ onReactionUpdated: (channel, reactionEvent) => {
836
799
  logger.info('Channel | useHandleChannelEvents: onReactionUpdated', {
837
- channel: channel,
838
- reactionEvent: reactionEvent
800
+ channel,
801
+ reactionEvent
839
802
  });
840
803
  messagesDispatcher({
841
804
  type: ON_REACTION_UPDATED,
842
805
  payload: reactionEvent
843
806
  });
844
807
  },
845
- onChannelChanged: function (channel) {
808
+ onChannelChanged: channel => {
846
809
  if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
847
810
  logger.info('Channel | useHandleChannelEvents: onChannelChanged', channel);
848
811
  messagesDispatcher({
@@ -851,7 +814,7 @@ function useHandleChannelEvents(_a, _b) {
851
814
  });
852
815
  }
853
816
  },
854
- onChannelFrozen: function (channel) {
817
+ onChannelFrozen: channel => {
855
818
  if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
856
819
  logger.info('Channel | useHandleChannelEvents: onChannelFrozen', channel);
857
820
  messagesDispatcher({
@@ -860,7 +823,7 @@ function useHandleChannelEvents(_a, _b) {
860
823
  });
861
824
  }
862
825
  },
863
- onChannelUnfrozen: function (channel) {
826
+ onChannelUnfrozen: channel => {
864
827
  if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
865
828
  logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', channel);
866
829
  messagesDispatcher({
@@ -869,11 +832,11 @@ function useHandleChannelEvents(_a, _b) {
869
832
  });
870
833
  }
871
834
  },
872
- onUserMuted: function (channel, user) {
835
+ onUserMuted: (channel, user) => {
873
836
  if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
874
837
  logger.info('Channel | useHandleChannelEvents: onUserMuted', {
875
- channel: channel,
876
- user: user
838
+ channel,
839
+ user
877
840
  });
878
841
  messagesDispatcher({
879
842
  type: SET_CURRENT_CHANNEL,
@@ -881,11 +844,11 @@ function useHandleChannelEvents(_a, _b) {
881
844
  });
882
845
  }
883
846
  },
884
- onUserUnmuted: function (channel, user) {
847
+ onUserUnmuted: (channel, user) => {
885
848
  if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
886
849
  logger.info('Channel | useHandleChannelEvents: onUserUnmuted', {
887
- channel: channel,
888
- user: user
850
+ channel,
851
+ user
889
852
  });
890
853
  messagesDispatcher({
891
854
  type: SET_CURRENT_CHANNEL,
@@ -893,13 +856,12 @@ function useHandleChannelEvents(_a, _b) {
893
856
  });
894
857
  }
895
858
  },
896
- onUserBanned: function (channel, user) {
897
- var _a;
898
-
899
- if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl) && (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)) {
859
+ onUserBanned: (channel, user) => {
860
+ var _sdk$currentUser;
861
+ if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl) && (user === null || user === void 0 ? void 0 : user.userId) === (sdk === null || sdk === void 0 ? void 0 : (_sdk$currentUser = sdk.currentUser) === null || _sdk$currentUser === void 0 ? void 0 : _sdk$currentUser.userId)) {
900
862
  logger.info('Channel | useHandleChannelEvents: onUserBanned', {
901
- channel: channel,
902
- user: user
863
+ channel,
864
+ user
903
865
  });
904
866
  messagesDispatcher({
905
867
  type: SET_CURRENT_CHANNEL,
@@ -907,11 +869,11 @@ function useHandleChannelEvents(_a, _b) {
907
869
  });
908
870
  }
909
871
  },
910
- onOperatorUpdated: function (channel, users) {
872
+ onOperatorUpdated: (channel, users) => {
911
873
  if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
912
874
  logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', {
913
- channel: channel,
914
- users: users
875
+ channel,
876
+ users
915
877
  });
916
878
  messagesDispatcher({
917
879
  type: SET_CURRENT_CHANNEL,
@@ -919,13 +881,12 @@ function useHandleChannelEvents(_a, _b) {
919
881
  });
920
882
  }
921
883
  },
922
- onUserLeft: function (channel, user) {
884
+ onUserLeft: (channel, user) => {
923
885
  if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
924
886
  logger.info('Channel | useHandleChannelEvents: onUserLeft', {
925
- channel: channel,
926
- user: user
887
+ channel,
888
+ user
927
889
  });
928
-
929
890
  if ((user === null || user === void 0 ? void 0 : user.userId) === currentUserId) {
930
891
  messagesDispatcher({
931
892
  type: SET_CURRENT_CHANNEL,
@@ -936,20 +897,18 @@ function useHandleChannelEvents(_a, _b) {
936
897
  }
937
898
  };
938
899
  logger.info('Channel | useHandleChannelEvents: Setup event handler', {
939
- channelHandlerId: channelHandlerId,
940
- channelHandler: channelHandler
941
- }); // Add this group channel handler to the Sendbird chat instance
942
-
943
- (_a = sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.addGroupChannelHandler(channelHandlerId, new GroupChannelHandler(channelHandler));
900
+ channelHandlerId,
901
+ channelHandler
902
+ });
903
+ // Add this group channel handler to the Sendbird chat instance
904
+ (_sdk$groupChannel = sdk.groupChannel) === null || _sdk$groupChannel === void 0 ? void 0 : _sdk$groupChannel.addGroupChannelHandler(channelHandlerId, new GroupChannelHandler(channelHandler));
944
905
  }
945
-
946
- return function () {
947
- var _a;
948
-
949
- if ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.removeGroupChannelHandler) {
906
+ return () => {
907
+ var _sdk$groupChannel2;
908
+ if (sdk !== null && sdk !== void 0 && (_sdk$groupChannel2 = sdk.groupChannel) !== null && _sdk$groupChannel2 !== void 0 && _sdk$groupChannel2.removeGroupChannelHandler) {
950
909
  logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', channelHandlerId);
951
910
  sdk.groupChannel.removeGroupChannelHandler(channelHandlerId);
952
- } else if (sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) {
911
+ } else if (sdk !== null && sdk !== void 0 && sdk.groupChannel) {
953
912
  logger.error('Channel | useHandleChannelEvents: Not found the removeGroupChannelHandler');
954
913
  }
955
914
  };
@@ -965,7 +924,8 @@ function useSetChannel(_ref, _ref2) {
965
924
  let {
966
925
  messagesDispatcher,
967
926
  sdk,
968
- logger
927
+ logger,
928
+ markAsReadScheduler
969
929
  } = _ref2;
970
930
  useEffect(() => {
971
931
  if (channelUrl && sdkInit && sdk && sdk.groupChannel) {
@@ -977,13 +937,8 @@ function useSetChannel(_ref, _ref2) {
977
937
  payload: groupChannel
978
938
  });
979
939
  logger.info('Channel: Mark as read', groupChannel);
980
-
981
940
  if (!disableMarkAsRead) {
982
- // this order is important - this mark as read should update the event handler up above
983
- try {
984
- groupChannel.markAsRead();
985
- } catch (_unused) {//
986
- }
941
+ markAsReadScheduler.push(groupChannel);
987
942
  }
988
943
  }).catch(e => {
989
944
  logger.warning('Channel | useSetChannel fetch channel failed', {
@@ -1027,30 +982,25 @@ function useInitialMessagesFetch(_ref, _ref2) {
1027
982
  type: RESET_MESSAGES,
1028
983
  payload: null
1029
984
  });
1030
-
1031
985
  if (currentGroupChannel && currentGroupChannel !== null && currentGroupChannel !== void 0 && currentGroupChannel.getMessagesByTimestamp) {
1032
986
  const messageListParams = {};
1033
987
  messageListParams.prevResultSize = PREV_RESULT_SIZE;
1034
-
1035
988
  if (initialTimeStamp) {
1036
989
  messageListParams.nextResultSize = NEXT_RESULT_SIZE;
1037
990
  }
1038
-
1039
991
  messageListParams.isInclusive = true;
1040
992
  messageListParams.includeReactions = true;
1041
-
993
+ messageListParams.includeMetaArray = true;
1042
994
  if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {
1043
995
  messageListParams.includeThreadInfo = true;
1044
996
  messageListParams.includeParentMessageInfo = true;
1045
997
  messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
1046
998
  }
1047
-
1048
999
  if (userFilledMessageListQuery) {
1049
1000
  Object.keys(userFilledMessageListQuery).forEach(key => {
1050
1001
  messageListParams[key] = userFilledMessageListQuery[key];
1051
1002
  });
1052
1003
  }
1053
-
1054
1004
  if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') || userFilledMessageListQuery) {
1055
1005
  logger.info('Channel useInitialMessagesFetch: Setup messageListParams', messageListParams);
1056
1006
  messagesDispatcher({
@@ -1058,7 +1008,6 @@ function useInitialMessagesFetch(_ref, _ref2) {
1058
1008
  payload: messageListParams
1059
1009
  });
1060
1010
  }
1061
-
1062
1011
  logger.info('Channel: Fetching messages', {
1063
1012
  currentGroupChannel,
1064
1013
  userFilledMessageListQuery
@@ -1086,6 +1035,10 @@ function useInitialMessagesFetch(_ref, _ref2) {
1086
1035
  }).finally(() => {
1087
1036
  if (!initialTimeStamp) {
1088
1037
  setTimeout(() => scrollIntoLast(0, scrollRef));
1038
+ } else {
1039
+ setTimeout(() => {
1040
+ scrollToRenderedMessage(scrollRef, initialTimeStamp);
1041
+ }, 500);
1089
1042
  }
1090
1043
  });
1091
1044
  }
@@ -1100,82 +1053,75 @@ function useInitialMessagesFetch(_ref, _ref2) {
1100
1053
  */
1101
1054
  }
1102
1055
 
1103
- function useHandleReconnect(_a, _b) {
1104
- var isOnline = _a.isOnline,
1105
- replyType = _a.replyType,
1106
- disableMarkAsRead = _a.disableMarkAsRead;
1107
- var logger = _b.logger,
1108
- sdk = _b.sdk,
1109
- scrollRef = _b.scrollRef,
1110
- currentGroupChannel = _b.currentGroupChannel,
1111
- messagesDispatcher = _b.messagesDispatcher,
1112
- userFilledMessageListQuery = _b.userFilledMessageListQuery;
1113
- useEffect(function () {
1114
- var wasOffline = !isOnline;
1115
- return function () {
1116
- var _a, _b; // state changed from offline to online
1117
-
1118
-
1119
- if (wasOffline && (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url)) {
1056
+ function useHandleReconnect(_ref, _ref2) {
1057
+ let {
1058
+ isOnline,
1059
+ replyType,
1060
+ disableMarkAsRead
1061
+ } = _ref;
1062
+ let {
1063
+ logger,
1064
+ sdk,
1065
+ scrollRef,
1066
+ currentGroupChannel,
1067
+ messagesDispatcher,
1068
+ markAsReadScheduler,
1069
+ userFilledMessageListQuery
1070
+ } = _ref2;
1071
+ useEffect(() => {
1072
+ const wasOffline = !isOnline;
1073
+ return () => {
1074
+ // state changed from offline to online
1075
+ if (wasOffline && currentGroupChannel !== null && currentGroupChannel !== void 0 && currentGroupChannel.url) {
1076
+ var _sdk$appInfo, _sdk$groupChannel;
1120
1077
  logger.info('Refreshing conversation state');
1121
- var isReactionEnabled = ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.appInfo) === null || _a === void 0 ? void 0 : _a.useReaction) || false;
1122
- var messageListParams_1 = {
1078
+ const isReactionEnabled = (sdk === null || sdk === void 0 ? void 0 : (_sdk$appInfo = sdk.appInfo) === null || _sdk$appInfo === void 0 ? void 0 : _sdk$appInfo.useReaction) || false;
1079
+ const messageListParams = {
1123
1080
  prevResultSize: PREV_RESULT_SIZE,
1124
1081
  isInclusive: true,
1125
1082
  includeReactions: isReactionEnabled,
1126
1083
  nextResultSize: NEXT_RESULT_SIZE
1127
1084
  };
1128
-
1129
1085
  if (replyType && replyType === 'QUOTE_REPLY') {
1130
- messageListParams_1.includeThreadInfo = true;
1131
- messageListParams_1.includeParentMessageInfo = true;
1132
- messageListParams_1.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
1086
+ messageListParams.includeThreadInfo = true;
1087
+ messageListParams.includeParentMessageInfo = true;
1088
+ messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
1133
1089
  }
1134
-
1135
1090
  if (userFilledMessageListQuery) {
1136
- Object.keys(userFilledMessageListQuery).forEach(function (key) {
1137
- messageListParams_1[key] = userFilledMessageListQuery[key];
1091
+ Object.keys(userFilledMessageListQuery).forEach(key => {
1092
+ messageListParams[key] = userFilledMessageListQuery[key];
1138
1093
  });
1139
1094
  }
1140
-
1141
1095
  logger.info('Channel: Fetching messages', {
1142
- currentGroupChannel: currentGroupChannel,
1143
- userFilledMessageListQuery: userFilledMessageListQuery
1096
+ currentGroupChannel,
1097
+ userFilledMessageListQuery
1144
1098
  });
1145
1099
  messagesDispatcher({
1146
1100
  type: FETCH_INITIAL_MESSAGES_START,
1147
1101
  payload: null
1148
1102
  });
1149
- (_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) {
1150
- var _a;
1151
-
1152
- var lastMessageTime = new Date().getTime();
1153
- groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams_1).then(function (messages) {
1103
+ sdk === null || sdk === void 0 ? void 0 : (_sdk$groupChannel = sdk.groupChannel) === null || _sdk$groupChannel === void 0 ? void 0 : _sdk$groupChannel.getChannel(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url).then(groupChannel => {
1104
+ const lastMessageTime = new Date().getTime();
1105
+ groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams).then(messages => {
1154
1106
  messagesDispatcher({
1155
1107
  type: FETCH_INITIAL_MESSAGES_SUCCESS,
1156
1108
  payload: {
1157
- currentGroupChannel: currentGroupChannel,
1158
- messages: messages
1109
+ currentGroupChannel,
1110
+ messages
1159
1111
  }
1160
1112
  });
1161
- setTimeout(function () {
1162
- return scrollIntoLast(0, scrollRef);
1163
- });
1164
- }).catch(function (error) {
1113
+ setTimeout(() => scrollIntoLast(0, scrollRef));
1114
+ }).catch(error => {
1165
1115
  logger.error('Channel: Fetching messages failed', error);
1166
1116
  messagesDispatcher({
1167
1117
  type: FETCH_INITIAL_MESSAGES_FAILURE,
1168
1118
  payload: {
1169
- currentGroupChannel: currentGroupChannel
1119
+ currentGroupChannel
1170
1120
  }
1171
1121
  });
1172
1122
  });
1173
-
1174
1123
  if (!disableMarkAsRead) {
1175
- try {
1176
- (_a = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.markAsRead) === null || _a === void 0 ? void 0 : _a.call(currentGroupChannel);
1177
- } catch (_b) {//
1178
- }
1124
+ markAsReadScheduler.push(currentGroupChannel);
1179
1125
  }
1180
1126
  });
1181
1127
  }
@@ -1200,7 +1146,6 @@ function useScrollCallback(_ref, _ref2) {
1200
1146
  if (!hasMorePrev) {
1201
1147
  return;
1202
1148
  }
1203
-
1204
1149
  const {
1205
1150
  appInfo = {}
1206
1151
  } = sdk;
@@ -1210,19 +1155,17 @@ function useScrollCallback(_ref, _ref2) {
1210
1155
  isInclusive: true,
1211
1156
  includeReactions: isReactionEnabled
1212
1157
  };
1213
-
1158
+ messageListParams.includeMetaArray = true;
1214
1159
  if (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') {
1215
1160
  messageListParams.includeThreadInfo = true;
1216
1161
  messageListParams.includeParentMessageInfo = true;
1217
1162
  messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
1218
1163
  }
1219
-
1220
1164
  if (userFilledMessageListQuery) {
1221
1165
  Object.keys(userFilledMessageListQuery).forEach(key => {
1222
1166
  messageListParams[key] = userFilledMessageListQuery[key];
1223
1167
  });
1224
1168
  }
1225
-
1226
1169
  logger.info('Channel: Fetching messages', {
1227
1170
  currentGroupChannel,
1228
1171
  userFilledMessageListQuery
@@ -1266,7 +1209,6 @@ function useScrollDownCallback(_ref, _ref2) {
1266
1209
  if (!hasMoreNext) {
1267
1210
  return;
1268
1211
  }
1269
-
1270
1212
  const {
1271
1213
  appInfo = {}
1272
1214
  } = sdk;
@@ -1276,19 +1218,17 @@ function useScrollDownCallback(_ref, _ref2) {
1276
1218
  isInclusive: true,
1277
1219
  includeReactions: isReactionEnabled
1278
1220
  };
1279
-
1221
+ messageListParams.includeMetaArray = true;
1280
1222
  if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {
1281
1223
  messageListParams.includeThreadInfo = true;
1282
1224
  messageListParams.includeParentMessageInfo = true;
1283
1225
  messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
1284
1226
  }
1285
-
1286
1227
  if (userFilledMessageListQuery) {
1287
1228
  Object.keys(userFilledMessageListQuery).forEach(key => {
1288
1229
  messageListParams[key] = userFilledMessageListQuery[key];
1289
1230
  });
1290
1231
  }
1291
-
1292
1232
  logger.info('Channel: Fetching later messages', {
1293
1233
  currentGroupChannel,
1294
1234
  userFilledMessageListQuery
@@ -1329,8 +1269,8 @@ function useDeleteMessageCallback(_ref, _ref2) {
1329
1269
  requestState
1330
1270
  } = message;
1331
1271
  return new Promise((resolve, reject) => {
1332
- logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState); // Message is only on local
1333
-
1272
+ logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);
1273
+ // Message is only on local
1334
1274
  if (requestState === 'failed' || requestState === 'pending') {
1335
1275
  logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);
1336
1276
  messagesDispatcher({
@@ -1339,7 +1279,6 @@ function useDeleteMessageCallback(_ref, _ref2) {
1339
1279
  });
1340
1280
  resolve(message);
1341
1281
  }
1342
-
1343
1282
  logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);
1344
1283
  currentGroupChannel.deleteMessage(message).then(() => {
1345
1284
  logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);
@@ -1374,37 +1313,29 @@ function useUpdateMessageCallback(_ref, _ref2) {
1374
1313
  mentionedUsers,
1375
1314
  mentionTemplate
1376
1315
  } = props;
1377
-
1378
1316
  const createParamsDefault = () => {
1379
1317
  const params = {};
1380
1318
  params.message = message;
1381
-
1382
1319
  if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
1383
1320
  params.mentionedUsers = mentionedUsers;
1384
1321
  }
1385
-
1386
1322
  if (isMentionEnabled && mentionTemplate) {
1387
1323
  params.mentionedMessageTemplate = mentionTemplate;
1388
1324
  } else {
1389
1325
  params.mentionedMessageTemplate = message;
1390
1326
  }
1391
-
1392
1327
  return params;
1393
1328
  };
1394
-
1395
1329
  const createCustomPrams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function';
1396
-
1397
1330
  if (createCustomPrams) {
1398
1331
  logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);
1399
1332
  }
1400
-
1401
1333
  const params = onBeforeUpdateUserMessage ? onBeforeUpdateUserMessage(message) : createParamsDefault();
1402
1334
  logger.info('Channel: Updating message!', params);
1403
1335
  currentGroupChannel.updateUserMessage(messageId, params).then((msg, err) => {
1404
1336
  if (callback) {
1405
1337
  callback(err, msg);
1406
1338
  }
1407
-
1408
1339
  logger.info('Channel: Updating message success!', msg);
1409
1340
  messagesDispatcher({
1410
1341
  type: ON_MESSAGE_UPDATED,
@@ -1413,7 +1344,7 @@ function useUpdateMessageCallback(_ref, _ref2) {
1413
1344
  message: msg
1414
1345
  }
1415
1346
  });
1416
- pubSub.publish(UPDATE_USER_MESSAGE, {
1347
+ pubSub.publish(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, {
1417
1348
  message: msg,
1418
1349
  channel: currentGroupChannel
1419
1350
  });
@@ -1435,18 +1366,18 @@ function useResendMessageCallback(_ref, _ref2) {
1435
1366
  messageType,
1436
1367
  file
1437
1368
  } = failedMessage;
1438
-
1439
1369
  if (failedMessage !== null && failedMessage !== void 0 && failedMessage.isResendable) {
1440
1370
  // Move the logic setting sendingStatus to pending into the reducer
1441
1371
  // eslint-disable-next-line no-param-reassign
1442
- failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
1443
-
1372
+ failedMessage.requestState = 'pending';
1373
+ // eslint-disable-next-line no-param-reassign
1444
1374
  failedMessage.sendingStatus = 'pending';
1445
1375
  messagesDispatcher({
1446
1376
  type: RESEND_MESSAGEGE_START,
1447
1377
  payload: failedMessage
1448
- }); // userMessage
1378
+ });
1449
1379
 
1380
+ // userMessage
1450
1381
  if (messageType === 'user') {
1451
1382
  currentGroupChannel.resendUserMessage(failedMessage).then(message => {
1452
1383
  logger.info('Channel: Resending message success!', message);
@@ -1455,19 +1386,20 @@ function useResendMessageCallback(_ref, _ref2) {
1455
1386
  payload: message
1456
1387
  });
1457
1388
  }).catch(e => {
1458
- logger.warning('Channel: Resending message failed!', e); // eslint-disable-next-line no-param-reassign
1459
-
1460
- failedMessage.requestState = 'failed'; // eslint-disable-next-line no-param-reassign
1461
-
1389
+ logger.warning('Channel: Resending message failed!', e);
1390
+ // eslint-disable-next-line no-param-reassign
1391
+ failedMessage.requestState = 'failed';
1392
+ // eslint-disable-next-line no-param-reassign
1462
1393
  failedMessage.sendingStatus = 'failed';
1463
1394
  messagesDispatcher({
1464
1395
  type: SEND_MESSAGEGE_FAILURE,
1465
1396
  payload: failedMessage
1466
1397
  });
1467
- }); // eslint-disable-next-line no-param-reassign
1468
-
1469
- failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
1398
+ });
1470
1399
 
1400
+ // eslint-disable-next-line no-param-reassign
1401
+ failedMessage.requestState = 'pending';
1402
+ // eslint-disable-next-line no-param-reassign
1471
1403
  failedMessage.sendingStatus = 'pending';
1472
1404
  messagesDispatcher({
1473
1405
  type: RESEND_MESSAGEGE_START,
@@ -1475,7 +1407,6 @@ function useResendMessageCallback(_ref, _ref2) {
1475
1407
  });
1476
1408
  return;
1477
1409
  }
1478
-
1479
1410
  if (messageType === 'file') {
1480
1411
  currentGroupChannel.resendFileMessage(failedMessage, file).then(message => {
1481
1412
  logger.info('Channel: Resending file message success!', message);
@@ -1484,19 +1415,20 @@ function useResendMessageCallback(_ref, _ref2) {
1484
1415
  payload: message
1485
1416
  });
1486
1417
  }).catch(e => {
1487
- logger.warning('Channel: Resending file message failed!', e); // eslint-disable-next-line no-param-reassign
1488
-
1489
- failedMessage.requestState = 'failed'; // eslint-disable-next-line no-param-reassign
1490
-
1418
+ logger.warning('Channel: Resending file message failed!', e);
1419
+ // eslint-disable-next-line no-param-reassign
1420
+ failedMessage.requestState = 'failed';
1421
+ // eslint-disable-next-line no-param-reassign
1491
1422
  failedMessage.sendingStatus = 'failed';
1492
1423
  messagesDispatcher({
1493
1424
  type: SEND_MESSAGEGE_FAILURE,
1494
1425
  payload: failedMessage
1495
1426
  });
1496
- }); // eslint-disable-next-line no-param-reassign
1497
-
1498
- failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
1427
+ });
1499
1428
 
1429
+ // eslint-disable-next-line no-param-reassign
1430
+ failedMessage.requestState = 'pending';
1431
+ // eslint-disable-next-line no-param-reassign
1500
1432
  failedMessage.sendingStatus = 'pending';
1501
1433
  messagesDispatcher({
1502
1434
  type: RESEND_MESSAGEGE_START,
@@ -1533,39 +1465,32 @@ function useSendMessageCallback(_ref, _ref2) {
1533
1465
  // mentionedUserIds,
1534
1466
  mentionedUsers
1535
1467
  } = props;
1536
-
1537
1468
  const createParamsDefault = () => {
1538
1469
  const params = {};
1539
- params.message = (message === null || message === void 0 ? void 0 : message.trim()) || message; // if (isMentionEnabled && mentionedUserIds?.length > 0) {
1540
-
1470
+ params.message = message;
1471
+ // if (isMentionEnabled && mentionedUserIds?.length > 0) {
1541
1472
  if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
1542
1473
  // params.mentionedUserIds = mentionedUserIds;
1543
1474
  params.mentionedUsers = mentionedUsers;
1544
- } // if (isMentionEnabled && mentionTemplate && mentionedUserIds?.length > 0) {
1545
-
1546
-
1475
+ }
1476
+ // if (isMentionEnabled && mentionTemplate && mentionedUserIds?.length > 0) {
1547
1477
  if (isMentionEnabled && mentionTemplate && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
1548
- params.mentionedMessageTemplate = (mentionTemplate === null || mentionTemplate === void 0 ? void 0 : mentionTemplate.trim()) || mentionTemplate;
1478
+ params.mentionedMessageTemplate = mentionTemplate;
1549
1479
  }
1550
-
1551
1480
  if (quoteMessage) {
1552
1481
  params.isReplyToChannel = true;
1553
1482
  params.parentMessageId = quoteMessage.messageId;
1554
1483
  }
1555
-
1556
1484
  return params;
1557
1485
  };
1558
-
1559
1486
  const createCustomPrams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';
1560
-
1561
1487
  if (createCustomPrams) {
1562
1488
  logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);
1563
1489
  }
1564
-
1565
1490
  const params = onBeforeSendUserMessage ? onBeforeSendUserMessage(message, quoteMessage) : createParamsDefault();
1566
1491
  logger.info('Channel: Sending message has started', params);
1567
1492
  currentGroupChannel.sendUserMessage(params).onPending(pendingMsg => {
1568
- pubSub.publish(SEND_MESSAGE_START, {
1493
+ pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
1569
1494
  /* pubSub is used instead of messagesDispatcher
1570
1495
  to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
1571
1496
  message: pendingMsg,
@@ -1613,44 +1538,39 @@ function useSendFileMessageCallback(_ref, _ref2) {
1613
1538
  } = imageCompression;
1614
1539
  const createCustomParams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function';
1615
1540
  const compressibleFileType = file.type === 'image/jpg' || file.type === 'image/png' || file.type === 'image/jpeg';
1616
- const compressibleRatio = compressionRate > 0 && compressionRate < 1; // pxToNumber returns null if values are invalid
1617
-
1541
+ const compressibleRatio = compressionRate > 0 && compressionRate < 1;
1542
+ // pxToNumber returns null if values are invalid
1618
1543
  const compressibleDiamensions = pxToNumber(resizingWidth) || pxToNumber(resizingHeight);
1619
1544
  const canCompressImage = compressibleFileType && (compressibleRatio || compressibleDiamensions);
1620
-
1621
1545
  const createParamsDefault = file_ => {
1622
1546
  const params = {};
1623
1547
  params.file = file_;
1624
-
1625
1548
  if (quoteMessage) {
1626
1549
  params.isReplyToChannel = true;
1627
1550
  params.parentMessageId = quoteMessage.messageId;
1628
1551
  }
1629
-
1630
1552
  return params;
1631
1553
  };
1632
-
1633
1554
  if (canCompressImage) {
1634
1555
  // Using image compression
1635
1556
  try {
1636
1557
  const image = document.createElement('img');
1637
1558
  image.src = URL.createObjectURL(file);
1638
-
1639
1559
  image.onload = () => {
1640
1560
  URL.revokeObjectURL(image.src);
1641
1561
  const canvas = document.createElement('canvas');
1642
1562
  const imageWdith = image.naturalWidth || image.width;
1643
1563
  const imageHeight = image.naturalHeight || image.height;
1644
1564
  let targetWidth = pxToNumber(resizingWidth) || imageWdith;
1645
- let targetHeight = pxToNumber(resizingHeight) || imageHeight; // In canvas.toBlob(callback, mimeType, qualityArgument)
1565
+ let targetHeight = pxToNumber(resizingHeight) || imageHeight;
1566
+
1567
+ // In canvas.toBlob(callback, mimeType, qualityArgument)
1646
1568
  // qualityArgument doesnt work
1647
1569
  // so in case compressibleDiamensions are not present, we use ratio
1648
-
1649
1570
  if (file.type === 'image/png' && !compressibleDiamensions) {
1650
1571
  targetWidth *= compressionRate;
1651
1572
  targetHeight *= compressionRate;
1652
1573
  }
1653
-
1654
1574
  canvas.width = targetWidth;
1655
1575
  canvas.height = targetHeight;
1656
1576
  const context = canvas.getContext('2d');
@@ -1659,15 +1579,13 @@ function useSendFileMessageCallback(_ref, _ref2) {
1659
1579
  const compressedFile = new File([newImageBlob], file.name, {
1660
1580
  type: file.type
1661
1581
  });
1662
-
1663
1582
  if (createCustomParams) {
1664
1583
  logger.info('Channel: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
1665
1584
  }
1666
-
1667
1585
  const params = createCustomParams ? onBeforeSendFileMessage(compressedFile, quoteMessage) : createParamsDefault(compressedFile);
1668
1586
  logger.info('Channel: Uploading file message start!', params);
1669
1587
  currentGroupChannel.sendFileMessage(params).onPending(pendingMessage => {
1670
- pubSub.publish(SEND_MESSAGE_START, {
1588
+ pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
1671
1589
  /* pubSub is used instead of messagesDispatcher
1672
1590
  to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
1673
1591
  message: _objectSpread2(_objectSpread2({}, pendingMessage), {}, {
@@ -1682,10 +1600,10 @@ function useSendFileMessageCallback(_ref, _ref2) {
1682
1600
  logger.error('Channel: Sending file message failed!', {
1683
1601
  failedMessage,
1684
1602
  err
1685
- }); // eslint-disable-next-line no-param-reassign
1686
-
1687
- failedMessage.localUrl = URL.createObjectURL(compressedFile); // eslint-disable-next-line no-param-reassign
1688
-
1603
+ });
1604
+ // eslint-disable-next-line no-param-reassign
1605
+ failedMessage.localUrl = URL.createObjectURL(compressedFile);
1606
+ // eslint-disable-next-line no-param-reassign
1689
1607
  failedMessage.file = compressedFile;
1690
1608
  messagesDispatcher({
1691
1609
  type: SEND_MESSAGEGE_FAILURE,
@@ -1708,11 +1626,10 @@ function useSendFileMessageCallback(_ref, _ref2) {
1708
1626
  if (createCustomParams) {
1709
1627
  logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
1710
1628
  }
1711
-
1712
1629
  const params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file, quoteMessage) : createParamsDefault(file);
1713
1630
  logger.info('Channel: Uploading file message start!', params);
1714
1631
  currentGroupChannel.sendFileMessage(params).onPending(pendingMsg => {
1715
- pubSub.publish(SEND_MESSAGE_START, {
1632
+ pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
1716
1633
  /* pubSub is used instead of messagesDispatcher
1717
1634
  to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
1718
1635
  message: _objectSpread2(_objectSpread2({}, pendingMsg), {}, {
@@ -1727,10 +1644,10 @@ function useSendFileMessageCallback(_ref, _ref2) {
1727
1644
  logger.error('Channel: Sending file message failed!', {
1728
1645
  message,
1729
1646
  error
1730
- }); // eslint-disable-next-line no-param-reassign
1731
-
1732
- message.localUrl = URL.createObjectURL(file); // eslint-disable-next-line no-param-reassign
1733
-
1647
+ });
1648
+ // eslint-disable-next-line no-param-reassign
1649
+ message.localUrl = URL.createObjectURL(file);
1650
+ // eslint-disable-next-line no-param-reassign
1734
1651
  message.file = file;
1735
1652
  messagesDispatcher({
1736
1653
  type: SEND_MESSAGEGE_FAILURE,
@@ -1748,64 +1665,6 @@ function useSendFileMessageCallback(_ref, _ref2) {
1748
1665
  return [sendMessage];
1749
1666
  }
1750
1667
 
1751
- function useMemoizedEmojiListItems(_ref, _ref2) {
1752
- let {
1753
- emojiContainer,
1754
- toggleReaction
1755
- } = _ref;
1756
- let {
1757
- isReactionEnabled,
1758
- logger,
1759
- userId,
1760
- emojiAllList
1761
- } = _ref2;
1762
-
1763
- /* eslint-disable react/prop-types */
1764
- return useMemo(() => _ref3 => {
1765
- let {
1766
- parentRef,
1767
- parentContainRef,
1768
- message,
1769
- closeDropdown,
1770
- spaceFromTrigger = {}
1771
- } = _ref3;
1772
-
1773
- if (!isReactionEnabled || !(parentRef || parentContainRef || message || closeDropdown)) {
1774
- logger.warning('Channel: Invalid Params in memoizedEmojiListItems');
1775
- return null;
1776
- }
1777
-
1778
- return /*#__PURE__*/React__default.createElement(EmojiListItems, {
1779
- parentRef: parentRef,
1780
- parentContainRef: parentContainRef,
1781
- closeDropdown: closeDropdown,
1782
- spaceFromTrigger: spaceFromTrigger
1783
- }, emojiAllList.map(emoji => {
1784
- const reactedReaction = message.reactions.filter(reaction => reaction.key === emoji.key)[0];
1785
- const isReacted = reactedReaction ? !(reactedReaction.userIds.indexOf(userId) < 0) : false;
1786
- return /*#__PURE__*/React__default.createElement(ReactionButton, {
1787
- key: emoji.key,
1788
- width: "36px",
1789
- height: "36px",
1790
- selected: isReacted,
1791
- onClick: () => {
1792
- closeDropdown();
1793
- toggleReaction(message, emoji.key, isReacted);
1794
- }
1795
- }, /*#__PURE__*/React__default.createElement(ImageRenderer, {
1796
- url: emoji.url,
1797
- width: "28px",
1798
- height: "28px",
1799
- defaultComponent: /*#__PURE__*/React__default.createElement(Icon, {
1800
- width: "28px",
1801
- height: "28px",
1802
- type: IconTypes.QUESTION
1803
- })
1804
- }));
1805
- }));
1806
- }, [emojiContainer, toggleReaction]);
1807
- }
1808
-
1809
1668
  function useToggleReactionCallback(_ref, _ref2) {
1810
1669
  let {
1811
1670
  currentGroupChannel
@@ -1822,7 +1681,6 @@ function useToggleReactionCallback(_ref, _ref2) {
1822
1681
  });
1823
1682
  return;
1824
1683
  }
1825
-
1826
1684
  currentGroupChannel.addReaction(message, key).then(res => {
1827
1685
  logger.info('Add reaction success', res);
1828
1686
  }).catch(err => {
@@ -1831,374 +1689,450 @@ function useToggleReactionCallback(_ref, _ref2) {
1831
1689
  }, [currentGroupChannel]);
1832
1690
  }
1833
1691
 
1834
- function useScrollToMessage(_a, _b) {
1835
- var setInitialTimeStamp = _a.setInitialTimeStamp,
1836
- setAnimatedMessageId = _a.setAnimatedMessageId,
1837
- allMessages = _a.allMessages;
1838
- var logger = _b.logger;
1839
- return useCallback(function (createdAt, messageId) {
1840
- var isPresent = allMessages.find(function (m) {
1841
- return m.messageId === messageId;
1842
- });
1692
+ // To prevent multiple clicks on the message in the channel while scrolling
1693
+ function deactivateClick(scrollRef) {
1694
+ const element = scrollRef.current;
1695
+ const parentNode = element === null || element === void 0 ? void 0 : element.parentNode;
1696
+ if (element && parentNode) {
1697
+ element.style.pointerEvents = 'none';
1698
+ parentNode.style.cursor = 'wait';
1699
+ }
1700
+ }
1701
+ function activateClick(scrollRef) {
1702
+ const element = scrollRef.current;
1703
+ const parentNode = element === null || element === void 0 ? void 0 : element.parentNode;
1704
+ if (element && parentNode) {
1705
+ element.style.pointerEvents = 'auto';
1706
+ parentNode.style.cursor = 'auto';
1707
+ }
1708
+ }
1709
+ function useScrollToMessage(_ref, _ref2) {
1710
+ let {
1711
+ setInitialTimeStamp,
1712
+ setAnimatedMessageId,
1713
+ allMessages,
1714
+ scrollRef
1715
+ } = _ref;
1716
+ let {
1717
+ logger
1718
+ } = _ref2;
1719
+ return useCallback((createdAt, messageId) => {
1720
+ const isPresent = allMessages.find(m => m.messageId === messageId);
1843
1721
  setAnimatedMessageId(null);
1844
- setTimeout(function () {
1845
- if (isPresent) {
1846
- logger.info('Channel: scroll to message - message is present');
1847
- setAnimatedMessageId(messageId);
1848
- } else {
1849
- logger.info('Channel: scroll to message - fetching older messages');
1850
- setInitialTimeStamp(null);
1851
- setInitialTimeStamp(createdAt);
1852
- setAnimatedMessageId(messageId);
1722
+ setTimeout(() => {
1723
+ try {
1724
+ logger.info('Channel: scroll to message - disabling mouse events');
1725
+ deactivateClick(scrollRef);
1726
+ if (isPresent) {
1727
+ logger.info('Channel: scroll to message - message is present');
1728
+ setAnimatedMessageId(messageId);
1729
+ scrollToRenderedMessage(scrollRef, createdAt);
1730
+ } else {
1731
+ logger.info('Channel: scroll to message - fetching older messages');
1732
+ setInitialTimeStamp(null);
1733
+ setInitialTimeStamp(createdAt);
1734
+ setAnimatedMessageId(messageId);
1735
+ }
1736
+ } finally {
1737
+ logger.info('Channel: scroll to message - enabled mouse events');
1738
+ activateClick(scrollRef);
1853
1739
  }
1854
1740
  });
1855
1741
  }, [setInitialTimeStamp, setAnimatedMessageId, allMessages]);
1856
1742
  }
1857
1743
 
1858
- var ThreadReplySelectType;
1859
-
1860
- (function (ThreadReplySelectType) {
1861
- ThreadReplySelectType["PARENT"] = "PARENT";
1862
- ThreadReplySelectType["THREAD"] = "THREAD";
1863
- })(ThreadReplySelectType || (ThreadReplySelectType = {}));
1864
-
1865
- var ChannelContext = /*#__PURE__*/React__default.createContext(undefined);
1866
-
1867
- var ChannelProvider = function (props) {
1868
- var _a, _b, _c, _d;
1869
-
1870
- var channelUrl = props.channelUrl,
1871
- children = props.children,
1872
- isReactionEnabled = props.isReactionEnabled,
1873
- _e = props.isMessageGroupingEnabled,
1874
- isMessageGroupingEnabled = _e === void 0 ? true : _e,
1875
- showSearchIcon = props.showSearchIcon,
1876
- animatedMessage = props.animatedMessage,
1877
- highlightedMessage = props.highlightedMessage,
1878
- startingPoint = props.startingPoint,
1879
- onBeforeSendUserMessage = props.onBeforeSendUserMessage,
1880
- onBeforeSendFileMessage = props.onBeforeSendFileMessage,
1881
- onBeforeUpdateUserMessage = props.onBeforeUpdateUserMessage,
1882
- onChatHeaderActionClick = props.onChatHeaderActionClick,
1883
- onSearchClick = props.onSearchClick,
1884
- onBackClick = props.onBackClick,
1885
- replyType = props.replyType,
1886
- _f = props.threadReplySelectType,
1887
- threadReplySelectType = _f === void 0 ? ThreadReplySelectType.THREAD : _f,
1888
- queries = props.queries,
1889
- _g = props.disableMarkAsRead,
1890
- disableMarkAsRead = _g === void 0 ? false : _g,
1891
- onReplyInThread = props.onReplyInThread,
1892
- onQuoteMessageClick = props.onQuoteMessageClick,
1893
- onMessageAnimated = props.onMessageAnimated,
1894
- onMessageHighlighted = props.onMessageHighlighted;
1895
- var globalStore = useSendbirdStateContext();
1896
- var config = globalStore.config;
1897
- var pubSub = config.pubSub,
1898
- logger = config.logger,
1899
- userId = config.userId,
1900
- isOnline = config.isOnline,
1901
- imageCompression = config.imageCompression,
1902
- isMentionEnabled = config.isMentionEnabled,
1903
- onUserProfileMessage = config.onUserProfileMessage;
1904
- 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;
1905
- 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;
1906
-
1907
- var _h = useState(startingPoint),
1908
- initialTimeStamp = _h[0],
1909
- setInitialTimeStamp = _h[1];
1744
+ const useSendVoiceMessageCallback = (_ref, _ref2) => {
1745
+ let {
1746
+ currentGroupChannel,
1747
+ onBeforeSendVoiceMessage
1748
+ } = _ref;
1749
+ let {
1750
+ logger,
1751
+ pubSub,
1752
+ scrollRef,
1753
+ messagesDispatcher
1754
+ } = _ref2;
1755
+ const sendMessage = useCallback((file, duration, quoteMessage) => {
1756
+ const messageParams = onBeforeSendVoiceMessage && typeof onBeforeSendVoiceMessage === 'function' ? onBeforeSendVoiceMessage(file, quoteMessage) : {
1757
+ file,
1758
+ fileName: VOICE_MESSAGE_FILE_NAME,
1759
+ mimeType: VOICE_MESSAGE_MIME_TYPE,
1760
+ metaArrays: [new MessageMetaArray({
1761
+ key: META_ARRAY_VOICE_DURATION_KEY,
1762
+ value: [`${duration}`]
1763
+ }), new MessageMetaArray({
1764
+ key: META_ARRAY_MESSAGE_TYPE_KEY,
1765
+ value: [META_ARRAY_MESSAGE_TYPE_VALUE__VOICE]
1766
+ })]
1767
+ };
1768
+ if (quoteMessage) {
1769
+ messageParams.isReplyToChannel = true;
1770
+ messageParams.parentMessageId = quoteMessage.messageId;
1771
+ }
1772
+ logger.info('Channel: Start sending voice message', messageParams);
1773
+ currentGroupChannel.sendFileMessage(messageParams).onPending(pendingMessage => {
1774
+ pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
1775
+ /* pubSub is used instead of messagesDispatcher
1776
+ to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
1777
+ message: pendingMessage,
1778
+ channel: currentGroupChannel
1779
+ });
1780
+ setTimeout(() => scrollIntoLast(0, scrollRef), 1000);
1781
+ }).onFailed((err, failedMessage) => {
1782
+ logger.error('Channel: Sending voice message failed!', {
1783
+ failedMessage,
1784
+ err
1785
+ });
1786
+ messagesDispatcher({
1787
+ type: SEND_MESSAGEGE_FAILURE,
1788
+ payload: failedMessage
1789
+ });
1790
+ }).onSucceeded(succeededMessage => {
1791
+ logger.info('Channel: Sending voice message success!', succeededMessage);
1792
+ messagesDispatcher({
1793
+ type: SEND_MESSAGEGE_SUCESS,
1794
+ payload: succeededMessage
1795
+ });
1796
+ });
1797
+ }, [currentGroupChannel, onBeforeSendVoiceMessage]);
1798
+ return [sendMessage];
1799
+ };
1910
1800
 
1911
- useEffect(function () {
1801
+ const ChannelContext = /*#__PURE__*/React__default.createContext(undefined);
1802
+ const ChannelProvider = props => {
1803
+ var _globalStore$stores, _globalStore$stores$s, _globalStore$stores2, _globalStore$stores2$, _ref, _props$disableUserPro;
1804
+ const {
1805
+ channelUrl,
1806
+ children,
1807
+ isReactionEnabled,
1808
+ isMessageGroupingEnabled = true,
1809
+ showSearchIcon,
1810
+ animatedMessage,
1811
+ highlightedMessage,
1812
+ startingPoint,
1813
+ onBeforeSendUserMessage,
1814
+ onBeforeSendFileMessage,
1815
+ onBeforeUpdateUserMessage,
1816
+ onBeforeSendVoiceMessage,
1817
+ onChatHeaderActionClick,
1818
+ onSearchClick,
1819
+ onBackClick,
1820
+ replyType: channelReplyType,
1821
+ threadReplySelectType,
1822
+ queries,
1823
+ filterMessageList,
1824
+ disableMarkAsRead = false,
1825
+ onReplyInThread,
1826
+ onQuoteMessageClick,
1827
+ onMessageAnimated,
1828
+ onMessageHighlighted
1829
+ } = props;
1830
+ const globalStore = useSendbirdStateContext();
1831
+ const {
1832
+ config
1833
+ } = globalStore;
1834
+ const replyType = channelReplyType !== null && channelReplyType !== void 0 ? channelReplyType : config.replyType;
1835
+ const {
1836
+ pubSub,
1837
+ logger,
1838
+ userId,
1839
+ isOnline,
1840
+ imageCompression,
1841
+ isMentionEnabled,
1842
+ isVoiceMessageEnabled,
1843
+ onUserProfileMessage,
1844
+ markAsReadScheduler,
1845
+ groupChannel
1846
+ } = config;
1847
+ const sdk = globalStore === null || globalStore === void 0 ? void 0 : (_globalStore$stores = globalStore.stores) === null || _globalStore$stores === void 0 ? void 0 : (_globalStore$stores$s = _globalStore$stores.sdkStore) === null || _globalStore$stores$s === void 0 ? void 0 : _globalStore$stores$s.sdk;
1848
+ const sdkInit = globalStore === null || globalStore === void 0 ? void 0 : (_globalStore$stores2 = globalStore.stores) === null || _globalStore$stores2 === void 0 ? void 0 : (_globalStore$stores2$ = _globalStore$stores2.sdkStore) === null || _globalStore$stores2$ === void 0 ? void 0 : _globalStore$stores2$.initialized;
1849
+ const globalConfigs = globalStore === null || globalStore === void 0 ? void 0 : globalStore.config;
1850
+ const [initialTimeStamp, setInitialTimeStamp] = useState(startingPoint);
1851
+ useEffect(() => {
1912
1852
  setInitialTimeStamp(startingPoint);
1913
1853
  }, [startingPoint, channelUrl]);
1914
-
1915
- var _j = useState(0),
1916
- animatedMessageId = _j[0],
1917
- setAnimatedMessageId = _j[1];
1918
-
1919
- var _k = useState(highlightedMessage),
1920
- highLightedMessageId = _k[0],
1921
- setHighLightedMessageId = _k[1];
1922
-
1923
- useEffect(function () {
1854
+ const [animatedMessageId, setAnimatedMessageId] = useState(0);
1855
+ const [highLightedMessageId, setHighLightedMessageId] = useState(highlightedMessage);
1856
+ useEffect(() => {
1924
1857
  setHighLightedMessageId(highlightedMessage);
1925
1858
  }, [highlightedMessage]);
1926
- var userFilledMessageListQuery = queries === null || queries === void 0 ? void 0 : queries.messageListParams;
1927
-
1928
- var _l = useState(null),
1929
- quoteMessage = _l[0],
1930
- setQuoteMessage = _l[1];
1931
-
1932
- var _m = useReducer(reducer, messagesInitialState),
1933
- messagesStore = _m[0],
1934
- messagesDispatcher = _m[1];
1935
-
1936
- var scrollRef = useRef(null);
1937
- var allMessages = messagesStore.allMessages,
1938
- loading = messagesStore.loading,
1939
- initialized = messagesStore.initialized,
1940
- unreadSince = messagesStore.unreadSince,
1941
- isInvalid = messagesStore.isInvalid,
1942
- currentGroupChannel = messagesStore.currentGroupChannel,
1943
- hasMorePrev = messagesStore.hasMorePrev,
1944
- oldestMessageTimeStamp = messagesStore.oldestMessageTimeStamp,
1945
- hasMoreNext = messagesStore.hasMoreNext,
1946
- latestMessageTimeStamp = messagesStore.latestMessageTimeStamp,
1947
- emojiContainer = messagesStore.emojiContainer,
1948
- readStatus = messagesStore.readStatus;
1949
- var isSuper = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isSuper) || false;
1950
- var isBroadcast = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isBroadcast) || false;
1951
- var appInfo = sdk.appInfo;
1952
- var usingReaction = (appInfo === null || appInfo === void 0 ? void 0 : appInfo.useReaction) && !isBroadcast && !isSuper && ((config === null || config === void 0 ? void 0 : config.isReactionEnabled) || isReactionEnabled);
1953
- var emojiAllMap = useMemo(function () {
1954
- return usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map();
1955
- }, [emojiContainer]);
1956
- var emojiAllList = useMemo(function () {
1957
- return usingReaction ? getAllEmojisFromEmojiContainer(emojiContainer) : [];
1958
- }, [emojiContainer]);
1959
- var nicknamesMap = useMemo(function () {
1960
- return usingReaction && currentGroupChannel ? getNicknamesMapFromMembers(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members) : new Map();
1961
- }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members]); // Animate message
1859
+ const userFilledMessageListQuery = queries === null || queries === void 0 ? void 0 : queries.messageListParams;
1860
+ const [quoteMessage, setQuoteMessage] = useState(null);
1861
+ const [messagesStore, messagesDispatcher] = useReducer(reducer, messagesInitialState);
1862
+ const scrollRef = useRef(null);
1863
+ const {
1864
+ allMessages,
1865
+ loading,
1866
+ initialized,
1867
+ unreadSince,
1868
+ isInvalid,
1869
+ currentGroupChannel,
1870
+ hasMorePrev,
1871
+ oldestMessageTimeStamp,
1872
+ hasMoreNext,
1873
+ latestMessageTimeStamp,
1874
+ emojiContainer,
1875
+ readStatus
1876
+ } = messagesStore;
1877
+ const isSuper = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isSuper) || false;
1878
+ const isBroadcast = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isBroadcast) || false;
1879
+ const usingReaction = getIsReactionEnabled({
1880
+ isBroadcast,
1881
+ isSuper,
1882
+ globalLevel: config === null || config === void 0 ? void 0 : config.isReactionEnabled,
1883
+ moduleLevel: isReactionEnabled
1884
+ });
1885
+ const emojiAllMap = useMemo(() => usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map(), [emojiContainer]);
1886
+ const nicknamesMap = useMemo(() => usingReaction && currentGroupChannel ? getNicknamesMapFromMembers(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members) : new Map(), [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members]);
1962
1887
 
1963
- useEffect(function () {
1888
+ // Animate message
1889
+ useEffect(() => {
1964
1890
  if (animatedMessage) {
1965
1891
  setAnimatedMessageId(animatedMessage);
1966
1892
  }
1967
- }, [animatedMessage]); // Scrollup is default scroll for channel
1893
+ }, [animatedMessage]);
1968
1894
 
1969
- var onScrollCallback = useScrollCallback({
1970
- currentGroupChannel: currentGroupChannel,
1971
- oldestMessageTimeStamp: oldestMessageTimeStamp,
1972
- userFilledMessageListQuery: userFilledMessageListQuery,
1973
- replyType: replyType
1895
+ // Scrollup is default scroll for channel
1896
+ const onScrollCallback = useScrollCallback({
1897
+ currentGroupChannel,
1898
+ oldestMessageTimeStamp,
1899
+ userFilledMessageListQuery,
1900
+ replyType,
1901
+ isVoiceMessageEnabled
1974
1902
  }, {
1975
- hasMorePrev: hasMorePrev,
1976
- logger: logger,
1977
- messagesDispatcher: messagesDispatcher,
1978
- sdk: sdk
1903
+ hasMorePrev,
1904
+ logger,
1905
+ messagesDispatcher,
1906
+ sdk
1979
1907
  });
1980
- var scrollToMessage = useScrollToMessage({
1981
- setInitialTimeStamp: setInitialTimeStamp,
1982
- setAnimatedMessageId: setAnimatedMessageId,
1983
- allMessages: allMessages
1908
+ const scrollToMessage = useScrollToMessage({
1909
+ setInitialTimeStamp,
1910
+ setAnimatedMessageId,
1911
+ allMessages,
1912
+ scrollRef
1984
1913
  }, {
1985
- logger: logger
1986
- }); // onScrollDownCallback is added for navigation to different timestamps on messageSearch
1914
+ logger
1915
+ });
1916
+
1917
+ // onScrollDownCallback is added for navigation to different timestamps on messageSearch
1987
1918
  // hasMorePrev, onScrollCallback -> scroll up(default behavior)
1988
1919
  // hasMoreNext, onScrollDownCallback -> scroll down
1989
-
1990
- var onScrollDownCallback = useScrollDownCallback({
1991
- currentGroupChannel: currentGroupChannel,
1992
- latestMessageTimeStamp: latestMessageTimeStamp,
1993
- userFilledMessageListQuery: userFilledMessageListQuery,
1994
- hasMoreNext: hasMoreNext,
1995
- replyType: replyType
1920
+ const onScrollDownCallback = useScrollDownCallback({
1921
+ currentGroupChannel,
1922
+ latestMessageTimeStamp,
1923
+ userFilledMessageListQuery,
1924
+ hasMoreNext,
1925
+ replyType,
1926
+ isVoiceMessageEnabled
1996
1927
  }, {
1997
- logger: logger,
1998
- messagesDispatcher: messagesDispatcher,
1999
- sdk: sdk
1928
+ logger,
1929
+ messagesDispatcher,
1930
+ sdk
2000
1931
  });
2001
- var toggleReaction = useToggleReactionCallback({
2002
- currentGroupChannel: currentGroupChannel
1932
+ const toggleReaction = useToggleReactionCallback({
1933
+ currentGroupChannel
2003
1934
  }, {
2004
- logger: logger
1935
+ logger
2005
1936
  });
2006
- var memoizedEmojiListItems = useMemoizedEmojiListItems({
2007
- emojiContainer: emojiContainer,
2008
- toggleReaction: toggleReaction
2009
- }, {
2010
- isReactionEnabled: usingReaction,
2011
- logger: logger,
2012
- userId: userId,
2013
- emojiAllList: emojiAllList
2014
- }); // to create message-datasource
2015
- // this hook sets currentGroupChannel asynchronously
2016
1937
 
1938
+ // to create message-datasource
1939
+ // this hook sets currentGroupChannel asynchronously
2017
1940
  useSetChannel({
2018
- channelUrl: channelUrl,
2019
- sdkInit: sdkInit,
2020
- disableMarkAsRead: disableMarkAsRead
1941
+ channelUrl,
1942
+ sdkInit,
1943
+ disableMarkAsRead
2021
1944
  }, {
2022
- messagesDispatcher: messagesDispatcher,
2023
- sdk: sdk,
2024
- logger: logger
2025
- }); // to set quote message as null
1945
+ messagesDispatcher,
1946
+ sdk,
1947
+ logger,
1948
+ markAsReadScheduler
1949
+ });
2026
1950
 
2027
- useEffect(function () {
1951
+ // to set quote message as null
1952
+ useEffect(() => {
2028
1953
  setQuoteMessage(null);
2029
- }, [channelUrl]); // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher
1954
+ }, [channelUrl]);
2030
1955
 
1956
+ // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher
2031
1957
  useHandleChannelEvents({
2032
- currentGroupChannel: currentGroupChannel,
2033
- sdkInit: sdkInit,
1958
+ currentGroupChannel,
1959
+ sdkInit,
2034
1960
  currentUserId: userId,
2035
- hasMoreNext: hasMoreNext,
2036
- disableMarkAsRead: disableMarkAsRead
1961
+ disableMarkAsRead
2037
1962
  }, {
2038
- messagesDispatcher: messagesDispatcher,
2039
- sdk: sdk,
2040
- logger: logger,
2041
- scrollRef: scrollRef,
2042
- setQuoteMessage: setQuoteMessage
2043
- }); // hook that fetches messages when channel changes
1963
+ messagesDispatcher,
1964
+ sdk,
1965
+ logger,
1966
+ scrollRef,
1967
+ setQuoteMessage
1968
+ });
1969
+
1970
+ // hook that fetches messages when channel changes
2044
1971
  // to be clear here useGetChannel sets currentGroupChannel
2045
1972
  // and useInitialMessagesFetch executes when currentGroupChannel changes
2046
1973
  // p.s This one executes on initialTimeStamp change too
2047
-
2048
1974
  useInitialMessagesFetch({
2049
- currentGroupChannel: currentGroupChannel,
2050
- userFilledMessageListQuery: userFilledMessageListQuery,
2051
- initialTimeStamp: initialTimeStamp,
2052
- latestMessageTimeStamp: latestMessageTimeStamp,
2053
- replyType: replyType
1975
+ currentGroupChannel,
1976
+ userFilledMessageListQuery,
1977
+ initialTimeStamp,
1978
+ latestMessageTimeStamp,
1979
+ replyType,
1980
+ isVoiceMessageEnabled
2054
1981
  }, {
2055
- logger: logger,
2056
- scrollRef: scrollRef,
2057
- messagesDispatcher: messagesDispatcher
2058
- }); // handles API calls from withSendbird
1982
+ logger,
1983
+ scrollRef,
1984
+ messagesDispatcher
1985
+ });
2059
1986
 
2060
- useEffect(function () {
2061
- var subscriber = pubSubHandler({
2062
- channelUrl: channelUrl,
2063
- pubSub: pubSub,
1987
+ // handles API calls from withSendbird
1988
+ useEffect(() => {
1989
+ const subscriber = pubSubHandler({
1990
+ channelUrl,
1991
+ pubSub,
2064
1992
  dispatcher: messagesDispatcher,
2065
- scrollRef: scrollRef
1993
+ scrollRef
2066
1994
  });
2067
- return function () {
1995
+ return () => {
2068
1996
  pubSubHandleRemover(subscriber);
2069
1997
  };
2070
- }, [channelUrl, sdkInit]); // handling connection breaks
1998
+ }, [channelUrl, sdkInit]);
2071
1999
 
2000
+ // handling connection breaks
2072
2001
  useHandleReconnect({
2073
- isOnline: isOnline,
2074
- replyType: replyType,
2075
- disableMarkAsRead: disableMarkAsRead
2002
+ isOnline,
2003
+ replyType,
2004
+ disableMarkAsRead
2076
2005
  }, {
2077
- logger: logger,
2078
- sdk: sdk,
2079
- scrollRef: scrollRef,
2080
- currentGroupChannel: currentGroupChannel,
2081
- messagesDispatcher: messagesDispatcher,
2082
- userFilledMessageListQuery: userFilledMessageListQuery
2083
- }); // callbacks for Message CURD actions
2006
+ logger,
2007
+ sdk,
2008
+ scrollRef,
2009
+ currentGroupChannel,
2010
+ messagesDispatcher,
2011
+ userFilledMessageListQuery,
2012
+ markAsReadScheduler
2013
+ });
2084
2014
 
2085
- var deleteMessage = useDeleteMessageCallback({
2086
- currentGroupChannel: currentGroupChannel,
2087
- messagesDispatcher: messagesDispatcher
2015
+ // callbacks for Message CURD actions
2016
+ const deleteMessage = useDeleteMessageCallback({
2017
+ currentGroupChannel,
2018
+ messagesDispatcher
2019
+ }, {
2020
+ logger
2021
+ });
2022
+ const updateMessage = useUpdateMessageCallback({
2023
+ currentGroupChannel,
2024
+ messagesDispatcher,
2025
+ onBeforeUpdateUserMessage,
2026
+ isMentionEnabled
2088
2027
  }, {
2089
- logger: logger
2028
+ logger,
2029
+ pubSub
2090
2030
  });
2091
- var updateMessage = useUpdateMessageCallback({
2092
- currentGroupChannel: currentGroupChannel,
2093
- messagesDispatcher: messagesDispatcher,
2094
- onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
2095
- isMentionEnabled: isMentionEnabled
2031
+ const resendMessage = useResendMessageCallback({
2032
+ currentGroupChannel,
2033
+ messagesDispatcher
2096
2034
  }, {
2097
- logger: logger,
2098
- pubSub: pubSub
2035
+ logger
2099
2036
  });
2100
- var resendMessage = useResendMessageCallback({
2101
- currentGroupChannel: currentGroupChannel,
2102
- messagesDispatcher: messagesDispatcher
2037
+ const [messageInputRef, sendMessage] = useSendMessageCallback({
2038
+ currentGroupChannel,
2039
+ onBeforeSendUserMessage,
2040
+ isMentionEnabled
2103
2041
  }, {
2104
- logger: logger
2042
+ logger,
2043
+ pubSub,
2044
+ scrollRef,
2045
+ messagesDispatcher
2105
2046
  });
2106
-
2107
- var _o = useSendMessageCallback({
2108
- currentGroupChannel: currentGroupChannel,
2109
- onBeforeSendUserMessage: onBeforeSendUserMessage,
2110
- isMentionEnabled: isMentionEnabled
2047
+ const [sendFileMessage] = useSendFileMessageCallback({
2048
+ currentGroupChannel,
2049
+ onBeforeSendFileMessage,
2050
+ imageCompression
2111
2051
  }, {
2112
- logger: logger,
2113
- pubSub: pubSub,
2114
- scrollRef: scrollRef,
2115
- messagesDispatcher: messagesDispatcher
2116
- }),
2117
- messageInputRef = _o[0],
2118
- sendMessage = _o[1];
2119
-
2120
- var sendFileMessage = useSendFileMessageCallback({
2121
- currentGroupChannel: currentGroupChannel,
2122
- onBeforeSendFileMessage: onBeforeSendFileMessage,
2123
- imageCompression: imageCompression
2052
+ logger,
2053
+ pubSub,
2054
+ scrollRef,
2055
+ messagesDispatcher
2056
+ });
2057
+ const [sendVoiceMessage] = useSendVoiceMessageCallback({
2058
+ currentGroupChannel,
2059
+ onBeforeSendVoiceMessage
2124
2060
  }, {
2125
- logger: logger,
2126
- pubSub: pubSub,
2127
- scrollRef: scrollRef,
2128
- messagesDispatcher: messagesDispatcher
2129
- })[0];
2061
+ logger,
2062
+ pubSub,
2063
+ scrollRef,
2064
+ messagesDispatcher
2065
+ });
2130
2066
  return /*#__PURE__*/React__default.createElement(ChannelContext.Provider, {
2131
2067
  value: {
2132
2068
  // props
2133
- channelUrl: channelUrl,
2069
+ channelUrl,
2134
2070
  isReactionEnabled: usingReaction,
2135
- isMessageGroupingEnabled: isMessageGroupingEnabled,
2136
- showSearchIcon: showSearchIcon,
2137
- highlightedMessage: highlightedMessage,
2138
- startingPoint: startingPoint,
2139
- onBeforeSendUserMessage: onBeforeSendUserMessage,
2140
- onBeforeSendFileMessage: onBeforeSendFileMessage,
2141
- onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
2142
- onChatHeaderActionClick: onChatHeaderActionClick,
2143
- onSearchClick: onSearchClick,
2144
- onBackClick: onBackClick,
2145
- replyType: replyType,
2146
- threadReplySelectType: threadReplySelectType,
2147
- queries: queries,
2148
- disableMarkAsRead: disableMarkAsRead,
2149
- onReplyInThread: onReplyInThread,
2150
- onQuoteMessageClick: onQuoteMessageClick,
2151
- onMessageAnimated: onMessageAnimated,
2152
- onMessageHighlighted: onMessageHighlighted,
2071
+ isMessageGroupingEnabled,
2072
+ showSearchIcon: showSearchIcon !== null && showSearchIcon !== void 0 ? showSearchIcon : globalConfigs.showSearchIcon,
2073
+ highlightedMessage,
2074
+ startingPoint,
2075
+ onBeforeSendUserMessage,
2076
+ onBeforeSendFileMessage,
2077
+ onBeforeUpdateUserMessage,
2078
+ onChatHeaderActionClick,
2079
+ onSearchClick,
2080
+ onBackClick,
2081
+ replyType,
2082
+ threadReplySelectType: (_ref = threadReplySelectType !== null && threadReplySelectType !== void 0 ? threadReplySelectType : getCaseResolvedThreadReplySelectType(groupChannel.threadReplySelectType).upperCase) !== null && _ref !== void 0 ? _ref : ThreadReplySelectType.THREAD,
2083
+ queries,
2084
+ filterMessageList,
2085
+ disableMarkAsRead,
2086
+ onReplyInThread,
2087
+ onQuoteMessageClick,
2088
+ onMessageAnimated,
2089
+ onMessageHighlighted,
2153
2090
  // messagesStore
2154
- allMessages: allMessages,
2155
- loading: loading,
2156
- initialized: initialized,
2157
- unreadSince: unreadSince,
2158
- isInvalid: isInvalid,
2159
- currentGroupChannel: currentGroupChannel,
2160
- hasMorePrev: hasMorePrev,
2161
- hasMoreNext: hasMoreNext,
2162
- oldestMessageTimeStamp: oldestMessageTimeStamp,
2163
- latestMessageTimeStamp: latestMessageTimeStamp,
2164
- emojiContainer: emojiContainer,
2165
- readStatus: readStatus,
2091
+ allMessages,
2092
+ loading,
2093
+ initialized,
2094
+ unreadSince,
2095
+ isInvalid,
2096
+ currentGroupChannel,
2097
+ hasMorePrev,
2098
+ hasMoreNext,
2099
+ oldestMessageTimeStamp,
2100
+ latestMessageTimeStamp,
2101
+ emojiContainer,
2102
+ readStatus,
2166
2103
  // utils
2167
- scrollToMessage: scrollToMessage,
2168
- quoteMessage: quoteMessage,
2169
- setQuoteMessage: setQuoteMessage,
2170
- deleteMessage: deleteMessage,
2171
- updateMessage: updateMessage,
2172
- resendMessage: resendMessage,
2173
- messageInputRef: messageInputRef,
2174
- sendMessage: sendMessage,
2175
- sendFileMessage: sendFileMessage,
2176
- initialTimeStamp: initialTimeStamp,
2177
- messageActionTypes: messageActionTypes,
2178
- messagesDispatcher: messagesDispatcher,
2179
- setInitialTimeStamp: setInitialTimeStamp,
2180
- setAnimatedMessageId: setAnimatedMessageId,
2181
- setHighLightedMessageId: setHighLightedMessageId,
2182
- animatedMessageId: animatedMessageId,
2183
- highLightedMessageId: highLightedMessageId,
2184
- nicknamesMap: nicknamesMap,
2185
- emojiAllMap: emojiAllMap,
2186
- onScrollCallback: onScrollCallback,
2187
- onScrollDownCallback: onScrollDownCallback,
2188
- memoizedEmojiListItems: memoizedEmojiListItems,
2189
- scrollRef: scrollRef,
2190
- toggleReaction: toggleReaction
2104
+ scrollToMessage,
2105
+ quoteMessage,
2106
+ setQuoteMessage,
2107
+ deleteMessage,
2108
+ updateMessage,
2109
+ resendMessage,
2110
+ messageInputRef,
2111
+ sendMessage,
2112
+ sendFileMessage,
2113
+ sendVoiceMessage,
2114
+ initialTimeStamp,
2115
+ messageActionTypes,
2116
+ messagesDispatcher,
2117
+ setInitialTimeStamp,
2118
+ setAnimatedMessageId,
2119
+ setHighLightedMessageId,
2120
+ animatedMessageId,
2121
+ highLightedMessageId,
2122
+ nicknamesMap,
2123
+ emojiAllMap,
2124
+ onScrollCallback,
2125
+ onScrollDownCallback,
2126
+ scrollRef,
2127
+ toggleReaction
2191
2128
  }
2192
2129
  }, /*#__PURE__*/React__default.createElement(UserProfileProvider, {
2193
- disableUserProfile: props === null || props === void 0 ? void 0 : props.disableUserProfile,
2130
+ disableUserProfile: (_props$disableUserPro = props === null || props === void 0 ? void 0 : props.disableUserProfile) !== null && _props$disableUserPro !== void 0 ? _props$disableUserPro : config === null || config === void 0 ? void 0 : config.disableUserProfile,
2194
2131
  renderUserProfile: props === null || props === void 0 ? void 0 : props.renderUserProfile,
2195
2132
  onUserProfileMessage: onUserProfileMessage
2196
2133
  }, children));
2197
2134
  };
2135
+ const useChannelContext = () => React__default.useContext(ChannelContext);
2198
2136
 
2199
- var useChannelContext = function () {
2200
- return React__default.useContext(ChannelContext);
2201
- };
2202
-
2203
- export { ChannelProvider as C, MARK_AS_READ as M, ThreadReplySelectType as T, isDisabledBecauseFrozen as a, isDisabledBecauseMuted as b, compareMessagesForGrouping as c, isOperator as d, isAboutSame as i, useChannelContext as u };
2204
- //# sourceMappingURL=ChannelProvider-289cd35f.js.map
2137
+ export { ChannelProvider as C, isDisabledBecauseFrozen as a, isDisabledBecauseMuted as b, compareMessagesForGrouping as c, isOperator as d, getIsReactionEnabled as g, isAboutSame as i, useChannelContext as u };
2138
+ //# sourceMappingURL=ChannelProvider-33559192.js.map