@sendbird/uikit-react 3.5.0-beta.0 → 3.5.0-mobile-web-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (932) hide show
  1. package/App.js +284 -226
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +470 -0
  4. package/Channel/components/ChannelHeader.js +45 -41
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +101 -129
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +55 -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 +238 -230
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageInput.js +150 -129
  15. package/Channel/components/MessageInput.js.map +1 -1
  16. package/Channel/components/MessageList.js +258 -174
  17. package/Channel/components/MessageList.js.map +1 -1
  18. package/Channel/components/RemoveMessageModal.js +33 -30
  19. package/Channel/components/RemoveMessageModal.js.map +1 -1
  20. package/Channel/components/SuggestedMentionList.js +138 -193
  21. package/Channel/components/SuggestedMentionList.js.map +1 -1
  22. package/Channel/components/TypingIndicator.js +43 -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 +11 -19
  27. package/Channel/context.js.map +1 -1
  28. package/Channel.js +67 -43
  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 +100 -142
  35. package/ChannelList/components/ChannelListUI.js.map +1 -1
  36. package/ChannelList/components/ChannelPreview.js +71 -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 +31 -31
  43. package/ChannelList.js.map +1 -1
  44. package/{ChannelListProvider-f461d265.js → ChannelListProvider-86b6d956.js} +233 -285
  45. package/ChannelListProvider-86b6d956.js.map +1 -0
  46. package/{ChannelProvider-554e7116.js → ChannelProvider-b41fde4c.js} +627 -716
  47. package/ChannelProvider-b41fde4c.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-2b669e7e.js +44 -0
  76. package/CreateChannelProvider-2b669e7e.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-57b46f6c.js +20 -0
  90. package/{LocalizationContext-4df0cc32.js.map → LocalizationContext-57b46f6c.js.map} +1 -1
  91. package/MediaQueryContext-fbe7af77.js +87 -0
  92. package/MediaQueryContext-fbe7af77.js.map +1 -0
  93. package/MemberList-6ff1e7fa.js +401 -0
  94. package/MemberList-6ff1e7fa.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 +46 -33
  108. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  109. package/OpenChannel/components/OpenChannelMessage.js +168 -190
  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 +34 -28
  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-700cf3de.js +429 -0
  128. package/OpenChannelListProvider-700cf3de.js.map +1 -0
  129. package/OpenChannelProvider-b634e564.js +1885 -0
  130. package/OpenChannelProvider-b634e564.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-625b3778.js +36 -0
  147. package/RemoveMessageModal-625b3778.js.map +1 -0
  148. package/SendbirdProvider.js +897 -408
  149. package/SendbirdProvider.js.map +1 -1
  150. package/Thread/components/ParentMessageInfo.js +235 -217
  151. package/Thread/components/ParentMessageInfo.js.map +1 -1
  152. package/Thread/components/ParentMessageInfoItem.js +110 -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 +107 -83
  157. package/Thread/components/ThreadList.js.map +1 -1
  158. package/Thread/components/ThreadListItem.js +297 -273
  159. package/Thread/components/ThreadListItem.js.map +1 -1
  160. package/Thread/components/ThreadMessageInput.js +144 -113
  161. package/Thread/components/ThreadMessageInput.js.map +1 -1
  162. package/Thread/components/ThreadUI.js +168 -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 +86 -57
  168. package/Thread.js.map +1 -1
  169. package/ThreadProvider-a3d3b241.js +1695 -0
  170. package/ThreadProvider-a3d3b241.js.map +1 -0
  171. package/{UserProfileContext-c58a7b86.js → UserProfileContext-29074346.js} +1 -4
  172. package/{UserProfileContext-c58a7b86.js.map → UserProfileContext-29074346.js.map} +1 -1
  173. package/VoiceMessageInputWrapper-bdc53de4.js +169 -0
  174. package/VoiceMessageInputWrapper-bdc53de4.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 +72 -0
  178. package/VoicePlayer/useVoicePlayer.js.map +1 -0
  179. package/VoiceRecorder/context.js +118 -0
  180. package/VoiceRecorder/context.js.map +1 -0
  181. package/VoiceRecorder/useVoiceRecorder.js +109 -0
  182. package/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  183. package/WebAudioUtils-c3ea2db7.js +123 -0
  184. package/WebAudioUtils-c3ea2db7.js.map +1 -0
  185. package/{_rollupPluginBabelHelpers-498add61.js → _rollupPluginBabelHelpers-0bc76382.js} +17 -11
  186. package/_rollupPluginBabelHelpers-0bc76382.js.map +1 -0
  187. package/actionTypes-45ec82e6.js +8 -0
  188. package/actionTypes-45ec82e6.js.map +1 -0
  189. package/cjs/App.js +284 -226
  190. package/cjs/App.js.map +1 -1
  191. package/cjs/Channel/components/ChannelHeader.js +45 -41
  192. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  193. package/cjs/Channel/components/ChannelUI.js +99 -127
  194. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  195. package/cjs/Channel/components/FileViewer.js +55 -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 +241 -233
  200. package/cjs/Channel/components/Message.js.map +1 -1
  201. package/cjs/Channel/components/MessageInput.js +149 -128
  202. package/cjs/Channel/components/MessageInput.js.map +1 -1
  203. package/cjs/Channel/components/MessageList.js +258 -174
  204. package/cjs/Channel/components/MessageList.js.map +1 -1
  205. package/cjs/Channel/components/RemoveMessageModal.js +33 -30
  206. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  207. package/cjs/Channel/components/SuggestedMentionList.js +138 -193
  208. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  209. package/cjs/Channel/components/TypingIndicator.js +43 -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 +67 -43
  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 +99 -141
  222. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  223. package/cjs/ChannelList/components/ChannelPreview.js +71 -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 +31 -31
  230. package/cjs/ChannelList.js.map +1 -1
  231. package/cjs/{ChannelListProvider-c2148b43.js → ChannelListProvider-46e379c7.js} +232 -284
  232. package/cjs/ChannelListProvider-46e379c7.js.map +1 -0
  233. package/cjs/{ChannelProvider-cf5dc7e3.js → ChannelProvider-2bfafa25.js} +626 -714
  234. package/cjs/ChannelProvider-2bfafa25.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-ef7e4c91.js +52 -0
  263. package/cjs/CreateChannelProvider-ef7e4c91.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-2b3f310d.js → LocalizationContext-b42fa07d.js} +9 -11
  277. package/cjs/{LocalizationContext-2b3f310d.js.map → LocalizationContext-b42fa07d.js.map} +1 -1
  278. package/cjs/MediaQueryContext-372b55a6.js +94 -0
  279. package/cjs/MediaQueryContext-372b55a6.js.map +1 -0
  280. package/cjs/MemberList-d878307c.js +407 -0
  281. package/cjs/MemberList-d878307c.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 +46 -33
  295. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  296. package/cjs/OpenChannel/components/OpenChannelMessage.js +168 -190
  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 +34 -28
  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-d1cbe71b.js +439 -0
  315. package/cjs/OpenChannelListProvider-d1cbe71b.js.map +1 -0
  316. package/cjs/OpenChannelProvider-94eb45b4.js +1894 -0
  317. package/cjs/OpenChannelProvider-94eb45b4.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-c01eb93b.js → RemoveMessageModal-83d3158a.js} +19 -14
  333. package/cjs/RemoveMessageModal-83d3158a.js.map +1 -0
  334. package/cjs/SendbirdProvider.js +897 -409
  335. package/cjs/SendbirdProvider.js.map +1 -1
  336. package/cjs/Thread/components/ParentMessageInfo.js +234 -216
  337. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  338. package/cjs/Thread/components/ParentMessageInfoItem.js +109 -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 +107 -83
  343. package/cjs/Thread/components/ThreadList.js.map +1 -1
  344. package/cjs/Thread/components/ThreadListItem.js +296 -272
  345. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  346. package/cjs/Thread/components/ThreadMessageInput.js +144 -113
  347. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  348. package/cjs/Thread/components/ThreadUI.js +169 -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 +86 -57
  354. package/cjs/Thread.js.map +1 -1
  355. package/cjs/ThreadProvider-3ff0ff63.js +1704 -0
  356. package/cjs/ThreadProvider-3ff0ff63.js.map +1 -0
  357. package/cjs/{UserProfileContext-9d60cdc4.js → UserProfileContext-c87514d3.js} +1 -4
  358. package/cjs/{UserProfileContext-9d60cdc4.js.map → UserProfileContext-c87514d3.js.map} +1 -1
  359. package/cjs/VoiceMessageInputWrapper-6e1d03d7.js +175 -0
  360. package/cjs/VoiceMessageInputWrapper-6e1d03d7.js.map +1 -0
  361. package/cjs/VoicePlayer/context.js +16 -0
  362. package/cjs/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
  363. package/cjs/VoicePlayer/useVoicePlayer.js +76 -0
  364. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -0
  365. package/cjs/VoiceRecorder/context.js +128 -0
  366. package/cjs/VoiceRecorder/context.js.map +1 -0
  367. package/cjs/VoiceRecorder/useVoiceRecorder.js +114 -0
  368. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  369. package/cjs/WebAudioUtils-de98e939.js +126 -0
  370. package/cjs/WebAudioUtils-de98e939.js.map +1 -0
  371. package/cjs/{_rollupPluginBabelHelpers-a7254c9d.js → _rollupPluginBabelHelpers-3a9d1641.js} +17 -10
  372. package/cjs/_rollupPluginBabelHelpers-3a9d1641.js.map +1 -0
  373. package/cjs/actionTypes-ecb5bef6.js +10 -0
  374. package/cjs/actionTypes-ecb5bef6.js.map +1 -0
  375. package/cjs/{color-89f33656.js → color-a4e73e6f.js} +13 -21
  376. package/cjs/color-a4e73e6f.js.map +1 -0
  377. package/cjs/{compareIds-ca869c2e.js → compareIds-a7029d6a.js} +5 -6
  378. package/cjs/compareIds-a7029d6a.js.map +1 -0
  379. package/cjs/{const-db71e993.js → const-3ab3e45c.js} +4 -4
  380. package/cjs/const-3ab3e45c.js.map +1 -0
  381. package/cjs/const-68cf2709.js +20 -0
  382. package/cjs/const-68cf2709.js.map +1 -0
  383. package/cjs/consts-26d4668c.js +6 -0
  384. package/cjs/consts-26d4668c.js.map +1 -0
  385. package/cjs/consts-ad8ba629.js +6 -0
  386. package/cjs/consts-ad8ba629.js.map +1 -0
  387. package/cjs/consts-bb2a67c7.js +6 -0
  388. package/cjs/consts-bb2a67c7.js.map +1 -0
  389. package/cjs/consts-f71467c8.js +41 -0
  390. package/cjs/consts-f71467c8.js.map +1 -0
  391. package/cjs/{context-2f5d47fd.js → context-b81d493d.js} +6 -5
  392. package/cjs/{context-2f5d47fd.js.map → context-b81d493d.js.map} +1 -1
  393. package/cjs/dist/index.css +970 -532
  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-0b8a1074.js +590 -0
  398. package/cjs/index-0b8a1074.js.map +1 -0
  399. package/cjs/index-1c18afa8.js +57 -0
  400. package/cjs/index-1c18afa8.js.map +1 -0
  401. package/cjs/index-3f079f3e.js +367 -0
  402. package/cjs/index-3f079f3e.js.map +1 -0
  403. package/cjs/{index-d6ef2a60.js → index-72e412f7.js} +11 -25
  404. package/cjs/index-72e412f7.js.map +1 -0
  405. package/cjs/{index-0988ab25.js → index-7ec4fe06.js} +57 -3
  406. package/cjs/index-7ec4fe06.js.map +1 -0
  407. package/cjs/{index-be9c6237.js → index-811da6ee.js} +55 -63
  408. package/cjs/index-811da6ee.js.map +1 -0
  409. package/cjs/{index-73467e1d.js → index-849f44b0.js} +2 -2
  410. package/cjs/{index-73467e1d.js.map → index-849f44b0.js.map} +1 -1
  411. package/cjs/{index-de151767.js → index-97005534.js} +1 -1
  412. package/cjs/{index-de151767.js.map → index-97005534.js.map} +1 -1
  413. package/cjs/index-9b23b5c2.js +161 -0
  414. package/cjs/index-9b23b5c2.js.map +1 -0
  415. package/cjs/{index-621e74bd.js → index-9d9e563e.js} +29 -37
  416. package/cjs/index-9d9e563e.js.map +1 -0
  417. package/cjs/index-a401f2b6.js +441 -0
  418. package/cjs/index-a401f2b6.js.map +1 -0
  419. package/cjs/{index-2c5dd48c.js → index-afada680.js} +2 -2
  420. package/cjs/{index-2c5dd48c.js.map → index-afada680.js.map} +1 -1
  421. package/cjs/index-c38404d2.js +79 -0
  422. package/cjs/index-c38404d2.js.map +1 -0
  423. package/cjs/index-cb1d7ac4.js +292 -0
  424. package/cjs/index-cb1d7ac4.js.map +1 -0
  425. package/cjs/{index-e240e852.js → index-e1d69370.js} +42 -51
  426. package/cjs/index-e1d69370.js.map +1 -0
  427. package/cjs/{index-c4d4ef49.js → index-e8b83547.js} +1 -1
  428. package/cjs/index-e8b83547.js.map +1 -0
  429. package/cjs/index-f4f6d794.js +202 -0
  430. package/cjs/index-f4f6d794.js.map +1 -0
  431. package/cjs/index.js +77 -58
  432. package/cjs/index.js.map +1 -1
  433. package/cjs/index.module-d2876b1c.js +6 -0
  434. package/cjs/index.module-d2876b1c.js.map +1 -0
  435. package/cjs/lame.all.js +2541 -0
  436. package/cjs/lame.all.js.map +1 -0
  437. package/cjs/sendbirdSelectors.js +307 -417
  438. package/cjs/sendbirdSelectors.js.map +1 -1
  439. package/cjs/{stringSet-91b919f6.js → stringSet-4f30313f.js} +110 -90
  440. package/cjs/stringSet-4f30313f.js.map +1 -0
  441. package/cjs/tokenize-e944d548.js +164 -0
  442. package/cjs/tokenize-e944d548.js.map +1 -0
  443. package/cjs/topics-3226c6ee.js +18 -0
  444. package/cjs/topics-3226c6ee.js.map +1 -0
  445. package/cjs/types-31174fcc.js +17 -0
  446. package/cjs/types-31174fcc.js.map +1 -0
  447. package/cjs/ui/Accordion.js +21 -24
  448. package/cjs/ui/Accordion.js.map +1 -1
  449. package/cjs/ui/AccordionGroup.js +10 -13
  450. package/cjs/ui/AccordionGroup.js.map +1 -1
  451. package/cjs/ui/AdminMessage.js +10 -13
  452. package/cjs/ui/AdminMessage.js.map +1 -1
  453. package/cjs/ui/Avatar.js +57 -79
  454. package/cjs/ui/Avatar.js.map +1 -1
  455. package/cjs/ui/Badge.js +16 -15
  456. package/cjs/ui/Badge.js.map +1 -1
  457. package/cjs/ui/BottomSheet.js +14 -12
  458. package/cjs/ui/BottomSheet.js.map +1 -1
  459. package/cjs/ui/Button.js +20 -35
  460. package/cjs/ui/Button.js.map +1 -1
  461. package/cjs/ui/ChannelAvatar.js +38 -41
  462. package/cjs/ui/ChannelAvatar.js.map +1 -1
  463. package/cjs/ui/Checkbox.js +11 -13
  464. package/cjs/ui/Checkbox.js.map +1 -1
  465. package/cjs/ui/ConnectionStatus.js +7 -5
  466. package/cjs/ui/ConnectionStatus.js.map +1 -1
  467. package/cjs/ui/ContextMenu.js +175 -199
  468. package/cjs/ui/ContextMenu.js.map +1 -1
  469. package/cjs/ui/DateSeparator.js +12 -14
  470. package/cjs/ui/DateSeparator.js.map +1 -1
  471. package/cjs/ui/EmojiReactions.js +299 -107
  472. package/cjs/ui/EmojiReactions.js.map +1 -1
  473. package/cjs/ui/FileMessageItemBody.js +22 -23
  474. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  475. package/cjs/ui/FileViewer.js +36 -36
  476. package/cjs/ui/FileViewer.js.map +1 -1
  477. package/cjs/ui/Icon.js +447 -623
  478. package/cjs/ui/Icon.js.map +1 -1
  479. package/cjs/ui/IconButton.js +20 -31
  480. package/cjs/ui/IconButton.js.map +1 -1
  481. package/cjs/ui/ImageRenderer.js +34 -43
  482. package/cjs/ui/ImageRenderer.js.map +1 -1
  483. package/cjs/ui/Input.js +16 -16
  484. package/cjs/ui/Input.js.map +1 -1
  485. package/cjs/ui/Label.js +2 -2
  486. package/cjs/ui/LinkLabel.js +4 -3
  487. package/cjs/ui/LinkLabel.js.map +1 -1
  488. package/cjs/ui/Loader.js +10 -12
  489. package/cjs/ui/Loader.js.map +1 -1
  490. package/cjs/ui/MentionLabel.js +58 -65
  491. package/cjs/ui/MentionLabel.js.map +1 -1
  492. package/cjs/ui/MentionUserLabel.js +12 -10
  493. package/cjs/ui/MentionUserLabel.js.map +1 -1
  494. package/cjs/ui/MessageContent.js +208 -546
  495. package/cjs/ui/MessageContent.js.map +1 -1
  496. package/cjs/ui/MessageInput.js +338 -118
  497. package/cjs/ui/MessageInput.js.map +1 -1
  498. package/cjs/ui/MessageItemMenu.js +83 -83
  499. package/cjs/ui/MessageItemMenu.js.map +1 -1
  500. package/cjs/ui/MessageItemReactionMenu.js +58 -62
  501. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  502. package/cjs/ui/MessageSearchFileItem.js +56 -51
  503. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  504. package/cjs/ui/MessageSearchItem.js +42 -41
  505. package/cjs/ui/MessageSearchItem.js.map +1 -1
  506. package/cjs/ui/MessageStatus.js +10 -11
  507. package/cjs/ui/MessageStatus.js.map +1 -1
  508. package/cjs/ui/Modal.js +52 -46
  509. package/cjs/ui/Modal.js.map +1 -1
  510. package/cjs/ui/MutedAvatarOverlay.js +10 -10
  511. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  512. package/cjs/ui/OGMessageItemBody.js +67 -63
  513. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  514. package/cjs/ui/OpenChannelAdminMessage.js +8 -7
  515. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  516. package/cjs/ui/OpenChannelAvatar.js +18 -17
  517. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  518. package/cjs/ui/OpenchannelConversationHeader.js +17 -13
  519. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  520. package/cjs/ui/OpenchannelFileMessage.js +138 -149
  521. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  522. package/cjs/ui/OpenchannelOGMessage.js +204 -233
  523. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  524. package/cjs/ui/OpenchannelThumbnailMessage.js +213 -220
  525. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  526. package/cjs/ui/OpenchannelUserMessage.js +164 -173
  527. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  528. package/cjs/ui/PlaceHolder.js +5 -6
  529. package/cjs/ui/PlaceHolder.js.map +1 -1
  530. package/cjs/ui/PlaybackTime.js +35 -0
  531. package/cjs/ui/PlaybackTime.js.map +1 -0
  532. package/cjs/ui/ProgressBar.js +40 -0
  533. package/cjs/ui/ProgressBar.js.map +1 -0
  534. package/cjs/ui/QuoteMessage.js +50 -44
  535. package/cjs/ui/QuoteMessage.js.map +1 -1
  536. package/cjs/ui/QuoteMessageInput.js +31 -29
  537. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  538. package/cjs/ui/ReactionBadge.js +13 -21
  539. package/cjs/ui/ReactionBadge.js.map +1 -1
  540. package/cjs/ui/ReactionButton.js +30 -27
  541. package/cjs/ui/ReactionButton.js.map +1 -1
  542. package/cjs/ui/SortByRow.js +14 -18
  543. package/cjs/ui/SortByRow.js.map +1 -1
  544. package/cjs/ui/TextButton.js +13 -21
  545. package/cjs/ui/TextButton.js.map +1 -1
  546. package/cjs/ui/TextMessageItemBody.js +41 -48
  547. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  548. package/cjs/ui/ThreadReplies.js +25 -22
  549. package/cjs/ui/ThreadReplies.js.map +1 -1
  550. package/cjs/ui/ThumbnailMessageItemBody.js +43 -45
  551. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  552. package/cjs/ui/Toggle.js +202 -0
  553. package/cjs/ui/Toggle.js.map +1 -0
  554. package/cjs/ui/Tooltip.js +8 -9
  555. package/cjs/ui/Tooltip.js.map +1 -1
  556. package/cjs/ui/TooltipWrapper.js +17 -20
  557. package/cjs/ui/TooltipWrapper.js.map +1 -1
  558. package/cjs/ui/UnknownMessageItemBody.js +21 -22
  559. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  560. package/cjs/ui/UserListItem.js +76 -76
  561. package/cjs/ui/UserListItem.js.map +1 -1
  562. package/cjs/ui/UserProfile.js +31 -29
  563. package/cjs/ui/UserProfile.js.map +1 -1
  564. package/cjs/ui/VoiceMessageItemBody.js +108 -0
  565. package/cjs/ui/VoiceMessageItemBody.js.map +1 -0
  566. package/cjs/ui/VoiceMessgeInput.js +22 -0
  567. package/cjs/ui/VoiceMessgeInput.js.map +1 -0
  568. package/cjs/ui/Word.js +31 -39
  569. package/cjs/ui/Word.js.map +1 -1
  570. package/cjs/useDirtyGetMentions-97c6e05a.js +77 -0
  571. package/cjs/useDirtyGetMentions-97c6e05a.js.map +1 -0
  572. package/cjs/useLongPress-bf1e8eee.js +87 -0
  573. package/cjs/useLongPress-bf1e8eee.js.map +1 -0
  574. package/cjs/useSendbirdStateContext.js +2 -3
  575. package/cjs/useSendbirdStateContext.js.map +1 -1
  576. package/cjs/utils/message/getOutgoingMessageState.js +16 -21
  577. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  578. package/cjs/utils/message/isVoiceMessage.js +12 -0
  579. package/cjs/utils/message/isVoiceMessage.js.map +1 -0
  580. package/cjs/{utils-1f6c6626.js → utils-146517a9.js} +1 -1
  581. package/cjs/{utils-1f6c6626.js.map → utils-146517a9.js.map} +1 -1
  582. package/cjs/utils-411a893e.js +31 -0
  583. package/cjs/utils-411a893e.js.map +1 -0
  584. package/cjs/{utils-3714e90e.js → utils-dbaff0d0.js} +3 -7
  585. package/cjs/{utils-3714e90e.js.map → utils-dbaff0d0.js.map} +1 -1
  586. package/cjs/utils-de654d3c.js +35 -0
  587. package/cjs/utils-de654d3c.js.map +1 -0
  588. package/cjs/uuid-5ab4f88b.js +15 -0
  589. package/cjs/{uuid-11d4efe8.js.map → uuid-5ab4f88b.js.map} +1 -1
  590. package/cjs/withSendbird.js +5 -6
  591. package/cjs/withSendbird.js.map +1 -1
  592. package/{color-ff5f9069.js → color-2ed716e6.js} +5 -14
  593. package/{color-ff5f9069.js.map → color-2ed716e6.js.map} +1 -1
  594. package/{compareIds-9430f9d8.js → compareIds-bc881fe7.js} +5 -6
  595. package/compareIds-bc881fe7.js.map +1 -0
  596. package/{const-83764204.js → const-8daee9fc.js} +4 -4
  597. package/const-8daee9fc.js.map +1 -0
  598. package/const-e51dda0c.js +13 -0
  599. package/const-e51dda0c.js.map +1 -0
  600. package/consts-3c0ff1ed.js +27 -0
  601. package/consts-3c0ff1ed.js.map +1 -0
  602. package/consts-7aab5aff.js +4 -0
  603. package/consts-7aab5aff.js.map +1 -0
  604. package/consts-d0b365df.js +4 -0
  605. package/consts-d0b365df.js.map +1 -0
  606. package/consts-d0cfee49.js +4 -0
  607. package/consts-d0cfee49.js.map +1 -0
  608. package/context-cde5c2bf.js +13 -0
  609. package/{context-9a69e846.js.map → context-cde5c2bf.js.map} +1 -1
  610. package/dist/index.css +970 -532
  611. package/dist/index.css.map +1 -1
  612. package/handlers/OpenChannelHandler.js.map +1 -1
  613. package/handlers/SessionHandler.js.map +1 -1
  614. package/{index-134314e2.js → index-0f22e96e.js} +29 -37
  615. package/index-0f22e96e.js.map +1 -0
  616. package/index-1e5cf284.js +154 -0
  617. package/index-1e5cf284.js.map +1 -0
  618. package/{index-defabece.js → index-1ec11afb.js} +57 -4
  619. package/index-1ec11afb.js.map +1 -0
  620. package/{index-d3f6dbb9.js → index-37531f98.js} +2 -2
  621. package/{index-d3f6dbb9.js.map → index-37531f98.js.map} +1 -1
  622. package/index-3f1fa3f9.js +76 -0
  623. package/index-3f1fa3f9.js.map +1 -0
  624. package/{index-44470dab.js → index-4023d1b2.js} +11 -25
  625. package/index-4023d1b2.js.map +1 -0
  626. package/index-5141f766.js +51 -0
  627. package/index-5141f766.js.map +1 -0
  628. package/{index-fc4702b7.js → index-5a1c1956.js} +55 -63
  629. package/index-5a1c1956.js.map +1 -0
  630. package/index-735cb5a3.js +360 -0
  631. package/index-735cb5a3.js.map +1 -0
  632. package/{index-e5b78039.js → index-7bff4ce0.js} +1 -1
  633. package/index-7bff4ce0.js.map +1 -0
  634. package/{index-07e060cd.js → index-865112db.js} +1 -1
  635. package/{index-07e060cd.js.map → index-865112db.js.map} +1 -1
  636. package/index-ac642e0b.js +435 -0
  637. package/index-ac642e0b.js.map +1 -0
  638. package/index-d847a382.js +283 -0
  639. package/index-d847a382.js.map +1 -0
  640. package/index-e2601165.js +544 -0
  641. package/index-e2601165.js.map +1 -0
  642. package/{index-3f26a31c.js → index-f1701c11.js} +2 -2
  643. package/{index-3f26a31c.js.map → index-f1701c11.js.map} +1 -1
  644. package/{index-1b91b116.js → index-fa140763.js} +39 -48
  645. package/index-fa140763.js.map +1 -0
  646. package/index-fa37119a.js +187 -0
  647. package/index-fa37119a.js.map +1 -0
  648. package/index.d.ts +171 -123
  649. package/index.js +77 -58
  650. package/index.js.map +1 -1
  651. package/index.module-9202ebbd.js +4 -0
  652. package/index.module-9202ebbd.js.map +1 -0
  653. package/lame.all.js +2537 -0
  654. package/lame.all.js.map +1 -0
  655. package/package.json +61 -41
  656. package/sendbirdSelectors.js +307 -417
  657. package/sendbirdSelectors.js.map +1 -1
  658. package/{stringSet-d555d877.js → stringSet-7a8ce1ce.js} +110 -90
  659. package/stringSet-7a8ce1ce.js.map +1 -0
  660. package/tokenize-003bf3f7.js +159 -0
  661. package/tokenize-003bf3f7.js.map +1 -0
  662. package/topics-5ff88d6f.js +16 -0
  663. package/topics-5ff88d6f.js.map +1 -0
  664. package/types-bffbc5f5.js +15 -0
  665. package/types-bffbc5f5.js.map +1 -0
  666. package/ui/Accordion.js +21 -24
  667. package/ui/Accordion.js.map +1 -1
  668. package/ui/AccordionGroup.js +10 -13
  669. package/ui/AccordionGroup.js.map +1 -1
  670. package/ui/AdminMessage.js +10 -13
  671. package/ui/AdminMessage.js.map +1 -1
  672. package/ui/Avatar.js +57 -79
  673. package/ui/Avatar.js.map +1 -1
  674. package/ui/Badge.js +16 -15
  675. package/ui/Badge.js.map +1 -1
  676. package/ui/BottomSheet.js +14 -12
  677. package/ui/BottomSheet.js.map +1 -1
  678. package/ui/Button.js +20 -35
  679. package/ui/Button.js.map +1 -1
  680. package/ui/ChannelAvatar.js +38 -41
  681. package/ui/ChannelAvatar.js.map +1 -1
  682. package/ui/Checkbox.js +11 -13
  683. package/ui/Checkbox.js.map +1 -1
  684. package/ui/ConnectionStatus.js +7 -5
  685. package/ui/ConnectionStatus.js.map +1 -1
  686. package/ui/ContextMenu.js +176 -200
  687. package/ui/ContextMenu.js.map +1 -1
  688. package/ui/DateSeparator.js +12 -14
  689. package/ui/DateSeparator.js.map +1 -1
  690. package/ui/EmojiReactions.js +300 -108
  691. package/ui/EmojiReactions.js.map +1 -1
  692. package/ui/FileMessageItemBody.js +22 -23
  693. package/ui/FileMessageItemBody.js.map +1 -1
  694. package/ui/FileViewer.js +36 -36
  695. package/ui/FileViewer.js.map +1 -1
  696. package/ui/Icon.js +448 -622
  697. package/ui/Icon.js.map +1 -1
  698. package/ui/IconButton.js +20 -31
  699. package/ui/IconButton.js.map +1 -1
  700. package/ui/ImageRenderer.js +34 -43
  701. package/ui/ImageRenderer.js.map +1 -1
  702. package/ui/Input.js +16 -16
  703. package/ui/Input.js.map +1 -1
  704. package/ui/Label.js +2 -2
  705. package/ui/LinkLabel.js +4 -3
  706. package/ui/LinkLabel.js.map +1 -1
  707. package/ui/Loader.js +10 -12
  708. package/ui/Loader.js.map +1 -1
  709. package/ui/MentionLabel.js +58 -65
  710. package/ui/MentionLabel.js.map +1 -1
  711. package/ui/MentionUserLabel.js +12 -10
  712. package/ui/MentionUserLabel.js.map +1 -1
  713. package/ui/MessageContent.js +211 -549
  714. package/ui/MessageContent.js.map +1 -1
  715. package/ui/MessageInput.js +338 -119
  716. package/ui/MessageInput.js.map +1 -1
  717. package/ui/MessageItemMenu.js +83 -83
  718. package/ui/MessageItemMenu.js.map +1 -1
  719. package/ui/MessageItemReactionMenu.js +58 -62
  720. package/ui/MessageItemReactionMenu.js.map +1 -1
  721. package/ui/MessageSearchFileItem.js +55 -50
  722. package/ui/MessageSearchFileItem.js.map +1 -1
  723. package/ui/MessageSearchItem.js +41 -40
  724. package/ui/MessageSearchItem.js.map +1 -1
  725. package/ui/MessageStatus.js +10 -11
  726. package/ui/MessageStatus.js.map +1 -1
  727. package/ui/Modal.js +52 -46
  728. package/ui/Modal.js.map +1 -1
  729. package/ui/MutedAvatarOverlay.js +10 -10
  730. package/ui/MutedAvatarOverlay.js.map +1 -1
  731. package/ui/OGMessageItemBody.js +68 -64
  732. package/ui/OGMessageItemBody.js.map +1 -1
  733. package/ui/OpenChannelAdminMessage.js +8 -7
  734. package/ui/OpenChannelAdminMessage.js.map +1 -1
  735. package/ui/OpenChannelAvatar.js +18 -17
  736. package/ui/OpenChannelAvatar.js.map +1 -1
  737. package/ui/OpenchannelConversationHeader.js +17 -13
  738. package/ui/OpenchannelConversationHeader.js.map +1 -1
  739. package/ui/OpenchannelFileMessage.js +138 -149
  740. package/ui/OpenchannelFileMessage.js.map +1 -1
  741. package/ui/OpenchannelOGMessage.js +204 -233
  742. package/ui/OpenchannelOGMessage.js.map +1 -1
  743. package/ui/OpenchannelThumbnailMessage.js +213 -220
  744. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  745. package/ui/OpenchannelUserMessage.js +164 -173
  746. package/ui/OpenchannelUserMessage.js.map +1 -1
  747. package/ui/PlaceHolder.js +5 -6
  748. package/ui/PlaceHolder.js.map +1 -1
  749. package/ui/PlaybackTime.js +26 -0
  750. package/ui/PlaybackTime.js.map +1 -0
  751. package/ui/ProgressBar.js +30 -0
  752. package/ui/ProgressBar.js.map +1 -0
  753. package/ui/QuoteMessage.js +50 -44
  754. package/ui/QuoteMessage.js.map +1 -1
  755. package/ui/QuoteMessageInput.js +31 -29
  756. package/ui/QuoteMessageInput.js.map +1 -1
  757. package/ui/ReactionBadge.js +13 -21
  758. package/ui/ReactionBadge.js.map +1 -1
  759. package/ui/ReactionButton.js +30 -27
  760. package/ui/ReactionButton.js.map +1 -1
  761. package/ui/SortByRow.js +14 -18
  762. package/ui/SortByRow.js.map +1 -1
  763. package/ui/TextButton.js +13 -21
  764. package/ui/TextButton.js.map +1 -1
  765. package/ui/TextMessageItemBody.js +41 -48
  766. package/ui/TextMessageItemBody.js.map +1 -1
  767. package/ui/ThreadReplies.js +25 -22
  768. package/ui/ThreadReplies.js.map +1 -1
  769. package/ui/ThumbnailMessageItemBody.js +43 -45
  770. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  771. package/ui/Toggle.js +191 -0
  772. package/ui/Toggle.js.map +1 -0
  773. package/ui/Tooltip.js +8 -9
  774. package/ui/Tooltip.js.map +1 -1
  775. package/ui/TooltipWrapper.js +17 -20
  776. package/ui/TooltipWrapper.js.map +1 -1
  777. package/ui/UnknownMessageItemBody.js +21 -22
  778. package/ui/UnknownMessageItemBody.js.map +1 -1
  779. package/ui/UserListItem.js +76 -76
  780. package/ui/UserListItem.js.map +1 -1
  781. package/ui/UserProfile.js +31 -29
  782. package/ui/UserProfile.js.map +1 -1
  783. package/ui/VoiceMessageItemBody.js +99 -0
  784. package/ui/VoiceMessageItemBody.js.map +1 -0
  785. package/ui/VoiceMessgeInput.js +14 -0
  786. package/ui/VoiceMessgeInput.js.map +1 -0
  787. package/ui/Word.js +31 -39
  788. package/ui/Word.js.map +1 -1
  789. package/useDirtyGetMentions-aac697f4.js +75 -0
  790. package/useDirtyGetMentions-aac697f4.js.map +1 -0
  791. package/useLongPress-fbab35a9.js +85 -0
  792. package/useLongPress-fbab35a9.js.map +1 -0
  793. package/useSendbirdStateContext.js +2 -3
  794. package/useSendbirdStateContext.js.map +1 -1
  795. package/utils/message/getOutgoingMessageState.js +9 -15
  796. package/utils/message/getOutgoingMessageState.js.map +1 -1
  797. package/utils/message/isVoiceMessage.js +8 -0
  798. package/utils/message/isVoiceMessage.js.map +1 -0
  799. package/{utils-8b11ff42.js → utils-0d88f863.js} +3 -7
  800. package/{utils-8b11ff42.js.map → utils-0d88f863.js.map} +1 -1
  801. package/{utils-e720e03a.js → utils-388a790e.js} +1 -1
  802. package/{utils-e720e03a.js.map → utils-388a790e.js.map} +1 -1
  803. package/utils-6f2bb331.js +31 -0
  804. package/utils-6f2bb331.js.map +1 -0
  805. package/utils-af761f03.js +29 -0
  806. package/utils-af761f03.js.map +1 -0
  807. package/uuid-1f1bbd9c.js +13 -0
  808. package/{uuid-286ed926.js.map → uuid-1f1bbd9c.js.map} +1 -1
  809. package/withSendbird.js +5 -6
  810. package/withSendbird.js.map +1 -1
  811. package/ChannelListProvider-f461d265.js.map +0 -1
  812. package/ChannelProvider-554e7116.js.map +0 -1
  813. package/CreateChannelProvider-250cd98e.js +0 -55
  814. package/CreateChannelProvider-250cd98e.js.map +0 -1
  815. package/LocalizationContext-4df0cc32.js +0 -22
  816. package/MediaQueryContext-74183e34.js +0 -90
  817. package/MediaQueryContext-74183e34.js.map +0 -1
  818. package/MemberList-51c7afaa.js +0 -435
  819. package/MemberList-51c7afaa.js.map +0 -1
  820. package/NotificationChannel/components/NotificationChannelUI.js +0 -119
  821. package/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
  822. package/NotificationChannel/components/NotificationList.js +0 -111
  823. package/NotificationChannel/components/NotificationList.js.map +0 -1
  824. package/NotificationChannel/components/NotificationMessageWrap.js +0 -136
  825. package/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
  826. package/NotificationChannel/context.js +0 -12
  827. package/NotificationChannel.js +0 -58
  828. package/NotificationChannel.js.map +0 -1
  829. package/NotificationChannelProvider-0d8be1ad.js +0 -535
  830. package/NotificationChannelProvider-0d8be1ad.js.map +0 -1
  831. package/OpenChannelListProvider-8c753945.js +0 -434
  832. package/OpenChannelListProvider-8c753945.js.map +0 -1
  833. package/OpenChannelProvider-2fa01820.js +0 -2000
  834. package/OpenChannelProvider-2fa01820.js.map +0 -1
  835. package/RemoveMessageModal-9762fed1.js +0 -31
  836. package/RemoveMessageModal-9762fed1.js.map +0 -1
  837. package/ThreadProvider-6974fb3e.js +0 -1644
  838. package/ThreadProvider-6974fb3e.js.map +0 -1
  839. package/_rollupPluginBabelHelpers-498add61.js.map +0 -1
  840. package/actionTypes-ad2cbd73.js +0 -6
  841. package/actionTypes-ad2cbd73.js.map +0 -1
  842. package/cjs/ChannelListProvider-c2148b43.js.map +0 -1
  843. package/cjs/ChannelProvider-cf5dc7e3.js.map +0 -1
  844. package/cjs/CreateChannelProvider-c98de398.js +0 -62
  845. package/cjs/CreateChannelProvider-c98de398.js.map +0 -1
  846. package/cjs/MediaQueryContext-71862be1.js +0 -97
  847. package/cjs/MediaQueryContext-71862be1.js.map +0 -1
  848. package/cjs/MemberList-13566703.js +0 -441
  849. package/cjs/MemberList-13566703.js.map +0 -1
  850. package/cjs/NotificationChannel/components/NotificationChannelUI.js +0 -125
  851. package/cjs/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
  852. package/cjs/NotificationChannel/components/NotificationList.js +0 -117
  853. package/cjs/NotificationChannel/components/NotificationList.js.map +0 -1
  854. package/cjs/NotificationChannel/components/NotificationMessageWrap.js +0 -142
  855. package/cjs/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
  856. package/cjs/NotificationChannel/context.js +0 -21
  857. package/cjs/NotificationChannel.js +0 -64
  858. package/cjs/NotificationChannel.js.map +0 -1
  859. package/cjs/NotificationChannelProvider-8f3b7320.js +0 -543
  860. package/cjs/NotificationChannelProvider-8f3b7320.js.map +0 -1
  861. package/cjs/OpenChannelListProvider-64043b4f.js +0 -443
  862. package/cjs/OpenChannelListProvider-64043b4f.js.map +0 -1
  863. package/cjs/OpenChannelProvider-5b56e629.js +0 -2009
  864. package/cjs/OpenChannelProvider-5b56e629.js.map +0 -1
  865. package/cjs/RemoveMessageModal-c01eb93b.js.map +0 -1
  866. package/cjs/ThreadProvider-d3c0c877.js +0 -1653
  867. package/cjs/ThreadProvider-d3c0c877.js.map +0 -1
  868. package/cjs/_rollupPluginBabelHelpers-a7254c9d.js.map +0 -1
  869. package/cjs/actionTypes-0e8bea91.js +0 -10
  870. package/cjs/actionTypes-0e8bea91.js.map +0 -1
  871. package/cjs/color-89f33656.js.map +0 -1
  872. package/cjs/compareIds-ca869c2e.js.map +0 -1
  873. package/cjs/const-55d167ca.js +0 -20
  874. package/cjs/const-55d167ca.js.map +0 -1
  875. package/cjs/const-db71e993.js.map +0 -1
  876. package/cjs/index-0988ab25.js.map +0 -1
  877. package/cjs/index-21b2339d.js +0 -701
  878. package/cjs/index-21b2339d.js.map +0 -1
  879. package/cjs/index-5c81f847.js +0 -194
  880. package/cjs/index-5c81f847.js.map +0 -1
  881. package/cjs/index-621e74bd.js.map +0 -1
  882. package/cjs/index-8de59744.js +0 -59
  883. package/cjs/index-8de59744.js.map +0 -1
  884. package/cjs/index-a52859ed.js +0 -360
  885. package/cjs/index-a52859ed.js.map +0 -1
  886. package/cjs/index-be9c6237.js.map +0 -1
  887. package/cjs/index-c4d4ef49.js.map +0 -1
  888. package/cjs/index-d6ef2a60.js.map +0 -1
  889. package/cjs/index-e240e852.js.map +0 -1
  890. package/cjs/stringSet-91b919f6.js.map +0 -1
  891. package/cjs/topics-ac9cf7ed.js +0 -22
  892. package/cjs/topics-ac9cf7ed.js.map +0 -1
  893. package/cjs/tslib.es6-43854eb1.js +0 -110
  894. package/cjs/tslib.es6-43854eb1.js.map +0 -1
  895. package/cjs/useLongPress-c7bf12b1.js +0 -118
  896. package/cjs/useLongPress-c7bf12b1.js.map +0 -1
  897. package/cjs/utils-4b529d96.js +0 -38
  898. package/cjs/utils-4b529d96.js.map +0 -1
  899. package/cjs/utils-65a380e8.js +0 -32
  900. package/cjs/utils-65a380e8.js.map +0 -1
  901. package/cjs/uuid-11d4efe8.js +0 -19
  902. package/compareIds-9430f9d8.js.map +0 -1
  903. package/const-83764204.js.map +0 -1
  904. package/const-9d11f204.js +0 -14
  905. package/const-9d11f204.js.map +0 -1
  906. package/context-9a69e846.js +0 -12
  907. package/index-134314e2.js.map +0 -1
  908. package/index-1572c90f.js +0 -57
  909. package/index-1572c90f.js.map +0 -1
  910. package/index-1b91b116.js.map +0 -1
  911. package/index-44470dab.js.map +0 -1
  912. package/index-5f08f486.js +0 -662
  913. package/index-5f08f486.js.map +0 -1
  914. package/index-d8e3ccee.js +0 -179
  915. package/index-d8e3ccee.js.map +0 -1
  916. package/index-defabece.js.map +0 -1
  917. package/index-e5b78039.js.map +0 -1
  918. package/index-ed65ee3b.js +0 -353
  919. package/index-ed65ee3b.js.map +0 -1
  920. package/index-fc4702b7.js.map +0 -1
  921. package/stringSet-d555d877.js.map +0 -1
  922. package/topics-351ea731.js +0 -13
  923. package/topics-351ea731.js.map +0 -1
  924. package/tslib.es6-bcead7e6.js +0 -104
  925. package/tslib.es6-bcead7e6.js.map +0 -1
  926. package/useLongPress-794838b8.js +0 -116
  927. package/useLongPress-794838b8.js.map +0 -1
  928. package/utils-00ac1a7d.js +0 -34
  929. package/utils-00ac1a7d.js.map +0 -1
  930. package/utils-01e76a0c.js +0 -30
  931. package/utils-01e76a0c.js.map +0 -1
  932. package/uuid-286ed926.js +0 -17
@@ -1,22 +1,18 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var UserProfileContext = require('./UserProfileContext-9d60cdc4.js');
4
+ var UserProfileContext = require('./UserProfileContext-c87514d3.js');
5
5
  var useSendbirdStateContext = require('./useSendbirdStateContext.js');
6
- var index$1 = require('./index-73467e1d.js');
7
- var topics = require('./topics-ac9cf7ed.js');
8
- var index = require('./index-21b2339d.js');
9
- require('./utils/message/getOutgoingMessageState.js');
10
- var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-a7254c9d.js');
11
- var compareIds = require('./compareIds-ca869c2e.js');
12
- var _const = require('./const-55d167ca.js');
6
+ var index$1 = require('./index-849f44b0.js');
7
+ var topics = require('./topics-3226c6ee.js');
8
+ var index = require('./index-0b8a1074.js');
9
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-3a9d1641.js');
10
+ var compareIds = require('./compareIds-a7029d6a.js');
11
+ var _const = require('./const-68cf2709.js');
13
12
  var groupChannel = require('@sendbird/chat/groupChannel');
14
- var uuid = require('./uuid-11d4efe8.js');
13
+ var uuid = require('./uuid-5ab4f88b.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-f71467c8.js');
20
16
 
21
17
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
18
 
@@ -79,19 +75,37 @@ const {
79
75
  FAILED,
80
76
  PENDING
81
77
  } = index.getSendingMessageStatus();
78
+ const scrollToRenderedMessage = (scrollRef, initialTimeStamp) => {
79
+ try {
80
+ var _container$querySelec;
81
+ const container = scrollRef.current;
82
+ // scroll into the message with initialTimeStamp
83
+ const element = (_container$querySelec = container.querySelectorAll(`[data-sb-created-at="${initialTimeStamp}"]`)) === null || _container$querySelec === void 0 ? void 0 : _container$querySelec[0];
84
+ if (element) {
85
+ // Calculate the offset of the element from the top of the container
86
+ const containerHeight = container.offsetHeight;
87
+ const elementHeight = element.offsetHeight;
88
+ const elementOffset = (containerHeight - elementHeight) / 2;
89
+ // Set the scroll position of the container to bring the element to the middle
90
+ container.scrollTop = element.offsetTop - elementOffset;
91
+ }
92
+ } catch (_unused) {
93
+ // do nothing
94
+ }
95
+ };
96
+
97
+ /* eslint-disable default-param-last */
82
98
  const scrollIntoLast = function () {
83
99
  let initialTry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
84
100
  let scrollRef = arguments.length > 1 ? arguments[1] : undefined;
85
101
  const MAX_TRIES = 10;
86
102
  const currentTry = initialTry;
87
-
88
103
  if (currentTry > MAX_TRIES) {
89
104
  return;
90
105
  }
91
-
92
106
  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
-
107
+ const scrollDOM = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || document.querySelector('.sendbird-conversation__messages-padding');
108
+ // eslint-disable-next-line no-multi-assign
95
109
  scrollDOM.scrollTop = scrollDOM.scrollHeight;
96
110
  } catch (error) {
97
111
  setTimeout(() => {
@@ -103,7 +117,8 @@ const pubSubHandleRemover = subscriber => {
103
117
  subscriber.forEach(s => {
104
118
  try {
105
119
  s.remove();
106
- } catch (_unused) {//
120
+ } catch (_unused2) {
121
+ //
107
122
  }
108
123
  });
109
124
  };
@@ -116,13 +131,12 @@ const pubSubHandler = _ref => {
116
131
  } = _ref;
117
132
  const subscriber = new Map();
118
133
  if (!pubSub || !pubSub.subscribe) return subscriber;
119
- subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, msg => {
134
+ subscriber.set(topics.PUBSUB_TOPICS.SEND_USER_MESSAGE, pubSub.subscribe(topics.PUBSUB_TOPICS.SEND_USER_MESSAGE, msg => {
120
135
  const {
121
136
  channel,
122
137
  message
123
138
  } = msg;
124
139
  scrollIntoLast(0, scrollRef);
125
-
126
140
  if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
127
141
  dispatcher({
128
142
  type: SEND_MESSAGEGE_SUCESS,
@@ -130,12 +144,11 @@ const pubSubHandler = _ref => {
130
144
  });
131
145
  }
132
146
  }));
133
- subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, msg => {
147
+ subscriber.set(topics.PUBSUB_TOPICS.SEND_MESSAGE_START, pubSub.subscribe(topics.PUBSUB_TOPICS.SEND_MESSAGE_START, msg => {
134
148
  const {
135
149
  channel,
136
150
  message
137
151
  } = msg;
138
-
139
152
  if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
140
153
  dispatcher({
141
154
  type: SEND_MESSAGEGE_START,
@@ -143,13 +156,12 @@ const pubSubHandler = _ref => {
143
156
  });
144
157
  }
145
158
  }));
146
- subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, msg => {
159
+ subscriber.set(topics.PUBSUB_TOPICS.SEND_FILE_MESSAGE, pubSub.subscribe(topics.PUBSUB_TOPICS.SEND_FILE_MESSAGE, msg => {
147
160
  const {
148
161
  channel,
149
162
  message
150
163
  } = msg;
151
164
  scrollIntoLast(0, scrollRef);
152
-
153
165
  if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
154
166
  dispatcher({
155
167
  type: SEND_MESSAGEGE_SUCESS,
@@ -157,13 +169,12 @@ const pubSubHandler = _ref => {
157
169
  });
158
170
  }
159
171
  }));
160
- subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, msg => {
172
+ subscriber.set(topics.PUBSUB_TOPICS.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.PUBSUB_TOPICS.UPDATE_USER_MESSAGE, msg => {
161
173
  const {
162
174
  channel,
163
175
  message,
164
176
  fromSelector
165
177
  } = msg;
166
-
167
178
  if (fromSelector && channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
168
179
  dispatcher({
169
180
  type: ON_MESSAGE_UPDATED,
@@ -174,12 +185,11 @@ const pubSubHandler = _ref => {
174
185
  });
175
186
  }
176
187
  }));
177
- subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, msg => {
188
+ subscriber.set(topics.PUBSUB_TOPICS.DELETE_MESSAGE, pubSub.subscribe(topics.PUBSUB_TOPICS.DELETE_MESSAGE, msg => {
178
189
  const {
179
190
  channel,
180
191
  messageId
181
192
  } = msg;
182
-
183
193
  if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
184
194
  dispatcher({
185
195
  type: ON_MESSAGE_DELETED,
@@ -204,37 +214,16 @@ const isDisabledBecauseMuted = function () {
204
214
  const myMutedState = groupChannel === null || groupChannel === void 0 ? void 0 : groupChannel.myMutedState;
205
215
  return myMutedState === 'muted';
206
216
  };
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
217
  const getAllEmojisMapFromEmojiContainer = function () {
227
218
  let emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
228
219
  const {
229
220
  emojiCategories = []
230
221
  } = emojiContainer;
231
222
  const allEmojisMap = new Map();
232
-
233
223
  for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {
234
224
  const {
235
225
  emojis
236
226
  } = emojiCategories[categoryIndex];
237
-
238
227
  for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {
239
228
  const {
240
229
  key,
@@ -243,13 +232,11 @@ const getAllEmojisMapFromEmojiContainer = function () {
243
232
  allEmojisMap.set(key, url);
244
233
  }
245
234
  }
246
-
247
235
  return allEmojisMap;
248
236
  };
249
237
  const getNicknamesMapFromMembers = function () {
250
238
  let members = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
251
239
  const nicknamesMap = new Map();
252
-
253
240
  for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {
254
241
  const {
255
242
  userId,
@@ -257,24 +244,39 @@ const getNicknamesMapFromMembers = function () {
257
244
  } = members[memberIndex];
258
245
  nicknamesMap.set(userId, nickname);
259
246
  }
260
-
261
247
  return nicknamesMap;
262
248
  };
249
+ const getUniqueListBy = (arr, key) => [...new Map(arr.map(item => [item[key], item])).values()];
250
+ const getUniqueListByMessageId = arr => getUniqueListBy(arr, 'messageId');
251
+ const sortByCreatedAt = messages => messages.sort((a, b) => a.createdAt - b.createdAt);
252
+ const mergeAndSortMessages = (oldMessages, newMessages) => {
253
+ const lastOldMessage = oldMessages[oldMessages.length - 1];
254
+ const firstNewMessage = newMessages[0];
255
+ // If the last message of oldMessages is older than the first message of newMessages,
256
+ // then we can safely append newMessages to oldMessages.
257
+ if ((lastOldMessage === null || lastOldMessage === void 0 ? void 0 : lastOldMessage.createdAt) < (firstNewMessage === null || firstNewMessage === void 0 ? void 0 : firstNewMessage.createdAt)) {
258
+ return [...oldMessages, ...newMessages];
259
+ }
260
+
261
+ // todo: optimize this
262
+ // If the last message of oldMessages is newer than the first message of newMessages,
263
+ // then we need to merge the two arrays and sort them by createdAt.
264
+ const mergedMessages = [...oldMessages, ...newMessages];
265
+ const unique = getUniqueListByMessageId(mergedMessages);
266
+ return sortByCreatedAt(unique);
267
+ };
263
268
  const getMessageCreatedAt = message => index$1.format(message.createdAt, 'p');
264
269
  const isSameGroup = (message, comparingMessage, currentChannel) => {
265
270
  var _message$sender, _comparingMessage$sen, _message$sender2, _comparingMessage$sen2;
266
-
267
271
  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
272
  return false;
269
273
  }
270
-
271
274
  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
275
  };
273
276
  const compareMessagesForGrouping = (prevMessage, currMessage, nextMessage, currentChannel, replyType) => {
274
277
  if (replyType === 'THREAD' && currMessage !== null && currMessage !== void 0 && currMessage.threadInfo) {
275
278
  return [false, false];
276
279
  }
277
-
278
280
  const sendingStatus = (currMessage === null || currMessage === void 0 ? void 0 : currMessage.sendingStatus) || '';
279
281
  const isAcceptable = sendingStatus !== 'pending' && sendingStatus !== 'failed';
280
282
  return [isSameGroup(prevMessage, currMessage, currentChannel) && isAcceptable, isSameGroup(currMessage, nextMessage, currentChannel) && isAcceptable];
@@ -283,36 +285,45 @@ const passUnsuccessfullMessages = (allMessages, newMessage) => {
283
285
  const {
284
286
  sendingStatus = UNDEFINED
285
287
  } = newMessage;
286
-
287
288
  if (sendingStatus === SUCCEEDED$1 || sendingStatus === PENDING) {
288
289
  const lastIndexOfSucceededMessage = allMessages.map(message => message.sendingStatus || (message.isAdminMessage && message.isAdminMessage() ? SUCCEEDED$1 : UNDEFINED)).lastIndexOf(SUCCEEDED$1);
289
-
290
290
  if (lastIndexOfSucceededMessage + 1 < allMessages.length) {
291
291
  const messages = [...allMessages];
292
292
  messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);
293
293
  return messages;
294
294
  }
295
295
  }
296
-
297
296
  return [...allMessages, newMessage];
298
297
  };
299
298
  const pxToNumber = px => {
300
299
  if (typeof px === 'number') {
301
300
  return px;
302
301
  }
303
-
304
302
  if (typeof px === 'string') {
305
303
  const parsed = Number.parseFloat(px);
306
-
307
304
  if (!Number.isNaN(parsed)) {
308
305
  return parsed;
309
306
  }
310
307
  }
311
-
312
308
  return null;
313
309
  };
314
310
  const isAboutSame = (a, b, px) => Math.abs(a - b) <= px;
315
311
 
312
+ /**
313
+ * This function helps consider the every condition
314
+ * related to enabling emoji reaction feature.
315
+ */
316
+
317
+ function getIsReactionEnabled(_ref) {
318
+ let {
319
+ isBroadcast = false,
320
+ isSuper = false,
321
+ globalLevel = true,
322
+ moduleLevel
323
+ } = _ref;
324
+ return !(isBroadcast || isSuper) && (moduleLevel !== null && moduleLevel !== void 0 ? moduleLevel : globalLevel);
325
+ }
326
+
316
327
  var messagesInitialState = {
317
328
  initialized: false,
318
329
  loading: true,
@@ -338,22 +349,18 @@ var messagesInitialState = {
338
349
  const {
339
350
  SUCCEEDED
340
351
  } = index.getSendingMessageStatus();
341
-
342
352
  const getOldestMessageTimeStamp = function () {
343
353
  let messages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
344
354
  const oldestMessage = messages[0];
345
355
  return oldestMessage && oldestMessage.createdAt || null;
346
356
  };
347
-
348
357
  const getLatestMessageTimeStamp = function () {
349
358
  let messages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
350
359
  const latestMessage = messages[messages.length - 1];
351
360
  return latestMessage && latestMessage.createdAt || null;
352
361
  };
353
-
354
362
  function reducer(state, action) {
355
363
  var _state$currentGroupCh7, _action$payload, _action$payload$chann;
356
-
357
364
  switch (action.type) {
358
365
  case RESET_MESSAGES:
359
366
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
@@ -363,7 +370,6 @@ function reducer(state, action) {
363
370
  hasMoreNext: false,
364
371
  allMessages: []
365
372
  });
366
-
367
373
  case FETCH_INITIAL_MESSAGES_START:
368
374
  {
369
375
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
@@ -371,20 +377,16 @@ function reducer(state, action) {
371
377
  allMessages: [...state.allMessages.filter(m => m.sendingStatus !== SUCCEEDED)]
372
378
  });
373
379
  }
374
-
375
380
  case FETCH_INITIAL_MESSAGES_SUCCESS:
376
381
  {
377
382
  var _state$currentGroupCh;
378
-
379
383
  const {
380
384
  currentGroupChannel,
381
385
  messages
382
386
  } = action.payload;
383
-
384
387
  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
388
  return state;
386
389
  }
387
-
388
390
  const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
389
391
  const latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
390
392
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
@@ -397,23 +399,20 @@ function reducer(state, action) {
397
399
  allMessages: [...messages]
398
400
  });
399
401
  }
400
-
401
402
  case FETCH_PREV_MESSAGES_SUCCESS:
402
403
  {
403
404
  var _state$currentGroupCh2;
404
-
405
405
  const {
406
406
  currentGroupChannel,
407
407
  messages
408
408
  } = action.payload;
409
-
410
409
  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
410
  return state;
412
411
  }
413
-
414
412
  const hasMorePrev = messages && messages.length === _const.PREV_RESULT_SIZE + 1;
415
- const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages); // Remove duplicated messages
413
+ const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
416
414
 
415
+ // Remove duplicated messages
417
416
  const duplicatedMessageIds = [];
418
417
  const updatedOldMessages = state.allMessages.map(msg => {
419
418
  const duplicatedMessage = messages.find(_ref => {
@@ -422,11 +421,9 @@ function reducer(state, action) {
422
421
  } = _ref;
423
422
  return compareIds.compareIds(messageId, msg.messageId);
424
423
  });
425
-
426
424
  if (!duplicatedMessage) {
427
425
  return msg;
428
426
  }
429
-
430
427
  duplicatedMessageIds.push(duplicatedMessage.messageId);
431
428
  return duplicatedMessage.updatedAt > msg.updatedAt ? duplicatedMessage : msg;
432
429
  });
@@ -437,61 +434,38 @@ function reducer(state, action) {
437
434
  allMessages: [...filteredNewMessages, ...updatedOldMessages]
438
435
  });
439
436
  }
440
-
441
437
  case FETCH_NEXT_MESSAGES_SUCCESS:
442
438
  {
443
439
  var _state$currentGroupCh3;
444
-
445
440
  const {
446
441
  currentGroupChannel,
447
442
  messages
448
443
  } = action.payload;
449
-
450
444
  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
445
  return state;
452
446
  }
453
-
454
447
  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
- }
448
+ const latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
469
449
 
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;
450
+ // sort ~
451
+ const sortedMessages = mergeAndSortMessages(state.allMessages, messages);
474
452
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
475
453
  hasMoreNext,
476
454
  latestMessageTimeStamp,
477
- allMessages: [...updatedOldMessages, ...filteredNewMessages]
455
+ allMessages: sortedMessages
478
456
  });
479
457
  }
480
-
481
458
  case FETCH_INITIAL_MESSAGES_FAILURE:
482
459
  case FETCH_PREV_MESSAGES_FAILURE:
483
460
  case FETCH_NEXT_MESSAGES_FAILURE:
484
461
  {
485
462
  var _state$currentGroupCh4;
486
-
487
463
  const {
488
464
  currentGroupChannel
489
465
  } = action.payload;
490
-
491
466
  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
467
  return state;
493
468
  }
494
-
495
469
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
496
470
  loading: false,
497
471
  initialized: false,
@@ -502,12 +476,10 @@ function reducer(state, action) {
502
476
  latestMessageTimeStamp: null
503
477
  });
504
478
  }
505
-
506
479
  case SEND_MESSAGEGE_START:
507
480
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
508
481
  allMessages: [...state.allMessages, _rollupPluginBabelHelpers._objectSpread2({}, action.payload)]
509
482
  });
510
-
511
483
  case SEND_MESSAGEGE_SUCESS:
512
484
  {
513
485
  const message = action.payload;
@@ -517,7 +489,6 @@ function reducer(state, action) {
517
489
  allMessages: pendingIndex > -1 ? [...filteredMessages.slice(0, pendingIndex), message, ...filteredMessages.slice(pendingIndex)] : [...filteredMessages, message]
518
490
  });
519
491
  }
520
-
521
492
  case SEND_MESSAGEGE_FAILURE:
522
493
  {
523
494
  // eslint-disable-next-line no-param-reassign
@@ -526,7 +497,6 @@ function reducer(state, action) {
526
497
  allMessages: state.allMessages.map(m => compareIds.compareIds(m.reqId, action.payload.reqId) ? action.payload : m)
527
498
  });
528
499
  }
529
-
530
500
  case SET_CURRENT_CHANNEL:
531
501
  {
532
502
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
@@ -534,7 +504,6 @@ function reducer(state, action) {
534
504
  isInvalid: false
535
505
  });
536
506
  }
537
-
538
507
  case SET_CHANNEL_INVALID:
539
508
  {
540
509
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
@@ -542,7 +511,6 @@ function reducer(state, action) {
542
511
  isInvalid: true
543
512
  });
544
513
  }
545
-
546
514
  case ON_MESSAGE_RECEIVED:
547
515
  {
548
516
  const {
@@ -560,57 +528,47 @@ function reducer(state, action) {
560
528
  unreadSince
561
529
  } = state;
562
530
  const currentGroupChannelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
563
-
564
531
  if (!compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
565
532
  return state;
566
- } // Excluded overlapping messages
567
-
568
-
533
+ }
534
+ // Excluded overlapping messages
569
535
  if (state.allMessages.some(msg => msg.messageId === message.messageId)) {
570
536
  return state;
571
- } // Filter by userFilledQuery
572
-
573
-
537
+ }
538
+ // Filter by userFilledQuery
574
539
  if (state.messageListParams && !index.filterMessageListParams(state.messageListParams, message)) {
575
540
  return state;
576
541
  }
577
-
578
542
  if (message.isAdminMessage && message.isAdminMessage()) {
579
543
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
580
544
  allMessages: passUnsuccessfullMessages(state.allMessages, message)
581
545
  });
582
- } // Update members when sender profileUrl, nickname, friendName has been changed
583
-
546
+ }
584
547
 
548
+ // Update members when sender profileUrl, nickname, friendName has been changed
585
549
  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
550
  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
551
  channel.members = members.map(member => {
589
552
  if (member.userId === sender.userId) {
590
553
  return sender;
591
554
  }
592
-
593
555
  return member;
594
556
  });
595
557
  }
596
-
597
558
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
598
559
  currentGroupChannel: channel,
599
560
  unreadSince: state !== null && state !== void 0 && state.unreadSince ? unreadSince : index$1.format(new Date(), 'p MMM dd'),
600
561
  allMessages: passUnsuccessfullMessages(state.allMessages, message)
601
562
  });
602
563
  }
603
-
604
564
  case ON_MESSAGE_UPDATED:
605
565
  {
606
566
  var _state$currentGroupCh5;
607
-
608
567
  const {
609
568
  channel,
610
569
  message
611
570
  } = action.payload;
612
571
  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
572
  if (!compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
615
573
  return state; // Ignore event when it is not for the current channel
616
574
  }
@@ -621,13 +579,11 @@ function reducer(state, action) {
621
579
  allMessages: state.allMessages.filter(m => !compareIds.compareIds(m.messageId, message === null || message === void 0 ? void 0 : message.messageId))
622
580
  });
623
581
  }
624
-
625
582
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
626
583
  allMessages: state.allMessages.map(m => {
627
584
  if (compareIds.compareIds(m.messageId, message.messageId)) {
628
585
  return message;
629
586
  }
630
-
631
587
  if (compareIds.compareIds(m.parentMessageId, message.messageId)) {
632
588
  m.parentMessage = message; // eslint-disable-line no-param-reassign
633
589
  }
@@ -636,11 +592,9 @@ function reducer(state, action) {
636
592
  })
637
593
  });
638
594
  }
639
-
640
595
  case ON_MESSAGE_THREAD_INFO_UPDATED:
641
596
  {
642
597
  var _state$currentGroupCh6;
643
-
644
598
  const {
645
599
  channel,
646
600
  event
@@ -651,7 +605,6 @@ function reducer(state, action) {
651
605
  targetMessageId
652
606
  } = event;
653
607
  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
608
  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
609
  return state; // Ignore event when it is not for the current channel
657
610
  }
@@ -667,38 +620,31 @@ function reducer(state, action) {
667
620
  })
668
621
  });
669
622
  }
670
-
671
623
  case RESEND_MESSAGEGE_START:
672
624
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
673
625
  allMessages: state.allMessages.map(m => compareIds.compareIds(m.reqId, action.payload.reqId) ? action.payload : m)
674
626
  });
675
-
676
627
  case MARK_AS_READ:
677
628
  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
629
  return state;
679
630
  }
680
-
681
631
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
682
632
  unreadSince: null
683
633
  });
684
-
685
634
  case ON_MESSAGE_DELETED:
686
635
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
687
636
  allMessages: state.allMessages.filter(m => !compareIds.compareIds(m.messageId, action.payload))
688
637
  });
689
-
690
638
  case ON_MESSAGE_DELETED_BY_REQ_ID:
691
639
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
692
640
  allMessages: state.allMessages.filter(m => !compareIds.compareIds(m.reqId, action.payload))
693
641
  });
694
-
695
642
  case SET_EMOJI_CONTAINER:
696
643
  {
697
644
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
698
645
  emojiContainer: action.payload
699
646
  });
700
647
  }
701
-
702
648
  case ON_REACTION_UPDATED:
703
649
  {
704
650
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
@@ -707,86 +653,102 @@ function reducer(state, action) {
707
653
  if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {
708
654
  m.applyReactionEvent(action.payload);
709
655
  }
710
-
711
656
  return m;
712
657
  }
713
-
714
658
  return m;
715
659
  })
716
660
  });
717
661
  }
718
-
719
662
  case MESSAGE_LIST_PARAMS_CHANGED:
720
663
  {
721
664
  return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
722
665
  messageListParams: action.payload
723
666
  });
724
667
  }
725
-
726
668
  default:
727
669
  return state;
728
670
  }
729
671
  }
730
672
 
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
-
673
+ /**
674
+ * Handles ChannelEvents and send values to dispatcher using messagesDispatcher
675
+ * messagesDispatcher: Dispatcher
676
+ * sdk: sdkInstance
677
+ * logger: loggerInstance
678
+ * channelUrl: string
679
+ * sdkInit: bool
680
+ */
681
+
682
+ const DELIVERY_RECIPT = 'delivery_receipt';
683
+ function useHandleChannelEvents(_ref, _ref2) {
684
+ var _store$stores$sdkStor, _store$stores$sdkStor2, _store$stores$sdkStor3;
685
+ let {
686
+ sdkInit,
687
+ currentUserId,
688
+ currentGroupChannel,
689
+ disableMarkAsRead
690
+ } = _ref;
691
+ let {
692
+ sdk,
693
+ logger,
694
+ scrollRef,
695
+ setQuoteMessage,
696
+ messagesDispatcher
697
+ } = _ref2;
698
+ const store = useSendbirdStateContext();
699
+ const {
700
+ markAsReadScheduler,
701
+ markAsDeliveredScheduler,
702
+ disableMarkAsDelivered
703
+ } = store.config;
704
+ 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);
705
+ React.useEffect(() => {
706
+ const channelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
707
+ const channelHandlerId = uuid.uuidv4();
748
708
  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
-
709
+ var _sdk$groupChannel;
710
+ const channelHandler = {
711
+ onMessageReceived: (channel, message) => {
712
+ if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
713
+ var _document$getElementB, _document$getElementB2;
714
+ let scrollToEnd = false;
755
715
  try {
756
- var current = scrollRef.current;
757
- scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight - 10; // 10 is a buffer
758
- } catch (error) {//
716
+ const {
717
+ current
718
+ } = scrollRef;
719
+ scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight - 10;
720
+ // 10 is a buffer
721
+ } catch (error) {
722
+ //
759
723
  }
760
-
761
724
  logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);
762
725
  messagesDispatcher({
763
726
  type: ON_MESSAGE_RECEIVED,
764
727
  payload: {
765
- channel: channel,
766
- message: message
728
+ channel,
729
+ message
767
730
  }
768
731
  });
769
-
770
- if (scrollToEnd) {
732
+ 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) {
733
+ // and !openContextMenu
771
734
  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
-
735
+ setTimeout(() => {
779
736
  scrollIntoLast(0, scrollRef);
780
737
  });
738
+ if (!disableMarkAsRead) {
739
+ markAsReadScheduler.push(currentGroupChannel);
740
+ }
741
+ if (canSetMarkAsDelivered && !disableMarkAsDelivered) {
742
+ markAsDeliveredScheduler.push(currentGroupChannel);
743
+ }
781
744
  } catch (error) {
782
745
  logger.warning('Channel | onMessageReceived | scroll to end failed');
783
746
  }
784
747
  }
785
748
  }
786
749
  },
787
- onUnreadMemberStatusUpdated: function (channel) {
750
+ onUnreadMemberStatusUpdated: channel => {
788
751
  logger.info('Channel | useHandleChannelEvents: onUnreadMemberStatusUpdated', channel);
789
-
790
752
  if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
791
753
  messagesDispatcher({
792
754
  type: SET_CURRENT_CHANNEL,
@@ -795,7 +757,7 @@ function useHandleChannelEvents(_a, _b) {
795
757
  }
796
758
  },
797
759
  // before(onDeliveryReceiptUpdated)
798
- onUndeliveredMemberStatusUpdated: function (channel) {
760
+ onUndeliveredMemberStatusUpdated: channel => {
799
761
  if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
800
762
  logger.info('Channel | useHandleChannelEvents: onDeliveryReceiptUpdated', channel);
801
763
  messagesDispatcher({
@@ -804,33 +766,33 @@ function useHandleChannelEvents(_a, _b) {
804
766
  });
805
767
  }
806
768
  },
807
- onMessageUpdated: function (channel, message) {
769
+ onMessageUpdated: (channel, message) => {
808
770
  logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);
809
771
  messagesDispatcher({
810
772
  type: ON_MESSAGE_UPDATED,
811
773
  payload: {
812
- channel: channel,
813
- message: message
774
+ channel,
775
+ message
814
776
  }
815
777
  });
816
778
  },
817
- onThreadInfoUpdated: function (channel, threadInfoUpdateEvent) {
779
+ onThreadInfoUpdated: (channel, threadInfoUpdateEvent) => {
818
780
  logger.info('Channel | useHandleChannelEvents: onThreadInfoUpdated', {
819
- channel: channel,
820
- threadInfoUpdateEvent: threadInfoUpdateEvent
781
+ channel,
782
+ threadInfoUpdateEvent
821
783
  });
822
784
  messagesDispatcher({
823
785
  type: ON_MESSAGE_THREAD_INFO_UPDATED,
824
786
  payload: {
825
- channel: channel,
787
+ channel,
826
788
  event: threadInfoUpdateEvent
827
789
  }
828
790
  });
829
791
  },
830
- onMessageDeleted: function (channel, messageId) {
792
+ onMessageDeleted: (channel, messageId) => {
831
793
  logger.info('Channel | useHandleChannelEvents: onMessageDeleted', {
832
- channel: channel,
833
- messageId: messageId
794
+ channel,
795
+ messageId
834
796
  });
835
797
  setQuoteMessage(null);
836
798
  messagesDispatcher({
@@ -838,17 +800,17 @@ function useHandleChannelEvents(_a, _b) {
838
800
  payload: messageId
839
801
  });
840
802
  },
841
- onReactionUpdated: function (channel, reactionEvent) {
803
+ onReactionUpdated: (channel, reactionEvent) => {
842
804
  logger.info('Channel | useHandleChannelEvents: onReactionUpdated', {
843
- channel: channel,
844
- reactionEvent: reactionEvent
805
+ channel,
806
+ reactionEvent
845
807
  });
846
808
  messagesDispatcher({
847
809
  type: ON_REACTION_UPDATED,
848
810
  payload: reactionEvent
849
811
  });
850
812
  },
851
- onChannelChanged: function (channel) {
813
+ onChannelChanged: channel => {
852
814
  if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
853
815
  logger.info('Channel | useHandleChannelEvents: onChannelChanged', channel);
854
816
  messagesDispatcher({
@@ -857,7 +819,7 @@ function useHandleChannelEvents(_a, _b) {
857
819
  });
858
820
  }
859
821
  },
860
- onChannelFrozen: function (channel) {
822
+ onChannelFrozen: channel => {
861
823
  if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
862
824
  logger.info('Channel | useHandleChannelEvents: onChannelFrozen', channel);
863
825
  messagesDispatcher({
@@ -866,7 +828,7 @@ function useHandleChannelEvents(_a, _b) {
866
828
  });
867
829
  }
868
830
  },
869
- onChannelUnfrozen: function (channel) {
831
+ onChannelUnfrozen: channel => {
870
832
  if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
871
833
  logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', channel);
872
834
  messagesDispatcher({
@@ -875,11 +837,11 @@ function useHandleChannelEvents(_a, _b) {
875
837
  });
876
838
  }
877
839
  },
878
- onUserMuted: function (channel, user) {
840
+ onUserMuted: (channel, user) => {
879
841
  if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
880
842
  logger.info('Channel | useHandleChannelEvents: onUserMuted', {
881
- channel: channel,
882
- user: user
843
+ channel,
844
+ user
883
845
  });
884
846
  messagesDispatcher({
885
847
  type: SET_CURRENT_CHANNEL,
@@ -887,11 +849,11 @@ function useHandleChannelEvents(_a, _b) {
887
849
  });
888
850
  }
889
851
  },
890
- onUserUnmuted: function (channel, user) {
852
+ onUserUnmuted: (channel, user) => {
891
853
  if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
892
854
  logger.info('Channel | useHandleChannelEvents: onUserUnmuted', {
893
- channel: channel,
894
- user: user
855
+ channel,
856
+ user
895
857
  });
896
858
  messagesDispatcher({
897
859
  type: SET_CURRENT_CHANNEL,
@@ -899,13 +861,12 @@ function useHandleChannelEvents(_a, _b) {
899
861
  });
900
862
  }
901
863
  },
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)) {
864
+ onUserBanned: (channel, user) => {
865
+ var _sdk$currentUser;
866
+ 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
867
  logger.info('Channel | useHandleChannelEvents: onUserBanned', {
907
- channel: channel,
908
- user: user
868
+ channel,
869
+ user
909
870
  });
910
871
  messagesDispatcher({
911
872
  type: SET_CURRENT_CHANNEL,
@@ -913,11 +874,11 @@ function useHandleChannelEvents(_a, _b) {
913
874
  });
914
875
  }
915
876
  },
916
- onOperatorUpdated: function (channel, users) {
877
+ onOperatorUpdated: (channel, users) => {
917
878
  if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
918
879
  logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', {
919
- channel: channel,
920
- users: users
880
+ channel,
881
+ users
921
882
  });
922
883
  messagesDispatcher({
923
884
  type: SET_CURRENT_CHANNEL,
@@ -925,13 +886,12 @@ function useHandleChannelEvents(_a, _b) {
925
886
  });
926
887
  }
927
888
  },
928
- onUserLeft: function (channel, user) {
889
+ onUserLeft: (channel, user) => {
929
890
  if (compareIds.compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
930
891
  logger.info('Channel | useHandleChannelEvents: onUserLeft', {
931
- channel: channel,
932
- user: user
892
+ channel,
893
+ user
933
894
  });
934
-
935
895
  if ((user === null || user === void 0 ? void 0 : user.userId) === currentUserId) {
936
896
  messagesDispatcher({
937
897
  type: SET_CURRENT_CHANNEL,
@@ -942,20 +902,18 @@ function useHandleChannelEvents(_a, _b) {
942
902
  }
943
903
  };
944
904
  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));
905
+ channelHandlerId,
906
+ channelHandler
907
+ });
908
+ // Add this group channel handler to the Sendbird chat instance
909
+ (_sdk$groupChannel = sdk.groupChannel) === null || _sdk$groupChannel === void 0 ? void 0 : _sdk$groupChannel.addGroupChannelHandler(channelHandlerId, new groupChannel.GroupChannelHandler(channelHandler));
950
910
  }
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) {
911
+ return () => {
912
+ var _sdk$groupChannel2;
913
+ if (sdk !== null && sdk !== void 0 && (_sdk$groupChannel2 = sdk.groupChannel) !== null && _sdk$groupChannel2 !== void 0 && _sdk$groupChannel2.removeGroupChannelHandler) {
956
914
  logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', channelHandlerId);
957
915
  sdk.groupChannel.removeGroupChannelHandler(channelHandlerId);
958
- } else if (sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) {
916
+ } else if (sdk !== null && sdk !== void 0 && sdk.groupChannel) {
959
917
  logger.error('Channel | useHandleChannelEvents: Not found the removeGroupChannelHandler');
960
918
  }
961
919
  };
@@ -971,7 +929,8 @@ function useSetChannel(_ref, _ref2) {
971
929
  let {
972
930
  messagesDispatcher,
973
931
  sdk,
974
- logger
932
+ logger,
933
+ markAsReadScheduler
975
934
  } = _ref2;
976
935
  React.useEffect(() => {
977
936
  if (channelUrl && sdkInit && sdk && sdk.groupChannel) {
@@ -983,13 +942,8 @@ function useSetChannel(_ref, _ref2) {
983
942
  payload: groupChannel
984
943
  });
985
944
  logger.info('Channel: Mark as read', groupChannel);
986
-
987
945
  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
- }
946
+ markAsReadScheduler.push(groupChannel);
993
947
  }
994
948
  }).catch(e => {
995
949
  logger.warning('Channel | useSetChannel fetch channel failed', {
@@ -1033,30 +987,25 @@ function useInitialMessagesFetch(_ref, _ref2) {
1033
987
  type: RESET_MESSAGES,
1034
988
  payload: null
1035
989
  });
1036
-
1037
990
  if (currentGroupChannel && currentGroupChannel !== null && currentGroupChannel !== void 0 && currentGroupChannel.getMessagesByTimestamp) {
1038
991
  const messageListParams = {};
1039
992
  messageListParams.prevResultSize = _const.PREV_RESULT_SIZE;
1040
-
1041
993
  if (initialTimeStamp) {
1042
994
  messageListParams.nextResultSize = _const.NEXT_RESULT_SIZE;
1043
995
  }
1044
-
1045
996
  messageListParams.isInclusive = true;
1046
997
  messageListParams.includeReactions = true;
1047
-
998
+ messageListParams.includeMetaArray = true;
1048
999
  if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {
1049
1000
  messageListParams.includeThreadInfo = true;
1050
1001
  messageListParams.includeParentMessageInfo = true;
1051
1002
  messageListParams.replyType = message.ReplyType.ONLY_REPLY_TO_CHANNEL;
1052
1003
  }
1053
-
1054
1004
  if (userFilledMessageListQuery) {
1055
1005
  Object.keys(userFilledMessageListQuery).forEach(key => {
1056
1006
  messageListParams[key] = userFilledMessageListQuery[key];
1057
1007
  });
1058
1008
  }
1059
-
1060
1009
  if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') || userFilledMessageListQuery) {
1061
1010
  logger.info('Channel useInitialMessagesFetch: Setup messageListParams', messageListParams);
1062
1011
  messagesDispatcher({
@@ -1064,7 +1013,6 @@ function useInitialMessagesFetch(_ref, _ref2) {
1064
1013
  payload: messageListParams
1065
1014
  });
1066
1015
  }
1067
-
1068
1016
  logger.info('Channel: Fetching messages', {
1069
1017
  currentGroupChannel,
1070
1018
  userFilledMessageListQuery
@@ -1092,6 +1040,10 @@ function useInitialMessagesFetch(_ref, _ref2) {
1092
1040
  }).finally(() => {
1093
1041
  if (!initialTimeStamp) {
1094
1042
  setTimeout(() => scrollIntoLast(0, scrollRef));
1043
+ } else {
1044
+ setTimeout(() => {
1045
+ scrollToRenderedMessage(scrollRef, initialTimeStamp);
1046
+ }, 500);
1095
1047
  }
1096
1048
  });
1097
1049
  }
@@ -1106,82 +1058,75 @@ function useInitialMessagesFetch(_ref, _ref2) {
1106
1058
  */
1107
1059
  }
1108
1060
 
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)) {
1061
+ function useHandleReconnect(_ref, _ref2) {
1062
+ let {
1063
+ isOnline,
1064
+ replyType,
1065
+ disableMarkAsRead
1066
+ } = _ref;
1067
+ let {
1068
+ logger,
1069
+ sdk,
1070
+ scrollRef,
1071
+ currentGroupChannel,
1072
+ messagesDispatcher,
1073
+ markAsReadScheduler,
1074
+ userFilledMessageListQuery
1075
+ } = _ref2;
1076
+ React.useEffect(() => {
1077
+ const wasOffline = !isOnline;
1078
+ return () => {
1079
+ // state changed from offline to online
1080
+ if (wasOffline && currentGroupChannel !== null && currentGroupChannel !== void 0 && currentGroupChannel.url) {
1081
+ var _sdk$appInfo, _sdk$groupChannel;
1126
1082
  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 = {
1083
+ const isReactionEnabled = (sdk === null || sdk === void 0 ? void 0 : (_sdk$appInfo = sdk.appInfo) === null || _sdk$appInfo === void 0 ? void 0 : _sdk$appInfo.useReaction) || false;
1084
+ const messageListParams = {
1129
1085
  prevResultSize: _const.PREV_RESULT_SIZE,
1130
1086
  isInclusive: true,
1131
1087
  includeReactions: isReactionEnabled,
1132
1088
  nextResultSize: _const.NEXT_RESULT_SIZE
1133
1089
  };
1134
-
1135
1090
  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;
1091
+ messageListParams.includeThreadInfo = true;
1092
+ messageListParams.includeParentMessageInfo = true;
1093
+ messageListParams.replyType = message.ReplyType.ONLY_REPLY_TO_CHANNEL;
1139
1094
  }
1140
-
1141
1095
  if (userFilledMessageListQuery) {
1142
- Object.keys(userFilledMessageListQuery).forEach(function (key) {
1143
- messageListParams_1[key] = userFilledMessageListQuery[key];
1096
+ Object.keys(userFilledMessageListQuery).forEach(key => {
1097
+ messageListParams[key] = userFilledMessageListQuery[key];
1144
1098
  });
1145
1099
  }
1146
-
1147
1100
  logger.info('Channel: Fetching messages', {
1148
- currentGroupChannel: currentGroupChannel,
1149
- userFilledMessageListQuery: userFilledMessageListQuery
1101
+ currentGroupChannel,
1102
+ userFilledMessageListQuery
1150
1103
  });
1151
1104
  messagesDispatcher({
1152
1105
  type: FETCH_INITIAL_MESSAGES_START,
1153
1106
  payload: null
1154
1107
  });
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) {
1108
+ 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 => {
1109
+ const lastMessageTime = new Date().getTime();
1110
+ groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams).then(messages => {
1160
1111
  messagesDispatcher({
1161
1112
  type: FETCH_INITIAL_MESSAGES_SUCCESS,
1162
1113
  payload: {
1163
- currentGroupChannel: currentGroupChannel,
1164
- messages: messages
1114
+ currentGroupChannel,
1115
+ messages
1165
1116
  }
1166
1117
  });
1167
- setTimeout(function () {
1168
- return scrollIntoLast(0, scrollRef);
1169
- });
1170
- }).catch(function (error) {
1118
+ setTimeout(() => scrollIntoLast(0, scrollRef));
1119
+ }).catch(error => {
1171
1120
  logger.error('Channel: Fetching messages failed', error);
1172
1121
  messagesDispatcher({
1173
1122
  type: FETCH_INITIAL_MESSAGES_FAILURE,
1174
1123
  payload: {
1175
- currentGroupChannel: currentGroupChannel
1124
+ currentGroupChannel
1176
1125
  }
1177
1126
  });
1178
1127
  });
1179
-
1180
1128
  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
- }
1129
+ markAsReadScheduler.push(currentGroupChannel);
1185
1130
  }
1186
1131
  });
1187
1132
  }
@@ -1206,7 +1151,6 @@ function useScrollCallback(_ref, _ref2) {
1206
1151
  if (!hasMorePrev) {
1207
1152
  return;
1208
1153
  }
1209
-
1210
1154
  const {
1211
1155
  appInfo = {}
1212
1156
  } = sdk;
@@ -1216,19 +1160,17 @@ function useScrollCallback(_ref, _ref2) {
1216
1160
  isInclusive: true,
1217
1161
  includeReactions: isReactionEnabled
1218
1162
  };
1219
-
1163
+ messageListParams.includeMetaArray = true;
1220
1164
  if (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') {
1221
1165
  messageListParams.includeThreadInfo = true;
1222
1166
  messageListParams.includeParentMessageInfo = true;
1223
1167
  messageListParams.replyType = message.ReplyType.ONLY_REPLY_TO_CHANNEL;
1224
1168
  }
1225
-
1226
1169
  if (userFilledMessageListQuery) {
1227
1170
  Object.keys(userFilledMessageListQuery).forEach(key => {
1228
1171
  messageListParams[key] = userFilledMessageListQuery[key];
1229
1172
  });
1230
1173
  }
1231
-
1232
1174
  logger.info('Channel: Fetching messages', {
1233
1175
  currentGroupChannel,
1234
1176
  userFilledMessageListQuery
@@ -1272,7 +1214,6 @@ function useScrollDownCallback(_ref, _ref2) {
1272
1214
  if (!hasMoreNext) {
1273
1215
  return;
1274
1216
  }
1275
-
1276
1217
  const {
1277
1218
  appInfo = {}
1278
1219
  } = sdk;
@@ -1282,19 +1223,17 @@ function useScrollDownCallback(_ref, _ref2) {
1282
1223
  isInclusive: true,
1283
1224
  includeReactions: isReactionEnabled
1284
1225
  };
1285
-
1226
+ messageListParams.includeMetaArray = true;
1286
1227
  if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {
1287
1228
  messageListParams.includeThreadInfo = true;
1288
1229
  messageListParams.includeParentMessageInfo = true;
1289
1230
  messageListParams.replyType = message.ReplyType.ONLY_REPLY_TO_CHANNEL;
1290
1231
  }
1291
-
1292
1232
  if (userFilledMessageListQuery) {
1293
1233
  Object.keys(userFilledMessageListQuery).forEach(key => {
1294
1234
  messageListParams[key] = userFilledMessageListQuery[key];
1295
1235
  });
1296
1236
  }
1297
-
1298
1237
  logger.info('Channel: Fetching later messages', {
1299
1238
  currentGroupChannel,
1300
1239
  userFilledMessageListQuery
@@ -1335,8 +1274,8 @@ function useDeleteMessageCallback(_ref, _ref2) {
1335
1274
  requestState
1336
1275
  } = message;
1337
1276
  return new Promise((resolve, reject) => {
1338
- logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState); // Message is only on local
1339
-
1277
+ logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);
1278
+ // Message is only on local
1340
1279
  if (requestState === 'failed' || requestState === 'pending') {
1341
1280
  logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);
1342
1281
  messagesDispatcher({
@@ -1345,7 +1284,6 @@ function useDeleteMessageCallback(_ref, _ref2) {
1345
1284
  });
1346
1285
  resolve(message);
1347
1286
  }
1348
-
1349
1287
  logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);
1350
1288
  currentGroupChannel.deleteMessage(message).then(() => {
1351
1289
  logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);
@@ -1380,37 +1318,29 @@ function useUpdateMessageCallback(_ref, _ref2) {
1380
1318
  mentionedUsers,
1381
1319
  mentionTemplate
1382
1320
  } = props;
1383
-
1384
1321
  const createParamsDefault = () => {
1385
1322
  const params = {};
1386
1323
  params.message = message;
1387
-
1388
1324
  if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
1389
1325
  params.mentionedUsers = mentionedUsers;
1390
1326
  }
1391
-
1392
1327
  if (isMentionEnabled && mentionTemplate) {
1393
1328
  params.mentionedMessageTemplate = mentionTemplate;
1394
1329
  } else {
1395
1330
  params.mentionedMessageTemplate = message;
1396
1331
  }
1397
-
1398
1332
  return params;
1399
1333
  };
1400
-
1401
1334
  const createCustomPrams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function';
1402
-
1403
1335
  if (createCustomPrams) {
1404
1336
  logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);
1405
1337
  }
1406
-
1407
1338
  const params = onBeforeUpdateUserMessage ? onBeforeUpdateUserMessage(message) : createParamsDefault();
1408
1339
  logger.info('Channel: Updating message!', params);
1409
1340
  currentGroupChannel.updateUserMessage(messageId, params).then((msg, err) => {
1410
1341
  if (callback) {
1411
1342
  callback(err, msg);
1412
1343
  }
1413
-
1414
1344
  logger.info('Channel: Updating message success!', msg);
1415
1345
  messagesDispatcher({
1416
1346
  type: ON_MESSAGE_UPDATED,
@@ -1419,7 +1349,7 @@ function useUpdateMessageCallback(_ref, _ref2) {
1419
1349
  message: msg
1420
1350
  }
1421
1351
  });
1422
- pubSub.publish(topics.UPDATE_USER_MESSAGE, {
1352
+ pubSub.publish(topics.PUBSUB_TOPICS.UPDATE_USER_MESSAGE, {
1423
1353
  message: msg,
1424
1354
  channel: currentGroupChannel
1425
1355
  });
@@ -1441,18 +1371,18 @@ function useResendMessageCallback(_ref, _ref2) {
1441
1371
  messageType,
1442
1372
  file
1443
1373
  } = failedMessage;
1444
-
1445
1374
  if (failedMessage !== null && failedMessage !== void 0 && failedMessage.isResendable) {
1446
1375
  // Move the logic setting sendingStatus to pending into the reducer
1447
1376
  // eslint-disable-next-line no-param-reassign
1448
- failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
1449
-
1377
+ failedMessage.requestState = 'pending';
1378
+ // eslint-disable-next-line no-param-reassign
1450
1379
  failedMessage.sendingStatus = 'pending';
1451
1380
  messagesDispatcher({
1452
1381
  type: RESEND_MESSAGEGE_START,
1453
1382
  payload: failedMessage
1454
- }); // userMessage
1383
+ });
1455
1384
 
1385
+ // userMessage
1456
1386
  if (messageType === 'user') {
1457
1387
  currentGroupChannel.resendUserMessage(failedMessage).then(message => {
1458
1388
  logger.info('Channel: Resending message success!', message);
@@ -1461,19 +1391,20 @@ function useResendMessageCallback(_ref, _ref2) {
1461
1391
  payload: message
1462
1392
  });
1463
1393
  }).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
-
1394
+ logger.warning('Channel: Resending message failed!', e);
1395
+ // eslint-disable-next-line no-param-reassign
1396
+ failedMessage.requestState = 'failed';
1397
+ // eslint-disable-next-line no-param-reassign
1468
1398
  failedMessage.sendingStatus = 'failed';
1469
1399
  messagesDispatcher({
1470
1400
  type: SEND_MESSAGEGE_FAILURE,
1471
1401
  payload: failedMessage
1472
1402
  });
1473
- }); // eslint-disable-next-line no-param-reassign
1474
-
1475
- failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
1403
+ });
1476
1404
 
1405
+ // eslint-disable-next-line no-param-reassign
1406
+ failedMessage.requestState = 'pending';
1407
+ // eslint-disable-next-line no-param-reassign
1477
1408
  failedMessage.sendingStatus = 'pending';
1478
1409
  messagesDispatcher({
1479
1410
  type: RESEND_MESSAGEGE_START,
@@ -1481,7 +1412,6 @@ function useResendMessageCallback(_ref, _ref2) {
1481
1412
  });
1482
1413
  return;
1483
1414
  }
1484
-
1485
1415
  if (messageType === 'file') {
1486
1416
  currentGroupChannel.resendFileMessage(failedMessage, file).then(message => {
1487
1417
  logger.info('Channel: Resending file message success!', message);
@@ -1490,19 +1420,20 @@ function useResendMessageCallback(_ref, _ref2) {
1490
1420
  payload: message
1491
1421
  });
1492
1422
  }).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
-
1423
+ logger.warning('Channel: Resending file message failed!', e);
1424
+ // eslint-disable-next-line no-param-reassign
1425
+ failedMessage.requestState = 'failed';
1426
+ // eslint-disable-next-line no-param-reassign
1497
1427
  failedMessage.sendingStatus = 'failed';
1498
1428
  messagesDispatcher({
1499
1429
  type: SEND_MESSAGEGE_FAILURE,
1500
1430
  payload: failedMessage
1501
1431
  });
1502
- }); // eslint-disable-next-line no-param-reassign
1503
-
1504
- failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
1432
+ });
1505
1433
 
1434
+ // eslint-disable-next-line no-param-reassign
1435
+ failedMessage.requestState = 'pending';
1436
+ // eslint-disable-next-line no-param-reassign
1506
1437
  failedMessage.sendingStatus = 'pending';
1507
1438
  messagesDispatcher({
1508
1439
  type: RESEND_MESSAGEGE_START,
@@ -1539,39 +1470,32 @@ function useSendMessageCallback(_ref, _ref2) {
1539
1470
  // mentionedUserIds,
1540
1471
  mentionedUsers
1541
1472
  } = props;
1542
-
1543
1473
  const createParamsDefault = () => {
1544
1474
  const params = {};
1545
- params.message = (message === null || message === void 0 ? void 0 : message.trim()) || message; // if (isMentionEnabled && mentionedUserIds?.length > 0) {
1546
-
1475
+ params.message = message;
1476
+ // if (isMentionEnabled && mentionedUserIds?.length > 0) {
1547
1477
  if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
1548
1478
  // params.mentionedUserIds = mentionedUserIds;
1549
1479
  params.mentionedUsers = mentionedUsers;
1550
- } // if (isMentionEnabled && mentionTemplate && mentionedUserIds?.length > 0) {
1551
-
1552
-
1480
+ }
1481
+ // if (isMentionEnabled && mentionTemplate && mentionedUserIds?.length > 0) {
1553
1482
  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;
1483
+ params.mentionedMessageTemplate = mentionTemplate;
1555
1484
  }
1556
-
1557
1485
  if (quoteMessage) {
1558
1486
  params.isReplyToChannel = true;
1559
1487
  params.parentMessageId = quoteMessage.messageId;
1560
1488
  }
1561
-
1562
1489
  return params;
1563
1490
  };
1564
-
1565
1491
  const createCustomPrams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';
1566
-
1567
1492
  if (createCustomPrams) {
1568
1493
  logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);
1569
1494
  }
1570
-
1571
1495
  const params = onBeforeSendUserMessage ? onBeforeSendUserMessage(message, quoteMessage) : createParamsDefault();
1572
1496
  logger.info('Channel: Sending message has started', params);
1573
1497
  currentGroupChannel.sendUserMessage(params).onPending(pendingMsg => {
1574
- pubSub.publish(topics.SEND_MESSAGE_START, {
1498
+ pubSub.publish(topics.PUBSUB_TOPICS.SEND_MESSAGE_START, {
1575
1499
  /* pubSub is used instead of messagesDispatcher
1576
1500
  to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
1577
1501
  message: pendingMsg,
@@ -1619,44 +1543,39 @@ function useSendFileMessageCallback(_ref, _ref2) {
1619
1543
  } = imageCompression;
1620
1544
  const createCustomParams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function';
1621
1545
  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
-
1546
+ const compressibleRatio = compressionRate > 0 && compressionRate < 1;
1547
+ // pxToNumber returns null if values are invalid
1624
1548
  const compressibleDiamensions = pxToNumber(resizingWidth) || pxToNumber(resizingHeight);
1625
1549
  const canCompressImage = compressibleFileType && (compressibleRatio || compressibleDiamensions);
1626
-
1627
1550
  const createParamsDefault = file_ => {
1628
1551
  const params = {};
1629
1552
  params.file = file_;
1630
-
1631
1553
  if (quoteMessage) {
1632
1554
  params.isReplyToChannel = true;
1633
1555
  params.parentMessageId = quoteMessage.messageId;
1634
1556
  }
1635
-
1636
1557
  return params;
1637
1558
  };
1638
-
1639
1559
  if (canCompressImage) {
1640
1560
  // Using image compression
1641
1561
  try {
1642
1562
  const image = document.createElement('img');
1643
1563
  image.src = URL.createObjectURL(file);
1644
-
1645
1564
  image.onload = () => {
1646
1565
  URL.revokeObjectURL(image.src);
1647
1566
  const canvas = document.createElement('canvas');
1648
1567
  const imageWdith = image.naturalWidth || image.width;
1649
1568
  const imageHeight = image.naturalHeight || image.height;
1650
1569
  let targetWidth = pxToNumber(resizingWidth) || imageWdith;
1651
- let targetHeight = pxToNumber(resizingHeight) || imageHeight; // In canvas.toBlob(callback, mimeType, qualityArgument)
1570
+ let targetHeight = pxToNumber(resizingHeight) || imageHeight;
1571
+
1572
+ // In canvas.toBlob(callback, mimeType, qualityArgument)
1652
1573
  // qualityArgument doesnt work
1653
1574
  // so in case compressibleDiamensions are not present, we use ratio
1654
-
1655
1575
  if (file.type === 'image/png' && !compressibleDiamensions) {
1656
1576
  targetWidth *= compressionRate;
1657
1577
  targetHeight *= compressionRate;
1658
1578
  }
1659
-
1660
1579
  canvas.width = targetWidth;
1661
1580
  canvas.height = targetHeight;
1662
1581
  const context = canvas.getContext('2d');
@@ -1665,15 +1584,13 @@ function useSendFileMessageCallback(_ref, _ref2) {
1665
1584
  const compressedFile = new File([newImageBlob], file.name, {
1666
1585
  type: file.type
1667
1586
  });
1668
-
1669
1587
  if (createCustomParams) {
1670
1588
  logger.info('Channel: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
1671
1589
  }
1672
-
1673
1590
  const params = createCustomParams ? onBeforeSendFileMessage(compressedFile, quoteMessage) : createParamsDefault(compressedFile);
1674
1591
  logger.info('Channel: Uploading file message start!', params);
1675
1592
  currentGroupChannel.sendFileMessage(params).onPending(pendingMessage => {
1676
- pubSub.publish(topics.SEND_MESSAGE_START, {
1593
+ pubSub.publish(topics.PUBSUB_TOPICS.SEND_MESSAGE_START, {
1677
1594
  /* pubSub is used instead of messagesDispatcher
1678
1595
  to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
1679
1596
  message: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, pendingMessage), {}, {
@@ -1688,10 +1605,10 @@ function useSendFileMessageCallback(_ref, _ref2) {
1688
1605
  logger.error('Channel: Sending file message failed!', {
1689
1606
  failedMessage,
1690
1607
  err
1691
- }); // eslint-disable-next-line no-param-reassign
1692
-
1693
- failedMessage.localUrl = URL.createObjectURL(compressedFile); // eslint-disable-next-line no-param-reassign
1694
-
1608
+ });
1609
+ // eslint-disable-next-line no-param-reassign
1610
+ failedMessage.localUrl = URL.createObjectURL(compressedFile);
1611
+ // eslint-disable-next-line no-param-reassign
1695
1612
  failedMessage.file = compressedFile;
1696
1613
  messagesDispatcher({
1697
1614
  type: SEND_MESSAGEGE_FAILURE,
@@ -1714,11 +1631,10 @@ function useSendFileMessageCallback(_ref, _ref2) {
1714
1631
  if (createCustomParams) {
1715
1632
  logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
1716
1633
  }
1717
-
1718
1634
  const params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file, quoteMessage) : createParamsDefault(file);
1719
1635
  logger.info('Channel: Uploading file message start!', params);
1720
1636
  currentGroupChannel.sendFileMessage(params).onPending(pendingMsg => {
1721
- pubSub.publish(topics.SEND_MESSAGE_START, {
1637
+ pubSub.publish(topics.PUBSUB_TOPICS.SEND_MESSAGE_START, {
1722
1638
  /* pubSub is used instead of messagesDispatcher
1723
1639
  to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
1724
1640
  message: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, pendingMsg), {}, {
@@ -1733,10 +1649,10 @@ function useSendFileMessageCallback(_ref, _ref2) {
1733
1649
  logger.error('Channel: Sending file message failed!', {
1734
1650
  message,
1735
1651
  error
1736
- }); // eslint-disable-next-line no-param-reassign
1737
-
1738
- message.localUrl = URL.createObjectURL(file); // eslint-disable-next-line no-param-reassign
1739
-
1652
+ });
1653
+ // eslint-disable-next-line no-param-reassign
1654
+ message.localUrl = URL.createObjectURL(file);
1655
+ // eslint-disable-next-line no-param-reassign
1740
1656
  message.file = file;
1741
1657
  messagesDispatcher({
1742
1658
  type: SEND_MESSAGEGE_FAILURE,
@@ -1754,64 +1670,6 @@ function useSendFileMessageCallback(_ref, _ref2) {
1754
1670
  return [sendMessage];
1755
1671
  }
1756
1672
 
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
1673
  function useToggleReactionCallback(_ref, _ref2) {
1816
1674
  let {
1817
1675
  currentGroupChannel
@@ -1828,7 +1686,6 @@ function useToggleReactionCallback(_ref, _ref2) {
1828
1686
  });
1829
1687
  return;
1830
1688
  }
1831
-
1832
1689
  currentGroupChannel.addReaction(message, key).then(res => {
1833
1690
  logger.info('Add reaction success', res);
1834
1691
  }).catch(err => {
@@ -1837,20 +1694,24 @@ function useToggleReactionCallback(_ref, _ref2) {
1837
1694
  }, [currentGroupChannel]);
1838
1695
  }
1839
1696
 
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
- });
1697
+ function useScrollToMessage(_ref, _ref2) {
1698
+ let {
1699
+ setInitialTimeStamp,
1700
+ setAnimatedMessageId,
1701
+ allMessages,
1702
+ scrollRef
1703
+ } = _ref;
1704
+ let {
1705
+ logger
1706
+ } = _ref2;
1707
+ return React.useCallback((createdAt, messageId) => {
1708
+ const isPresent = allMessages.find(m => m.messageId === messageId);
1849
1709
  setAnimatedMessageId(null);
1850
- setTimeout(function () {
1710
+ setTimeout(() => {
1851
1711
  if (isPresent) {
1852
1712
  logger.info('Channel: scroll to message - message is present');
1853
1713
  setAnimatedMessageId(messageId);
1714
+ scrollToRenderedMessage(scrollRef, createdAt);
1854
1715
  } else {
1855
1716
  logger.info('Channel: scroll to message - fetching older messages');
1856
1717
  setInitialTimeStamp(null);
@@ -1861,339 +1722,392 @@ function useScrollToMessage(_a, _b) {
1861
1722
  }, [setInitialTimeStamp, setAnimatedMessageId, allMessages]);
1862
1723
  }
1863
1724
 
1864
- exports.ThreadReplySelectType = void 0;
1725
+ const useSendVoiceMessageCallback = (_ref, _ref2) => {
1726
+ let {
1727
+ currentGroupChannel,
1728
+ onBeforeSendVoiceMessage
1729
+ } = _ref;
1730
+ let {
1731
+ logger,
1732
+ pubSub,
1733
+ scrollRef,
1734
+ messagesDispatcher
1735
+ } = _ref2;
1736
+ const sendMessage = React.useCallback((file, duration, quoteMessage) => {
1737
+ const messageParams = onBeforeSendVoiceMessage && typeof onBeforeSendVoiceMessage === 'function' ? onBeforeSendVoiceMessage(file, quoteMessage) : {
1738
+ file,
1739
+ fileName: consts.VOICE_MESSAGE_FILE_NAME,
1740
+ mimeType: consts.VOICE_MESSAGE_MIME_TYPE,
1741
+ metaArrays: [new message.MessageMetaArray({
1742
+ key: consts.META_ARRAY_VOICE_DURATION_KEY,
1743
+ value: [`${duration}`]
1744
+ }), new message.MessageMetaArray({
1745
+ key: consts.META_ARRAY_MESSAGE_TYPE_KEY,
1746
+ value: [consts.META_ARRAY_MESSAGE_TYPE_VALUE__VOICE]
1747
+ })]
1748
+ };
1749
+ if (quoteMessage) {
1750
+ messageParams.isReplyToChannel = true;
1751
+ messageParams.parentMessageId = quoteMessage.messageId;
1752
+ }
1753
+ logger.info('Channel: Start sending voice message', messageParams);
1754
+ currentGroupChannel.sendFileMessage(messageParams).onPending(pendingMessage => {
1755
+ pubSub.publish(topics.PUBSUB_TOPICS.SEND_MESSAGE_START, {
1756
+ /* pubSub is used instead of messagesDispatcher
1757
+ to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
1758
+ message: pendingMessage,
1759
+ channel: currentGroupChannel
1760
+ });
1761
+ setTimeout(() => scrollIntoLast(0, scrollRef), 1000);
1762
+ }).onFailed((err, failedMessage) => {
1763
+ logger.error('Channel: Sending voice message failed!', {
1764
+ failedMessage,
1765
+ err
1766
+ });
1767
+ messagesDispatcher({
1768
+ type: SEND_MESSAGEGE_FAILURE,
1769
+ payload: failedMessage
1770
+ });
1771
+ }).onSucceeded(succeededMessage => {
1772
+ logger.info('Channel: Sending voice message success!', succeededMessage);
1773
+ messagesDispatcher({
1774
+ type: SEND_MESSAGEGE_SUCESS,
1775
+ payload: succeededMessage
1776
+ });
1777
+ });
1778
+ }, [currentGroupChannel, onBeforeSendVoiceMessage]);
1779
+ return [sendMessage];
1780
+ };
1865
1781
 
1866
- (function (ThreadReplySelectType) {
1782
+ let ThreadReplySelectType = /*#__PURE__*/function (ThreadReplySelectType) {
1867
1783
  ThreadReplySelectType["PARENT"] = "PARENT";
1868
1784
  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];
1916
-
1917
- React.useEffect(function () {
1785
+ return ThreadReplySelectType;
1786
+ }({});
1787
+ const ChannelContext = /*#__PURE__*/React__default["default"].createContext(undefined);
1788
+ const ChannelProvider = props => {
1789
+ var _globalStore$stores, _globalStore$stores$s, _globalStore$stores2, _globalStore$stores2$;
1790
+ const {
1791
+ channelUrl,
1792
+ children,
1793
+ isReactionEnabled,
1794
+ isMessageGroupingEnabled = true,
1795
+ showSearchIcon,
1796
+ animatedMessage,
1797
+ highlightedMessage,
1798
+ startingPoint,
1799
+ onBeforeSendUserMessage,
1800
+ onBeforeSendFileMessage,
1801
+ onBeforeUpdateUserMessage,
1802
+ onBeforeSendVoiceMessage,
1803
+ onChatHeaderActionClick,
1804
+ onSearchClick,
1805
+ onBackClick,
1806
+ replyType,
1807
+ threadReplySelectType = ThreadReplySelectType.THREAD,
1808
+ queries,
1809
+ filterMessageList,
1810
+ disableMarkAsRead = false,
1811
+ onReplyInThread,
1812
+ onQuoteMessageClick,
1813
+ onMessageAnimated,
1814
+ onMessageHighlighted
1815
+ } = props;
1816
+ const globalStore = useSendbirdStateContext();
1817
+ const {
1818
+ config
1819
+ } = globalStore;
1820
+ const {
1821
+ pubSub,
1822
+ logger,
1823
+ userId,
1824
+ isOnline,
1825
+ imageCompression,
1826
+ isMentionEnabled,
1827
+ isVoiceMessageEnabled,
1828
+ onUserProfileMessage,
1829
+ markAsReadScheduler
1830
+ } = config;
1831
+ 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;
1832
+ 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;
1833
+ const [initialTimeStamp, setInitialTimeStamp] = React.useState(startingPoint);
1834
+ React.useEffect(() => {
1918
1835
  setInitialTimeStamp(startingPoint);
1919
1836
  }, [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 () {
1837
+ const [animatedMessageId, setAnimatedMessageId] = React.useState(0);
1838
+ const [highLightedMessageId, setHighLightedMessageId] = React.useState(highlightedMessage);
1839
+ React.useEffect(() => {
1930
1840
  setHighLightedMessageId(highlightedMessage);
1931
1841
  }, [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
1842
+ const userFilledMessageListQuery = queries === null || queries === void 0 ? void 0 : queries.messageListParams;
1843
+ const [quoteMessage, setQuoteMessage] = React.useState(null);
1844
+ const [messagesStore, messagesDispatcher] = React.useReducer(reducer, messagesInitialState);
1845
+ const scrollRef = React.useRef(null);
1846
+ const {
1847
+ allMessages,
1848
+ loading,
1849
+ initialized,
1850
+ unreadSince,
1851
+ isInvalid,
1852
+ currentGroupChannel,
1853
+ hasMorePrev,
1854
+ oldestMessageTimeStamp,
1855
+ hasMoreNext,
1856
+ latestMessageTimeStamp,
1857
+ emojiContainer,
1858
+ readStatus
1859
+ } = messagesStore;
1860
+ const isSuper = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isSuper) || false;
1861
+ const isBroadcast = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isBroadcast) || false;
1862
+ const usingReaction = getIsReactionEnabled({
1863
+ isBroadcast,
1864
+ isSuper,
1865
+ globalLevel: config === null || config === void 0 ? void 0 : config.isReactionEnabled,
1866
+ moduleLevel: isReactionEnabled
1867
+ });
1868
+ const emojiAllMap = React.useMemo(() => usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map(), [emojiContainer]);
1869
+ 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
1870
 
1969
- React.useEffect(function () {
1871
+ // Animate message
1872
+ React.useEffect(() => {
1970
1873
  if (animatedMessage) {
1971
1874
  setAnimatedMessageId(animatedMessage);
1972
1875
  }
1973
- }, [animatedMessage]); // Scrollup is default scroll for channel
1876
+ }, [animatedMessage]);
1974
1877
 
1975
- var onScrollCallback = useScrollCallback({
1976
- currentGroupChannel: currentGroupChannel,
1977
- oldestMessageTimeStamp: oldestMessageTimeStamp,
1978
- userFilledMessageListQuery: userFilledMessageListQuery,
1979
- replyType: replyType
1878
+ // Scrollup is default scroll for channel
1879
+ const onScrollCallback = useScrollCallback({
1880
+ currentGroupChannel,
1881
+ oldestMessageTimeStamp,
1882
+ userFilledMessageListQuery,
1883
+ replyType,
1884
+ isVoiceMessageEnabled
1980
1885
  }, {
1981
- hasMorePrev: hasMorePrev,
1982
- logger: logger,
1983
- messagesDispatcher: messagesDispatcher,
1984
- sdk: sdk
1886
+ hasMorePrev,
1887
+ logger,
1888
+ messagesDispatcher,
1889
+ sdk
1985
1890
  });
1986
- var scrollToMessage = useScrollToMessage({
1987
- setInitialTimeStamp: setInitialTimeStamp,
1988
- setAnimatedMessageId: setAnimatedMessageId,
1989
- allMessages: allMessages
1891
+ const scrollToMessage = useScrollToMessage({
1892
+ setInitialTimeStamp,
1893
+ setAnimatedMessageId,
1894
+ allMessages,
1895
+ scrollRef
1990
1896
  }, {
1991
- logger: logger
1992
- }); // onScrollDownCallback is added for navigation to different timestamps on messageSearch
1897
+ logger
1898
+ });
1899
+
1900
+ // onScrollDownCallback is added for navigation to different timestamps on messageSearch
1993
1901
  // hasMorePrev, onScrollCallback -> scroll up(default behavior)
1994
1902
  // hasMoreNext, onScrollDownCallback -> scroll down
1995
-
1996
- var onScrollDownCallback = useScrollDownCallback({
1997
- currentGroupChannel: currentGroupChannel,
1998
- latestMessageTimeStamp: latestMessageTimeStamp,
1999
- userFilledMessageListQuery: userFilledMessageListQuery,
2000
- hasMoreNext: hasMoreNext,
2001
- replyType: replyType
1903
+ const onScrollDownCallback = useScrollDownCallback({
1904
+ currentGroupChannel,
1905
+ latestMessageTimeStamp,
1906
+ userFilledMessageListQuery,
1907
+ hasMoreNext,
1908
+ replyType,
1909
+ isVoiceMessageEnabled
2002
1910
  }, {
2003
- logger: logger,
2004
- messagesDispatcher: messagesDispatcher,
2005
- sdk: sdk
1911
+ logger,
1912
+ messagesDispatcher,
1913
+ sdk
2006
1914
  });
2007
- var toggleReaction = useToggleReactionCallback({
2008
- currentGroupChannel: currentGroupChannel
1915
+ const toggleReaction = useToggleReactionCallback({
1916
+ currentGroupChannel
2009
1917
  }, {
2010
- logger: logger
1918
+ logger
2011
1919
  });
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
1920
 
1921
+ // to create message-datasource
1922
+ // this hook sets currentGroupChannel asynchronously
2023
1923
  useSetChannel({
2024
- channelUrl: channelUrl,
2025
- sdkInit: sdkInit,
2026
- disableMarkAsRead: disableMarkAsRead
1924
+ channelUrl,
1925
+ sdkInit,
1926
+ disableMarkAsRead
2027
1927
  }, {
2028
- messagesDispatcher: messagesDispatcher,
2029
- sdk: sdk,
2030
- logger: logger
2031
- }); // to set quote message as null
1928
+ messagesDispatcher,
1929
+ sdk,
1930
+ logger,
1931
+ markAsReadScheduler
1932
+ });
2032
1933
 
2033
- React.useEffect(function () {
1934
+ // to set quote message as null
1935
+ React.useEffect(() => {
2034
1936
  setQuoteMessage(null);
2035
- }, [channelUrl]); // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher
1937
+ }, [channelUrl]);
2036
1938
 
1939
+ // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher
2037
1940
  useHandleChannelEvents({
2038
- currentGroupChannel: currentGroupChannel,
2039
- sdkInit: sdkInit,
1941
+ currentGroupChannel,
1942
+ sdkInit,
2040
1943
  currentUserId: userId,
2041
- hasMoreNext: hasMoreNext,
2042
- disableMarkAsRead: disableMarkAsRead
1944
+ disableMarkAsRead
2043
1945
  }, {
2044
- messagesDispatcher: messagesDispatcher,
2045
- sdk: sdk,
2046
- logger: logger,
2047
- scrollRef: scrollRef,
2048
- setQuoteMessage: setQuoteMessage
2049
- }); // hook that fetches messages when channel changes
1946
+ messagesDispatcher,
1947
+ sdk,
1948
+ logger,
1949
+ scrollRef,
1950
+ setQuoteMessage
1951
+ });
1952
+
1953
+ // hook that fetches messages when channel changes
2050
1954
  // to be clear here useGetChannel sets currentGroupChannel
2051
1955
  // and useInitialMessagesFetch executes when currentGroupChannel changes
2052
1956
  // p.s This one executes on initialTimeStamp change too
2053
-
2054
1957
  useInitialMessagesFetch({
2055
- currentGroupChannel: currentGroupChannel,
2056
- userFilledMessageListQuery: userFilledMessageListQuery,
2057
- initialTimeStamp: initialTimeStamp,
2058
- latestMessageTimeStamp: latestMessageTimeStamp,
2059
- replyType: replyType
1958
+ currentGroupChannel,
1959
+ userFilledMessageListQuery,
1960
+ initialTimeStamp,
1961
+ latestMessageTimeStamp,
1962
+ replyType,
1963
+ isVoiceMessageEnabled
2060
1964
  }, {
2061
- logger: logger,
2062
- scrollRef: scrollRef,
2063
- messagesDispatcher: messagesDispatcher
2064
- }); // handles API calls from withSendbird
1965
+ logger,
1966
+ scrollRef,
1967
+ messagesDispatcher
1968
+ });
2065
1969
 
2066
- React.useEffect(function () {
2067
- var subscriber = pubSubHandler({
2068
- channelUrl: channelUrl,
2069
- pubSub: pubSub,
1970
+ // handles API calls from withSendbird
1971
+ React.useEffect(() => {
1972
+ const subscriber = pubSubHandler({
1973
+ channelUrl,
1974
+ pubSub,
2070
1975
  dispatcher: messagesDispatcher,
2071
- scrollRef: scrollRef
1976
+ scrollRef
2072
1977
  });
2073
- return function () {
1978
+ return () => {
2074
1979
  pubSubHandleRemover(subscriber);
2075
1980
  };
2076
- }, [channelUrl, sdkInit]); // handling connection breaks
1981
+ }, [channelUrl, sdkInit]);
2077
1982
 
1983
+ // handling connection breaks
2078
1984
  useHandleReconnect({
2079
- isOnline: isOnline,
2080
- replyType: replyType,
2081
- disableMarkAsRead: disableMarkAsRead
1985
+ isOnline,
1986
+ replyType,
1987
+ disableMarkAsRead
2082
1988
  }, {
2083
- logger: logger,
2084
- sdk: sdk,
2085
- scrollRef: scrollRef,
2086
- currentGroupChannel: currentGroupChannel,
2087
- messagesDispatcher: messagesDispatcher,
2088
- userFilledMessageListQuery: userFilledMessageListQuery
2089
- }); // callbacks for Message CURD actions
1989
+ logger,
1990
+ sdk,
1991
+ scrollRef,
1992
+ currentGroupChannel,
1993
+ messagesDispatcher,
1994
+ userFilledMessageListQuery,
1995
+ markAsReadScheduler
1996
+ });
2090
1997
 
2091
- var deleteMessage = useDeleteMessageCallback({
2092
- currentGroupChannel: currentGroupChannel,
2093
- messagesDispatcher: messagesDispatcher
1998
+ // callbacks for Message CURD actions
1999
+ const deleteMessage = useDeleteMessageCallback({
2000
+ currentGroupChannel,
2001
+ messagesDispatcher
2094
2002
  }, {
2095
- logger: logger
2003
+ logger
2096
2004
  });
2097
- var updateMessage = useUpdateMessageCallback({
2098
- currentGroupChannel: currentGroupChannel,
2099
- messagesDispatcher: messagesDispatcher,
2100
- onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
2101
- isMentionEnabled: isMentionEnabled
2005
+ const updateMessage = useUpdateMessageCallback({
2006
+ currentGroupChannel,
2007
+ messagesDispatcher,
2008
+ onBeforeUpdateUserMessage,
2009
+ isMentionEnabled
2102
2010
  }, {
2103
- logger: logger,
2104
- pubSub: pubSub
2011
+ logger,
2012
+ pubSub
2105
2013
  });
2106
- var resendMessage = useResendMessageCallback({
2107
- currentGroupChannel: currentGroupChannel,
2108
- messagesDispatcher: messagesDispatcher
2014
+ const resendMessage = useResendMessageCallback({
2015
+ currentGroupChannel,
2016
+ messagesDispatcher
2109
2017
  }, {
2110
- logger: logger
2018
+ logger
2111
2019
  });
2112
-
2113
- var _o = useSendMessageCallback({
2114
- currentGroupChannel: currentGroupChannel,
2115
- onBeforeSendUserMessage: onBeforeSendUserMessage,
2116
- isMentionEnabled: isMentionEnabled
2020
+ const [messageInputRef, sendMessage] = useSendMessageCallback({
2021
+ currentGroupChannel,
2022
+ onBeforeSendUserMessage,
2023
+ isMentionEnabled
2117
2024
  }, {
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
2025
+ logger,
2026
+ pubSub,
2027
+ scrollRef,
2028
+ messagesDispatcher
2029
+ });
2030
+ const [sendFileMessage] = useSendFileMessageCallback({
2031
+ currentGroupChannel,
2032
+ onBeforeSendFileMessage,
2033
+ imageCompression
2130
2034
  }, {
2131
- logger: logger,
2132
- pubSub: pubSub,
2133
- scrollRef: scrollRef,
2134
- messagesDispatcher: messagesDispatcher
2135
- })[0];
2035
+ logger,
2036
+ pubSub,
2037
+ scrollRef,
2038
+ messagesDispatcher
2039
+ });
2040
+ const [sendVoiceMessage] = useSendVoiceMessageCallback({
2041
+ currentGroupChannel,
2042
+ onBeforeSendVoiceMessage
2043
+ }, {
2044
+ logger,
2045
+ pubSub,
2046
+ scrollRef,
2047
+ messagesDispatcher
2048
+ });
2136
2049
  return /*#__PURE__*/React__default["default"].createElement(ChannelContext.Provider, {
2137
2050
  value: {
2138
2051
  // props
2139
- channelUrl: channelUrl,
2052
+ channelUrl,
2140
2053
  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,
2054
+ isMessageGroupingEnabled,
2055
+ showSearchIcon,
2056
+ highlightedMessage,
2057
+ startingPoint,
2058
+ onBeforeSendUserMessage,
2059
+ onBeforeSendFileMessage,
2060
+ onBeforeUpdateUserMessage,
2061
+ onChatHeaderActionClick,
2062
+ onSearchClick,
2063
+ onBackClick,
2064
+ replyType,
2065
+ threadReplySelectType,
2066
+ queries,
2067
+ filterMessageList,
2068
+ disableMarkAsRead,
2069
+ onReplyInThread,
2070
+ onQuoteMessageClick,
2071
+ onMessageAnimated,
2072
+ onMessageHighlighted,
2159
2073
  // 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,
2074
+ allMessages,
2075
+ loading,
2076
+ initialized,
2077
+ unreadSince,
2078
+ isInvalid,
2079
+ currentGroupChannel,
2080
+ hasMorePrev,
2081
+ hasMoreNext,
2082
+ oldestMessageTimeStamp,
2083
+ latestMessageTimeStamp,
2084
+ emojiContainer,
2085
+ readStatus,
2172
2086
  // 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
2087
+ scrollToMessage,
2088
+ quoteMessage,
2089
+ setQuoteMessage,
2090
+ deleteMessage,
2091
+ updateMessage,
2092
+ resendMessage,
2093
+ messageInputRef,
2094
+ sendMessage,
2095
+ sendFileMessage,
2096
+ sendVoiceMessage,
2097
+ initialTimeStamp,
2098
+ messageActionTypes,
2099
+ messagesDispatcher,
2100
+ setInitialTimeStamp,
2101
+ setAnimatedMessageId,
2102
+ setHighLightedMessageId,
2103
+ animatedMessageId,
2104
+ highLightedMessageId,
2105
+ nicknamesMap,
2106
+ emojiAllMap,
2107
+ onScrollCallback,
2108
+ onScrollDownCallback,
2109
+ scrollRef,
2110
+ toggleReaction
2197
2111
  }
2198
2112
  }, /*#__PURE__*/React__default["default"].createElement(UserProfileContext.UserProfileProvider, {
2199
2113
  disableUserProfile: props === null || props === void 0 ? void 0 : props.disableUserProfile,
@@ -2201,17 +2115,15 @@ var ChannelProvider = function (props) {
2201
2115
  onUserProfileMessage: onUserProfileMessage
2202
2116
  }, children));
2203
2117
  };
2204
-
2205
- var useChannelContext = function () {
2206
- return React__default["default"].useContext(ChannelContext);
2207
- };
2118
+ const useChannelContext = () => React__default["default"].useContext(ChannelContext);
2208
2119
 
2209
2120
  exports.ChannelProvider = ChannelProvider;
2210
- exports.MARK_AS_READ = MARK_AS_READ;
2121
+ exports.ThreadReplySelectType = ThreadReplySelectType;
2211
2122
  exports.compareMessagesForGrouping = compareMessagesForGrouping;
2123
+ exports.getIsReactionEnabled = getIsReactionEnabled;
2212
2124
  exports.isAboutSame = isAboutSame;
2213
2125
  exports.isDisabledBecauseFrozen = isDisabledBecauseFrozen;
2214
2126
  exports.isDisabledBecauseMuted = isDisabledBecauseMuted;
2215
2127
  exports.isOperator = isOperator;
2216
2128
  exports.useChannelContext = useChannelContext;
2217
- //# sourceMappingURL=ChannelProvider-cf5dc7e3.js.map
2129
+ //# sourceMappingURL=ChannelProvider-2bfafa25.js.map