@sendbird/uikit-react 3.4.8 → 3.4.9-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/App.js +123 -74
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +43 -1
  4. package/Channel/components/ChannelHeader.js +18 -18
  5. package/Channel/components/ChannelUI.js +46 -41
  6. package/Channel/components/ChannelUI.js.map +1 -1
  7. package/Channel/components/FileViewer.js +14 -14
  8. package/Channel/components/FrozenNotification.js +4 -4
  9. package/Channel/components/Message.js +59 -45
  10. package/Channel/components/Message.js.map +1 -1
  11. package/Channel/components/MessageInput.js +40 -38
  12. package/Channel/components/MessageInput.js.map +1 -1
  13. package/Channel/components/MessageList.js +85 -46
  14. package/Channel/components/MessageList.js.map +1 -1
  15. package/Channel/components/RemoveMessageModal.js +16 -16
  16. package/Channel/components/SuggestedMentionList.js +16 -16
  17. package/Channel/components/TypingIndicator.js +14 -14
  18. package/Channel/components/UnreadCount.js +5 -5
  19. package/Channel/components/UnreadCount.js.map +1 -1
  20. package/Channel/context.js +11 -11
  21. package/Channel.js +46 -41
  22. package/Channel.js.map +1 -1
  23. package/ChannelList/components/AddChannel.js +14 -14
  24. package/ChannelList/components/ChannelListHeader.js +6 -6
  25. package/ChannelList/components/ChannelListUI.js +33 -32
  26. package/ChannelList/components/ChannelListUI.js.map +1 -1
  27. package/ChannelList/components/ChannelPreview.js +26 -26
  28. package/ChannelList/components/ChannelPreview.js.map +1 -1
  29. package/ChannelList/components/ChannelPreviewAction.js +15 -14
  30. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  31. package/ChannelList/context.js +7 -7
  32. package/ChannelList.js +29 -29
  33. package/{ChannelListProvider-1d8f4d94.js → ChannelListProvider-b42f8a70.js} +19 -37
  34. package/ChannelListProvider-b42f8a70.js.map +1 -0
  35. package/{ChannelProvider-bba4a095.js → ChannelProvider-6c5b02f1.js} +81 -29
  36. package/ChannelProvider-6c5b02f1.js.map +1 -0
  37. package/ChannelSettings/components/ChannelProfile.js +11 -11
  38. package/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  39. package/ChannelSettings/components/EditDetailsModal.js +11 -11
  40. package/ChannelSettings/components/LeaveChannel.js +11 -11
  41. package/ChannelSettings/components/ModerationPanel.js +27 -21
  42. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  43. package/ChannelSettings/components/UserListItem.js +10 -10
  44. package/ChannelSettings/components/UserPanel.js +13 -13
  45. package/ChannelSettings/context.js +3 -3
  46. package/ChannelSettings.js +17 -17
  47. package/CreateChannel/components/CreateChannelUI.js +13 -13
  48. package/CreateChannel/components/InviteUsers.js +15 -14
  49. package/CreateChannel/components/InviteUsers.js.map +1 -1
  50. package/CreateChannel/components/SelectChannelType.js +10 -10
  51. package/CreateChannel/context.js +4 -4
  52. package/CreateChannel.js +13 -13
  53. package/{CreateChannelProvider-1ba7a571.js → CreateChannelProvider-4a0190ed.js} +1 -1
  54. package/{CreateChannelProvider-1ba7a571.js.map → CreateChannelProvider-4a0190ed.js.map} +1 -1
  55. package/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  56. package/CreateOpenChannel/context.js +1 -1
  57. package/CreateOpenChannel.js +9 -9
  58. package/EditUserProfile/components/EditUserProfileUI.js +12 -12
  59. package/EditUserProfile.js +12 -12
  60. package/{LocalizationContext-ae38446a.js → LocalizationContext-8b7b48ec.js} +3 -3
  61. package/{LocalizationContext-ae38446a.js.map → LocalizationContext-8b7b48ec.js.map} +1 -1
  62. package/{MediaQueryContext-8d283dc2.js → MediaQueryContext-744e0eb4.js} +20 -15
  63. package/MediaQueryContext-744e0eb4.js.map +1 -0
  64. package/{MemberList-38971d43.js → MemberList-6e52b1b1.js} +17 -11
  65. package/MemberList-6e52b1b1.js.map +1 -0
  66. package/Message/context.js +5 -1
  67. package/Message/context.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/MessageSearch.js.map +1 -1
  72. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  73. package/OpenChannel/components/OpenChannelHeader.js +12 -12
  74. package/OpenChannel/components/OpenChannelInput.js +33 -25
  75. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  76. package/OpenChannel/components/OpenChannelMessage.js +27 -27
  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 +31 -31
  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-e0add710.js → OpenChannelListProvider-d99e3cd2.js} +3 -3
  86. package/{OpenChannelListProvider-e0add710.js.map → OpenChannelListProvider-d99e3cd2.js.map} +1 -1
  87. package/{OpenChannelProvider-49db4c6c.js → OpenChannelProvider-4857158c.js} +7 -7
  88. package/{OpenChannelProvider-49db4c6c.js.map → OpenChannelProvider-4857158c.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 +32 -24
  93. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  94. package/OpenChannelSettings/components/ParticipantUI.js +14 -14
  95. package/OpenChannelSettings/context.js +3 -3
  96. package/OpenChannelSettings.js +17 -17
  97. package/{RemoveMessageModal-10f50eae.js → RemoveMessageModal-38fef9c4.js} +3 -3
  98. package/{RemoveMessageModal-10f50eae.js.map → RemoveMessageModal-38fef9c4.js.map} +1 -1
  99. package/SendbirdProvider.js +378 -76
  100. package/SendbirdProvider.js.map +1 -1
  101. package/Thread/components/ParentMessageInfo.js +97 -52
  102. package/Thread/components/ParentMessageInfo.js.map +1 -1
  103. package/Thread/components/ParentMessageInfoItem.js +33 -25
  104. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  105. package/Thread/components/ThreadHeader.js +7 -7
  106. package/Thread/components/ThreadHeader.js.map +1 -1
  107. package/Thread/components/ThreadList.js +40 -33
  108. package/Thread/components/ThreadList.js.map +1 -1
  109. package/Thread/components/ThreadListItem.js +94 -50
  110. package/Thread/components/ThreadListItem.js.map +1 -1
  111. package/Thread/components/ThreadMessageInput.js +37 -39
  112. package/Thread/components/ThreadMessageInput.js.map +1 -1
  113. package/Thread/components/ThreadUI.js +56 -46
  114. package/Thread/components/ThreadUI.js.map +1 -1
  115. package/Thread/context.js +8 -8
  116. package/Thread.js +49 -42
  117. package/Thread.js.map +1 -1
  118. package/{ThreadProvider-128d5041.js → ThreadProvider-637aa7f0.js} +11 -8
  119. package/ThreadProvider-637aa7f0.js.map +1 -0
  120. package/{UserProfileContext-91e3b3f2.js → UserProfileContext-9040499b.js} +1 -1
  121. package/{UserProfileContext-91e3b3f2.js.map → UserProfileContext-9040499b.js.map} +1 -1
  122. package/{VoiceMessageInputWrapper-cbfa4f2b.js → VoiceMessageInputWrapper-f593346c.js} +7 -7
  123. package/{VoiceMessageInputWrapper-cbfa4f2b.js.map → VoiceMessageInputWrapper-f593346c.js.map} +1 -1
  124. package/VoicePlayer/context.js +3 -3
  125. package/VoicePlayer/useVoicePlayer.js +3 -3
  126. package/VoiceRecorder/context.js +11 -4
  127. package/VoiceRecorder/context.js.map +1 -1
  128. package/VoiceRecorder/useVoiceRecorder.js +2 -2
  129. package/{WebAudioUtils-5f47139c.js → WebAudioUtils-904afd00.js} +1 -1
  130. package/{WebAudioUtils-5f47139c.js.map → WebAudioUtils-904afd00.js.map} +1 -1
  131. package/{_rollupPluginBabelHelpers-eaf55eff.js → _rollupPluginBabelHelpers-8c286a7c.js} +1 -1
  132. package/_rollupPluginBabelHelpers-8c286a7c.js.map +1 -0
  133. package/{actionTypes-98eee9f4.js → actionTypes-bd8af98d.js} +1 -1
  134. package/{actionTypes-98eee9f4.js.map → actionTypes-bd8af98d.js.map} +1 -1
  135. package/cjs/App.js +123 -74
  136. package/cjs/App.js.map +1 -1
  137. package/cjs/Channel/components/ChannelHeader.js +18 -18
  138. package/cjs/Channel/components/ChannelUI.js +46 -41
  139. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  140. package/cjs/Channel/components/FileViewer.js +14 -14
  141. package/cjs/Channel/components/FrozenNotification.js +4 -4
  142. package/cjs/Channel/components/Message.js +59 -45
  143. package/cjs/Channel/components/Message.js.map +1 -1
  144. package/cjs/Channel/components/MessageInput.js +40 -38
  145. package/cjs/Channel/components/MessageInput.js.map +1 -1
  146. package/cjs/Channel/components/MessageList.js +85 -46
  147. package/cjs/Channel/components/MessageList.js.map +1 -1
  148. package/cjs/Channel/components/RemoveMessageModal.js +16 -16
  149. package/cjs/Channel/components/SuggestedMentionList.js +16 -16
  150. package/cjs/Channel/components/TypingIndicator.js +14 -14
  151. package/cjs/Channel/components/UnreadCount.js +5 -5
  152. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  153. package/cjs/Channel/context.js +11 -11
  154. package/cjs/Channel.js +46 -41
  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 +33 -32
  159. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  160. package/cjs/ChannelList/components/ChannelPreview.js +26 -26
  161. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  162. package/cjs/ChannelList/components/ChannelPreviewAction.js +15 -14
  163. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  164. package/cjs/ChannelList/context.js +7 -7
  165. package/cjs/ChannelList.js +29 -29
  166. package/cjs/{ChannelListProvider-634b78f3.js → ChannelListProvider-2ea52e8f.js} +19 -37
  167. package/cjs/ChannelListProvider-2ea52e8f.js.map +1 -0
  168. package/cjs/{ChannelProvider-5366f030.js → ChannelProvider-4057a4e6.js} +81 -28
  169. package/cjs/ChannelProvider-4057a4e6.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 +27 -21
  175. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  176. package/cjs/ChannelSettings/components/UserListItem.js +10 -10
  177. package/cjs/ChannelSettings/components/UserPanel.js +13 -13
  178. package/cjs/ChannelSettings/context.js +3 -3
  179. package/cjs/ChannelSettings.js +17 -17
  180. package/cjs/CreateChannel/components/CreateChannelUI.js +13 -13
  181. package/cjs/CreateChannel/components/InviteUsers.js +15 -14
  182. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  183. package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
  184. package/cjs/CreateChannel/context.js +4 -4
  185. package/cjs/CreateChannel.js +13 -13
  186. package/cjs/{CreateChannelProvider-65dcc450.js → CreateChannelProvider-83cd1b9a.js} +1 -1
  187. package/cjs/{CreateChannelProvider-65dcc450.js.map → CreateChannelProvider-83cd1b9a.js.map} +1 -1
  188. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  189. package/cjs/CreateOpenChannel/context.js +1 -1
  190. package/cjs/CreateOpenChannel.js +9 -9
  191. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -12
  192. package/cjs/EditUserProfile.js +12 -12
  193. package/cjs/{LocalizationContext-4fa55e6b.js → LocalizationContext-a7ac3575.js} +3 -3
  194. package/cjs/{LocalizationContext-4fa55e6b.js.map → LocalizationContext-a7ac3575.js.map} +1 -1
  195. package/cjs/{MediaQueryContext-e443379e.js → MediaQueryContext-f0b22fae.js} +20 -15
  196. package/cjs/MediaQueryContext-f0b22fae.js.map +1 -0
  197. package/cjs/{MemberList-3736f22c.js → MemberList-d02103a5.js} +17 -11
  198. package/cjs/MemberList-d02103a5.js.map +1 -0
  199. package/cjs/Message/context.js +5 -1
  200. package/cjs/Message/context.js.map +1 -1
  201. package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
  202. package/cjs/MessageSearch/context.js +1 -1
  203. package/cjs/MessageSearch.js +11 -11
  204. package/cjs/MessageSearch.js.map +1 -1
  205. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  206. package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
  207. package/cjs/OpenChannel/components/OpenChannelInput.js +33 -25
  208. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  209. package/cjs/OpenChannel/components/OpenChannelMessage.js +27 -27
  210. package/cjs/OpenChannel/components/OpenChannelMessageList.js +31 -31
  211. package/cjs/OpenChannel/components/OpenChannelUI.js +31 -31
  212. package/cjs/OpenChannel/context.js +8 -8
  213. package/cjs/OpenChannel.js +31 -31
  214. package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
  215. package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
  216. package/cjs/OpenChannelList/context.js +3 -3
  217. package/cjs/OpenChannelList.js +13 -13
  218. package/cjs/{OpenChannelListProvider-458abc0e.js → OpenChannelListProvider-8c304b22.js} +3 -3
  219. package/cjs/{OpenChannelListProvider-458abc0e.js.map → OpenChannelListProvider-8c304b22.js.map} +1 -1
  220. package/cjs/{OpenChannelProvider-84f42ba8.js → OpenChannelProvider-ea1d6825.js} +7 -7
  221. package/cjs/{OpenChannelProvider-84f42ba8.js.map → OpenChannelProvider-ea1d6825.js.map} +1 -1
  222. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +12 -12
  223. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  224. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  225. package/cjs/OpenChannelSettings/components/OperatorUI.js +32 -24
  226. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  227. package/cjs/OpenChannelSettings/components/ParticipantUI.js +14 -14
  228. package/cjs/OpenChannelSettings/context.js +3 -3
  229. package/cjs/OpenChannelSettings.js +17 -17
  230. package/cjs/{RemoveMessageModal-3535563a.js → RemoveMessageModal-95aeddfe.js} +3 -3
  231. package/cjs/{RemoveMessageModal-3535563a.js.map → RemoveMessageModal-95aeddfe.js.map} +1 -1
  232. package/cjs/SendbirdProvider.js +377 -75
  233. package/cjs/SendbirdProvider.js.map +1 -1
  234. package/cjs/Thread/components/ParentMessageInfo.js +97 -52
  235. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  236. package/cjs/Thread/components/ParentMessageInfoItem.js +33 -25
  237. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  238. package/cjs/Thread/components/ThreadHeader.js +7 -7
  239. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  240. package/cjs/Thread/components/ThreadList.js +40 -33
  241. package/cjs/Thread/components/ThreadList.js.map +1 -1
  242. package/cjs/Thread/components/ThreadListItem.js +94 -50
  243. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  244. package/cjs/Thread/components/ThreadMessageInput.js +37 -39
  245. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  246. package/cjs/Thread/components/ThreadUI.js +56 -46
  247. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  248. package/cjs/Thread/context.js +8 -8
  249. package/cjs/Thread.js +49 -42
  250. package/cjs/Thread.js.map +1 -1
  251. package/cjs/{ThreadProvider-d38505b4.js → ThreadProvider-6a39fc92.js} +11 -8
  252. package/cjs/ThreadProvider-6a39fc92.js.map +1 -0
  253. package/cjs/{UserProfileContext-83eaf6e8.js → UserProfileContext-a026a307.js} +1 -1
  254. package/cjs/{UserProfileContext-83eaf6e8.js.map → UserProfileContext-a026a307.js.map} +1 -1
  255. package/cjs/{VoiceMessageInputWrapper-68c8b8cb.js → VoiceMessageInputWrapper-ab392692.js} +7 -7
  256. package/cjs/{VoiceMessageInputWrapper-68c8b8cb.js.map → VoiceMessageInputWrapper-ab392692.js.map} +1 -1
  257. package/cjs/VoicePlayer/context.js +3 -3
  258. package/cjs/VoicePlayer/useVoicePlayer.js +3 -3
  259. package/cjs/VoiceRecorder/context.js +11 -4
  260. package/cjs/VoiceRecorder/context.js.map +1 -1
  261. package/cjs/VoiceRecorder/useVoiceRecorder.js +2 -2
  262. package/cjs/{WebAudioUtils-00b9890d.js → WebAudioUtils-2196360d.js} +1 -1
  263. package/cjs/{WebAudioUtils-00b9890d.js.map → WebAudioUtils-2196360d.js.map} +1 -1
  264. package/cjs/{_rollupPluginBabelHelpers-2c0fc9c3.js → _rollupPluginBabelHelpers-af66a654.js} +1 -1
  265. package/cjs/_rollupPluginBabelHelpers-af66a654.js.map +1 -0
  266. package/cjs/{actionTypes-fb3f6a66.js → actionTypes-8348f508.js} +1 -1
  267. package/cjs/{actionTypes-fb3f6a66.js.map → actionTypes-8348f508.js.map} +1 -1
  268. package/cjs/{color-83cbca20.js → color-2ebe48ee.js} +1 -1
  269. package/cjs/{color-83cbca20.js.map → color-2ebe48ee.js.map} +1 -1
  270. package/cjs/{compareIds-c2907ec8.js → compareIds-d863dd50.js} +1 -1
  271. package/cjs/{compareIds-c2907ec8.js.map → compareIds-d863dd50.js.map} +1 -1
  272. package/cjs/{const-75153738.js → const-08ab2fdd.js} +1 -1
  273. package/cjs/{const-75153738.js.map → const-08ab2fdd.js.map} +1 -1
  274. package/cjs/{const-17970c49.js → const-6414a39e.js} +1 -1
  275. package/cjs/{const-17970c49.js.map → const-6414a39e.js.map} +1 -1
  276. package/cjs/{consts-5ead6f3b.js → consts-083ada31.js} +1 -1
  277. package/cjs/{consts-5ead6f3b.js.map → consts-083ada31.js.map} +1 -1
  278. package/cjs/{consts-d2103ed5.js → consts-3cb3a988.js} +1 -1
  279. package/cjs/{consts-d2103ed5.js.map → consts-3cb3a988.js.map} +1 -1
  280. package/cjs/{consts-0db2bedc.js → consts-78795eea.js} +3 -3
  281. package/cjs/consts-78795eea.js.map +1 -0
  282. package/cjs/{consts-aaf1208c.js → consts-eadce101.js} +1 -1
  283. package/cjs/{consts-aaf1208c.js.map → consts-eadce101.js.map} +1 -1
  284. package/cjs/{context-d9a84cb9.js → context-717f3cfa.js} +2 -2
  285. package/cjs/{context-d9a84cb9.js.map → context-717f3cfa.js.map} +1 -1
  286. package/cjs/dist/index.css +253 -181
  287. package/cjs/dist/index.css.map +1 -1
  288. package/cjs/{index-56735815.js → index-00cb06de.js} +5 -5
  289. package/cjs/{index-56735815.js.map → index-00cb06de.js.map} +1 -1
  290. package/cjs/{index-265937df.js → index-05291303.js} +18 -2
  291. package/cjs/index-05291303.js.map +1 -0
  292. package/cjs/{index-47e4bdbc.js → index-0dad3b72.js} +1 -1
  293. package/cjs/{index-47e4bdbc.js.map → index-0dad3b72.js.map} +1 -1
  294. package/cjs/{index-41ce4c44.js → index-148f38a8.js} +2 -2
  295. package/cjs/{index-41ce4c44.js.map → index-148f38a8.js.map} +1 -1
  296. package/cjs/{index-1737cbae.js → index-33b26fc7.js} +4 -4
  297. package/cjs/{index-1737cbae.js.map → index-33b26fc7.js.map} +1 -1
  298. package/cjs/{index-01768a5e.js → index-4bfecbd3.js} +6 -6
  299. package/cjs/{index-01768a5e.js.map → index-4bfecbd3.js.map} +1 -1
  300. package/cjs/index-564380b1.js +441 -0
  301. package/cjs/index-564380b1.js.map +1 -0
  302. package/cjs/{index-61c3208b.js → index-5d3946d1.js} +4 -4
  303. package/cjs/{index-61c3208b.js.map → index-5d3946d1.js.map} +1 -1
  304. package/cjs/{index-fcd2f4ff.js → index-73f2b1ce.js} +3 -2
  305. package/cjs/{index-fcd2f4ff.js.map → index-73f2b1ce.js.map} +1 -1
  306. package/cjs/{index-6ac703ea.js → index-77d2b6d3.js} +18 -12
  307. package/cjs/index-77d2b6d3.js.map +1 -0
  308. package/cjs/{index-c8c25288.js → index-793e52a7.js} +3 -3
  309. package/cjs/{index-c8c25288.js.map → index-793e52a7.js.map} +1 -1
  310. package/cjs/{index-552eb819.js → index-8fb98e2d.js} +3 -3
  311. package/cjs/{index-552eb819.js.map → index-8fb98e2d.js.map} +1 -1
  312. package/cjs/{index-5307f6c1.js → index-9b389aa4.js} +12 -7
  313. package/cjs/index-9b389aa4.js.map +1 -0
  314. package/cjs/{index-22bdf04e.js → index-b6443976.js} +2 -2
  315. package/cjs/{index-22bdf04e.js.map → index-b6443976.js.map} +1 -1
  316. package/cjs/{index-09f8f2a4.js → index-b8d7e1e9.js} +3 -3
  317. package/cjs/{index-09f8f2a4.js.map → index-b8d7e1e9.js.map} +1 -1
  318. package/cjs/{index-be9c5a7d.js → index-c2afb27d.js} +2 -2
  319. package/cjs/{index-be9c5a7d.js.map → index-c2afb27d.js.map} +1 -1
  320. package/cjs/{index-10d8f30f.js → index-f70fcb3a.js} +1 -1
  321. package/cjs/{index-10d8f30f.js.map → index-f70fcb3a.js.map} +1 -1
  322. package/cjs/index.js +60 -58
  323. package/cjs/index.js.map +1 -1
  324. package/cjs/{index.module-3e7701ca.js → index.module-045566c2.js} +1 -1
  325. package/cjs/{index.module-3e7701ca.js.map → index.module-045566c2.js.map} +1 -1
  326. package/cjs/sendbirdSelectors.js +3 -3
  327. package/cjs/{stringSet-c24927d9.js → stringSet-12caaa90.js} +1 -1
  328. package/cjs/{stringSet-c24927d9.js.map → stringSet-12caaa90.js.map} +1 -1
  329. package/cjs/{tokenize-1441f448.js → tokenize-6d05ba0a.js} +7 -3
  330. package/cjs/tokenize-6d05ba0a.js.map +1 -0
  331. package/cjs/{topics-0df2f6f9.js → topics-d00505e4.js} +1 -1
  332. package/cjs/{topics-0df2f6f9.js.map → topics-d00505e4.js.map} +1 -1
  333. package/cjs/{types-df20b895.js → types-0d699a7d.js} +1 -1
  334. package/cjs/types-0d699a7d.js.map +1 -0
  335. package/cjs/ui/Accordion.js +2 -2
  336. package/cjs/ui/AccordionGroup.js +2 -2
  337. package/cjs/ui/AdminMessage.js +2 -2
  338. package/cjs/ui/Avatar.js +1 -1
  339. package/cjs/ui/Badge.js +4 -4
  340. package/cjs/ui/BottomSheet.js +1 -1
  341. package/cjs/ui/Button.js +2 -2
  342. package/cjs/ui/ChannelAvatar.js +2 -2
  343. package/cjs/ui/ConnectionStatus.js +4 -4
  344. package/cjs/ui/ContextMenu.js +39 -26
  345. package/cjs/ui/ContextMenu.js.map +1 -1
  346. package/cjs/ui/DateSeparator.js +3 -3
  347. package/cjs/ui/EmojiReactions.js +252 -47
  348. package/cjs/ui/EmojiReactions.js.map +1 -1
  349. package/cjs/ui/FileMessageItemBody.js +6 -6
  350. package/cjs/ui/FileViewer.js +8 -8
  351. package/cjs/ui/Icon.js +190 -167
  352. package/cjs/ui/Icon.js.map +1 -1
  353. package/cjs/ui/IconButton.js +1 -1
  354. package/cjs/ui/Input.js +2 -2
  355. package/cjs/ui/Label.js +2 -2
  356. package/cjs/ui/LinkLabel.js +2 -2
  357. package/cjs/ui/MentionLabel.js +10 -10
  358. package/cjs/ui/MentionUserLabel.js +1 -1
  359. package/cjs/ui/MessageContent.js +60 -401
  360. package/cjs/ui/MessageContent.js.map +1 -1
  361. package/cjs/ui/MessageInput.js +12 -12
  362. package/cjs/ui/MessageItemMenu.js +22 -15
  363. package/cjs/ui/MessageItemMenu.js.map +1 -1
  364. package/cjs/ui/MessageItemReactionMenu.js +14 -7
  365. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  366. package/cjs/ui/MessageSearchFileItem.js +10 -10
  367. package/cjs/ui/MessageSearchItem.js +8 -8
  368. package/cjs/ui/MessageStatus.js +10 -10
  369. package/cjs/ui/Modal.js +7 -7
  370. package/cjs/ui/OGMessageItemBody.js +14 -14
  371. package/cjs/ui/OpenChannelAdminMessage.js +2 -2
  372. package/cjs/ui/OpenChannelAvatar.js +5 -5
  373. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  374. package/cjs/ui/OpenchannelFileMessage.js +19 -17
  375. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  376. package/cjs/ui/OpenchannelOGMessage.js +53 -55
  377. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  378. package/cjs/ui/OpenchannelThumbnailMessage.js +18 -16
  379. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  380. package/cjs/ui/OpenchannelUserMessage.js +23 -19
  381. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  382. package/cjs/ui/PlaceHolder.js +5 -5
  383. package/cjs/ui/PlaybackTime.js +2 -2
  384. package/cjs/ui/QuoteMessage.js +6 -6
  385. package/cjs/ui/QuoteMessageInput.js +6 -6
  386. package/cjs/ui/ReactionBadge.js +2 -2
  387. package/cjs/ui/ReactionButton.js +18 -12
  388. package/cjs/ui/ReactionButton.js.map +1 -1
  389. package/cjs/ui/SortByRow.js +1 -1
  390. package/cjs/ui/TextButton.js +1 -1
  391. package/cjs/ui/TextMessageItemBody.js +14 -14
  392. package/cjs/ui/ThreadReplies.js +5 -5
  393. package/cjs/ui/ThumbnailMessageItemBody.js +15 -9
  394. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  395. package/cjs/ui/Toggle.js +1 -1
  396. package/cjs/ui/Tooltip.js +2 -2
  397. package/cjs/ui/UnknownMessageItemBody.js +6 -6
  398. package/cjs/ui/UserListItem.js +14 -13
  399. package/cjs/ui/UserListItem.js.map +1 -1
  400. package/cjs/ui/UserProfile.js +9 -9
  401. package/cjs/ui/VoiceMessageItemBody.js +5 -5
  402. package/cjs/ui/VoiceMessgeInput.js +7 -7
  403. package/cjs/ui/Word.js +10 -10
  404. package/cjs/useDirtyGetMentions-ccb235e4.js +77 -0
  405. package/cjs/useDirtyGetMentions-ccb235e4.js.map +1 -0
  406. package/cjs/{useLongPress-8aa00a28.js → useLongPress-5df6f108.js} +9 -5
  407. package/cjs/useLongPress-5df6f108.js.map +1 -0
  408. package/cjs/useSendbirdStateContext.js +1 -1
  409. package/cjs/utils/message/isVoiceMessage.js +2 -2
  410. package/cjs/{utils-4717b83e.js → utils-6436fe9d.js} +2 -2
  411. package/cjs/{utils-4717b83e.js.map → utils-6436fe9d.js.map} +1 -1
  412. package/cjs/{utils-111f523c.js → utils-abf8a0cd.js} +1 -1
  413. package/cjs/{utils-111f523c.js.map → utils-abf8a0cd.js.map} +1 -1
  414. package/cjs/{utils-93abfb7c.js → utils-b812f859.js} +1 -1
  415. package/cjs/{utils-93abfb7c.js.map → utils-b812f859.js.map} +1 -1
  416. package/cjs/{utils-a1fead2f.js → utils-ddd1b029.js} +1 -1
  417. package/cjs/{utils-a1fead2f.js.map → utils-ddd1b029.js.map} +1 -1
  418. package/cjs/{uuid-c854e2a9.js → uuid-cd931d55.js} +1 -1
  419. package/cjs/{uuid-c854e2a9.js.map → uuid-cd931d55.js.map} +1 -1
  420. package/cjs/withSendbird.js +1 -1
  421. package/{color-c1b95a91.js → color-be032457.js} +1 -1
  422. package/{color-c1b95a91.js.map → color-be032457.js.map} +1 -1
  423. package/{compareIds-74cf4016.js → compareIds-fa21456c.js} +1 -1
  424. package/{compareIds-74cf4016.js.map → compareIds-fa21456c.js.map} +1 -1
  425. package/{const-3af04f0a.js → const-48b39769.js} +1 -1
  426. package/{const-3af04f0a.js.map → const-48b39769.js.map} +1 -1
  427. package/{const-befef81d.js → const-71be96fe.js} +1 -1
  428. package/{const-befef81d.js.map → const-71be96fe.js.map} +1 -1
  429. package/{consts-a8bc28bd.js → consts-5cbd0257.js} +1 -1
  430. package/{consts-a8bc28bd.js.map → consts-5cbd0257.js.map} +1 -1
  431. package/{consts-9ece4263.js → consts-63e52cd8.js} +3 -3
  432. package/consts-63e52cd8.js.map +1 -0
  433. package/{consts-354db0d9.js → consts-967162b2.js} +1 -1
  434. package/{consts-354db0d9.js.map → consts-967162b2.js.map} +1 -1
  435. package/{consts-bb6cbaee.js → consts-c4702413.js} +1 -1
  436. package/{consts-bb6cbaee.js.map → consts-c4702413.js.map} +1 -1
  437. package/{context-38bde7ff.js → context-70804470.js} +2 -2
  438. package/{context-38bde7ff.js.map → context-70804470.js.map} +1 -1
  439. package/dist/index.css +253 -181
  440. package/dist/index.css.map +1 -1
  441. package/{index-ecf3a793.js → index-01c17da3.js} +12 -7
  442. package/index-01c17da3.js.map +1 -0
  443. package/{index-db801708.js → index-02d5e1f7.js} +5 -5
  444. package/{index-db801708.js.map → index-02d5e1f7.js.map} +1 -1
  445. package/{index-8a4d2b6e.js → index-0872eca4.js} +2 -2
  446. package/{index-8a4d2b6e.js.map → index-0872eca4.js.map} +1 -1
  447. package/{index-4554e20e.js → index-29ec12d6.js} +4 -4
  448. package/{index-4554e20e.js.map → index-29ec12d6.js.map} +1 -1
  449. package/{index-d8fdbe6f.js → index-2d3d2283.js} +16 -3
  450. package/index-2d3d2283.js.map +1 -0
  451. package/{index-1556dc4a.js → index-2eaeb4c8.js} +3 -3
  452. package/{index-1556dc4a.js.map → index-2eaeb4c8.js.map} +1 -1
  453. package/{index-321e838f.js → index-617179bd.js} +1 -1
  454. package/{index-321e838f.js.map → index-617179bd.js.map} +1 -1
  455. package/{index-88ab67cc.js → index-6ba87b2d.js} +4 -4
  456. package/{index-88ab67cc.js.map → index-6ba87b2d.js.map} +1 -1
  457. package/{index-ae8e6fc3.js → index-8d2735b6.js} +3 -3
  458. package/{index-ae8e6fc3.js.map → index-8d2735b6.js.map} +1 -1
  459. package/{index-14bb6832.js → index-a62f231a.js} +1 -1
  460. package/{index-14bb6832.js.map → index-a62f231a.js.map} +1 -1
  461. package/{index-1be3f6d7.js → index-c281a87e.js} +3 -3
  462. package/{index-1be3f6d7.js.map → index-c281a87e.js.map} +1 -1
  463. package/{index-96f6e11b.js → index-c3176145.js} +6 -6
  464. package/{index-96f6e11b.js.map → index-c3176145.js.map} +1 -1
  465. package/{index-a900bd78.js → index-c4af409f.js} +2 -2
  466. package/{index-a900bd78.js.map → index-c4af409f.js.map} +1 -1
  467. package/index-de27e990.js +435 -0
  468. package/index-de27e990.js.map +1 -0
  469. package/{index-aa215b1c.js → index-e307d0c3.js} +3 -3
  470. package/{index-aa215b1c.js.map → index-e307d0c3.js.map} +1 -1
  471. package/{index-8bf82e3b.js → index-efb59270.js} +18 -12
  472. package/index-efb59270.js.map +1 -0
  473. package/{index-67dd0c26.js → index-f22b46c2.js} +2 -2
  474. package/{index-67dd0c26.js.map → index-f22b46c2.js.map} +1 -1
  475. package/index.d.ts +5 -2
  476. package/index.js +60 -58
  477. package/index.js.map +1 -1
  478. package/{index.module-1c75b4f5.js → index.module-3529d572.js} +1 -1
  479. package/{index.module-1c75b4f5.js.map → index.module-3529d572.js.map} +1 -1
  480. package/package.json +2 -2
  481. package/sendbirdSelectors.js +3 -3
  482. package/{stringSet-6d89212b.js → stringSet-387833a3.js} +1 -1
  483. package/{stringSet-6d89212b.js.map → stringSet-387833a3.js.map} +1 -1
  484. package/{tokenize-2e969273.js → tokenize-c2f4569f.js} +7 -3
  485. package/tokenize-c2f4569f.js.map +1 -0
  486. package/{topics-8f4016e9.js → topics-019712e5.js} +1 -1
  487. package/{topics-8f4016e9.js.map → topics-019712e5.js.map} +1 -1
  488. package/{types-ebbbec62.js → types-34b09dae.js} +1 -1
  489. package/types-34b09dae.js.map +1 -0
  490. package/ui/Accordion.js +2 -2
  491. package/ui/AccordionGroup.js +2 -2
  492. package/ui/AdminMessage.js +2 -2
  493. package/ui/Avatar.js +1 -1
  494. package/ui/Badge.js +4 -4
  495. package/ui/BottomSheet.js +1 -1
  496. package/ui/Button.js +2 -2
  497. package/ui/ChannelAvatar.js +2 -2
  498. package/ui/ConnectionStatus.js +4 -4
  499. package/ui/ContextMenu.js +39 -26
  500. package/ui/ContextMenu.js.map +1 -1
  501. package/ui/DateSeparator.js +3 -3
  502. package/ui/EmojiReactions.js +253 -48
  503. package/ui/EmojiReactions.js.map +1 -1
  504. package/ui/FileMessageItemBody.js +6 -6
  505. package/ui/FileViewer.js +8 -8
  506. package/ui/Icon.js +190 -167
  507. package/ui/Icon.js.map +1 -1
  508. package/ui/IconButton.js +1 -1
  509. package/ui/Input.js +2 -2
  510. package/ui/Label.js +2 -2
  511. package/ui/LinkLabel.js +2 -2
  512. package/ui/MentionLabel.js +10 -10
  513. package/ui/MentionUserLabel.js +1 -1
  514. package/ui/MessageContent.js +61 -402
  515. package/ui/MessageContent.js.map +1 -1
  516. package/ui/MessageInput.js +12 -12
  517. package/ui/MessageItemMenu.js +22 -15
  518. package/ui/MessageItemMenu.js.map +1 -1
  519. package/ui/MessageItemReactionMenu.js +14 -7
  520. package/ui/MessageItemReactionMenu.js.map +1 -1
  521. package/ui/MessageSearchFileItem.js +10 -10
  522. package/ui/MessageSearchItem.js +8 -8
  523. package/ui/MessageStatus.js +10 -10
  524. package/ui/Modal.js +7 -7
  525. package/ui/OGMessageItemBody.js +14 -14
  526. package/ui/OpenChannelAdminMessage.js +2 -2
  527. package/ui/OpenChannelAvatar.js +5 -5
  528. package/ui/OpenchannelConversationHeader.js +6 -6
  529. package/ui/OpenchannelFileMessage.js +19 -17
  530. package/ui/OpenchannelFileMessage.js.map +1 -1
  531. package/ui/OpenchannelOGMessage.js +53 -55
  532. package/ui/OpenchannelOGMessage.js.map +1 -1
  533. package/ui/OpenchannelThumbnailMessage.js +18 -16
  534. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  535. package/ui/OpenchannelUserMessage.js +23 -19
  536. package/ui/OpenchannelUserMessage.js.map +1 -1
  537. package/ui/PlaceHolder.js +5 -5
  538. package/ui/PlaybackTime.js +2 -2
  539. package/ui/QuoteMessage.js +6 -6
  540. package/ui/QuoteMessageInput.js +6 -6
  541. package/ui/ReactionBadge.js +2 -2
  542. package/ui/ReactionButton.js +18 -12
  543. package/ui/ReactionButton.js.map +1 -1
  544. package/ui/SortByRow.js +1 -1
  545. package/ui/TextButton.js +1 -1
  546. package/ui/TextMessageItemBody.js +14 -14
  547. package/ui/ThreadReplies.js +5 -5
  548. package/ui/ThumbnailMessageItemBody.js +15 -9
  549. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  550. package/ui/Toggle.js +1 -1
  551. package/ui/Tooltip.js +2 -2
  552. package/ui/UnknownMessageItemBody.js +6 -6
  553. package/ui/UserListItem.js +14 -13
  554. package/ui/UserListItem.js.map +1 -1
  555. package/ui/UserProfile.js +9 -9
  556. package/ui/VoiceMessageItemBody.js +5 -5
  557. package/ui/VoiceMessgeInput.js +7 -7
  558. package/ui/Word.js +10 -10
  559. package/useDirtyGetMentions-a032c723.js +75 -0
  560. package/useDirtyGetMentions-a032c723.js.map +1 -0
  561. package/{useLongPress-8d44d259.js → useLongPress-b803e920.js} +9 -5
  562. package/useLongPress-b803e920.js.map +1 -0
  563. package/useSendbirdStateContext.js +1 -1
  564. package/utils/message/isVoiceMessage.js +2 -2
  565. package/{utils-b42f4fab.js → utils-1d8ffd91.js} +2 -2
  566. package/{utils-b42f4fab.js.map → utils-1d8ffd91.js.map} +1 -1
  567. package/{utils-c8b489c4.js → utils-28a3bfad.js} +1 -1
  568. package/{utils-c8b489c4.js.map → utils-28a3bfad.js.map} +1 -1
  569. package/{utils-7d781542.js → utils-43d93f46.js} +1 -1
  570. package/{utils-7d781542.js.map → utils-43d93f46.js.map} +1 -1
  571. package/{utils-8e039c1b.js → utils-cb06f177.js} +1 -1
  572. package/{utils-8e039c1b.js.map → utils-cb06f177.js.map} +1 -1
  573. package/{uuid-c94bd88b.js → uuid-295e6b8b.js} +1 -1
  574. package/{uuid-c94bd88b.js.map → uuid-295e6b8b.js.map} +1 -1
  575. package/withSendbird.js +1 -1
  576. package/ChannelListProvider-1d8f4d94.js.map +0 -1
  577. package/ChannelProvider-bba4a095.js.map +0 -1
  578. package/MediaQueryContext-8d283dc2.js.map +0 -1
  579. package/MemberList-38971d43.js.map +0 -1
  580. package/ThreadProvider-128d5041.js.map +0 -1
  581. package/_rollupPluginBabelHelpers-eaf55eff.js.map +0 -1
  582. package/cjs/ChannelListProvider-634b78f3.js.map +0 -1
  583. package/cjs/ChannelProvider-5366f030.js.map +0 -1
  584. package/cjs/MediaQueryContext-e443379e.js.map +0 -1
  585. package/cjs/MemberList-3736f22c.js.map +0 -1
  586. package/cjs/ThreadProvider-d38505b4.js.map +0 -1
  587. package/cjs/_rollupPluginBabelHelpers-2c0fc9c3.js.map +0 -1
  588. package/cjs/consts-0db2bedc.js.map +0 -1
  589. package/cjs/index-265937df.js.map +0 -1
  590. package/cjs/index-5307f6c1.js.map +0 -1
  591. package/cjs/index-6ac703ea.js.map +0 -1
  592. package/cjs/tokenize-1441f448.js.map +0 -1
  593. package/cjs/types-df20b895.js.map +0 -1
  594. package/cjs/useLongPress-8aa00a28.js.map +0 -1
  595. package/consts-9ece4263.js.map +0 -1
  596. package/index-8bf82e3b.js.map +0 -1
  597. package/index-d8fdbe6f.js.map +0 -1
  598. package/index-ecf3a793.js.map +0 -1
  599. package/tokenize-2e969273.js.map +0 -1
  600. package/types-ebbbec62.js.map +0 -1
  601. package/useLongPress-8d44d259.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';\n\ntype MessageUIProps = {\n message: EveryMessage;\n hasSeparator?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n handleScroll?: () => 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 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 } = 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 [ableMention, setAbleMention] = useState(true);\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 useEffect(() => {\n if (mentionedUsers?.length >= maxUserMentionCount) {\n setAbleMention(false);\n } else {\n setAbleMention(true);\n }\n }, [mentionedUsers]);\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\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 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 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","renderCustomSeparator","renderEditInput","renderMessage","renderMessageContent","dateLocale","useLocalization","globalStore","useSendbirdStateContext","userId","isOnline","isMentionEnabled","userMention","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","ableMention","setAbleMention","editMessageInputRef","useRef","messageScrollRef","displaySuggestedMentionList","length","isDisabledBecauseFrozen","isDisabledBecauseMuted","disabled","handleOnScroll","useHandleOnScrollCallback","hasMore","onScroll","scrollRef","filter","_ref2","i","indexOf","splice","_currentGroupChannel$","lastMessage","messageId","reactions","useLayoutEffect","animationTimeout","messageHighlightedTimeout","current","setTimeout","clearTimeout","messageAnimatedTimeout","renderedMessage","useMemo","renderedCustomSeparator","React","createElement","ref","className","getClassName","DateSeparator","Label","type","LabelTypography","CAPTION_2","color","LabelColors","ONBACKGROUND_2","format","createdAt","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 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,55 +1,56 @@
1
1
  import React__default, { useContext, useState, useEffect } from 'react';
2
- import { u as useChannelContext, a as isDisabledBecauseFrozen, b as isDisabledBecauseMuted, d as isOperator } from '../../ChannelProvider-bba4a095.js';
2
+ import { u as useChannelContext, a as isDisabledBecauseFrozen, b as isDisabledBecauseMuted, d as isOperator } from '../../ChannelProvider-6c5b02f1.js';
3
3
  import MessageInput from '../../ui/MessageInput.js';
4
4
  import QuoteMessageInput from '../../ui/QuoteMessageInput.js';
5
- import { a as LocalizationContext } from '../../LocalizationContext-ae38446a.js';
5
+ import { a as LocalizationContext } from '../../LocalizationContext-8b7b48ec.js';
6
6
  import useSendbirdStateContext from '../../useSendbirdStateContext.js';
7
7
  import SuggestedMentionList from './SuggestedMentionList.js';
8
- import { M as MessageInputKeys } from '../../const-befef81d.js';
9
- import { V as VoiceMessageInputWrapper } from '../../VoiceMessageInputWrapper-cbfa4f2b.js';
10
- import '../../UserProfileContext-91e3b3f2.js';
8
+ import { M as MessageInputKeys } from '../../const-71be96fe.js';
9
+ import { V as VoiceMessageInputWrapper } from '../../VoiceMessageInputWrapper-f593346c.js';
10
+ import { u as useDirtyGetMentions } from '../../useDirtyGetMentions-a032c723.js';
11
+ import { u as useMediaQueryContext } from '../../MediaQueryContext-744e0eb4.js';
12
+ import '../../UserProfileContext-9040499b.js';
11
13
  import 'prop-types';
12
- import '../../index-67dd0c26.js';
13
- import '../../index-321e838f.js';
14
- import '../../topics-8f4016e9.js';
15
- import '../../index-d8fdbe6f.js';
16
- import '../../_rollupPluginBabelHelpers-eaf55eff.js';
14
+ import '../../index-f22b46c2.js';
15
+ import '../../index-617179bd.js';
16
+ import '../../topics-019712e5.js';
17
+ import '../../index-2d3d2283.js';
18
+ import '../../_rollupPluginBabelHelpers-8c286a7c.js';
17
19
  import '../../utils/message/getOutgoingMessageState.js';
18
- import '../../compareIds-74cf4016.js';
19
- import '../../const-3af04f0a.js';
20
+ import '../../compareIds-fa21456c.js';
21
+ import '../../const-48b39769.js';
20
22
  import '@sendbird/chat/groupChannel';
21
- import '../../uuid-c94bd88b.js';
23
+ import '../../uuid-295e6b8b.js';
22
24
  import '@sendbird/chat/message';
23
- import '../../consts-9ece4263.js';
25
+ import '../../consts-63e52cd8.js';
24
26
  import '../../ui/IconButton.js';
25
27
  import '../../ui/Button.js';
26
- import '../../index-a900bd78.js';
27
- import '../../stringSet-6d89212b.js';
28
+ import '../../index-c4af409f.js';
29
+ import '../../stringSet-387833a3.js';
28
30
  import 'dompurify';
29
- import '../../consts-a8bc28bd.js';
31
+ import '../../consts-5cbd0257.js';
30
32
  import '../../ui/Icon.js';
31
- import '../../consts-bb6cbaee.js';
32
- import '../../consts-354db0d9.js';
33
- import '../../tokenize-2e969273.js';
33
+ import '../../consts-c4702413.js';
34
+ import '../../consts-967162b2.js';
35
+ import '../../tokenize-c2f4569f.js';
34
36
  import '../../ui/ImageRenderer.js';
35
37
  import '../../withSendbird.js';
36
38
  import '../../ui/Avatar.js';
37
- import '../../ThreadProvider-128d5041.js';
39
+ import '../../ThreadProvider-637aa7f0.js';
38
40
  import '../../Thread/context/types.js';
39
41
  import '@sendbird/chat';
40
42
  import '../../VoicePlayer/useVoicePlayer.js';
41
- import '../../index-ae8e6fc3.js';
43
+ import '../../index-8d2735b6.js';
42
44
  import '../../VoiceRecorder/context.js';
43
45
  import '../../VoiceRecorder/useVoiceRecorder.js';
44
- import '../../index-88ab67cc.js';
46
+ import '../../index-6ba87b2d.js';
45
47
  import '../../ui/PlaybackTime.js';
46
48
  import '../../ui/ProgressBar.js';
47
49
  import '../../ui/TextButton.js';
48
- import '../../color-c1b95a91.js';
50
+ import '../../color-be032457.js';
49
51
  import '../../ui/Modal.js';
50
52
  import 'react-dom';
51
- import '../../index-14bb6832.js';
52
- import '../../MediaQueryContext-8d283dc2.js';
53
+ import '../../index-a62f231a.js';
53
54
 
54
55
  const MessageInputWrapper = (props, ref) => {
55
56
  const {
@@ -71,12 +72,16 @@ const MessageInputWrapper = (props, ref) => {
71
72
  renderUserMentionItem
72
73
  } = useChannelContext();
73
74
  const globalStore = useSendbirdStateContext();
75
+ const {
76
+ isMobile
77
+ } = useMediaQueryContext();
74
78
  const channel = currentGroupChannel;
75
79
  const {
76
80
  isOnline,
77
81
  isMentionEnabled,
78
82
  userMention,
79
- isVoiceMessageEnabled
83
+ isVoiceMessageEnabled,
84
+ logger
80
85
  } = globalStore.config;
81
86
  const maxUserMentionCount = (userMention === null || userMention === void 0 ? void 0 : userMention.maxMentionCount) || 10;
82
87
  const maxUserSuggestionCount = (userMention === null || userMention === void 0 ? void 0 : userMention.maxSuggestionCount) || 15;
@@ -89,13 +94,12 @@ const MessageInputWrapper = (props, ref) => {
89
94
  const [mentionedUserIds, setMentionedUserIds] = useState([]);
90
95
  const [selectedUser, setSelectedUser] = useState(null);
91
96
  const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);
92
- const [ableMention, setAbleMention] = useState(true);
93
97
  const [messageInputEvent, setMessageInputEvent] = useState(null);
94
98
  const [showVoiceMessageInput, setShowVoiceMessageInput] = useState(false);
95
99
  const disabled = propDisabled || !initialized || isDisabledBecauseFrozen(channel) || isDisabledBecauseMuted(channel) || !isOnline;
96
100
  const isOperator$1 = isOperator(channel);
97
101
  const isBroadcast = channel === null || channel === void 0 ? void 0 : channel.isBroadcast;
98
- const displaySuggestedMentionList = isOnline && isMentionEnabled && mentionNickname.length > 0 && !isDisabledBecauseFrozen(channel) && !isDisabledBecauseMuted(channel);
102
+ const displaySuggestedMentionList = isOnline && isMentionEnabled && mentionNickname.length > 0 && !isDisabledBecauseFrozen(channel) && !isDisabledBecauseMuted(channel) && !isBroadcast;
99
103
 
100
104
  // Reset when channel changes
101
105
  useEffect(() => {
@@ -104,17 +108,15 @@ const MessageInputWrapper = (props, ref) => {
104
108
  setMentionedUserIds([]);
105
109
  setSelectedUser(null);
106
110
  setMentionSuggestedUsers([]);
107
- setAbleMention(true);
108
111
  setMessageInputEvent(null);
109
112
  setShowVoiceMessageInput(false);
110
113
  }, [channel === null || channel === void 0 ? void 0 : channel.url]);
111
- useEffect(() => {
112
- if ((mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) >= maxUserMentionCount) {
113
- setAbleMention(false);
114
- } else {
115
- setAbleMention(true);
116
- }
117
- }, [mentionedUsers]);
114
+ const mentionNodes = useDirtyGetMentions({
115
+ ref: ref || messageInputRef
116
+ }, {
117
+ logger
118
+ });
119
+ const ableMention = (mentionNodes === null || mentionNodes === void 0 ? void 0 : mentionNodes.length) < maxUserMentionCount;
118
120
  useEffect(() => {
119
121
  setMentionedUsers(mentionedUsers.filter(_ref => {
120
122
  let {
@@ -185,7 +187,7 @@ const MessageInputWrapper = (props, ref) => {
185
187
  },
186
188
  setMentionedUsers: setMentionedUsers,
187
189
  channel: channel,
188
- placeholder: quoteMessage && stringSet.MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER || isDisabledBecauseFrozen(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__DISABLED || isDisabledBecauseMuted(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED,
190
+ placeholder: quoteMessage && stringSet.MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER || isDisabledBecauseFrozen(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__DISABLED || isDisabledBecauseMuted(channel) && (isMobile ? stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED_SHORT : stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED),
189
191
  ref: ref || messageInputRef,
190
192
  disabled: disabled,
191
193
  renderFileUploadIcon: renderFileUploadIcon,
@@ -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';\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 channel = currentGroupChannel;\n\n const {\n isOnline,\n isMentionEnabled,\n userMention,\n isVoiceMessageEnabled,\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 [ableMention, setAbleMention] = useState(true);\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\n // Reset when channel changes\n useEffect(() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setSelectedUser(null);\n setMentionSuggestedUsers([]);\n setAbleMention(true);\n setMessageInputEvent(null);\n setShowVoiceMessageInput(false);\n }, [channel?.url]);\n\n useEffect(() => {\n if (mentionedUsers?.length >= maxUserMentionCount) {\n setAbleMention(false);\n } else {\n setAbleMention(true);\n }\n }, [mentionedUsers]);\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) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED)\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","channel","isOnline","isMentionEnabled","userMention","isVoiceMessageEnabled","config","maxUserMentionCount","maxMentionCount","maxUserSuggestionCount","maxSuggestionCount","stringSet","useContext","LocalizationContext","mentionNickname","setMentionNickname","useState","mentionedUsers","setMentionedUsers","mentionedUserIds","setMentionedUserIds","selectedUser","setSelectedUser","mentionSuggestedUsers","setMentionSuggestedUsers","ableMention","setAbleMention","messageInputEvent","setMessageInputEvent","showVoiceMessageInput","setShowVoiceMessageInput","utils","isOperator","isBroadcast","displaySuggestedMentionList","length","useEffect","url","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","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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"}