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