@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,230 +1,256 @@
1
- import React__default, { useState, useMemo } from 'react';
2
- import { i as isSameDay } from '../../index-d3f6dbb9.js';
3
- import { u as useChannelContext, c as compareMessagesForGrouping, i as isAboutSame } from '../../ChannelProvider-554e7116.js';
4
- import { P as PlaceHolder, a as PlaceHolderTypes } from '../../index-134314e2.js';
1
+ import React__default, { useState } from 'react';
2
+ import { c as compareMessagesForGrouping, u as useChannelContext, i as isAboutSame } from '../../ChannelProvider-42ea1a96.js';
3
+ import { P as PlaceHolder, a as PlaceHolderTypes } from '../../index-20880943.js';
5
4
  import Icon, { IconTypes, IconColors } from '../../ui/Icon.js';
6
5
  import Message from './Message.js';
7
- import { u as uuidv4 } from '../../uuid-286ed926.js';
8
- import '../../index-3f26a31c.js';
9
- import '../../index-07e060cd.js';
10
- import '../../UserProfileContext-c58a7b86.js';
6
+ import { i as isSameDay } from '../../index-9781d2b9.js';
7
+ import UnreadCount from './UnreadCount.js';
8
+ import FrozenNotification from './FrozenNotification.js';
9
+ import { S as SCROLL_BUFFER } from '../../consts-9393e7c8.js';
10
+ import useSendbirdStateContext from '../../useSendbirdStateContext.js';
11
+ import { MessageProvider } from '../../Message/context.js';
12
+ import { u as useDebounce, a as useHandleOnScrollCallback } from '../../index-b96440b7.js';
13
+ import '../../UserProfileContext-7e645551.js';
11
14
  import 'prop-types';
12
- import '../../useSendbirdStateContext.js';
13
- import '../../withSendbird.js';
14
- import '../../_rollupPluginBabelHelpers-498add61.js';
15
- import '../../topics-351ea731.js';
16
- import '../../index-5f08f486.js';
17
- import '../../tslib.es6-bcead7e6.js';
15
+ import '../../index-06f34585.js';
16
+ import '../../index-d9c12cf4.js';
17
+ import '../../topics-f9628f1f.js';
18
+ import '../../index-fd51c7d1.js';
19
+ import '../../_rollupPluginBabelHelpers-ce69e916.js';
18
20
  import '../../utils/message/getOutgoingMessageState.js';
19
- import '../../compareIds-9430f9d8.js';
20
- import '../../const-9d11f204.js';
21
+ import '../../compareIds-08858dd3.js';
22
+ import '../../const-a77c08c9.js';
21
23
  import '@sendbird/chat/groupChannel';
24
+ import '../../uuid-720c99c0.js';
22
25
  import '@sendbird/chat/message';
23
- import '../../ui/ContextMenu.js';
24
- import 'react-dom';
25
- import '../../ui/SortByRow.js';
26
- import '../../index-44470dab.js';
27
- import '../../stringSet-d555d877.js';
28
- import '../../ui/ReactionButton.js';
29
- import '../../ui/ImageRenderer.js';
30
- import '../../LocalizationContext-4df0cc32.js';
26
+ import '../../LocalizationContext-1839d2db.js';
27
+ import '../../stringSet-d368e289.js';
28
+ import '../../index-e1cd2fcf.js';
31
29
  import '../../ui/Loader.js';
32
30
  import './SuggestedMentionList.js';
33
31
  import '../../ui/Avatar.js';
34
- import '../../const-83764204.js';
35
- import '../../ThreadProvider-6974fb3e.js';
32
+ import '../../ui/ImageRenderer.js';
33
+ import '../../const-714046e0.js';
34
+ import '../../ThreadProvider-0b73628e.js';
36
35
  import '../../Thread/context/types.js';
37
36
  import '@sendbird/chat';
38
37
  import '../../ui/DateSeparator.js';
39
- import '../../color-ff5f9069.js';
38
+ import '../../color-4ca8a2ea.js';
40
39
  import '../../ui/MessageInput.js';
41
- import 'react-dom/server';
42
40
  import '../../ui/IconButton.js';
43
41
  import '../../ui/Button.js';
44
- import '../../ui/MentionUserLabel.js';
42
+ import 'dompurify';
43
+ import '../../consts-aecb8fab.js';
44
+ import '../../consts-decd9c7d.js';
45
+ import '../../consts-d46e0fc1.js';
46
+ import '../../tokenize-7056afb7.js';
45
47
  import '../../ui/MessageContent.js';
46
48
  import '../../ui/UserProfile.js';
47
49
  import '../../sendbirdSelectors.js';
48
- import '../../utils-e720e03a.js';
49
- import '../../index-1b91b116.js';
50
- import '../../index-defabece.js';
51
- import '../../index-1572c90f.js';
50
+ import '../../utils-256f157f.js';
51
+ import '../../index-c6df8184.js';
52
+ import '../../index-5db37327.js';
52
53
  import '../../ui/MessageItemMenu.js';
54
+ import '../../ui/ContextMenu.js';
55
+ import 'react-dom';
56
+ import '../../ui/SortByRow.js';
57
+ import '../../types-2b508dbc.js';
53
58
  import '../../ui/MessageItemReactionMenu.js';
59
+ import '../../ui/ReactionButton.js';
60
+ import '../../useLongPress-685c7391.js';
61
+ import '../../MediaQueryContext-0e0b3a1b.js';
54
62
  import '../../ui/EmojiReactions.js';
63
+ import '../../ui/ReactionBadge.js';
64
+ import '../../ui/BottomSheet.js';
65
+ import '../../index-3165e396.js';
66
+ import '../../ui/UserListItem.js';
67
+ import '../../ui/MutedAvatarOverlay.js';
68
+ import '../../ui/Checkbox.js';
55
69
  import '../../ui/Tooltip.js';
56
70
  import '../../ui/TooltipWrapper.js';
57
- import '../../ui/ReactionBadge.js';
58
71
  import '../../ui/AdminMessage.js';
59
72
  import '../../ui/TextMessageItemBody.js';
60
- import '../../ui/Word.js';
61
- import '../../ui/LinkLabel.js';
73
+ import '../../index-3130ac38.js';
74
+ import '../../index.module-8c144786.js';
62
75
  import '../../ui/MentionLabel.js';
76
+ import '../../ui/LinkLabel.js';
63
77
  import '../../ui/FileMessageItemBody.js';
64
78
  import '../../ui/TextButton.js';
65
- import '../../MediaQueryContext-74183e34.js';
66
79
  import '../../ui/ThumbnailMessageItemBody.js';
67
80
  import '../../ui/OGMessageItemBody.js';
68
81
  import '../../ui/UnknownMessageItemBody.js';
69
82
  import '../../ui/QuoteMessage.js';
70
- import '../../useLongPress-794838b8.js';
71
- import '../../ui/BottomSheet.js';
72
- import '../../index-e5b78039.js';
83
+ import '../../index-edfb3327.js';
73
84
  import '../../ui/ThreadReplies.js';
85
+ import '../../ui/VoiceMessageItemBody.js';
86
+ import '../../ui/ProgressBar.js';
87
+ import '../../VoicePlayer/useVoicePlayer.js';
88
+ import '../../index-5644a6c0.js';
89
+ import '../../VoiceRecorder/context.js';
90
+ import '../../withSendbird.js';
91
+ import '../../ui/PlaybackTime.js';
74
92
  import './FileViewer.js';
75
93
  import './RemoveMessageModal.js';
76
94
  import '../../ui/Modal.js';
95
+ import '../../useDirtyGetMentions-e0c0f521.js';
77
96
 
78
- var SCROLL_REF_CLASS_NAME = '.sendbird-msg--scroll-ref';
79
-
80
- var MessageList = function (props) {
81
- var renderMessage = props.renderMessage,
82
- renderPlaceholderEmpty = props.renderPlaceholderEmpty,
83
- renderCustomSeparator = props.renderCustomSeparator;
84
-
85
- var _a = useChannelContext(),
86
- allMessages = _a.allMessages,
87
- hasMorePrev = _a.hasMorePrev,
88
- setInitialTimeStamp = _a.setInitialTimeStamp,
89
- setAnimatedMessageId = _a.setAnimatedMessageId,
90
- setHighLightedMessageId = _a.setHighLightedMessageId,
91
- isMessageGroupingEnabled = _a.isMessageGroupingEnabled,
92
- scrollRef = _a.scrollRef,
93
- onScrollCallback = _a.onScrollCallback,
94
- onScrollDownCallback = _a.onScrollDownCallback,
95
- messagesDispatcher = _a.messagesDispatcher,
96
- messageActionTypes = _a.messageActionTypes,
97
- currentGroupChannel = _a.currentGroupChannel,
98
- disableMarkAsRead = _a.disableMarkAsRead,
99
- replyType = _a.replyType;
100
-
101
- var _b = useState(0),
102
- scrollBottom = _b[0],
103
- setScrollBottom = _b[1];
104
-
105
- var onScroll = function (e) {
106
- var element = e.target;
107
- var scrollTop = element.scrollTop,
108
- clientHeight = element.clientHeight,
109
- scrollHeight = element.scrollHeight;
110
-
111
- if (scrollTop === 0) {
112
- if (!hasMorePrev) {
113
- return;
114
- }
97
+ const getMessagePartsInfo = _ref => {
98
+ let {
99
+ allMessages = [],
100
+ isMessageGroupingEnabled = true,
101
+ currentIndex = 0,
102
+ currentMessage = null,
103
+ currentChannel = null,
104
+ replyType = ''
105
+ } = _ref;
106
+ const previousMessage = allMessages[currentIndex - 1];
107
+ const nextMessage = allMessages[currentIndex + 1];
108
+ const [chainTop, chainBottom] = isMessageGroupingEnabled ? compareMessagesForGrouping(previousMessage, currentMessage, nextMessage, currentChannel, replyType) : [false, false];
109
+ const previousMessageCreatedAt = previousMessage === null || previousMessage === void 0 ? void 0 : previousMessage.createdAt;
110
+ const currentCreatedAt = currentMessage.createdAt;
111
+ // https://stackoverflow.com/a/41855608
112
+ const hasSeparator = !(previousMessageCreatedAt && isSameDay(currentCreatedAt, previousMessageCreatedAt));
113
+ return {
114
+ chainTop,
115
+ chainBottom,
116
+ hasSeparator
117
+ };
118
+ };
115
119
 
116
- var nodes = scrollRef.current.querySelectorAll(SCROLL_REF_CLASS_NAME);
117
- var first_1 = nodes && nodes[0];
118
- onScrollCallback(function (_a) {
119
- var messages = _a[0];
120
+ const DELAY = 500;
121
+ function useSetScrollToBottom() {
122
+ const [scrollBottom, setScrollBottom] = useState(0);
123
+ const scrollCb = e => {
124
+ const element = e.target;
125
+ try {
126
+ setScrollBottom(element.scrollHeight - element.scrollTop - element.offsetHeight);
127
+ } catch (_unused) {
128
+ //
129
+ }
130
+ };
131
+ return {
132
+ scrollBottom,
133
+ scrollToBottomHandler: useDebounce(scrollCb, DELAY)
134
+ };
135
+ }
120
136
 
121
- if (messages) {
122
- // https://github.com/scabbiaza/react-scroll-position-on-updating-dom
123
- // Set block to nearest to prevent unexpected scrolling from outer components
124
- try {
125
- first_1.scrollIntoView({
126
- block: "start",
127
- inline: "nearest"
128
- });
129
- } catch (error) {//
130
- }
131
- }
137
+ const SCROLL_BOTTOM_PADDING = 50;
138
+ const MessageList = _ref => {
139
+ let {
140
+ className = '',
141
+ renderMessage,
142
+ renderPlaceholderEmpty,
143
+ renderCustomSeparator,
144
+ renderPlaceholderLoader
145
+ } = _ref;
146
+ const {
147
+ allMessages,
148
+ hasMorePrev,
149
+ hasMoreNext,
150
+ setInitialTimeStamp,
151
+ setAnimatedMessageId,
152
+ setHighLightedMessageId,
153
+ isMessageGroupingEnabled,
154
+ scrollRef,
155
+ onScrollCallback,
156
+ onScrollDownCallback,
157
+ messagesDispatcher,
158
+ messageActionTypes,
159
+ currentGroupChannel,
160
+ disableMarkAsRead,
161
+ filterMessageList,
162
+ replyType,
163
+ loading,
164
+ unreadSince
165
+ } = useChannelContext();
166
+ const store = useSendbirdStateContext();
167
+ const allMessagesFiltered = typeof filterMessageList === 'function' ? allMessages.filter(filterMessageList) : allMessages;
168
+ const markAsReadScheduler = store.config.markAsReadScheduler;
169
+ const onScroll = () => {
170
+ const element = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current;
171
+ if (element == null) {
172
+ return;
173
+ }
174
+ const {
175
+ scrollTop,
176
+ clientHeight,
177
+ scrollHeight
178
+ } = element;
179
+ if (isAboutSame(scrollTop, 0, SCROLL_BUFFER)) {
180
+ onScrollCallback(messages => {
132
181
  });
133
182
  }
134
-
135
- if (isAboutSame(clientHeight + scrollTop, scrollHeight, 10)) {
136
- onScrollDownCallback(function (_a) {
137
- _a[0];
183
+ if (isAboutSame(clientHeight + scrollTop, scrollHeight, SCROLL_BUFFER) && hasMoreNext) {
184
+ onScrollDownCallback(_ref2 => {
138
185
  });
139
- } // Save the lastest scroll bottom value
140
-
141
-
142
- if (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) {
143
- var current = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current;
144
- setScrollBottom(current.scrollHeight - current.scrollTop - current.offsetHeight);
145
186
  }
146
-
147
- if (!disableMarkAsRead && isAboutSame(clientHeight + scrollTop, scrollHeight, 10)) {
148
- // Mark as read if scroll is at end
149
- setTimeout(function () {
150
- var _a;
151
-
152
- messagesDispatcher({
153
- type: messageActionTypes.MARK_AS_READ,
154
- payload: {
155
- channel: currentGroupChannel
156
- }
157
- });
158
-
159
- try {
160
- (_a = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.markAsRead) === null || _a === void 0 ? void 0 : _a.call(currentGroupChannel);
161
- } catch (_b) {//
187
+ if (!disableMarkAsRead && isAboutSame(clientHeight + scrollTop, scrollHeight, SCROLL_BUFFER) && !!currentGroupChannel) {
188
+ messagesDispatcher({
189
+ type: messageActionTypes.MARK_AS_READ,
190
+ payload: {
191
+ channel: currentGroupChannel
162
192
  }
163
- }, 500);
193
+ });
194
+ markAsReadScheduler.push(currentGroupChannel);
164
195
  }
165
196
  };
166
-
167
- var onClickScrollBot = function () {
168
- var _a, _b, _c;
169
-
197
+ const onClickScrollBot = () => {
198
+ var _scrollRef$current;
170
199
  setInitialTimeStamp === null || setInitialTimeStamp === void 0 ? void 0 : setInitialTimeStamp(null);
171
200
  setAnimatedMessageId === null || setAnimatedMessageId === void 0 ? void 0 : setAnimatedMessageId(null);
172
201
  setHighLightedMessageId === null || setHighLightedMessageId === void 0 ? void 0 : setHighLightedMessageId(null);
173
-
174
- if (((_a = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) === null || _a === void 0 ? void 0 : _a.scrollTop) > -1) {
175
- scrollRef.current.scrollTop = ((_b = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) === null || _b === void 0 ? void 0 : _b.scrollHeight) - ((_c = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) === null || _c === void 0 ? void 0 : _c.offsetHeight);
202
+ if ((scrollRef === null || scrollRef === void 0 ? void 0 : (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollTop) > -1) {
203
+ var _scrollRef$current$sc, _scrollRef$current2, _scrollRef$current$of, _scrollRef$current3;
204
+ scrollRef.current.scrollTop = ((_scrollRef$current$sc = scrollRef === null || scrollRef === void 0 ? void 0 : (_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.scrollHeight) !== null && _scrollRef$current$sc !== void 0 ? _scrollRef$current$sc : 0) - ((_scrollRef$current$of = scrollRef === null || scrollRef === void 0 ? void 0 : (_scrollRef$current3 = scrollRef.current) === null || _scrollRef$current3 === void 0 ? void 0 : _scrollRef$current3.offsetHeight) !== null && _scrollRef$current$of !== void 0 ? _scrollRef$current$of : 0);
176
205
  }
177
- }; // Because every message components are re-rendered everytime by every scroll events
178
-
179
-
180
- var memoizedAllMessages = useMemo(function () {
181
- return allMessages.map(function (m, idx) {
182
- var previousMessage = allMessages[idx - 1];
183
- var nextMessage = allMessages[idx + 1];
184
-
185
- var _a = isMessageGroupingEnabled ? compareMessagesForGrouping(previousMessage, m, nextMessage, currentGroupChannel, replyType) : [false, false],
186
- chainTop = _a[0],
187
- chainBottom = _a[1];
188
-
189
- var previousMessageCreatedAt = previousMessage === null || previousMessage === void 0 ? void 0 : previousMessage.createdAt;
190
- var currentCreatedAt = m.createdAt; // https://stackoverflow.com/a/41855608
191
-
192
- var hasSeparator = !(previousMessageCreatedAt && isSameDay(currentCreatedAt, previousMessageCreatedAt));
193
-
194
- var handleScroll = function () {
195
- var current = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current;
196
-
197
- if (current) {
198
- var bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;
199
-
200
- if (scrollBottom < bottom) {
201
- current.scrollTop += bottom - scrollBottom;
202
- }
203
- }
204
- };
206
+ };
205
207
 
206
- return /*#__PURE__*/React__default.createElement(Message, {
207
- handleScroll: handleScroll,
208
- renderMessage: renderMessage,
209
- message: m,
210
- hasSeparator: hasSeparator,
211
- chainTop: chainTop,
212
- chainBottom: chainBottom,
213
- renderCustomSeparator: renderCustomSeparator,
214
- key: m.messageId + uuidv4()
215
- });
208
+ // Move the messsage list scroll when the last message's height is changed by reactions
209
+ const handleMessageHeightChange = () => {
210
+ const current = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current;
211
+ if (current) {
212
+ const bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;
213
+ if (scrollBottom < bottom && scrollBottom <= SCROLL_BUFFER) {
214
+ current.scrollTop += bottom - scrollBottom;
215
+ }
216
+ }
217
+ };
218
+ // Keep the scrollBottom value after fetching new message list
219
+ const handleMessageListHeightChange = () => {
220
+ const current = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current;
221
+ if (current) {
222
+ const bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;
223
+ if (scrollBottom < bottom) {
224
+ current.scrollTop += bottom - scrollBottom;
225
+ }
226
+ }
227
+ };
228
+ const handleOnScroll = useHandleOnScrollCallback({
229
+ hasMore: hasMorePrev,
230
+ hasNext: hasMoreNext,
231
+ onScroll,
232
+ scrollRef
233
+ });
234
+ const {
235
+ scrollToBottomHandler,
236
+ scrollBottom
237
+ } = useSetScrollToBottom();
238
+ if (loading) {
239
+ return typeof renderPlaceholderLoader === 'function' ? renderPlaceholderLoader() : /*#__PURE__*/React__default.createElement(PlaceHolder, {
240
+ type: PlaceHolderTypes.LOADING
216
241
  });
217
- }, [allMessages]);
218
-
219
- if (allMessages.length < 1) {
220
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, (renderPlaceholderEmpty === null || renderPlaceholderEmpty === void 0 ? void 0 : renderPlaceholderEmpty()) || /*#__PURE__*/React__default.createElement(PlaceHolder, {
242
+ }
243
+ if (allMessagesFiltered.length < 1) {
244
+ if (renderPlaceholderEmpty && typeof renderPlaceholderEmpty === 'function') {
245
+ return renderPlaceholderEmpty();
246
+ }
247
+ return /*#__PURE__*/React__default.createElement(PlaceHolder, {
221
248
  className: "sendbird-conversation__no-messages",
222
249
  type: PlaceHolderTypes.NO_MESSAGES
223
- }));
250
+ });
224
251
  }
225
-
226
252
  return /*#__PURE__*/React__default.createElement("div", {
227
- className: "sendbird-conversation__messages"
253
+ className: `sendbird-conversation__messages ${className}`
228
254
  }, /*#__PURE__*/React__default.createElement("div", {
229
255
  className: "sendbird-conversation__scroll-container"
230
256
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -232,9 +258,67 @@ var MessageList = function (props) {
232
258
  }), /*#__PURE__*/React__default.createElement("div", {
233
259
  className: "sendbird-conversation__messages-padding",
234
260
  ref: scrollRef,
235
- onScroll: onScroll
236
- }, memoizedAllMessages)), // This flag is an unmatched variable
237
- scrollBottom > 1 && /*#__PURE__*/React__default.createElement("div", {
261
+ onScroll: e => {
262
+ handleOnScroll();
263
+ scrollToBottomHandler(e);
264
+ }
265
+ }, allMessagesFiltered.map((m, idx) => {
266
+ var _sender, _store$config;
267
+ const {
268
+ chainTop,
269
+ chainBottom,
270
+ hasSeparator
271
+ } = getMessagePartsInfo({
272
+ allMessages: allMessagesFiltered,
273
+ replyType,
274
+ isMessageGroupingEnabled,
275
+ currentIndex: idx,
276
+ currentMessage: m,
277
+ currentChannel: currentGroupChannel
278
+ });
279
+ const isByMe = (m === null || m === void 0 ? void 0 : (_sender = m.sender) === null || _sender === void 0 ? void 0 : _sender.userId) === (store === null || store === void 0 ? void 0 : (_store$config = store.config) === null || _store$config === void 0 ? void 0 : _store$config.userId);
280
+ return /*#__PURE__*/React__default.createElement(MessageProvider, {
281
+ message: m,
282
+ key: m === null || m === void 0 ? void 0 : m.messageId,
283
+ isByMe: isByMe
284
+ }, /*#__PURE__*/React__default.createElement(Message, {
285
+ handleScroll: handleMessageHeightChange,
286
+ handleMessageListHeightChange: handleMessageListHeightChange,
287
+ renderMessage: renderMessage,
288
+ message: m,
289
+ hasSeparator: hasSeparator,
290
+ chainTop: chainTop,
291
+ chainBottom: chainBottom,
292
+ renderCustomSeparator: renderCustomSeparator
293
+ }));
294
+ }))), (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isFrozen) && /*#__PURE__*/React__default.createElement(FrozenNotification, {
295
+ className: "sendbird-conversation__messages__notification"
296
+ }), /*#__PURE__*/React__default.createElement(UnreadCount, {
297
+ className: "sendbird-conversation__messages__notification",
298
+ count: currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.unreadMessageCount,
299
+ time: unreadSince,
300
+ onClick: () => {
301
+ var _scrollRef$current4;
302
+ if (scrollRef !== null && scrollRef !== void 0 && (_scrollRef$current4 = scrollRef.current) !== null && _scrollRef$current4 !== void 0 && _scrollRef$current4.scrollTop) {
303
+ var _scrollRef$current$sc2, _scrollRef$current5, _scrollRef$current$of2, _scrollRef$current6;
304
+ scrollRef.current.scrollTop = ((_scrollRef$current$sc2 = scrollRef === null || scrollRef === void 0 ? void 0 : (_scrollRef$current5 = scrollRef.current) === null || _scrollRef$current5 === void 0 ? void 0 : _scrollRef$current5.scrollHeight) !== null && _scrollRef$current$sc2 !== void 0 ? _scrollRef$current$sc2 : 0) - ((_scrollRef$current$of2 = scrollRef === null || scrollRef === void 0 ? void 0 : (_scrollRef$current6 = scrollRef.current) === null || _scrollRef$current6 === void 0 ? void 0 : _scrollRef$current6.offsetHeight) !== null && _scrollRef$current$of2 !== void 0 ? _scrollRef$current$of2 : 0);
305
+ }
306
+ if (!disableMarkAsRead && !!currentGroupChannel) {
307
+ markAsReadScheduler.push(currentGroupChannel);
308
+ messagesDispatcher({
309
+ type: messageActionTypes.MARK_AS_READ,
310
+ payload: {
311
+ channel: currentGroupChannel
312
+ }
313
+ });
314
+ }
315
+ setInitialTimeStamp(null);
316
+ setAnimatedMessageId(null);
317
+ setHighLightedMessageId(null);
318
+ }
319
+ }),
320
+ // This flag is an unmatched variable
321
+ scrollBottom > SCROLL_BOTTOM_PADDING && /*#__PURE__*/React__default.createElement("div", {
238
322
  className: "sendbird-conversation__scroll-bottom-button",
239
323
  onClick: onClickScrollBot,
240
324
  onKeyDown: onClickScrollBot,
@@ -1 +1 @@
1
- {"version":3,"file":"MessageList.js","sources":["../../../src/smart-components/Channel/components/MessageList/index.tsx"],"sourcesContent":["import './message-list.scss';\n\nimport React, { useState, useMemo } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport PlaceHolder, { PlaceHolderTypes } from '../../../../ui/PlaceHolder';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport { compareMessagesForGrouping } from '../../context/utils';\nimport Message from '../Message';\nimport { RenderCustomSeparatorProps, RenderMessageProps } from '../../../../types';\nimport { isAboutSame } from '../../context/utils';\nimport uuidv4 from '../../../../utils/uuid';\n\nexport type MessageListProps = {\n renderMessage?: (props: RenderMessageProps) => React.ReactElement;\n renderPlaceholderEmpty?: () => React.ReactElement;\n renderCustomSeparator?: (props: RenderCustomSeparatorProps) => React.ReactElement;\n};\n\nconst SCROLL_REF_CLASS_NAME = '.sendbird-msg--scroll-ref';\n\nconst MessageList: React.FC<MessageListProps> = (props: MessageListProps) => {\n const {\n renderMessage,\n renderPlaceholderEmpty,\n renderCustomSeparator,\n } = props;\n const {\n allMessages,\n hasMorePrev,\n setInitialTimeStamp,\n setAnimatedMessageId,\n setHighLightedMessageId,\n isMessageGroupingEnabled,\n scrollRef,\n onScrollCallback,\n onScrollDownCallback,\n messagesDispatcher,\n messageActionTypes,\n currentGroupChannel,\n disableMarkAsRead,\n replyType,\n } = useChannelContext();\n const [scrollBottom, setScrollBottom] = useState(0);\n\n const onScroll = (e) => {\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n\n if (scrollTop === 0) {\n if (!hasMorePrev) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll(SCROLL_REF_CLASS_NAME);\n const first = nodes && nodes[0];\n onScrollCallback(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n // Set block to nearest to prevent unexpected scrolling from outer components\n try {\n first.scrollIntoView({ block: \"start\", inline: \"nearest\" });\n } catch (error) {\n //\n }\n }\n });\n }\n\n if (isAboutSame(clientHeight + scrollTop, scrollHeight, 10)) {\n onScrollDownCallback(([messages]) => {\n if (messages) {\n try {\n // element.scrollTop = scrollHeight - clientHeight;\n // scrollRef.current.scrollTop = scrollHeight - clientHeight;\n } catch (error) {\n //\n }\n }\n });\n }\n\n // Save the lastest scroll bottom value\n if (scrollRef?.current) {\n const current = scrollRef?.current;\n setScrollBottom(current.scrollHeight - current.scrollTop - current.offsetHeight)\n }\n\n if (!disableMarkAsRead && isAboutSame(clientHeight + scrollTop, scrollHeight, 10)) {\n // Mark as read if scroll is at end\n setTimeout(() => {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n payload: { channel: currentGroupChannel },\n });\n try {\n currentGroupChannel?.markAsRead?.();\n } catch {\n //\n }\n }, 500);\n }\n };\n\n const onClickScrollBot = () => {\n setInitialTimeStamp?.(null);\n setAnimatedMessageId?.(null);\n setHighLightedMessageId?.(null);\n if (scrollRef?.current?.scrollTop > -1) {\n scrollRef.current.scrollTop = scrollRef?.current?.scrollHeight - scrollRef?.current?.offsetHeight;\n }\n };\n\n // Because every message components are re-rendered everytime by every scroll events\n const memoizedAllMessages = useMemo(() => {\n return (\n allMessages.map((m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = isMessageGroupingEnabled\n ? compareMessagesForGrouping(previousMessage, m, nextMessage, currentGroupChannel, replyType)\n : [false, false];\n const previousMessageCreatedAt = previousMessage?.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeparator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n\n const handleScroll = () => {\n const current = scrollRef?.current;\n if (current) {\n const bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;\n if (scrollBottom < bottom) {\n current.scrollTop += bottom - scrollBottom;\n }\n }\n };\n\n return (\n <Message\n handleScroll={handleScroll}\n renderMessage={renderMessage}\n message={m}\n hasSeparator={hasSeparator}\n chainTop={chainTop}\n chainBottom={chainBottom}\n renderCustomSeparator={renderCustomSeparator}\n key={m.messageId + uuidv4()}\n />\n );\n })\n );\n }, [allMessages]);\n\n if (allMessages.length < 1) {\n return (\n <>\n {\n renderPlaceholderEmpty?.() || (\n <PlaceHolder\n className=\"sendbird-conversation__no-messages\"\n type={PlaceHolderTypes.NO_MESSAGES}\n />)\n }\n </>\n );\n }\n return (\n <div className=\"sendbird-conversation__messages\">\n <div className=\"sendbird-conversation__scroll-container\">\n <div className=\"sendbird-conversation__padding\" />\n <div\n className=\"sendbird-conversation__messages-padding\"\n ref={scrollRef}\n onScroll={onScroll}\n >\n {memoizedAllMessages}\n </div>\n </div>\n {\n // This flag is an unmatched variable\n (scrollBottom > 1) && (\n <div\n className=\"sendbird-conversation__scroll-bottom-button\"\n onClick={onClickScrollBot}\n onKeyDown={onClickScrollBot}\n tabIndex={0}\n role=\"button\"\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.CHEVRON_DOWN}\n fillColor={IconColors.PRIMARY}\n />\n </div>\n )\n }\n </div>\n );\n};\n\nexport default MessageList;\n"],"names":["SCROLL_REF_CLASS_NAME","MessageList","props","renderMessage","renderPlaceholderEmpty","renderCustomSeparator","_a","useChannelContext","allMessages","hasMorePrev","setInitialTimeStamp","setAnimatedMessageId","setHighLightedMessageId","isMessageGroupingEnabled","scrollRef","onScrollCallback","onScrollDownCallback","messagesDispatcher","messageActionTypes","currentGroupChannel","disableMarkAsRead","replyType","_b","useState","scrollBottom","setScrollBottom","onScroll","e","element","target","scrollTop","clientHeight","scrollHeight","nodes","current","querySelectorAll","first_1","messages","scrollIntoView","block","inline","error","isAboutSame","offsetHeight","setTimeout","type","MARK_AS_READ","payload","channel","markAsRead","onClickScrollBot","_c","memoizedAllMessages","useMemo","map","m","idx","previousMessage","nextMessage","compareMessagesForGrouping","chainTop","chainBottom","previousMessageCreatedAt","createdAt","currentCreatedAt","hasSeparator","isSameDay","handleScroll","bottom","React","messageId","uuidv4","length","PlaceHolderTypes","NO_MESSAGES","IconTypes","CHEVRON_DOWN","IconColors","PRIMARY"],"mappings":"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"}
1
+ {"version":3,"file":"MessageList.js","sources":["../../../src/modules/Channel/components/MessageList/getMessagePartsInfo.ts","../../../src/modules/Channel/components/MessageList/hooks/useSetScrollToBottom.ts","../../../src/modules/Channel/components/MessageList/index.tsx"],"sourcesContent":["import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { AdminMessage, FileMessage, UserMessage } from '@sendbird/chat/message';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport { compareMessagesForGrouping } from '../../context/utils';\n\nexport interface GetMessagePartsInfoProps {\n allMessages: Array<UserMessage | FileMessage | AdminMessage>;\n isMessageGroupingEnabled: boolean;\n currentIndex: number;\n currentMessage: UserMessage | FileMessage | AdminMessage;\n currentChannel: GroupChannel;\n replyType: string;\n}\n\ninterface OutPuts {\n chainTop: boolean,\n chainBottom: boolean,\n hasSeparator: boolean,\n}\n\nexport const getMessagePartsInfo = ({\n allMessages = [],\n isMessageGroupingEnabled = true,\n currentIndex = 0,\n currentMessage = null,\n currentChannel = null,\n replyType = '',\n}: GetMessagePartsInfoProps): OutPuts => {\n const previousMessage = allMessages[currentIndex - 1];\n const nextMessage = allMessages[currentIndex + 1];\n const [chainTop, chainBottom] = isMessageGroupingEnabled\n ? compareMessagesForGrouping(previousMessage, currentMessage, nextMessage, currentChannel, replyType)\n : [false, false];\n const previousMessageCreatedAt = previousMessage?.createdAt;\n const currentCreatedAt = currentMessage.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeparator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n return {\n chainTop,\n chainBottom,\n hasSeparator,\n };\n};\n","import React, { useState } from 'react';\nimport { useDebounce } from '../../../../../hooks/useDebounce';\n\nconst DELAY = 500;\n\nexport function useSetScrollToBottom(): ({\n scrollBottom: number;\n scrollToBottomHandler: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void;\n}) {\n const [scrollBottom, setScrollBottom] = useState(0);\n const scrollCb = (e: React.UIEvent<HTMLDivElement, UIEvent>) => {\n const element = e.target as HTMLDivElement;\n try {\n setScrollBottom(element.scrollHeight - element.scrollTop - element.offsetHeight);\n } catch {\n //\n }\n };\n return {\n scrollBottom,\n scrollToBottomHandler: useDebounce(scrollCb, DELAY),\n };\n}\n","import './message-list.scss';\n\nimport React from 'react';\n\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport PlaceHolder, { PlaceHolderTypes } from '../../../../ui/PlaceHolder';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport Message from '../Message';\nimport { EveryMessage, RenderCustomSeparatorProps, RenderMessageProps } from '../../../../types';\nimport { isAboutSame } from '../../context/utils';\nimport { getMessagePartsInfo } from './getMessagePartsInfo';\nimport UnreadCount from '../UnreadCount';\nimport FrozenNotification from '../FrozenNotification';\nimport { SCROLL_BUFFER } from '../../../../utils/consts';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { UserMessage } from '@sendbird/chat/message';\nimport { MessageProvider } from '../../../Message/context/MessageProvider';\nimport { useHandleOnScrollCallback } from '../../../../hooks/useHandleOnScrollCallback';\nimport { useSetScrollToBottom } from './hooks/useSetScrollToBottom';\n\nconst SCROLL_BOTTOM_PADDING = 50;\n\nexport interface MessageListProps {\n className?: string;\n renderMessage?: (props: RenderMessageProps) => React.ReactElement;\n renderPlaceholderEmpty?: () => React.ReactElement;\n renderCustomSeparator?: (props: RenderCustomSeparatorProps) => React.ReactElement;\n renderPlaceholderLoader?: () => React.ReactElement;\n}\n\nconst MessageList: React.FC<MessageListProps> = ({\n className = '',\n renderMessage,\n renderPlaceholderEmpty,\n renderCustomSeparator,\n renderPlaceholderLoader,\n}) => {\n const {\n allMessages,\n hasMorePrev,\n hasMoreNext,\n setInitialTimeStamp,\n setAnimatedMessageId,\n setHighLightedMessageId,\n isMessageGroupingEnabled,\n scrollRef,\n onScrollCallback,\n onScrollDownCallback,\n messagesDispatcher,\n messageActionTypes,\n currentGroupChannel,\n disableMarkAsRead,\n filterMessageList,\n replyType,\n loading,\n unreadSince,\n } = useChannelContext();\n const store = useSendbirdStateContext();\n const allMessagesFiltered = (typeof filterMessageList === 'function')\n ? allMessages.filter((filterMessageList as (message: EveryMessage) => boolean))\n : allMessages;\n const markAsReadScheduler = store.config.markAsReadScheduler;\n\n const onScroll = () => {\n const element = scrollRef?.current;\n if (element == null) {\n return;\n }\n\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n\n if (isAboutSame(scrollTop, 0, SCROLL_BUFFER)) {\n onScrollCallback((messages) => {\n if (messages) {\n try {\n //\n } catch (error) {\n //\n }\n }\n });\n }\n\n if (isAboutSame(clientHeight + scrollTop, scrollHeight, SCROLL_BUFFER) && hasMoreNext) {\n onScrollDownCallback(([messages]) => {\n if (messages) {\n try {\n // element.scrollTop = scrollHeight - clientHeight;\n // scrollRef.current.scrollTop = scrollHeight - clientHeight;\n } catch (error) {\n //\n }\n }\n });\n }\n\n if (!disableMarkAsRead\n && isAboutSame(clientHeight + scrollTop, scrollHeight, SCROLL_BUFFER)\n && !!currentGroupChannel\n ) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n payload: { channel: currentGroupChannel },\n });\n markAsReadScheduler.push(currentGroupChannel);\n }\n };\n\n const onClickScrollBot = () => {\n setInitialTimeStamp?.(null);\n setAnimatedMessageId?.(null);\n setHighLightedMessageId?.(null);\n if (scrollRef?.current?.scrollTop > -1) {\n scrollRef.current.scrollTop = (scrollRef?.current?.scrollHeight ?? 0) - (scrollRef?.current?.offsetHeight ?? 0);\n }\n };\n\n // Move the messsage list scroll when the last message's height is changed by reactions\n const handleMessageHeightChange = () => {\n const current = scrollRef?.current;\n if (current) {\n const bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;\n if (scrollBottom < bottom && scrollBottom <= SCROLL_BUFFER) {\n current.scrollTop += bottom - scrollBottom;\n }\n }\n };\n // Keep the scrollBottom value after fetching new message list\n const handleMessageListHeightChange = () => {\n const current = scrollRef?.current;\n if (current) {\n const bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;\n if (scrollBottom < bottom) {\n current.scrollTop += bottom - scrollBottom;\n }\n }\n };\n\n const handleOnScroll = useHandleOnScrollCallback({\n hasMore: hasMorePrev,\n hasNext: hasMoreNext,\n onScroll,\n scrollRef,\n });\n\n const { scrollToBottomHandler, scrollBottom } = useSetScrollToBottom();\n\n if (loading) {\n return (typeof renderPlaceholderLoader === 'function')\n ? renderPlaceholderLoader()\n : <PlaceHolder type={PlaceHolderTypes.LOADING} />;\n }\n if (allMessagesFiltered.length < 1) {\n if (renderPlaceholderEmpty && typeof renderPlaceholderEmpty === 'function') {\n return renderPlaceholderEmpty();\n }\n return <PlaceHolder className=\"sendbird-conversation__no-messages\" type={PlaceHolderTypes.NO_MESSAGES} />;\n }\n return (\n <div className={`sendbird-conversation__messages ${className}`}>\n <div className=\"sendbird-conversation__scroll-container\">\n <div className=\"sendbird-conversation__padding\" />\n <div\n className=\"sendbird-conversation__messages-padding\"\n ref={scrollRef}\n onScroll={(e) => {\n handleOnScroll();\n scrollToBottomHandler(e);\n }}\n >\n {allMessagesFiltered.map((m, idx) => {\n const {\n chainTop,\n chainBottom,\n hasSeparator,\n } = getMessagePartsInfo({\n allMessages: allMessagesFiltered,\n replyType,\n isMessageGroupingEnabled,\n currentIndex: idx,\n currentMessage: m,\n currentChannel: currentGroupChannel,\n });\n const isByMe = (m as UserMessage)?.sender?.userId === store?.config?.userId;\n return (\n <MessageProvider message={m} key={m?.messageId} isByMe={isByMe}>\n <Message\n handleScroll={handleMessageHeightChange}\n handleMessageListHeightChange={handleMessageListHeightChange}\n renderMessage={renderMessage}\n message={m}\n hasSeparator={hasSeparator}\n chainTop={chainTop}\n chainBottom={chainBottom}\n renderCustomSeparator={renderCustomSeparator}\n />\n </MessageProvider>\n );\n })}\n {/* show frozen notifications */}\n {/* show new message notifications */}\n </div>\n </div>\n {currentGroupChannel?.isFrozen && (\n <FrozenNotification className=\"sendbird-conversation__messages__notification\" />\n )}\n <UnreadCount\n className=\"sendbird-conversation__messages__notification\"\n count={currentGroupChannel?.unreadMessageCount}\n time={unreadSince}\n onClick={() => {\n if (scrollRef?.current?.scrollTop) {\n scrollRef.current.scrollTop = (scrollRef?.current?.scrollHeight ?? 0) - (scrollRef?.current?.offsetHeight ?? 0);\n }\n if (!disableMarkAsRead && !!currentGroupChannel) {\n markAsReadScheduler.push(currentGroupChannel);\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n payload: { channel: currentGroupChannel },\n });\n }\n setInitialTimeStamp(null);\n setAnimatedMessageId(null);\n setHighLightedMessageId(null);\n }}\n />\n {\n // This flag is an unmatched variable\n scrollBottom > SCROLL_BOTTOM_PADDING && (\n <div\n className=\"sendbird-conversation__scroll-bottom-button\"\n onClick={onClickScrollBot}\n onKeyDown={onClickScrollBot}\n tabIndex={0}\n role=\"button\"\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.CHEVRON_DOWN}\n fillColor={IconColors.PRIMARY}\n />\n </div>\n )\n }\n </div>\n );\n};\n\nexport default MessageList;\n"],"names":["getMessagePartsInfo","_ref","allMessages","isMessageGroupingEnabled","currentIndex","currentMessage","currentChannel","replyType","previousMessage","nextMessage","chainTop","chainBottom","compareMessagesForGrouping","previousMessageCreatedAt","createdAt","currentCreatedAt","hasSeparator","isSameDay","DELAY","useSetScrollToBottom","scrollBottom","setScrollBottom","useState","scrollCb","e","element","target","scrollHeight","scrollTop","offsetHeight","_unused","scrollToBottomHandler","useDebounce","SCROLL_BOTTOM_PADDING","MessageList","className","renderMessage","renderPlaceholderEmpty","renderCustomSeparator","renderPlaceholderLoader","hasMorePrev","hasMoreNext","setInitialTimeStamp","setAnimatedMessageId","setHighLightedMessageId","scrollRef","onScrollCallback","onScrollDownCallback","messagesDispatcher","messageActionTypes","currentGroupChannel","disableMarkAsRead","filterMessageList","loading","unreadSince","useChannelContext","store","useSendbirdStateContext","allMessagesFiltered","filter","markAsReadScheduler","config","onScroll","current","clientHeight","isAboutSame","SCROLL_BUFFER","messages","_ref2","type","MARK_AS_READ","payload","channel","push","onClickScrollBot","_scrollRef$current","_scrollRef$current$sc","_scrollRef$current2","_scrollRef$current$of","_scrollRef$current3","handleMessageHeightChange","bottom","handleMessageListHeightChange","handleOnScroll","useHandleOnScrollCallback","hasMore","hasNext","React","createElement","PlaceHolder","PlaceHolderTypes","LOADING","length","NO_MESSAGES","ref","map","m","idx","_sender","_store$config","isByMe","sender","userId","MessageProvider","message","key","messageId","Message","handleScroll","isFrozen","FrozenNotification","UnreadCount","count","unreadMessageCount","time","onClick","_scrollRef$current4","_scrollRef$current$sc2","_scrollRef$current5","_scrollRef$current$of2","_scrollRef$current6","onKeyDown","tabIndex","role","Icon","width","height","IconTypes","CHEVRON_DOWN","fillColor","IconColors","PRIMARY"],"mappings":"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"}