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

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