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

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