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