@sendbird/uikit-react 3.5.0-mobile-rc-3 → 3.5.0-mobile-web-5

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 (557) hide show
  1. package/App.js +67 -55
  2. package/App.js.map +1 -1
  3. package/Channel/components/ChannelHeader.js +19 -18
  4. package/Channel/components/ChannelHeader.js.map +1 -1
  5. package/Channel/components/ChannelUI.js +41 -40
  6. package/Channel/components/ChannelUI.js.map +1 -1
  7. package/Channel/components/FileViewer.js +15 -14
  8. package/Channel/components/FileViewer.js.map +1 -1
  9. package/Channel/components/FrozenNotification.js +4 -4
  10. package/Channel/components/Message.js +37 -35
  11. package/Channel/components/Message.js.map +1 -1
  12. package/Channel/components/MessageInput.js +29 -27
  13. package/Channel/components/MessageInput.js.map +1 -1
  14. package/Channel/components/MessageList.js +37 -36
  15. package/Channel/components/MessageList.js.map +1 -1
  16. package/Channel/components/RemoveMessageModal.js +17 -16
  17. package/Channel/components/RemoveMessageModal.js.map +1 -1
  18. package/Channel/components/SuggestedMentionList.js +17 -16
  19. package/Channel/components/SuggestedMentionList.js.map +1 -1
  20. package/Channel/components/TypingIndicator.js +15 -14
  21. package/Channel/components/TypingIndicator.js.map +1 -1
  22. package/Channel/components/UnreadCount.js +4 -4
  23. package/Channel/context.js +12 -11
  24. package/Channel/context.js.map +1 -1
  25. package/Channel.js +41 -40
  26. package/Channel.js.map +1 -1
  27. package/ChannelList/components/AddChannel.js +14 -14
  28. package/ChannelList/components/ChannelListHeader.js +6 -6
  29. package/ChannelList/components/ChannelListUI.js +30 -29
  30. package/ChannelList/components/ChannelListUI.js.map +1 -1
  31. package/ChannelList/components/ChannelPreview.js +26 -25
  32. package/ChannelList/components/ChannelPreview.js.map +1 -1
  33. package/ChannelList/components/ChannelPreviewAction.js +13 -13
  34. package/ChannelList/context.js +7 -7
  35. package/ChannelList.js +30 -29
  36. package/ChannelList.js.map +1 -1
  37. package/{ChannelListProvider-16d506e3.js → ChannelListProvider-8e3af350.js} +7 -7
  38. package/{ChannelListProvider-16d506e3.js.map → ChannelListProvider-8e3af350.js.map} +1 -1
  39. package/{ChannelProvider-f39a427f.js → ChannelProvider-cb73270f.js} +17 -20
  40. package/ChannelProvider-cb73270f.js.map +1 -0
  41. package/ChannelSettings/components/ChannelProfile.js +11 -11
  42. package/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  43. package/ChannelSettings/components/EditDetailsModal.js +11 -11
  44. package/ChannelSettings/components/LeaveChannel.js +11 -11
  45. package/ChannelSettings/components/ModerationPanel.js +14 -14
  46. package/ChannelSettings/components/UserListItem.js +10 -10
  47. package/ChannelSettings/components/UserPanel.js +13 -13
  48. package/ChannelSettings/context.js +3 -3
  49. package/ChannelSettings.js +17 -17
  50. package/CreateChannel/components/CreateChannelUI.js +13 -13
  51. package/CreateChannel/components/InviteUsers.js +13 -13
  52. package/CreateChannel/components/SelectChannelType.js +10 -10
  53. package/CreateChannel/context.js +4 -4
  54. package/CreateChannel.js +13 -13
  55. package/{CreateChannelProvider-5ad9445d.js → CreateChannelProvider-3173e8cd.js} +1 -1
  56. package/{CreateChannelProvider-5ad9445d.js.map → CreateChannelProvider-3173e8cd.js.map} +1 -1
  57. package/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  58. package/CreateOpenChannel/context.js +1 -1
  59. package/CreateOpenChannel.js +9 -9
  60. package/EditUserProfile/components/EditUserProfileUI.js +12 -12
  61. package/EditUserProfile.js +12 -12
  62. package/{LocalizationContext-674efe64.js → LocalizationContext-689d8aa4.js} +3 -3
  63. package/{LocalizationContext-674efe64.js.map → LocalizationContext-689d8aa4.js.map} +1 -1
  64. package/{MediaQueryContext-c2b754b4.js → MediaQueryContext-2604d3dc.js} +1 -1
  65. package/{MediaQueryContext-c2b754b4.js.map → MediaQueryContext-2604d3dc.js.map} +1 -1
  66. package/{MemberList-0a820146.js → MemberList-7b3e0ace.js} +5 -5
  67. package/{MemberList-0a820146.js.map → MemberList-7b3e0ace.js.map} +1 -1
  68. package/MessageSearch/components/MessageSearchUI.js +11 -11
  69. package/MessageSearch/context.js +1 -1
  70. package/MessageSearch.js +11 -11
  71. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  72. package/OpenChannel/components/OpenChannelHeader.js +12 -12
  73. package/OpenChannel/components/OpenChannelInput.js +22 -20
  74. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  75. package/OpenChannel/components/OpenChannelMessage.js +29 -28
  76. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  77. package/OpenChannel/components/OpenChannelMessageList.js +31 -31
  78. package/OpenChannel/components/OpenChannelUI.js +31 -31
  79. package/OpenChannel/context.js +8 -8
  80. package/OpenChannel.js +33 -33
  81. package/OpenChannelList/components/OpenChannelListUI.js +13 -13
  82. package/OpenChannelList/components/OpenChannelPreview.js +3 -3
  83. package/OpenChannelList/context.js +3 -3
  84. package/OpenChannelList.js +13 -13
  85. package/{OpenChannelListProvider-f71260c9.js → OpenChannelListProvider-154424c5.js} +3 -3
  86. package/{OpenChannelListProvider-f71260c9.js.map → OpenChannelListProvider-154424c5.js.map} +1 -1
  87. package/{OpenChannelProvider-6f8c231a.js → OpenChannelProvider-fc50a84b.js} +7 -7
  88. package/{OpenChannelProvider-6f8c231a.js.map → OpenChannelProvider-fc50a84b.js.map} +1 -1
  89. package/OpenChannelSettings/components/EditDetailsModal.js +12 -12
  90. package/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  91. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  92. package/OpenChannelSettings/components/OperatorUI.js +16 -16
  93. package/OpenChannelSettings/components/ParticipantUI.js +14 -14
  94. package/OpenChannelSettings/context.js +3 -3
  95. package/OpenChannelSettings.js +17 -17
  96. package/{RemoveMessageModal-3fd74511.js → RemoveMessageModal-c345043b.js} +3 -3
  97. package/{RemoveMessageModal-3fd74511.js.map → RemoveMessageModal-c345043b.js.map} +1 -1
  98. package/SendbirdProvider.js +43 -44
  99. package/SendbirdProvider.js.map +1 -1
  100. package/Thread/components/ParentMessageInfo.js +35 -32
  101. package/Thread/components/ParentMessageInfo.js.map +1 -1
  102. package/Thread/components/ParentMessageInfoItem.js +21 -21
  103. package/Thread/components/ThreadHeader.js +6 -6
  104. package/Thread/components/ThreadList.js +36 -35
  105. package/Thread/components/ThreadList.js.map +1 -1
  106. package/Thread/components/ThreadListItem.js +37 -35
  107. package/Thread/components/ThreadListItem.js.map +1 -1
  108. package/Thread/components/ThreadMessageInput.js +30 -28
  109. package/Thread/components/ThreadMessageInput.js.map +1 -1
  110. package/Thread/components/ThreadUI.js +40 -39
  111. package/Thread/components/ThreadUI.js.map +1 -1
  112. package/Thread/context.js +8 -8
  113. package/Thread.js +40 -39
  114. package/Thread.js.map +1 -1
  115. package/{ThreadProvider-da0112d8.js → ThreadProvider-4ecee019.js} +10 -10
  116. package/ThreadProvider-4ecee019.js.map +1 -0
  117. package/{UserProfileContext-ca6e2310.js → UserProfileContext-4c07230f.js} +1 -1
  118. package/{UserProfileContext-ca6e2310.js.map → UserProfileContext-4c07230f.js.map} +1 -1
  119. package/{VoiceMessageInputWrapper-ceba20ae.js → VoiceMessageInputWrapper-5f95a888.js} +7 -7
  120. package/{VoiceMessageInputWrapper-ceba20ae.js.map → VoiceMessageInputWrapper-5f95a888.js.map} +1 -1
  121. package/VoicePlayer/context.js +3 -3
  122. package/VoicePlayer/useVoicePlayer.js +9 -9
  123. package/VoiceRecorder/context.js +9 -9
  124. package/VoiceRecorder/useVoiceRecorder.js +8 -8
  125. package/{WebAudioUtils-086599ab.js → WebAudioUtils-30020f07.js} +1 -1
  126. package/{WebAudioUtils-086599ab.js.map → WebAudioUtils-30020f07.js.map} +1 -1
  127. package/{_rollupPluginBabelHelpers-fba60f75.js → _rollupPluginBabelHelpers-b764bedf.js} +1 -1
  128. package/_rollupPluginBabelHelpers-b764bedf.js.map +1 -0
  129. package/{actionTypes-5e5dfc97.js → actionTypes-e6bdb61c.js} +1 -1
  130. package/{actionTypes-5e5dfc97.js.map → actionTypes-e6bdb61c.js.map} +1 -1
  131. package/cjs/App.js +67 -55
  132. package/cjs/App.js.map +1 -1
  133. package/cjs/Channel/components/ChannelHeader.js +19 -18
  134. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  135. package/cjs/Channel/components/ChannelUI.js +41 -40
  136. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  137. package/cjs/Channel/components/FileViewer.js +15 -14
  138. package/cjs/Channel/components/FileViewer.js.map +1 -1
  139. package/cjs/Channel/components/FrozenNotification.js +4 -4
  140. package/cjs/Channel/components/Message.js +37 -35
  141. package/cjs/Channel/components/Message.js.map +1 -1
  142. package/cjs/Channel/components/MessageInput.js +29 -27
  143. package/cjs/Channel/components/MessageInput.js.map +1 -1
  144. package/cjs/Channel/components/MessageList.js +37 -36
  145. package/cjs/Channel/components/MessageList.js.map +1 -1
  146. package/cjs/Channel/components/RemoveMessageModal.js +17 -16
  147. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  148. package/cjs/Channel/components/SuggestedMentionList.js +17 -16
  149. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  150. package/cjs/Channel/components/TypingIndicator.js +15 -14
  151. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  152. package/cjs/Channel/components/UnreadCount.js +4 -4
  153. package/cjs/Channel/context.js +12 -12
  154. package/cjs/Channel.js +41 -40
  155. package/cjs/Channel.js.map +1 -1
  156. package/cjs/ChannelList/components/AddChannel.js +14 -14
  157. package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
  158. package/cjs/ChannelList/components/ChannelListUI.js +30 -29
  159. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  160. package/cjs/ChannelList/components/ChannelPreview.js +26 -25
  161. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  162. package/cjs/ChannelList/components/ChannelPreviewAction.js +13 -13
  163. package/cjs/ChannelList/context.js +7 -7
  164. package/cjs/ChannelList.js +30 -29
  165. package/cjs/ChannelList.js.map +1 -1
  166. package/cjs/{ChannelListProvider-21ef123f.js → ChannelListProvider-ce4ea47a.js} +7 -7
  167. package/cjs/{ChannelListProvider-21ef123f.js.map → ChannelListProvider-ce4ea47a.js.map} +1 -1
  168. package/cjs/{ChannelProvider-1599fb99.js → ChannelProvider-0dba8547.js} +16 -20
  169. package/cjs/ChannelProvider-0dba8547.js.map +1 -0
  170. package/cjs/ChannelSettings/components/ChannelProfile.js +11 -11
  171. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  172. package/cjs/ChannelSettings/components/EditDetailsModal.js +11 -11
  173. package/cjs/ChannelSettings/components/LeaveChannel.js +11 -11
  174. package/cjs/ChannelSettings/components/ModerationPanel.js +14 -14
  175. package/cjs/ChannelSettings/components/UserListItem.js +10 -10
  176. package/cjs/ChannelSettings/components/UserPanel.js +13 -13
  177. package/cjs/ChannelSettings/context.js +3 -3
  178. package/cjs/ChannelSettings.js +17 -17
  179. package/cjs/CreateChannel/components/CreateChannelUI.js +13 -13
  180. package/cjs/CreateChannel/components/InviteUsers.js +13 -13
  181. package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
  182. package/cjs/CreateChannel/context.js +4 -4
  183. package/cjs/CreateChannel.js +13 -13
  184. package/cjs/{CreateChannelProvider-5d628a3f.js → CreateChannelProvider-b4859589.js} +1 -1
  185. package/cjs/{CreateChannelProvider-5d628a3f.js.map → CreateChannelProvider-b4859589.js.map} +1 -1
  186. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  187. package/cjs/CreateOpenChannel/context.js +1 -1
  188. package/cjs/CreateOpenChannel.js +9 -9
  189. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -12
  190. package/cjs/EditUserProfile.js +12 -12
  191. package/cjs/{LocalizationContext-a584fa55.js → LocalizationContext-b57dbbb3.js} +3 -3
  192. package/cjs/{LocalizationContext-a584fa55.js.map → LocalizationContext-b57dbbb3.js.map} +1 -1
  193. package/cjs/{MediaQueryContext-baafb1bb.js → MediaQueryContext-6cbb7b30.js} +1 -1
  194. package/cjs/{MediaQueryContext-baafb1bb.js.map → MediaQueryContext-6cbb7b30.js.map} +1 -1
  195. package/cjs/{MemberList-2e6f8eb2.js → MemberList-6d3240f1.js} +5 -5
  196. package/cjs/{MemberList-2e6f8eb2.js.map → MemberList-6d3240f1.js.map} +1 -1
  197. package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
  198. package/cjs/MessageSearch/context.js +1 -1
  199. package/cjs/MessageSearch.js +11 -11
  200. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  201. package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
  202. package/cjs/OpenChannel/components/OpenChannelInput.js +22 -20
  203. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  204. package/cjs/OpenChannel/components/OpenChannelMessage.js +29 -28
  205. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  206. package/cjs/OpenChannel/components/OpenChannelMessageList.js +31 -31
  207. package/cjs/OpenChannel/components/OpenChannelUI.js +31 -31
  208. package/cjs/OpenChannel/context.js +8 -8
  209. package/cjs/OpenChannel.js +33 -33
  210. package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
  211. package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
  212. package/cjs/OpenChannelList/context.js +3 -3
  213. package/cjs/OpenChannelList.js +13 -13
  214. package/cjs/{OpenChannelListProvider-4c7e2916.js → OpenChannelListProvider-3a4075da.js} +3 -3
  215. package/cjs/{OpenChannelListProvider-4c7e2916.js.map → OpenChannelListProvider-3a4075da.js.map} +1 -1
  216. package/cjs/{OpenChannelProvider-e515e831.js → OpenChannelProvider-e5968018.js} +7 -7
  217. package/cjs/{OpenChannelProvider-e515e831.js.map → OpenChannelProvider-e5968018.js.map} +1 -1
  218. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +12 -12
  219. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  220. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  221. package/cjs/OpenChannelSettings/components/OperatorUI.js +16 -16
  222. package/cjs/OpenChannelSettings/components/ParticipantUI.js +14 -14
  223. package/cjs/OpenChannelSettings/context.js +3 -3
  224. package/cjs/OpenChannelSettings.js +17 -17
  225. package/cjs/{RemoveMessageModal-46ba7070.js → RemoveMessageModal-f195bcd6.js} +3 -3
  226. package/cjs/{RemoveMessageModal-46ba7070.js.map → RemoveMessageModal-f195bcd6.js.map} +1 -1
  227. package/cjs/SendbirdProvider.js +42 -43
  228. package/cjs/SendbirdProvider.js.map +1 -1
  229. package/cjs/Thread/components/ParentMessageInfo.js +35 -32
  230. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  231. package/cjs/Thread/components/ParentMessageInfoItem.js +21 -21
  232. package/cjs/Thread/components/ThreadHeader.js +6 -6
  233. package/cjs/Thread/components/ThreadList.js +36 -35
  234. package/cjs/Thread/components/ThreadList.js.map +1 -1
  235. package/cjs/Thread/components/ThreadListItem.js +37 -35
  236. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  237. package/cjs/Thread/components/ThreadMessageInput.js +30 -28
  238. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  239. package/cjs/Thread/components/ThreadUI.js +40 -39
  240. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  241. package/cjs/Thread/context.js +8 -8
  242. package/cjs/Thread.js +40 -39
  243. package/cjs/Thread.js.map +1 -1
  244. package/cjs/{ThreadProvider-c79aceb3.js → ThreadProvider-0508aa6b.js} +10 -10
  245. package/cjs/ThreadProvider-0508aa6b.js.map +1 -0
  246. package/cjs/{UserProfileContext-0308bb46.js → UserProfileContext-47da79ce.js} +1 -1
  247. package/cjs/{UserProfileContext-0308bb46.js.map → UserProfileContext-47da79ce.js.map} +1 -1
  248. package/cjs/{VoiceMessageInputWrapper-4d17462c.js → VoiceMessageInputWrapper-19bb43d1.js} +7 -7
  249. package/cjs/{VoiceMessageInputWrapper-4d17462c.js.map → VoiceMessageInputWrapper-19bb43d1.js.map} +1 -1
  250. package/cjs/VoicePlayer/context.js +3 -3
  251. package/cjs/VoicePlayer/useVoicePlayer.js +9 -9
  252. package/cjs/VoiceRecorder/context.js +9 -9
  253. package/cjs/VoiceRecorder/useVoiceRecorder.js +8 -8
  254. package/cjs/{WebAudioUtils-0b2ff03e.js → WebAudioUtils-607e6d36.js} +1 -1
  255. package/cjs/{WebAudioUtils-0b2ff03e.js.map → WebAudioUtils-607e6d36.js.map} +1 -1
  256. package/cjs/{_rollupPluginBabelHelpers-17f53083.js → _rollupPluginBabelHelpers-eb6b8b27.js} +1 -1
  257. package/cjs/_rollupPluginBabelHelpers-eb6b8b27.js.map +1 -0
  258. package/cjs/{actionTypes-9b5d9ddf.js → actionTypes-5b18beb9.js} +1 -1
  259. package/cjs/{actionTypes-9b5d9ddf.js.map → actionTypes-5b18beb9.js.map} +1 -1
  260. package/cjs/{color-f5216e6a.js → color-1d73789a.js} +1 -1
  261. package/cjs/{color-f5216e6a.js.map → color-1d73789a.js.map} +1 -1
  262. package/cjs/{compareIds-c9b9dfbc.js → compareIds-1e3d2ab4.js} +1 -1
  263. package/cjs/{compareIds-c9b9dfbc.js.map → compareIds-1e3d2ab4.js.map} +1 -1
  264. package/cjs/{const-a9f20831.js → const-23450239.js} +1 -1
  265. package/cjs/{const-a9f20831.js.map → const-23450239.js.map} +1 -1
  266. package/cjs/{const-75f8d9ae.js → const-a2bea8cb.js} +1 -1
  267. package/cjs/{const-75f8d9ae.js.map → const-a2bea8cb.js.map} +1 -1
  268. package/cjs/{consts-78675c0f.js → consts-10ef7616.js} +1 -1
  269. package/cjs/{consts-78675c0f.js.map → consts-10ef7616.js.map} +1 -1
  270. package/cjs/{consts-6a102338.js → consts-384c3f07.js} +1 -1
  271. package/cjs/{consts-6a102338.js.map → consts-384c3f07.js.map} +1 -1
  272. package/cjs/{consts-b90134e3.js → consts-b7b7a6e1.js} +1 -1
  273. package/cjs/{consts-b90134e3.js.map → consts-b7b7a6e1.js.map} +1 -1
  274. package/cjs/{consts-8f76585f.js → consts-da8cf320.js} +1 -1
  275. package/cjs/{consts-8f76585f.js.map → consts-da8cf320.js.map} +1 -1
  276. package/cjs/{context-a04985ac.js → context-7a760f10.js} +2 -2
  277. package/cjs/{context-a04985ac.js.map → context-7a760f10.js.map} +1 -1
  278. package/cjs/dist/index.css +77 -62
  279. package/cjs/dist/index.css.map +1 -1
  280. package/cjs/{index-70ee1e87.js → index-0bfdb242.js} +2 -7
  281. package/cjs/index-0bfdb242.js.map +1 -0
  282. package/cjs/{index-ab691428.js → index-2abc972f.js} +3 -3
  283. package/cjs/{index-ab691428.js.map → index-2abc972f.js.map} +1 -1
  284. package/cjs/{index-5012370d.js → index-3302aa9f.js} +4 -4
  285. package/cjs/{index-5012370d.js.map → index-3302aa9f.js.map} +1 -1
  286. package/cjs/{index-91cd09c7.js → index-37e8cb7f.js} +1 -1
  287. package/cjs/{index-91cd09c7.js.map → index-37e8cb7f.js.map} +1 -1
  288. package/cjs/{index-c3b543df.js → index-3bf38657.js} +6 -6
  289. package/cjs/{index-c3b543df.js.map → index-3bf38657.js.map} +1 -1
  290. package/cjs/{index-d947b675.js → index-4836de1e.js} +5 -5
  291. package/cjs/{index-d947b675.js.map → index-4836de1e.js.map} +1 -1
  292. package/cjs/{index-3f50b745.js → index-48e4dc27.js} +2 -2
  293. package/cjs/{index-3f50b745.js.map → index-48e4dc27.js.map} +1 -1
  294. package/cjs/{index-98dc0da4.js → index-560e60c2.js} +34 -19
  295. package/cjs/index-560e60c2.js.map +1 -0
  296. package/cjs/{index-36b49ef5.js → index-572ef10a.js} +1 -1
  297. package/cjs/{index-36b49ef5.js.map → index-572ef10a.js.map} +1 -1
  298. package/cjs/{index-0546aff2.js → index-604a4266.js} +2 -2
  299. package/cjs/{index-0546aff2.js.map → index-604a4266.js.map} +1 -1
  300. package/cjs/{index-3606d178.js → index-735ab91e.js} +2 -2
  301. package/cjs/{index-3606d178.js.map → index-735ab91e.js.map} +1 -1
  302. package/cjs/{index-93ba8e85.js → index-95cb25f2.js} +4 -4
  303. package/cjs/{index-93ba8e85.js.map → index-95cb25f2.js.map} +1 -1
  304. package/cjs/{index-be531e8c.js → index-bd8d9af4.js} +3 -3
  305. package/cjs/{index-be531e8c.js.map → index-bd8d9af4.js.map} +1 -1
  306. package/cjs/{index-77a6e8f7.js → index-ccb95f1e.js} +6 -6
  307. package/cjs/{index-77a6e8f7.js.map → index-ccb95f1e.js.map} +1 -1
  308. package/cjs/{index-a039da1f.js → index-d2315c53.js} +3 -3
  309. package/cjs/{index-a039da1f.js.map → index-d2315c53.js.map} +1 -1
  310. package/cjs/{index-63a06f37.js → index-e811013a.js} +2 -2
  311. package/cjs/{index-63a06f37.js.map → index-e811013a.js.map} +1 -1
  312. package/cjs/{index-de824ad7.js → index-eda19173.js} +2 -2
  313. package/cjs/{index-de824ad7.js.map → index-eda19173.js.map} +1 -1
  314. package/cjs/index.js +52 -51
  315. package/cjs/index.js.map +1 -1
  316. package/cjs/{index.module-6fa7f09a.js → index.module-ea6bd1f1.js} +1 -1
  317. package/cjs/{index.module-6fa7f09a.js.map → index.module-ea6bd1f1.js.map} +1 -1
  318. package/cjs/resolvedReplyType-8a349b8c.js +32 -0
  319. package/cjs/resolvedReplyType-8a349b8c.js.map +1 -0
  320. package/cjs/sendbirdSelectors.js +3 -3
  321. package/cjs/{stringSet-d6f2a33a.js → stringSet-2450c9e9.js} +1 -1
  322. package/cjs/{stringSet-d6f2a33a.js.map → stringSet-2450c9e9.js.map} +1 -1
  323. package/cjs/{tokenize-0df4eb21.js → tokenize-f217adbe.js} +2 -2
  324. package/cjs/{tokenize-0df4eb21.js.map → tokenize-f217adbe.js.map} +1 -1
  325. package/cjs/{topics-c7ef77ef.js → topics-03a59659.js} +1 -1
  326. package/cjs/{topics-c7ef77ef.js.map → topics-03a59659.js.map} +1 -1
  327. package/cjs/{types-edd094e8.js → types-86058820.js} +1 -1
  328. package/cjs/types-86058820.js.map +1 -0
  329. package/cjs/ui/Accordion.js +2 -2
  330. package/cjs/ui/AccordionGroup.js +2 -2
  331. package/cjs/ui/AdminMessage.js +2 -2
  332. package/cjs/ui/Avatar.js +1 -1
  333. package/cjs/ui/Badge.js +4 -4
  334. package/cjs/ui/BottomSheet.js +1 -1
  335. package/cjs/ui/Button.js +2 -2
  336. package/cjs/ui/ChannelAvatar.js +2 -2
  337. package/cjs/ui/ConnectionStatus.js +4 -4
  338. package/cjs/ui/ContextMenu.js +5 -5
  339. package/cjs/ui/DateSeparator.js +3 -3
  340. package/cjs/ui/EmojiReactions.js +13 -13
  341. package/cjs/ui/FileMessageItemBody.js +6 -6
  342. package/cjs/ui/FileViewer.js +8 -8
  343. package/cjs/ui/IconButton.js +1 -1
  344. package/cjs/ui/Input.js +2 -2
  345. package/cjs/ui/Label.js +2 -2
  346. package/cjs/ui/LinkLabel.js +2 -2
  347. package/cjs/ui/MentionLabel.js +10 -10
  348. package/cjs/ui/MentionUserLabel.js +1 -1
  349. package/cjs/ui/MessageContent.js +28 -28
  350. package/cjs/ui/MessageInput.js +70 -17
  351. package/cjs/ui/MessageInput.js.map +1 -1
  352. package/cjs/ui/MessageItemMenu.js +8 -8
  353. package/cjs/ui/MessageItemReactionMenu.js +8 -8
  354. package/cjs/ui/MessageSearchFileItem.js +10 -10
  355. package/cjs/ui/MessageSearchItem.js +8 -8
  356. package/cjs/ui/MessageStatus.js +10 -10
  357. package/cjs/ui/Modal.js +7 -7
  358. package/cjs/ui/OGMessageItemBody.js +14 -14
  359. package/cjs/ui/OpenChannelAdminMessage.js +2 -2
  360. package/cjs/ui/OpenChannelAvatar.js +5 -5
  361. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  362. package/cjs/ui/OpenchannelFileMessage.js +15 -15
  363. package/cjs/ui/OpenchannelOGMessage.js +18 -18
  364. package/cjs/ui/OpenchannelThumbnailMessage.js +14 -14
  365. package/cjs/ui/OpenchannelUserMessage.js +15 -15
  366. package/cjs/ui/PlaceHolder.js +5 -5
  367. package/cjs/ui/PlaybackTime.js +2 -2
  368. package/cjs/ui/QuoteMessage.js +6 -6
  369. package/cjs/ui/QuoteMessageInput.js +6 -6
  370. package/cjs/ui/ReactionBadge.js +2 -2
  371. package/cjs/ui/ReactionButton.js +4 -4
  372. package/cjs/ui/SortByRow.js +1 -1
  373. package/cjs/ui/TextButton.js +1 -1
  374. package/cjs/ui/TextMessageItemBody.js +14 -14
  375. package/cjs/ui/ThreadReplies.js +5 -5
  376. package/cjs/ui/ThumbnailMessageItemBody.js +5 -5
  377. package/cjs/ui/Toggle.js +1 -1
  378. package/cjs/ui/Tooltip.js +2 -2
  379. package/cjs/ui/UnknownMessageItemBody.js +6 -6
  380. package/cjs/ui/UserListItem.js +10 -10
  381. package/cjs/ui/UserProfile.js +9 -9
  382. package/cjs/ui/VoiceMessageItemBody.js +9 -9
  383. package/cjs/ui/VoiceMessgeInput.js +7 -7
  384. package/cjs/ui/Word.js +10 -10
  385. package/cjs/{useDirtyGetMentions-527f80ca.js → useDirtyGetMentions-73c92dd1.js} +1 -1
  386. package/cjs/{useDirtyGetMentions-527f80ca.js.map → useDirtyGetMentions-73c92dd1.js.map} +1 -1
  387. package/cjs/{useLongPress-a31543ee.js → useLongPress-b013fc04.js} +3 -3
  388. package/cjs/{useLongPress-a31543ee.js.map → useLongPress-b013fc04.js.map} +1 -1
  389. package/cjs/useSendbirdStateContext.js +1 -1
  390. package/cjs/utils/message/isVoiceMessage.js +2 -2
  391. package/cjs/{utils-98335f41.js → utils-44170a0b.js} +2 -2
  392. package/cjs/{utils-98335f41.js.map → utils-44170a0b.js.map} +1 -1
  393. package/cjs/{utils-fbb85607.js → utils-6828954f.js} +1 -1
  394. package/cjs/{utils-fbb85607.js.map → utils-6828954f.js.map} +1 -1
  395. package/cjs/{utils-ad2cc973.js → utils-d2968db1.js} +1 -1
  396. package/cjs/{utils-ad2cc973.js.map → utils-d2968db1.js.map} +1 -1
  397. package/cjs/{utils-721f4b6c.js → utils-feec79a2.js} +1 -1
  398. package/cjs/{utils-721f4b6c.js.map → utils-feec79a2.js.map} +1 -1
  399. package/cjs/{uuid-10926ed0.js → uuid-ec351d96.js} +1 -1
  400. package/cjs/{uuid-10926ed0.js.map → uuid-ec351d96.js.map} +1 -1
  401. package/cjs/withSendbird.js +1 -1
  402. package/{color-f9212f23.js → color-65ea9130.js} +1 -1
  403. package/{color-f9212f23.js.map → color-65ea9130.js.map} +1 -1
  404. package/{compareIds-1bcdf748.js → compareIds-e8adfea2.js} +1 -1
  405. package/{compareIds-1bcdf748.js.map → compareIds-e8adfea2.js.map} +1 -1
  406. package/{const-877bea22.js → const-2fda8942.js} +1 -1
  407. package/{const-877bea22.js.map → const-2fda8942.js.map} +1 -1
  408. package/{const-735145c8.js → const-89c31819.js} +1 -1
  409. package/{const-735145c8.js.map → const-89c31819.js.map} +1 -1
  410. package/{consts-d45ca387.js → consts-60bc9064.js} +1 -1
  411. package/{consts-d45ca387.js.map → consts-60bc9064.js.map} +1 -1
  412. package/{consts-67559ec4.js → consts-746d9d54.js} +1 -1
  413. package/{consts-67559ec4.js.map → consts-746d9d54.js.map} +1 -1
  414. package/{consts-383d4a75.js → consts-a7afe685.js} +1 -1
  415. package/{consts-383d4a75.js.map → consts-a7afe685.js.map} +1 -1
  416. package/{consts-d545cae2.js → consts-f3cb0986.js} +1 -1
  417. package/{consts-d545cae2.js.map → consts-f3cb0986.js.map} +1 -1
  418. package/{context-8bd9e132.js → context-f542aa7f.js} +2 -2
  419. package/{context-8bd9e132.js.map → context-f542aa7f.js.map} +1 -1
  420. package/dist/index.css +77 -62
  421. package/dist/index.css.map +1 -1
  422. package/{index-96b80cca.js → index-1a9ad5e8.js} +3 -3
  423. package/{index-96b80cca.js.map → index-1a9ad5e8.js.map} +1 -1
  424. package/{index-cfa2cf64.js → index-1bb6ac7b.js} +5 -5
  425. package/{index-cfa2cf64.js.map → index-1bb6ac7b.js.map} +1 -1
  426. package/{index-10f046cd.js → index-284c6669.js} +34 -19
  427. package/index-284c6669.js.map +1 -0
  428. package/{index-200e4585.js → index-4415e3d4.js} +3 -7
  429. package/index-4415e3d4.js.map +1 -0
  430. package/{index-6716e8aa.js → index-68e4f991.js} +4 -4
  431. package/{index-6716e8aa.js.map → index-68e4f991.js.map} +1 -1
  432. package/{index-d4617078.js → index-6d5e4fbe.js} +2 -2
  433. package/{index-d4617078.js.map → index-6d5e4fbe.js.map} +1 -1
  434. package/{index-c165d519.js → index-8ca9e057.js} +1 -1
  435. package/{index-c165d519.js.map → index-8ca9e057.js.map} +1 -1
  436. package/{index-efad9427.js → index-915d9f7d.js} +3 -3
  437. package/{index-efad9427.js.map → index-915d9f7d.js.map} +1 -1
  438. package/{index-fc6960aa.js → index-920644b3.js} +2 -2
  439. package/{index-fc6960aa.js.map → index-920644b3.js.map} +1 -1
  440. package/{index-092e70e5.js → index-ada3d917.js} +2 -2
  441. package/{index-092e70e5.js.map → index-ada3d917.js.map} +1 -1
  442. package/{index-b179de93.js → index-c2c5dd5d.js} +2 -2
  443. package/{index-b179de93.js.map → index-c2c5dd5d.js.map} +1 -1
  444. package/{index-9118a2a4.js → index-d83e2bc2.js} +1 -1
  445. package/{index-9118a2a4.js.map → index-d83e2bc2.js.map} +1 -1
  446. package/{index-d029f899.js → index-dc264d1a.js} +6 -6
  447. package/{index-d029f899.js.map → index-dc264d1a.js.map} +1 -1
  448. package/{index-ff4bc2bb.js → index-e7546341.js} +2 -2
  449. package/{index-ff4bc2bb.js.map → index-e7546341.js.map} +1 -1
  450. package/{index-f0e93243.js → index-ea60d5ce.js} +6 -6
  451. package/{index-f0e93243.js.map → index-ea60d5ce.js.map} +1 -1
  452. package/{index-f86cd2f7.js → index-ef404210.js} +4 -4
  453. package/{index-f86cd2f7.js.map → index-ef404210.js.map} +1 -1
  454. package/{index-3cffa0b8.js → index-fba0a213.js} +3 -3
  455. package/{index-3cffa0b8.js.map → index-fba0a213.js.map} +1 -1
  456. package/index.d.ts +4 -2
  457. package/index.js +52 -51
  458. package/index.js.map +1 -1
  459. package/{index.module-a01d7416.js → index.module-8c38026f.js} +1 -1
  460. package/{index.module-a01d7416.js.map → index.module-8c38026f.js.map} +1 -1
  461. package/package.json +2 -2
  462. package/resolvedReplyType-3b091b4c.js +29 -0
  463. package/resolvedReplyType-3b091b4c.js.map +1 -0
  464. package/sendbirdSelectors.js +3 -3
  465. package/{stringSet-b7fd994d.js → stringSet-21b6dbb8.js} +1 -1
  466. package/{stringSet-b7fd994d.js.map → stringSet-21b6dbb8.js.map} +1 -1
  467. package/{tokenize-537ba1e5.js → tokenize-52f8c30c.js} +2 -2
  468. package/{tokenize-537ba1e5.js.map → tokenize-52f8c30c.js.map} +1 -1
  469. package/{topics-abeef9b5.js → topics-89a856f6.js} +1 -1
  470. package/{topics-abeef9b5.js.map → topics-89a856f6.js.map} +1 -1
  471. package/{types-256ac544.js → types-e62d482c.js} +1 -1
  472. package/types-e62d482c.js.map +1 -0
  473. package/ui/Accordion.js +2 -2
  474. package/ui/AccordionGroup.js +2 -2
  475. package/ui/AdminMessage.js +2 -2
  476. package/ui/Avatar.js +1 -1
  477. package/ui/Badge.js +4 -4
  478. package/ui/BottomSheet.js +1 -1
  479. package/ui/Button.js +2 -2
  480. package/ui/ChannelAvatar.js +2 -2
  481. package/ui/ConnectionStatus.js +4 -4
  482. package/ui/ContextMenu.js +5 -5
  483. package/ui/DateSeparator.js +3 -3
  484. package/ui/EmojiReactions.js +13 -13
  485. package/ui/FileMessageItemBody.js +6 -6
  486. package/ui/FileViewer.js +8 -8
  487. package/ui/IconButton.js +1 -1
  488. package/ui/Input.js +2 -2
  489. package/ui/Label.js +2 -2
  490. package/ui/LinkLabel.js +2 -2
  491. package/ui/MentionLabel.js +10 -10
  492. package/ui/MentionUserLabel.js +1 -1
  493. package/ui/MessageContent.js +28 -28
  494. package/ui/MessageInput.js +71 -18
  495. package/ui/MessageInput.js.map +1 -1
  496. package/ui/MessageItemMenu.js +8 -8
  497. package/ui/MessageItemReactionMenu.js +8 -8
  498. package/ui/MessageSearchFileItem.js +10 -10
  499. package/ui/MessageSearchItem.js +8 -8
  500. package/ui/MessageStatus.js +10 -10
  501. package/ui/Modal.js +7 -7
  502. package/ui/OGMessageItemBody.js +14 -14
  503. package/ui/OpenChannelAdminMessage.js +2 -2
  504. package/ui/OpenChannelAvatar.js +5 -5
  505. package/ui/OpenchannelConversationHeader.js +6 -6
  506. package/ui/OpenchannelFileMessage.js +15 -15
  507. package/ui/OpenchannelOGMessage.js +18 -18
  508. package/ui/OpenchannelThumbnailMessage.js +14 -14
  509. package/ui/OpenchannelUserMessage.js +15 -15
  510. package/ui/PlaceHolder.js +5 -5
  511. package/ui/PlaybackTime.js +2 -2
  512. package/ui/QuoteMessage.js +6 -6
  513. package/ui/QuoteMessageInput.js +6 -6
  514. package/ui/ReactionBadge.js +2 -2
  515. package/ui/ReactionButton.js +4 -4
  516. package/ui/SortByRow.js +1 -1
  517. package/ui/TextButton.js +1 -1
  518. package/ui/TextMessageItemBody.js +14 -14
  519. package/ui/ThreadReplies.js +5 -5
  520. package/ui/ThumbnailMessageItemBody.js +5 -5
  521. package/ui/Toggle.js +1 -1
  522. package/ui/Tooltip.js +2 -2
  523. package/ui/UnknownMessageItemBody.js +6 -6
  524. package/ui/UserListItem.js +10 -10
  525. package/ui/UserProfile.js +9 -9
  526. package/ui/VoiceMessageItemBody.js +9 -9
  527. package/ui/VoiceMessgeInput.js +7 -7
  528. package/ui/Word.js +10 -10
  529. package/{useDirtyGetMentions-af15b9c7.js → useDirtyGetMentions-20e1c85d.js} +1 -1
  530. package/{useDirtyGetMentions-af15b9c7.js.map → useDirtyGetMentions-20e1c85d.js.map} +1 -1
  531. package/{useLongPress-d6ae865b.js → useLongPress-0c20bd2f.js} +3 -3
  532. package/{useLongPress-d6ae865b.js.map → useLongPress-0c20bd2f.js.map} +1 -1
  533. package/useSendbirdStateContext.js +1 -1
  534. package/utils/message/isVoiceMessage.js +2 -2
  535. package/{utils-b1338a23.js → utils-95512c29.js} +1 -1
  536. package/{utils-b1338a23.js.map → utils-95512c29.js.map} +1 -1
  537. package/{utils-9d1564a9.js → utils-9ca6a7a1.js} +2 -2
  538. package/{utils-9d1564a9.js.map → utils-9ca6a7a1.js.map} +1 -1
  539. package/{utils-b9abb204.js → utils-bee6567e.js} +1 -1
  540. package/{utils-b9abb204.js.map → utils-bee6567e.js.map} +1 -1
  541. package/{utils-28649e5d.js → utils-cefd05d8.js} +1 -1
  542. package/{utils-28649e5d.js.map → utils-cefd05d8.js.map} +1 -1
  543. package/{uuid-d20d317b.js → uuid-1141c1b4.js} +1 -1
  544. package/{uuid-d20d317b.js.map → uuid-1141c1b4.js.map} +1 -1
  545. package/withSendbird.js +1 -1
  546. package/ChannelProvider-f39a427f.js.map +0 -1
  547. package/ThreadProvider-da0112d8.js.map +0 -1
  548. package/_rollupPluginBabelHelpers-fba60f75.js.map +0 -1
  549. package/cjs/ChannelProvider-1599fb99.js.map +0 -1
  550. package/cjs/ThreadProvider-c79aceb3.js.map +0 -1
  551. package/cjs/_rollupPluginBabelHelpers-17f53083.js.map +0 -1
  552. package/cjs/index-70ee1e87.js.map +0 -1
  553. package/cjs/index-98dc0da4.js.map +0 -1
  554. package/cjs/types-edd094e8.js.map +0 -1
  555. package/index-10f046cd.js.map +0 -1
  556. package/index-200e4585.js.map +0 -1
  557. package/types-256ac544.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Message.js","sources":["../../../../src/utils/useDidMountEffect.ts","../../../../src/modules/Channel/components/Message/index.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nconst useDidMountEffect = (func: () => void, deps: Array<unknown>): void => {\n const [didMount, setDidmount] = useState(false);\n useEffect(() => {\n if (didMount) {\n func();\n } else {\n setDidmount(true);\n }\n }, deps);\n};\n\nexport default useDidMountEffect;\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useLayoutEffect,\n} from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\nimport format from 'date-fns/format';\n\nimport useDidMountEffect from '../../../../utils/useDidMountEffect';\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport { getClassName } from '../../../../utils';\nimport { isDisabledBecauseFrozen, isDisabledBecauseMuted } from '../../context/utils';\nimport { MAX_USER_MENTION_COUNT, MAX_USER_SUGGESTION_COUNT } from '../../context/const';\n\nimport DateSeparator from '../../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport MessageInput from '../../../../ui/MessageInput';\nimport MessageContent from '../../../../ui/MessageContent';\nimport FileViewer from '../FileViewer';\nimport RemoveMessageModal from '../RemoveMessageModal';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\nimport { EveryMessage, RenderCustomSeparatorProps, RenderMessageProps } from '../../../../types';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\nimport { useHandleOnScrollCallback } from '../../../../hooks/useHandleOnScrollCallback';\nimport { useDirtyGetMentions } from '../../../Message/hooks/useDirtyGetMentions';\n\ntype MessageUIProps = {\n message: EveryMessage;\n hasSeparator?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n handleScroll?: () => void;\n handleMessageListHeightChange?: () => void;\n // for extending\n renderMessage?: (props: RenderMessageProps) => React.ReactElement;\n renderCustomSeparator?: (props: RenderCustomSeparatorProps) => React.ReactElement;\n renderEditInput?: () => React.ReactElement;\n renderMessageContent?: () => React.ReactElement;\n};\n\n// todo: Refactor this component, is too complex now\nconst Message = ({\n message,\n hasSeparator,\n chainTop,\n chainBottom,\n handleScroll,\n handleMessageListHeightChange,\n renderCustomSeparator,\n renderEditInput,\n renderMessage,\n renderMessageContent,\n}: MessageUIProps): React.ReactElement => {\n const { dateLocale } = useLocalization();\n const globalStore = useSendbirdStateContext();\n\n const {\n userId,\n isOnline,\n isMentionEnabled,\n userMention,\n logger,\n } = globalStore.config;\n const maxUserMentionCount = userMention?.maxMentionCount || MAX_USER_MENTION_COUNT;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || MAX_USER_SUGGESTION_COUNT;\n\n const {\n initialized,\n currentGroupChannel,\n highLightedMessageId,\n setHighLightedMessageId,\n animatedMessageId,\n setAnimatedMessageId,\n updateMessage,\n scrollToMessage,\n replyType,\n threadReplySelectType,\n isReactionEnabled,\n toggleReaction,\n emojiContainer,\n nicknamesMap,\n setQuoteMessage,\n resendMessage,\n renderUserMentionItem,\n onReplyInThread,\n onQuoteMessageClick,\n onMessageAnimated,\n onMessageHighlighted,\n onScrollCallback,\n } = useChannelContext();\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const [isAnimated, setIsAnimated] = useState(false);\n const [isHighlighted, setIsHighlighted] = useState(false);\n const [mentionNickname, setMentionNickname] = useState('');\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const editMessageInputRef = useRef(null);\n const messageScrollRef = useRef(null);\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !isDisabledBecauseFrozen(currentGroupChannel)\n && !isDisabledBecauseMuted(currentGroupChannel);\n const disabled = !initialized\n || isDisabledBecauseFrozen(currentGroupChannel)\n || isDisabledBecauseMuted(currentGroupChannel)\n || !isOnline;\n\n const handleOnScroll = useHandleOnScrollCallback({\n hasMore: false,\n onScroll: onScrollCallback,\n scrollRef: messageScrollRef,\n });\n\n const mentionNodes = useDirtyGetMentions({ ref: editMessageInputRef }, { logger });\n const ableMention = mentionNodes?.length < maxUserMentionCount;\n\n useEffect(() => {\n setMentionedUsers(mentionedUsers.filter(({ userId }) => {\n const i = mentionedUserIds.indexOf(userId);\n if (i < 0) {\n return false;\n } else {\n mentionedUserIds.splice(i, 1);\n return true;\n }\n }));\n }, [mentionedUserIds]);\n\n // Move the messsage list scroll when the last message's height is changed by reactions\n useDidMountEffect(() => {\n if (currentGroupChannel?.lastMessage?.messageId === message?.messageId) {\n handleScroll?.();\n }\n }, [showEdit, message?.reactions?.length]);\n useLayoutEffect(() => {\n handleMessageListHeightChange?.();\n }, []);\n\n useLayoutEffect(() => {\n let animationTimeout = null;\n let messageHighlightedTimeout = null;\n if (highLightedMessageId === message.messageId && messageScrollRef?.current) {\n handleOnScroll();\n setIsAnimated(false);\n animationTimeout = setTimeout(() => {\n setIsHighlighted(true);\n }, 500);\n messageHighlightedTimeout = setTimeout(() => {\n setHighLightedMessageId(0);\n onMessageHighlighted?.();\n }, 1600);\n } else {\n setIsHighlighted(false);\n }\n return () => {\n clearTimeout(animationTimeout);\n clearTimeout(messageHighlightedTimeout);\n };\n }, [highLightedMessageId, messageScrollRef.current, message.messageId]);\n\n useLayoutEffect(() => {\n let animationTimeout = null;\n let messageAnimatedTimeout = null;\n if (animatedMessageId === message.messageId && messageScrollRef?.current) {\n handleOnScroll();\n setIsHighlighted(false);\n animationTimeout = setTimeout(() => {\n setIsAnimated(true);\n }, 500);\n messageAnimatedTimeout = setTimeout(() => {\n setAnimatedMessageId(0);\n onMessageAnimated?.();\n }, 1600);\n } else {\n setIsAnimated(false);\n }\n return () => {\n clearTimeout(animationTimeout);\n clearTimeout(messageAnimatedTimeout);\n };\n }, [animatedMessageId, messageScrollRef.current, message.messageId, onMessageAnimated]);\n const renderedMessage = useMemo(() => {\n return renderMessage?.({\n message,\n chainTop,\n chainBottom,\n });\n }, [message, renderMessage]);\n const renderedCustomSeparator = useMemo(() => {\n if (renderCustomSeparator) {\n return renderCustomSeparator?.({ message: message });\n }\n return null;\n }, [message, renderCustomSeparator]);\n\n if (renderedMessage) {\n return (\n <div\n // do not delete this data attribute, used for scroll to given message\n // and also for testing\n data-sb-message-id={message.messageId}\n data-sb-created-at={message.createdAt}\n ref={messageScrollRef}\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n >\n {/* date-separator */}\n {\n // TODO: Add message instance as a function parameter\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {renderedMessage}\n </div>\n );\n }\n\n if (showEdit && message?.isUserMessage?.()) {\n return renderEditInput?.() || (\n <>\n {\n displaySuggestedMentionList && (\n <SuggestedMentionList\n targetNickname={mentionNickname}\n inputEvent={messageInputEvent}\n renderUserMentionItem={renderUserMentionItem}\n onUserItemClick={(user) => {\n if (user) {\n setMentionedUsers([...mentionedUsers, user]);\n }\n setMentionNickname('');\n setSelectedUser(user);\n setMessageInputEvent(null);\n }}\n onFocusItemChange={() => {\n setMessageInputEvent(null);\n }}\n onFetchUsers={(users) => {\n setMentionSuggestedUsers(users);\n }}\n ableAddMention={ableMention}\n maxMentionCount={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n <MessageInput\n isEdit\n disabled={disabled}\n ref={editMessageInputRef}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n message={message}\n onStartTyping={() => {\n currentGroupChannel?.startTyping?.();\n }}\n onUpdateMessage={({ messageId, message, mentionTemplate }) => {\n updateMessage({\n messageId,\n message,\n mentionedUsers,\n mentionTemplate,\n });\n setShowEdit(false);\n currentGroupChannel?.endTyping?.();\n }}\n onCancelEdit={() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setMentionSuggestedUsers([]);\n setShowEdit(false);\n currentGroupChannel?.endTyping?.();\n }}\n onUserMentioned={(user) => {\n if (selectedUser?.userId === user?.userId) {\n setSelectedUser(null);\n setMentionNickname('');\n }\n }}\n onMentionStringChange={(mentionText) => {\n setMentionNickname(mentionText);\n }}\n onMentionedUserIdsUpdated={(userIds) => {\n setMentionedUserIds(userIds);\n }}\n onKeyDown={(e) => {\n if (displaySuggestedMentionList && mentionSuggestedUsers?.length > 0\n && ((e.key === MessageInputKeys.Enter && ableMention) || e.key === MessageInputKeys.ArrowUp || e.key === MessageInputKeys.ArrowDown)\n ) {\n setMessageInputEvent(e);\n return true;\n }\n return false;\n }}\n />\n </>\n );\n }\n\n return (\n <div\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n style={{ marginBottom: '2px' }}\n data-sb-message-id={message.messageId}\n data-sb-created-at={message.createdAt}\n ref={messageScrollRef}\n >\n {/* date-separator */}\n {\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {/* Message */}\n {\n renderMessageContent?.() || (\n <MessageContent\n className=\"sendbird-message-hoc__message-content\"\n userId={userId}\n scrollToMessage={scrollToMessage}\n channel={currentGroupChannel}\n message={message}\n disabled={!isOnline}\n chainTop={chainTop}\n chainBottom={chainBottom}\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n threadReplySelectType={threadReplySelectType}\n nicknamesMap={nicknamesMap}\n emojiContainer={emojiContainer}\n showEdit={setShowEdit}\n showRemove={setShowRemove}\n showFileViewer={setShowFileViewer}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n setQuoteMessage={setQuoteMessage}\n onReplyInThread={onReplyInThread}\n onQuoteMessageClick={onQuoteMessageClick}\n onMessageHeightChange={handleScroll}\n />\n )\n }\n {/* Modal */}\n {\n showRemove && (\n <RemoveMessageModal\n message={message}\n onCancel={() => setShowRemove(false)}\n />\n )\n }\n {\n showFileViewer && (\n <FileViewer\n message={message as FileMessage}\n onCancel={() => setShowFileViewer(false)}\n />\n )\n }\n </div>\n );\n};\n\nexport default Message;\n"],"names":["useDidMountEffect","func","deps","didMount","setDidmount","useState","useEffect","Message","_ref","_message$reactions","_message$isUserMessag","message","hasSeparator","chainTop","chainBottom","handleScroll","handleMessageListHeightChange","renderCustomSeparator","renderEditInput","renderMessage","renderMessageContent","dateLocale","useLocalization","globalStore","useSendbirdStateContext","userId","isOnline","isMentionEnabled","userMention","logger","config","maxUserMentionCount","maxMentionCount","MAX_USER_MENTION_COUNT","maxUserSuggestionCount","maxSuggestionCount","MAX_USER_SUGGESTION_COUNT","initialized","currentGroupChannel","highLightedMessageId","setHighLightedMessageId","animatedMessageId","setAnimatedMessageId","updateMessage","scrollToMessage","replyType","threadReplySelectType","isReactionEnabled","toggleReaction","emojiContainer","nicknamesMap","setQuoteMessage","resendMessage","renderUserMentionItem","onReplyInThread","onQuoteMessageClick","onMessageAnimated","onMessageHighlighted","onScrollCallback","useChannelContext","showEdit","setShowEdit","showRemove","setShowRemove","showFileViewer","setShowFileViewer","isAnimated","setIsAnimated","isHighlighted","setIsHighlighted","mentionNickname","setMentionNickname","mentionedUsers","setMentionedUsers","mentionedUserIds","setMentionedUserIds","messageInputEvent","setMessageInputEvent","selectedUser","setSelectedUser","mentionSuggestedUsers","setMentionSuggestedUsers","editMessageInputRef","useRef","messageScrollRef","displaySuggestedMentionList","length","isDisabledBecauseFrozen","isDisabledBecauseMuted","disabled","handleOnScroll","useHandleOnScrollCallback","hasMore","onScroll","scrollRef","mentionNodes","useDirtyGetMentions","ref","ableMention","filter","_ref2","i","indexOf","splice","_currentGroupChannel$","lastMessage","messageId","reactions","useLayoutEffect","animationTimeout","messageHighlightedTimeout","current","setTimeout","clearTimeout","messageAnimatedTimeout","renderedMessage","useMemo","renderedCustomSeparator","React","createElement","createdAt","className","getClassName","DateSeparator","Label","type","LabelTypography","CAPTION_2","color","LabelColors","ONBACKGROUND_2","format","locale","isUserMessage","call","Fragment","SuggestedMentionList","targetNickname","inputEvent","onUserItemClick","user","onFocusItemChange","onFetchUsers","users","ableAddMention","MessageInput","isEdit","mentionSelectedUser","onStartTyping","_currentGroupChannel$2","startTyping","onUpdateMessage","_ref3","_currentGroupChannel$3","mentionTemplate","endTyping","onCancelEdit","_currentGroupChannel$4","onUserMentioned","onMentionStringChange","mentionText","onMentionedUserIdsUpdated","userIds","onKeyDown","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","style","marginBottom","MessageContent","channel","onMessageHeightChange","RemoveMessageModal","onCancel","FileViewer"],"mappings":"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"}
1
+ {"version":3,"file":"Message.js","sources":["../../../../src/utils/useDidMountEffect.ts","../../../../src/modules/Channel/components/Message/index.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nconst useDidMountEffect = (func: () => void, deps: Array<unknown>): void => {\n const [didMount, setDidmount] = useState(false);\n useEffect(() => {\n if (didMount) {\n func();\n } else {\n setDidmount(true);\n }\n }, deps);\n};\n\nexport default useDidMountEffect;\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useLayoutEffect,\n} from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\nimport format from 'date-fns/format';\n\nimport useDidMountEffect from '../../../../utils/useDidMountEffect';\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport { getClassName } from '../../../../utils';\nimport { isDisabledBecauseFrozen, isDisabledBecauseMuted } from '../../context/utils';\nimport { MAX_USER_MENTION_COUNT, MAX_USER_SUGGESTION_COUNT } from '../../context/const';\n\nimport DateSeparator from '../../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport MessageInput from '../../../../ui/MessageInput';\nimport MessageContent from '../../../../ui/MessageContent';\nimport FileViewer from '../FileViewer';\nimport RemoveMessageModal from '../RemoveMessageModal';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\nimport { EveryMessage, RenderCustomSeparatorProps, RenderMessageProps } from '../../../../types';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\nimport { useHandleOnScrollCallback } from '../../../../hooks/useHandleOnScrollCallback';\nimport { useDirtyGetMentions } from '../../../Message/hooks/useDirtyGetMentions';\n\ntype MessageUIProps = {\n message: EveryMessage;\n hasSeparator?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n handleScroll?: () => void;\n handleMessageListHeightChange?: () => void;\n // for extending\n renderMessage?: (props: RenderMessageProps) => React.ReactElement;\n renderCustomSeparator?: (props: RenderCustomSeparatorProps) => React.ReactElement;\n renderEditInput?: () => React.ReactElement;\n renderMessageContent?: () => React.ReactElement;\n};\n\n// todo: Refactor this component, is too complex now\nconst Message = ({\n message,\n hasSeparator,\n chainTop,\n chainBottom,\n handleScroll,\n handleMessageListHeightChange,\n renderCustomSeparator,\n renderEditInput,\n renderMessage,\n renderMessageContent,\n}: MessageUIProps): React.ReactElement => {\n const { dateLocale } = useLocalization();\n const globalStore = useSendbirdStateContext();\n\n const {\n userId,\n isOnline,\n isMentionEnabled,\n userMention,\n logger,\n } = globalStore.config;\n const maxUserMentionCount = userMention?.maxMentionCount || MAX_USER_MENTION_COUNT;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || MAX_USER_SUGGESTION_COUNT;\n\n const {\n initialized,\n currentGroupChannel,\n highLightedMessageId,\n setHighLightedMessageId,\n animatedMessageId,\n setAnimatedMessageId,\n updateMessage,\n scrollToMessage,\n replyType,\n threadReplySelectType,\n isReactionEnabled,\n toggleReaction,\n emojiContainer,\n nicknamesMap,\n setQuoteMessage,\n resendMessage,\n renderUserMentionItem,\n onReplyInThread,\n onQuoteMessageClick,\n onMessageAnimated,\n onMessageHighlighted,\n onScrollCallback,\n } = useChannelContext();\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const [isAnimated, setIsAnimated] = useState(false);\n const [isHighlighted, setIsHighlighted] = useState(false);\n const [mentionNickname, setMentionNickname] = useState('');\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const editMessageInputRef = useRef(null);\n const messageScrollRef = useRef(null);\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !isDisabledBecauseFrozen(currentGroupChannel)\n && !isDisabledBecauseMuted(currentGroupChannel);\n const disabled = !initialized\n || isDisabledBecauseFrozen(currentGroupChannel)\n || isDisabledBecauseMuted(currentGroupChannel)\n || !isOnline;\n\n const handleOnScroll = useHandleOnScrollCallback({\n hasMore: false,\n onScroll: onScrollCallback,\n scrollRef: messageScrollRef,\n });\n\n const mentionNodes = useDirtyGetMentions({ ref: editMessageInputRef }, { logger });\n const ableMention = mentionNodes?.length < maxUserMentionCount;\n\n useEffect(() => {\n setMentionedUsers(mentionedUsers.filter(({ userId }) => {\n const i = mentionedUserIds.indexOf(userId);\n if (i < 0) {\n return false;\n } else {\n mentionedUserIds.splice(i, 1);\n return true;\n }\n }));\n }, [mentionedUserIds]);\n\n // Move the messsage list scroll when the last message's height is changed by reactions\n useDidMountEffect(() => {\n if (currentGroupChannel?.lastMessage?.messageId === message?.messageId) {\n handleScroll?.();\n }\n }, [showEdit, message?.reactions?.length]);\n useLayoutEffect(() => {\n handleMessageListHeightChange?.();\n }, []);\n\n useLayoutEffect(() => {\n let animationTimeout = null;\n let messageHighlightedTimeout = null;\n if (highLightedMessageId === message.messageId && messageScrollRef?.current) {\n handleOnScroll();\n setIsAnimated(false);\n animationTimeout = setTimeout(() => {\n setIsHighlighted(true);\n }, 500);\n messageHighlightedTimeout = setTimeout(() => {\n setHighLightedMessageId(0);\n onMessageHighlighted?.();\n }, 1600);\n } else {\n setIsHighlighted(false);\n }\n return () => {\n clearTimeout(animationTimeout);\n clearTimeout(messageHighlightedTimeout);\n };\n }, [highLightedMessageId, messageScrollRef.current, message.messageId]);\n\n useLayoutEffect(() => {\n let animationTimeout = null;\n let messageAnimatedTimeout = null;\n if (animatedMessageId === message.messageId && messageScrollRef?.current) {\n handleOnScroll();\n setIsHighlighted(false);\n animationTimeout = setTimeout(() => {\n setIsAnimated(true);\n }, 500);\n messageAnimatedTimeout = setTimeout(() => {\n setAnimatedMessageId(0);\n onMessageAnimated?.();\n }, 1600);\n } else {\n setIsAnimated(false);\n }\n return () => {\n clearTimeout(animationTimeout);\n clearTimeout(messageAnimatedTimeout);\n };\n }, [animatedMessageId, messageScrollRef.current, message.messageId, onMessageAnimated]);\n const renderedMessage = useMemo(() => {\n return renderMessage?.({\n message,\n chainTop,\n chainBottom,\n });\n }, [message, renderMessage]);\n const renderedCustomSeparator = useMemo(() => {\n if (renderCustomSeparator) {\n return renderCustomSeparator?.({ message: message });\n }\n return null;\n }, [message, renderCustomSeparator]);\n\n if (renderedMessage) {\n return (\n <div\n // do not delete this data attribute, used for scroll to given message\n // and also for testing\n data-sb-message-id={message.messageId}\n data-sb-created-at={message.createdAt}\n ref={messageScrollRef}\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n >\n {/* date-separator */}\n {\n // TODO: Add message instance as a function parameter\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {renderedMessage}\n </div>\n );\n }\n\n if (showEdit && message?.isUserMessage?.()) {\n return renderEditInput?.() || (\n <>\n {\n displaySuggestedMentionList && (\n <SuggestedMentionList\n targetNickname={mentionNickname}\n inputEvent={messageInputEvent}\n renderUserMentionItem={renderUserMentionItem}\n onUserItemClick={(user) => {\n if (user) {\n setMentionedUsers([...mentionedUsers, user]);\n }\n setMentionNickname('');\n setSelectedUser(user);\n setMessageInputEvent(null);\n }}\n onFocusItemChange={() => {\n setMessageInputEvent(null);\n }}\n onFetchUsers={(users) => {\n setMentionSuggestedUsers(users);\n }}\n ableAddMention={ableMention}\n maxMentionCount={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n <MessageInput\n isEdit\n channel={currentGroupChannel}\n disabled={disabled}\n ref={editMessageInputRef}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n message={message}\n onStartTyping={() => {\n currentGroupChannel?.startTyping?.();\n }}\n onUpdateMessage={({ messageId, message, mentionTemplate }) => {\n updateMessage({\n messageId,\n message,\n mentionedUsers,\n mentionTemplate,\n });\n setShowEdit(false);\n currentGroupChannel?.endTyping?.();\n }}\n onCancelEdit={() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setMentionSuggestedUsers([]);\n setShowEdit(false);\n currentGroupChannel?.endTyping?.();\n }}\n onUserMentioned={(user) => {\n if (selectedUser?.userId === user?.userId) {\n setSelectedUser(null);\n setMentionNickname('');\n }\n }}\n onMentionStringChange={(mentionText) => {\n setMentionNickname(mentionText);\n }}\n onMentionedUserIdsUpdated={(userIds) => {\n setMentionedUserIds(userIds);\n }}\n onKeyDown={(e) => {\n if (displaySuggestedMentionList && mentionSuggestedUsers?.length > 0\n && ((e.key === MessageInputKeys.Enter && ableMention) || e.key === MessageInputKeys.ArrowUp || e.key === MessageInputKeys.ArrowDown)\n ) {\n setMessageInputEvent(e);\n return true;\n }\n return false;\n }}\n />\n </>\n );\n }\n\n return (\n <div\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n style={{ marginBottom: '2px' }}\n data-sb-message-id={message.messageId}\n data-sb-created-at={message.createdAt}\n ref={messageScrollRef}\n >\n {/* date-separator */}\n {\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {/* Message */}\n {\n renderMessageContent?.() || (\n <MessageContent\n className=\"sendbird-message-hoc__message-content\"\n userId={userId}\n scrollToMessage={scrollToMessage}\n channel={currentGroupChannel}\n message={message}\n disabled={!isOnline}\n chainTop={chainTop}\n chainBottom={chainBottom}\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n threadReplySelectType={threadReplySelectType}\n nicknamesMap={nicknamesMap}\n emojiContainer={emojiContainer}\n showEdit={setShowEdit}\n showRemove={setShowRemove}\n showFileViewer={setShowFileViewer}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n setQuoteMessage={setQuoteMessage}\n onReplyInThread={onReplyInThread}\n onQuoteMessageClick={onQuoteMessageClick}\n onMessageHeightChange={handleScroll}\n />\n )\n }\n {/* Modal */}\n {\n showRemove && (\n <RemoveMessageModal\n message={message}\n onCancel={() => setShowRemove(false)}\n />\n )\n }\n {\n showFileViewer && (\n <FileViewer\n message={message as FileMessage}\n onCancel={() => setShowFileViewer(false)}\n />\n )\n }\n </div>\n );\n};\n\nexport default Message;\n"],"names":["useDidMountEffect","func","deps","didMount","setDidmount","useState","useEffect","Message","_ref","_message$reactions","_message$isUserMessag","message","hasSeparator","chainTop","chainBottom","handleScroll","handleMessageListHeightChange","renderCustomSeparator","renderEditInput","renderMessage","renderMessageContent","dateLocale","useLocalization","globalStore","useSendbirdStateContext","userId","isOnline","isMentionEnabled","userMention","logger","config","maxUserMentionCount","maxMentionCount","MAX_USER_MENTION_COUNT","maxUserSuggestionCount","maxSuggestionCount","MAX_USER_SUGGESTION_COUNT","initialized","currentGroupChannel","highLightedMessageId","setHighLightedMessageId","animatedMessageId","setAnimatedMessageId","updateMessage","scrollToMessage","replyType","threadReplySelectType","isReactionEnabled","toggleReaction","emojiContainer","nicknamesMap","setQuoteMessage","resendMessage","renderUserMentionItem","onReplyInThread","onQuoteMessageClick","onMessageAnimated","onMessageHighlighted","onScrollCallback","useChannelContext","showEdit","setShowEdit","showRemove","setShowRemove","showFileViewer","setShowFileViewer","isAnimated","setIsAnimated","isHighlighted","setIsHighlighted","mentionNickname","setMentionNickname","mentionedUsers","setMentionedUsers","mentionedUserIds","setMentionedUserIds","messageInputEvent","setMessageInputEvent","selectedUser","setSelectedUser","mentionSuggestedUsers","setMentionSuggestedUsers","editMessageInputRef","useRef","messageScrollRef","displaySuggestedMentionList","length","isDisabledBecauseFrozen","isDisabledBecauseMuted","disabled","handleOnScroll","useHandleOnScrollCallback","hasMore","onScroll","scrollRef","mentionNodes","useDirtyGetMentions","ref","ableMention","filter","_ref2","i","indexOf","splice","_currentGroupChannel$","lastMessage","messageId","reactions","useLayoutEffect","animationTimeout","messageHighlightedTimeout","current","setTimeout","clearTimeout","messageAnimatedTimeout","renderedMessage","useMemo","renderedCustomSeparator","React","createElement","createdAt","className","getClassName","DateSeparator","Label","type","LabelTypography","CAPTION_2","color","LabelColors","ONBACKGROUND_2","format","locale","isUserMessage","call","Fragment","SuggestedMentionList","targetNickname","inputEvent","onUserItemClick","user","onFocusItemChange","onFetchUsers","users","ableAddMention","MessageInput","isEdit","channel","mentionSelectedUser","onStartTyping","_currentGroupChannel$2","startTyping","onUpdateMessage","_ref3","_currentGroupChannel$3","mentionTemplate","endTyping","onCancelEdit","_currentGroupChannel$4","onUserMentioned","onMentionStringChange","mentionText","onMentionedUserIdsUpdated","userIds","onKeyDown","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","style","marginBottom","MessageContent","onMessageHeightChange","RemoveMessageModal","onCancel","FileViewer"],"mappings":"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"}
@@ -1,58 +1,60 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var Channel_context = require('../../ChannelProvider-1599fb99.js');
4
+ var Channel_context = require('../../ChannelProvider-0dba8547.js');
5
5
  var ui_MessageInput = require('../../ui/MessageInput.js');
6
6
  var ui_QuoteMessageInput = require('../../ui/QuoteMessageInput.js');
7
- var LocalizationContext = require('../../LocalizationContext-a584fa55.js');
7
+ var LocalizationContext = require('../../LocalizationContext-b57dbbb3.js');
8
8
  var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
9
9
  var Channel_components_SuggestedMentionList = require('./SuggestedMentionList.js');
10
- var _const = require('../../const-75f8d9ae.js');
11
- var VoiceMessageInputWrapper = require('../../VoiceMessageInputWrapper-4d17462c.js');
12
- var useDirtyGetMentions = require('../../useDirtyGetMentions-527f80ca.js');
13
- var MediaQueryContext = require('../../MediaQueryContext-baafb1bb.js');
14
- require('../../UserProfileContext-0308bb46.js');
10
+ var _const = require('../../const-a2bea8cb.js');
11
+ var VoiceMessageInputWrapper = require('../../VoiceMessageInputWrapper-19bb43d1.js');
12
+ var useDirtyGetMentions = require('../../useDirtyGetMentions-73c92dd1.js');
13
+ var MediaQueryContext = require('../../MediaQueryContext-6cbb7b30.js');
14
+ require('../../UserProfileContext-47da79ce.js');
15
15
  require('prop-types');
16
- require('../../index-63a06f37.js');
17
- require('../../index-91cd09c7.js');
18
- require('../../topics-c7ef77ef.js');
19
- require('../../index-70ee1e87.js');
20
- require('../../_rollupPluginBabelHelpers-17f53083.js');
16
+ require('../../const-23450239.js');
17
+ require('../../index-e811013a.js');
18
+ require('../../index-37e8cb7f.js');
19
+ require('../../topics-03a59659.js');
20
+ require('../../index-0bfdb242.js');
21
+ require('../../_rollupPluginBabelHelpers-eb6b8b27.js');
21
22
  require('../../utils/message/getOutgoingMessageState.js');
22
- require('../../compareIds-c9b9dfbc.js');
23
- require('../../const-a9f20831.js');
23
+ require('../../compareIds-1e3d2ab4.js');
24
24
  require('@sendbird/chat/groupChannel');
25
- require('../../uuid-10926ed0.js');
25
+ require('../../uuid-ec351d96.js');
26
26
  require('@sendbird/chat/message');
27
- require('../../consts-b90134e3.js');
27
+ require('../../consts-b7b7a6e1.js');
28
+ require('../../resolvedReplyType-8a349b8c.js');
28
29
  require('../../ui/IconButton.js');
29
30
  require('../../ui/Button.js');
30
- require('../../index-3606d178.js');
31
- require('../../stringSet-d6f2a33a.js');
31
+ require('../../index-735ab91e.js');
32
+ require('../../stringSet-2450c9e9.js');
32
33
  require('dompurify');
33
- require('../../consts-8f76585f.js');
34
+ require('../../consts-da8cf320.js');
34
35
  require('../../ui/Icon.js');
35
- require('../../consts-78675c0f.js');
36
- require('../../consts-6a102338.js');
37
- require('../../tokenize-0df4eb21.js');
36
+ require('../../consts-10ef7616.js');
37
+ require('../../consts-384c3f07.js');
38
+ require('../../tokenize-f217adbe.js');
39
+ require('../../index.module-ea6bd1f1.js');
38
40
  require('../../ui/ImageRenderer.js');
39
41
  require('../../withSendbird.js');
40
42
  require('../../ui/Avatar.js');
41
- require('../../ThreadProvider-c79aceb3.js');
43
+ require('../../ThreadProvider-0508aa6b.js');
42
44
  require('../../Thread/context/types.js');
43
45
  require('@sendbird/chat');
44
46
  require('../../VoicePlayer/useVoicePlayer.js');
45
- require('../../index-ab691428.js');
47
+ require('../../index-2abc972f.js');
46
48
  require('../../VoiceRecorder/context.js');
47
49
  require('../../ui/Modal.js');
48
50
  require('react-dom');
49
- require('../../index-36b49ef5.js');
51
+ require('../../index-572ef10a.js');
50
52
  require('../../VoiceRecorder/useVoiceRecorder.js');
51
- require('../../index-5012370d.js');
53
+ require('../../index-3302aa9f.js');
52
54
  require('../../ui/PlaybackTime.js');
53
55
  require('../../ui/ProgressBar.js');
54
56
  require('../../ui/TextButton.js');
55
- require('../../color-f5216e6a.js');
57
+ require('../../color-1d73789a.js');
56
58
 
57
59
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
58
60
 
@@ -1 +1 @@
1
- {"version":3,"file":"MessageInput.js","sources":["../../../../src/modules/Channel/components/MessageInput/index.tsx"],"sourcesContent":["import React, { useState, useContext, useEffect } from 'react';\n\nimport './message-input.scss';\nimport * as utils from '../../context/utils';\n\nimport MessageInput from '../../../../ui/MessageInput';\nimport QuoteMessageInput from '../../../../ui/QuoteMessageInput';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\nimport VoiceMessageInputWrapper from './VoiceMessageInputWrapper';\nimport { useDirtyGetMentions } from '../../../Message/hooks/useDirtyGetMentions';\nimport { useMediaQueryContext } from '../../../../lib/MediaQueryContext';\n\nexport type MessageInputWrapperProps = {\n value?: string;\n disabled?: boolean;\n renderFileUploadIcon?: () => React.ReactElement;\n renderVoiceMessageIcon?: () => React.ReactElement;\n renderSendMessageIcon?: () => React.ReactElement;\n};\n\nconst MessageInputWrapper = (\n props: MessageInputWrapperProps,\n ref: React.MutableRefObject<any>,\n): JSX.Element => {\n const {\n value,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n } = props;\n const propDisabled = props.disabled;\n const {\n currentGroupChannel,\n initialized,\n quoteMessage,\n sendMessage,\n sendFileMessage,\n sendVoiceMessage,\n setQuoteMessage,\n messageInputRef,\n renderUserMentionItem,\n } = useChannelContext();\n const globalStore = useSendbirdStateContext();\n const { isMobile } = useMediaQueryContext();\n const channel = currentGroupChannel;\n\n const {\n isOnline,\n isMentionEnabled,\n userMention,\n isVoiceMessageEnabled,\n logger,\n } = globalStore.config;\n const maxUserMentionCount = userMention?.maxMentionCount || 10;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || 15;\n\n const { stringSet } = useContext(LocalizationContext);\n const [mentionNickname, setMentionNickname] = useState('');\n // todo: set type\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const [showVoiceMessageInput, setShowVoiceMessageInput] = useState(false);\n const disabled = propDisabled\n || !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n const isOperator = utils.isOperator(channel);\n const isBroadcast = channel?.isBroadcast;\n\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !utils.isDisabledBecauseFrozen(channel)\n && !utils.isDisabledBecauseMuted(channel)\n && !isBroadcast;\n\n // Reset when channel changes\n useEffect(() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setSelectedUser(null);\n setMentionSuggestedUsers([]);\n setMessageInputEvent(null);\n setShowVoiceMessageInput(false);\n }, [channel?.url]);\n\n const mentionNodes = useDirtyGetMentions({ ref: ref || messageInputRef }, { logger });\n const ableMention = mentionNodes?.length < maxUserMentionCount;\n\n useEffect(() => {\n setMentionedUsers(mentionedUsers.filter(({ userId }) => {\n const i = mentionedUserIds.indexOf(userId);\n if (i < 0) {\n return false;\n } else {\n mentionedUserIds.splice(i, 1);\n return true;\n }\n }));\n }, [mentionedUserIds]);\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n // other conditions\n return (\n <div className={`sendbird-message-input-wrapper${showVoiceMessageInput ? '--voice-message' : ''}`}>\n {\n displaySuggestedMentionList && (\n <SuggestedMentionList\n targetNickname={mentionNickname}\n inputEvent={messageInputEvent}\n renderUserMentionItem={renderUserMentionItem}\n onUserItemClick={(user) => {\n if (user) {\n setMentionedUsers([...mentionedUsers, user]);\n }\n setMentionNickname('');\n setSelectedUser(user);\n setMessageInputEvent(null);\n }}\n onFocusItemChange={() => {\n setMessageInputEvent(null);\n }}\n onFetchUsers={(users) => {\n setMentionSuggestedUsers(users);\n }}\n ableAddMention={ableMention}\n maxMentionCount={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n {quoteMessage && (\n <div className=\"sendbird-message-input-wrapper__quote-message-input\">\n <QuoteMessageInput\n replyingMessage={quoteMessage}\n onClose={() => setQuoteMessage(null)}\n />\n </div>\n )}\n {\n showVoiceMessageInput\n ? (\n <VoiceMessageInputWrapper\n channel={channel}\n onSubmitClick={(recordedFile, duration) => {\n sendVoiceMessage(recordedFile, duration, quoteMessage);\n setQuoteMessage(null);\n setShowVoiceMessageInput(false);\n }}\n onCancelClick={() => {\n setShowVoiceMessageInput(false);\n }}\n />\n )\n : (\n <MessageInput\n className=\"sendbird-message-input-wrapper__message-input\"\n value={value}\n channelUrl={channel?.url}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n isVoiceMessageEnabled={isVoiceMessageEnabled}\n onVoiceMessageIconClick={() => {\n setShowVoiceMessageInput(true);\n }}\n setMentionedUsers={setMentionedUsers}\n channel={channel}\n placeholder={\n (quoteMessage && stringSet.MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER)\n || (utils.isDisabledBecauseFrozen(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__DISABLED)\n || (utils.isDisabledBecauseMuted(channel) && (\n isMobile ? stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED_SHORT : stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED\n ))\n }\n ref={ref || messageInputRef}\n disabled={disabled}\n renderFileUploadIcon={renderFileUploadIcon}\n renderSendMessageIcon={renderSendMessageIcon}\n renderVoiceMessageIcon={renderVoiceMessageIcon}\n onStartTyping={() => {\n channel?.startTyping();\n }}\n onSendMessage={({ message, mentionTemplate }) => {\n sendMessage({\n message,\n quoteMessage,\n mentionedUsers,\n mentionTemplate,\n });\n setMentionNickname('');\n setMentionedUsers([]);\n setQuoteMessage(null);\n channel?.endTyping?.();\n }}\n onFileUpload={(file) => {\n sendFileMessage(file, quoteMessage);\n setQuoteMessage(null);\n }}\n onUserMentioned={(user) => {\n if (selectedUser?.userId === user?.userId) {\n setSelectedUser(null);\n setMentionNickname('');\n }\n }}\n onMentionStringChange={(mentionText) => {\n setMentionNickname(mentionText);\n }}\n onMentionedUserIdsUpdated={(userIds) => {\n setMentionedUserIds(userIds);\n }}\n onKeyDown={(e) => {\n if (displaySuggestedMentionList && mentionSuggestedUsers?.length > 0\n && ((e.key === MessageInputKeys.Enter && ableMention) || e.key === MessageInputKeys.ArrowUp || e.key === MessageInputKeys.ArrowDown)\n ) {\n setMessageInputEvent(e);\n return true;\n }\n return false;\n }}\n />\n )\n }\n </div>\n );\n};\n\nexport default React.forwardRef(MessageInputWrapper);\n"],"names":["MessageInputWrapper","props","ref","value","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","propDisabled","disabled","currentGroupChannel","initialized","quoteMessage","sendMessage","sendFileMessage","sendVoiceMessage","setQuoteMessage","messageInputRef","renderUserMentionItem","useChannelContext","globalStore","useSendbirdStateContext","isMobile","useMediaQueryContext","channel","isOnline","isMentionEnabled","userMention","isVoiceMessageEnabled","logger","config","maxUserMentionCount","maxMentionCount","maxUserSuggestionCount","maxSuggestionCount","stringSet","useContext","LocalizationContext","mentionNickname","setMentionNickname","useState","mentionedUsers","setMentionedUsers","mentionedUserIds","setMentionedUserIds","selectedUser","setSelectedUser","mentionSuggestedUsers","setMentionSuggestedUsers","messageInputEvent","setMessageInputEvent","showVoiceMessageInput","setShowVoiceMessageInput","utils","isOperator","isBroadcast","displaySuggestedMentionList","length","useEffect","url","mentionNodes","useDirtyGetMentions","ableMention","filter","_ref","userId","i","indexOf","splice","React","createElement","className","SuggestedMentionList","targetNickname","inputEvent","onUserItemClick","user","onFocusItemChange","onFetchUsers","users","ableAddMention","QuoteMessageInput","replyingMessage","onClose","VoiceMessageInputWrapper","onSubmitClick","recordedFile","duration","onCancelClick","MessageInput","channelUrl","mentionSelectedUser","onVoiceMessageIconClick","placeholder","MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER","MESSAGE_INPUT__PLACE_HOLDER__DISABLED","MESSAGE_INPUT__PLACE_HOLDER__MUTED_SHORT","MESSAGE_INPUT__PLACE_HOLDER__MUTED","onStartTyping","startTyping","onSendMessage","_ref2","_channel$endTyping","message","mentionTemplate","endTyping","call","onFileUpload","file","onUserMentioned","onMentionStringChange","mentionText","onMentionedUserIdsUpdated","userIds","onKeyDown","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"MessageInput.js","sources":["../../../../src/modules/Channel/components/MessageInput/index.tsx"],"sourcesContent":["import React, { useState, useContext, useEffect } from 'react';\n\nimport './message-input.scss';\nimport * as utils from '../../context/utils';\n\nimport MessageInput from '../../../../ui/MessageInput';\nimport QuoteMessageInput from '../../../../ui/QuoteMessageInput';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\nimport VoiceMessageInputWrapper from './VoiceMessageInputWrapper';\nimport { useDirtyGetMentions } from '../../../Message/hooks/useDirtyGetMentions';\nimport { useMediaQueryContext } from '../../../../lib/MediaQueryContext';\n\nexport type MessageInputWrapperProps = {\n value?: string;\n disabled?: boolean;\n renderFileUploadIcon?: () => React.ReactElement;\n renderVoiceMessageIcon?: () => React.ReactElement;\n renderSendMessageIcon?: () => React.ReactElement;\n};\n\nconst MessageInputWrapper = (\n props: MessageInputWrapperProps,\n ref: React.MutableRefObject<any>,\n): JSX.Element => {\n const {\n value,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n } = props;\n const propDisabled = props.disabled;\n const {\n currentGroupChannel,\n initialized,\n quoteMessage,\n sendMessage,\n sendFileMessage,\n sendVoiceMessage,\n setQuoteMessage,\n messageInputRef,\n renderUserMentionItem,\n } = useChannelContext();\n const globalStore = useSendbirdStateContext();\n const { isMobile } = useMediaQueryContext();\n const channel = currentGroupChannel;\n\n const {\n isOnline,\n isMentionEnabled,\n userMention,\n isVoiceMessageEnabled,\n logger,\n } = globalStore.config;\n const maxUserMentionCount = userMention?.maxMentionCount || 10;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || 15;\n\n const { stringSet } = useContext(LocalizationContext);\n const [mentionNickname, setMentionNickname] = useState('');\n // todo: set type\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const [showVoiceMessageInput, setShowVoiceMessageInput] = useState(false);\n const disabled = propDisabled\n || !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n const isOperator = utils.isOperator(channel);\n const isBroadcast = channel?.isBroadcast;\n\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !utils.isDisabledBecauseFrozen(channel)\n && !utils.isDisabledBecauseMuted(channel)\n && !isBroadcast;\n\n // Reset when channel changes\n useEffect(() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setSelectedUser(null);\n setMentionSuggestedUsers([]);\n setMessageInputEvent(null);\n setShowVoiceMessageInput(false);\n }, [channel?.url]);\n\n const mentionNodes = useDirtyGetMentions({ ref: ref || messageInputRef }, { logger });\n const ableMention = mentionNodes?.length < maxUserMentionCount;\n\n useEffect(() => {\n setMentionedUsers(mentionedUsers.filter(({ userId }) => {\n const i = mentionedUserIds.indexOf(userId);\n if (i < 0) {\n return false;\n } else {\n mentionedUserIds.splice(i, 1);\n return true;\n }\n }));\n }, [mentionedUserIds]);\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n // other conditions\n return (\n <div className={`sendbird-message-input-wrapper${showVoiceMessageInput ? '--voice-message' : ''}`}>\n {\n displaySuggestedMentionList && (\n <SuggestedMentionList\n targetNickname={mentionNickname}\n inputEvent={messageInputEvent}\n renderUserMentionItem={renderUserMentionItem}\n onUserItemClick={(user) => {\n if (user) {\n setMentionedUsers([...mentionedUsers, user]);\n }\n setMentionNickname('');\n setSelectedUser(user);\n setMessageInputEvent(null);\n }}\n onFocusItemChange={() => {\n setMessageInputEvent(null);\n }}\n onFetchUsers={(users) => {\n setMentionSuggestedUsers(users);\n }}\n ableAddMention={ableMention}\n maxMentionCount={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n {quoteMessage && (\n <div className=\"sendbird-message-input-wrapper__quote-message-input\">\n <QuoteMessageInput\n replyingMessage={quoteMessage}\n onClose={() => setQuoteMessage(null)}\n />\n </div>\n )}\n {\n showVoiceMessageInput\n ? (\n <VoiceMessageInputWrapper\n channel={channel}\n onSubmitClick={(recordedFile, duration) => {\n sendVoiceMessage(recordedFile, duration, quoteMessage);\n setQuoteMessage(null);\n setShowVoiceMessageInput(false);\n }}\n onCancelClick={() => {\n setShowVoiceMessageInput(false);\n }}\n />\n )\n : (\n <MessageInput\n className=\"sendbird-message-input-wrapper__message-input\"\n value={value}\n channelUrl={channel?.url}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n isVoiceMessageEnabled={isVoiceMessageEnabled}\n onVoiceMessageIconClick={() => {\n setShowVoiceMessageInput(true);\n }}\n setMentionedUsers={setMentionedUsers}\n channel={channel}\n placeholder={\n (quoteMessage && stringSet.MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER)\n || (utils.isDisabledBecauseFrozen(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__DISABLED)\n || (utils.isDisabledBecauseMuted(channel) && (\n isMobile ? stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED_SHORT : stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED\n ))\n }\n ref={ref || messageInputRef}\n disabled={disabled}\n renderFileUploadIcon={renderFileUploadIcon}\n renderSendMessageIcon={renderSendMessageIcon}\n renderVoiceMessageIcon={renderVoiceMessageIcon}\n onStartTyping={() => {\n channel?.startTyping();\n }}\n onSendMessage={({ message, mentionTemplate }) => {\n sendMessage({\n message,\n quoteMessage,\n mentionedUsers,\n mentionTemplate,\n });\n setMentionNickname('');\n setMentionedUsers([]);\n setQuoteMessage(null);\n channel?.endTyping?.();\n }}\n onFileUpload={(file) => {\n sendFileMessage(file, quoteMessage);\n setQuoteMessage(null);\n }}\n onUserMentioned={(user) => {\n if (selectedUser?.userId === user?.userId) {\n setSelectedUser(null);\n setMentionNickname('');\n }\n }}\n onMentionStringChange={(mentionText) => {\n setMentionNickname(mentionText);\n }}\n onMentionedUserIdsUpdated={(userIds) => {\n setMentionedUserIds(userIds);\n }}\n onKeyDown={(e) => {\n if (displaySuggestedMentionList && mentionSuggestedUsers?.length > 0\n && ((e.key === MessageInputKeys.Enter && ableMention) || e.key === MessageInputKeys.ArrowUp || e.key === MessageInputKeys.ArrowDown)\n ) {\n setMessageInputEvent(e);\n return true;\n }\n return false;\n }}\n />\n )\n }\n </div>\n );\n};\n\nexport default React.forwardRef(MessageInputWrapper);\n"],"names":["MessageInputWrapper","props","ref","value","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","propDisabled","disabled","currentGroupChannel","initialized","quoteMessage","sendMessage","sendFileMessage","sendVoiceMessage","setQuoteMessage","messageInputRef","renderUserMentionItem","useChannelContext","globalStore","useSendbirdStateContext","isMobile","useMediaQueryContext","channel","isOnline","isMentionEnabled","userMention","isVoiceMessageEnabled","logger","config","maxUserMentionCount","maxMentionCount","maxUserSuggestionCount","maxSuggestionCount","stringSet","useContext","LocalizationContext","mentionNickname","setMentionNickname","useState","mentionedUsers","setMentionedUsers","mentionedUserIds","setMentionedUserIds","selectedUser","setSelectedUser","mentionSuggestedUsers","setMentionSuggestedUsers","messageInputEvent","setMessageInputEvent","showVoiceMessageInput","setShowVoiceMessageInput","utils","isOperator","isBroadcast","displaySuggestedMentionList","length","useEffect","url","mentionNodes","useDirtyGetMentions","ableMention","filter","_ref","userId","i","indexOf","splice","React","createElement","className","SuggestedMentionList","targetNickname","inputEvent","onUserItemClick","user","onFocusItemChange","onFetchUsers","users","ableAddMention","QuoteMessageInput","replyingMessage","onClose","VoiceMessageInputWrapper","onSubmitClick","recordedFile","duration","onCancelClick","MessageInput","channelUrl","mentionSelectedUser","onVoiceMessageIconClick","placeholder","MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER","MESSAGE_INPUT__PLACE_HOLDER__DISABLED","MESSAGE_INPUT__PLACE_HOLDER__MUTED_SHORT","MESSAGE_INPUT__PLACE_HOLDER__MUTED","onStartTyping","startTyping","onSendMessage","_ref2","_channel$endTyping","message","mentionTemplate","endTyping","call","onFileUpload","file","onUserMentioned","onMentionStringChange","mentionText","onMentionedUserIdsUpdated","userIds","onKeyDown","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","forwardRef"],"mappings":"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"}
@@ -1,70 +1,72 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var Channel_context = require('../../ChannelProvider-1599fb99.js');
5
- var ui_PlaceHolder = require('../../index-a039da1f.js');
4
+ var Channel_context = require('../../ChannelProvider-0dba8547.js');
5
+ var ui_PlaceHolder = require('../../index-d2315c53.js');
6
6
  var ui_Icon = require('../../ui/Icon.js');
7
7
  var Channel_components_Message = require('./Message.js');
8
- var index = require('../../index-de824ad7.js');
8
+ var index = require('../../index-eda19173.js');
9
9
  var Channel_components_UnreadCount = require('./UnreadCount.js');
10
10
  var Channel_components_FrozenNotification = require('./FrozenNotification.js');
11
- var consts = require('../../consts-b90134e3.js');
11
+ var consts = require('../../consts-b7b7a6e1.js');
12
12
  var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
13
13
  var Message_context = require('../../Message/context.js');
14
- var index$1 = require('../../index-0546aff2.js');
15
- require('../../UserProfileContext-0308bb46.js');
14
+ var index$1 = require('../../index-604a4266.js');
15
+ require('../../UserProfileContext-47da79ce.js');
16
16
  require('prop-types');
17
- require('../../index-63a06f37.js');
18
- require('../../index-91cd09c7.js');
19
- require('../../topics-c7ef77ef.js');
20
- require('../../index-70ee1e87.js');
21
- require('../../_rollupPluginBabelHelpers-17f53083.js');
17
+ require('../../const-23450239.js');
18
+ require('../../index-e811013a.js');
19
+ require('../../index-37e8cb7f.js');
20
+ require('../../topics-03a59659.js');
21
+ require('../../index-0bfdb242.js');
22
+ require('../../_rollupPluginBabelHelpers-eb6b8b27.js');
22
23
  require('../../utils/message/getOutgoingMessageState.js');
23
- require('../../compareIds-c9b9dfbc.js');
24
- require('../../const-a9f20831.js');
24
+ require('../../compareIds-1e3d2ab4.js');
25
25
  require('@sendbird/chat/groupChannel');
26
- require('../../uuid-10926ed0.js');
26
+ require('../../uuid-ec351d96.js');
27
27
  require('@sendbird/chat/message');
28
- require('../../LocalizationContext-a584fa55.js');
29
- require('../../stringSet-d6f2a33a.js');
30
- require('../../index-3606d178.js');
28
+ require('../../resolvedReplyType-8a349b8c.js');
29
+ require('../../LocalizationContext-b57dbbb3.js');
30
+ require('../../stringSet-2450c9e9.js');
31
+ require('../../index-735ab91e.js');
31
32
  require('../../ui/Loader.js');
32
33
  require('./SuggestedMentionList.js');
33
34
  require('../../ui/Avatar.js');
34
35
  require('../../ui/ImageRenderer.js');
35
- require('../../const-75f8d9ae.js');
36
- require('../../ThreadProvider-c79aceb3.js');
36
+ require('../../const-a2bea8cb.js');
37
+ require('../../ThreadProvider-0508aa6b.js');
37
38
  require('../../Thread/context/types.js');
38
39
  require('@sendbird/chat');
39
40
  require('../../ui/DateSeparator.js');
40
- require('../../color-f5216e6a.js');
41
+ require('../../color-1d73789a.js');
41
42
  require('../../ui/MessageInput.js');
42
43
  require('../../ui/IconButton.js');
43
44
  require('../../ui/Button.js');
44
45
  require('dompurify');
45
- require('../../consts-8f76585f.js');
46
- require('../../consts-78675c0f.js');
47
- require('../../consts-6a102338.js');
48
- require('../../tokenize-0df4eb21.js');
46
+ require('../../consts-da8cf320.js');
47
+ require('../../consts-10ef7616.js');
48
+ require('../../consts-384c3f07.js');
49
+ require('../../tokenize-f217adbe.js');
50
+ require('../../index.module-ea6bd1f1.js');
49
51
  require('../../ui/MessageContent.js');
50
52
  require('../../ui/UserProfile.js');
51
53
  require('../../sendbirdSelectors.js');
52
- require('../../utils-fbb85607.js');
53
- require('../../index-c3b543df.js');
54
- require('../../index-be531e8c.js');
54
+ require('../../utils-6828954f.js');
55
+ require('../../index-3bf38657.js');
56
+ require('../../index-bd8d9af4.js');
55
57
  require('../../ui/MessageItemMenu.js');
56
58
  require('../../ui/ContextMenu.js');
57
59
  require('react-dom');
58
60
  require('../../ui/SortByRow.js');
59
- require('../../types-edd094e8.js');
61
+ require('../../types-86058820.js');
60
62
  require('../../ui/MessageItemReactionMenu.js');
61
63
  require('../../ui/ReactionButton.js');
62
- require('../../useLongPress-a31543ee.js');
63
- require('../../MediaQueryContext-baafb1bb.js');
64
+ require('../../useLongPress-b013fc04.js');
65
+ require('../../MediaQueryContext-6cbb7b30.js');
64
66
  require('../../ui/EmojiReactions.js');
65
67
  require('../../ui/ReactionBadge.js');
66
68
  require('../../ui/BottomSheet.js');
67
- require('../../index-36b49ef5.js');
69
+ require('../../index-572ef10a.js');
68
70
  require('../../ui/UserListItem.js');
69
71
  require('../../ui/MutedAvatarOverlay.js');
70
72
  require('../../ui/Checkbox.js');
@@ -72,8 +74,7 @@ require('../../ui/Tooltip.js');
72
74
  require('../../ui/TooltipWrapper.js');
73
75
  require('../../ui/AdminMessage.js');
74
76
  require('../../ui/TextMessageItemBody.js');
75
- require('../../index-93ba8e85.js');
76
- require('../../index.module-6fa7f09a.js');
77
+ require('../../index-95cb25f2.js');
77
78
  require('../../ui/MentionLabel.js');
78
79
  require('../../ui/LinkLabel.js');
79
80
  require('../../ui/FileMessageItemBody.js');
@@ -82,19 +83,19 @@ require('../../ui/ThumbnailMessageItemBody.js');
82
83
  require('../../ui/OGMessageItemBody.js');
83
84
  require('../../ui/UnknownMessageItemBody.js');
84
85
  require('../../ui/QuoteMessage.js');
85
- require('../../index-98dc0da4.js');
86
+ require('../../index-560e60c2.js');
86
87
  require('../../ui/ThreadReplies.js');
87
88
  require('../../ui/VoiceMessageItemBody.js');
88
89
  require('../../ui/ProgressBar.js');
89
90
  require('../../VoicePlayer/useVoicePlayer.js');
90
- require('../../index-ab691428.js');
91
+ require('../../index-2abc972f.js');
91
92
  require('../../VoiceRecorder/context.js');
92
93
  require('../../ui/Modal.js');
93
94
  require('../../withSendbird.js');
94
95
  require('../../ui/PlaybackTime.js');
95
96
  require('./FileViewer.js');
96
97
  require('./RemoveMessageModal.js');
97
- require('../../useDirtyGetMentions-527f80ca.js');
98
+ require('../../useDirtyGetMentions-73c92dd1.js');
98
99
 
99
100
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
100
101
 
@@ -1 +1 @@
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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"}
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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"}