@sendbird/uikit-react 3.4.6-0 → 3.4.6-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 (691) hide show
  1. package/App.js +45 -45
  2. package/CHANGELOG.md +14 -0
  3. package/Channel/components/ChannelHeader.js +20 -20
  4. package/Channel/components/ChannelHeader.js.map +1 -1
  5. package/Channel/components/ChannelUI.js +39 -38
  6. package/Channel/components/ChannelUI.js.map +1 -1
  7. package/Channel/components/FileViewer.js +15 -15
  8. package/Channel/components/FrozenNotification.js +4 -4
  9. package/Channel/components/Message.js +43 -42
  10. package/Channel/components/Message.js.map +1 -1
  11. package/Channel/components/MessageInput.js +27 -28
  12. package/Channel/components/MessageInput.js.map +1 -1
  13. package/Channel/components/MessageList.js +41 -59
  14. package/Channel/components/MessageList.js.map +1 -1
  15. package/Channel/components/RemoveMessageModal.js +17 -17
  16. package/Channel/components/RemoveMessageModal.js.map +1 -1
  17. package/Channel/components/SuggestedMentionList.js +23 -30
  18. package/Channel/components/SuggestedMentionList.js.map +1 -1
  19. package/Channel/components/TypingIndicator.js +15 -15
  20. package/Channel/components/TypingIndicator.js.map +1 -1
  21. package/Channel/components/UnreadCount.js +4 -4
  22. package/Channel/context.js +14 -14
  23. package/Channel.js +39 -38
  24. package/Channel.js.map +1 -1
  25. package/ChannelList/components/AddChannel.js +15 -15
  26. package/ChannelList/components/ChannelListHeader.js +6 -6
  27. package/ChannelList/components/ChannelListUI.js +29 -30
  28. package/ChannelList/components/ChannelListUI.js.map +1 -1
  29. package/ChannelList/components/ChannelPreview.js +27 -27
  30. package/ChannelList/components/ChannelPreview.js.map +1 -1
  31. package/ChannelList/components/ChannelPreviewAction.js +14 -14
  32. package/ChannelList/context.js +8 -8
  33. package/ChannelList.js +29 -30
  34. package/ChannelList.js.map +1 -1
  35. package/{ChannelListProvider-b7ce527e.js → ChannelListProvider-45cf488b.js} +8 -8
  36. package/ChannelListProvider-45cf488b.js.map +1 -0
  37. package/{ChannelProvider-cd9afff3.js → ChannelProvider-9a52ed96.js} +12 -12
  38. package/ChannelProvider-9a52ed96.js.map +1 -0
  39. package/ChannelSettings/components/ChannelProfile.js +11 -11
  40. package/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  41. package/ChannelSettings/components/EditDetailsModal.js +11 -11
  42. package/ChannelSettings/components/LeaveChannel.js +11 -11
  43. package/ChannelSettings/components/ModerationPanel.js +14 -14
  44. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  45. package/ChannelSettings/components/UserListItem.js +10 -10
  46. package/ChannelSettings/components/UserPanel.js +14 -14
  47. package/ChannelSettings/components/UserPanel.js.map +1 -1
  48. package/ChannelSettings/context.js +3 -3
  49. package/ChannelSettings/context.js.map +1 -1
  50. package/ChannelSettings.js +17 -17
  51. package/CreateChannel/components/CreateChannelUI.js +13 -13
  52. package/CreateChannel/components/InviteUsers.js +16 -14
  53. package/CreateChannel/components/InviteUsers.js.map +1 -1
  54. package/CreateChannel/components/SelectChannelType.js +10 -10
  55. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  56. package/CreateChannel/context.js +4 -4
  57. package/CreateChannel.js +13 -13
  58. package/{CreateChannelProvider-d7e8a10f.js → CreateChannelProvider-8c395571.js} +1 -1
  59. package/{CreateChannelProvider-d7e8a10f.js.map → CreateChannelProvider-8c395571.js.map} +1 -1
  60. package/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  61. package/CreateOpenChannel/context.js +1 -1
  62. package/CreateOpenChannel.js +9 -9
  63. package/CreateOpenChannel.js.map +1 -1
  64. package/EditUserProfile/components/EditUserProfileUI.js +11 -12
  65. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  66. package/EditUserProfile.js +11 -12
  67. package/EditUserProfile.js.map +1 -1
  68. package/{LocalizationContext-43b10f97.js → LocalizationContext-428ea690.js} +3 -3
  69. package/{LocalizationContext-43b10f97.js.map → LocalizationContext-428ea690.js.map} +1 -1
  70. package/{MediaQueryContext-f2df2472.js → MediaQueryContext-e4d4fb2a.js} +7 -7
  71. package/{MediaQueryContext-f2df2472.js.map → MediaQueryContext-e4d4fb2a.js.map} +1 -1
  72. package/{MemberList-70806978.js → MemberList-f0614320.js} +5 -5
  73. package/MemberList-f0614320.js.map +1 -0
  74. package/MessageSearch/components/MessageSearchUI.js +11 -11
  75. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  76. package/MessageSearch/context.js +1 -1
  77. package/MessageSearch/context.js.map +1 -1
  78. package/MessageSearch.js +11 -11
  79. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  80. package/OpenChannel/components/OpenChannelHeader.js +12 -12
  81. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  82. package/OpenChannel/components/OpenChannelInput.js +19 -19
  83. package/OpenChannel/components/OpenChannelMessage.js +28 -27
  84. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  85. package/OpenChannel/components/OpenChannelMessageList.js +33 -67
  86. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  87. package/OpenChannel/components/OpenChannelUI.js +32 -30
  88. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  89. package/OpenChannel/context.js +8 -8
  90. package/OpenChannel.js +32 -30
  91. package/OpenChannel.js.map +1 -1
  92. package/OpenChannelList/components/OpenChannelListUI.js +13 -13
  93. package/OpenChannelList/components/OpenChannelPreview.js +4 -4
  94. package/OpenChannelList/context.js +3 -3
  95. package/OpenChannelList.js +13 -13
  96. package/OpenChannelList.js.map +1 -1
  97. package/{OpenChannelListProvider-22244a14.js → OpenChannelListProvider-1657d7da.js} +6 -4
  98. package/OpenChannelListProvider-1657d7da.js.map +1 -0
  99. package/{OpenChannelProvider-36270182.js → OpenChannelProvider-de3ddd2b.js} +8 -8
  100. package/OpenChannelProvider-de3ddd2b.js.map +1 -0
  101. package/OpenChannelSettings/components/EditDetailsModal.js +12 -12
  102. package/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  103. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  104. package/OpenChannelSettings/components/OperatorUI.js +16 -16
  105. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  106. package/OpenChannelSettings/components/ParticipantUI.js +14 -14
  107. package/OpenChannelSettings/context.js +3 -3
  108. package/OpenChannelSettings.js +17 -17
  109. package/{RemoveMessageModal-d0a5c64c.js → RemoveMessageModal-cced59b5.js} +3 -3
  110. package/{RemoveMessageModal-d0a5c64c.js.map → RemoveMessageModal-cced59b5.js.map} +1 -1
  111. package/SendbirdProvider.js +143 -111
  112. package/SendbirdProvider.js.map +1 -1
  113. package/Thread/components/ParentMessageInfo.js +30 -30
  114. package/Thread/components/ParentMessageInfoItem.js +18 -18
  115. package/Thread/components/ThreadHeader.js +6 -6
  116. package/Thread/components/ThreadList.js +34 -33
  117. package/Thread/components/ThreadList.js.map +1 -1
  118. package/Thread/components/ThreadListItem.js +33 -33
  119. package/Thread/components/ThreadListItem.js.map +1 -1
  120. package/Thread/components/ThreadMessageInput.js +28 -29
  121. package/Thread/components/ThreadMessageInput.js.map +1 -1
  122. package/Thread/components/ThreadUI.js +37 -37
  123. package/Thread/context.js +8 -8
  124. package/Thread.js +37 -37
  125. package/{ThreadProvider-533e9025.js → ThreadProvider-c33f66a4.js} +9 -9
  126. package/ThreadProvider-c33f66a4.js.map +1 -0
  127. package/{UserProfileContext-12b6fabf.js → UserProfileContext-576f1ef9.js} +1 -1
  128. package/{UserProfileContext-12b6fabf.js.map → UserProfileContext-576f1ef9.js.map} +1 -1
  129. package/{VoiceMessageInputWrapper-c74412de.js → VoiceMessageInputWrapper-8f6bfd36.js} +19 -14
  130. package/VoiceMessageInputWrapper-8f6bfd36.js.map +1 -0
  131. package/VoicePlayer/context.js +3 -3
  132. package/VoicePlayer/useVoicePlayer.js +3 -4
  133. package/VoicePlayer/useVoicePlayer.js.map +1 -1
  134. package/VoiceRecorder/context.js +22 -125
  135. package/VoiceRecorder/context.js.map +1 -1
  136. package/VoiceRecorder/useVoiceRecorder.js +2 -3
  137. package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  138. package/WebAudioUtils-f9237c94.js +123 -0
  139. package/WebAudioUtils-f9237c94.js.map +1 -0
  140. package/{_rollupPluginBabelHelpers-3756a6a3.js → _rollupPluginBabelHelpers-6e60e429.js} +1 -1
  141. package/_rollupPluginBabelHelpers-6e60e429.js.map +1 -0
  142. package/cjs/App.js +45 -45
  143. package/cjs/Channel/components/ChannelHeader.js +20 -20
  144. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  145. package/cjs/Channel/components/ChannelUI.js +39 -38
  146. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  147. package/cjs/Channel/components/FileViewer.js +15 -15
  148. package/cjs/Channel/components/FrozenNotification.js +4 -4
  149. package/cjs/Channel/components/Message.js +47 -46
  150. package/cjs/Channel/components/Message.js.map +1 -1
  151. package/cjs/Channel/components/MessageInput.js +27 -28
  152. package/cjs/Channel/components/MessageInput.js.map +1 -1
  153. package/cjs/Channel/components/MessageList.js +41 -59
  154. package/cjs/Channel/components/MessageList.js.map +1 -1
  155. package/cjs/Channel/components/RemoveMessageModal.js +17 -17
  156. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  157. package/cjs/Channel/components/SuggestedMentionList.js +23 -30
  158. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  159. package/cjs/Channel/components/TypingIndicator.js +15 -15
  160. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  161. package/cjs/Channel/components/UnreadCount.js +4 -4
  162. package/cjs/Channel/context.js +14 -14
  163. package/cjs/Channel.js +39 -38
  164. package/cjs/Channel.js.map +1 -1
  165. package/cjs/ChannelList/components/AddChannel.js +15 -15
  166. package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
  167. package/cjs/ChannelList/components/ChannelListUI.js +29 -30
  168. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  169. package/cjs/ChannelList/components/ChannelPreview.js +27 -27
  170. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  171. package/cjs/ChannelList/components/ChannelPreviewAction.js +14 -14
  172. package/cjs/ChannelList/context.js +8 -8
  173. package/cjs/ChannelList.js +29 -30
  174. package/cjs/ChannelList.js.map +1 -1
  175. package/cjs/{ChannelListProvider-d8f65b18.js → ChannelListProvider-f74d4451.js} +8 -8
  176. package/cjs/ChannelListProvider-f74d4451.js.map +1 -0
  177. package/cjs/{ChannelProvider-473548f7.js → ChannelProvider-fcb80591.js} +12 -12
  178. package/cjs/ChannelProvider-fcb80591.js.map +1 -0
  179. package/cjs/ChannelSettings/components/ChannelProfile.js +11 -11
  180. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  181. package/cjs/ChannelSettings/components/EditDetailsModal.js +11 -11
  182. package/cjs/ChannelSettings/components/LeaveChannel.js +11 -11
  183. package/cjs/ChannelSettings/components/ModerationPanel.js +14 -14
  184. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  185. package/cjs/ChannelSettings/components/UserListItem.js +10 -10
  186. package/cjs/ChannelSettings/components/UserPanel.js +14 -14
  187. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  188. package/cjs/ChannelSettings/context.js +3 -3
  189. package/cjs/ChannelSettings/context.js.map +1 -1
  190. package/cjs/ChannelSettings.js +17 -17
  191. package/cjs/CreateChannel/components/CreateChannelUI.js +13 -13
  192. package/cjs/CreateChannel/components/InviteUsers.js +16 -14
  193. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  194. package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
  195. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  196. package/cjs/CreateChannel/context.js +4 -4
  197. package/cjs/CreateChannel.js +13 -13
  198. package/cjs/{CreateChannelProvider-387290bb.js → CreateChannelProvider-1be5d0c0.js} +1 -1
  199. package/cjs/{CreateChannelProvider-387290bb.js.map → CreateChannelProvider-1be5d0c0.js.map} +1 -1
  200. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  201. package/cjs/CreateOpenChannel/context.js +1 -1
  202. package/cjs/CreateOpenChannel.js +9 -9
  203. package/cjs/CreateOpenChannel.js.map +1 -1
  204. package/cjs/EditUserProfile/components/EditUserProfileUI.js +11 -12
  205. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  206. package/cjs/EditUserProfile.js +11 -12
  207. package/cjs/EditUserProfile.js.map +1 -1
  208. package/cjs/{LocalizationContext-e4a874cf.js → LocalizationContext-9b216d02.js} +3 -3
  209. package/cjs/{LocalizationContext-e4a874cf.js.map → LocalizationContext-9b216d02.js.map} +1 -1
  210. package/cjs/{MediaQueryContext-fcd92c17.js → MediaQueryContext-ea137add.js} +7 -7
  211. package/cjs/{MediaQueryContext-fcd92c17.js.map → MediaQueryContext-ea137add.js.map} +1 -1
  212. package/cjs/{MemberList-dbd3a4b4.js → MemberList-4f805690.js} +5 -5
  213. package/cjs/MemberList-4f805690.js.map +1 -0
  214. package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
  215. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  216. package/cjs/MessageSearch/context.js +1 -1
  217. package/cjs/MessageSearch/context.js.map +1 -1
  218. package/cjs/MessageSearch.js +11 -11
  219. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  220. package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
  221. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  222. package/cjs/OpenChannel/components/OpenChannelInput.js +19 -19
  223. package/cjs/OpenChannel/components/OpenChannelMessage.js +28 -27
  224. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  225. package/cjs/OpenChannel/components/OpenChannelMessageList.js +37 -71
  226. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  227. package/cjs/OpenChannel/components/OpenChannelUI.js +32 -30
  228. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  229. package/cjs/OpenChannel/context.js +8 -8
  230. package/cjs/OpenChannel.js +32 -30
  231. package/cjs/OpenChannel.js.map +1 -1
  232. package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
  233. package/cjs/OpenChannelList/components/OpenChannelPreview.js +4 -4
  234. package/cjs/OpenChannelList/context.js +3 -3
  235. package/cjs/OpenChannelList.js +13 -13
  236. package/cjs/OpenChannelList.js.map +1 -1
  237. package/cjs/{OpenChannelListProvider-89659c0b.js → OpenChannelListProvider-6883fa4a.js} +6 -4
  238. package/cjs/OpenChannelListProvider-6883fa4a.js.map +1 -0
  239. package/cjs/{OpenChannelProvider-3d3d606e.js → OpenChannelProvider-cb41bba9.js} +8 -8
  240. package/cjs/OpenChannelProvider-cb41bba9.js.map +1 -0
  241. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +12 -12
  242. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  243. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  244. package/cjs/OpenChannelSettings/components/OperatorUI.js +16 -16
  245. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  246. package/cjs/OpenChannelSettings/components/ParticipantUI.js +14 -14
  247. package/cjs/OpenChannelSettings/context.js +3 -3
  248. package/cjs/OpenChannelSettings.js +17 -17
  249. package/cjs/{RemoveMessageModal-21a7c6ac.js → RemoveMessageModal-193a514d.js} +3 -3
  250. package/cjs/{RemoveMessageModal-21a7c6ac.js.map → RemoveMessageModal-193a514d.js.map} +1 -1
  251. package/cjs/SendbirdProvider.js +147 -115
  252. package/cjs/SendbirdProvider.js.map +1 -1
  253. package/cjs/Thread/components/ParentMessageInfo.js +30 -30
  254. package/cjs/Thread/components/ParentMessageInfoItem.js +18 -18
  255. package/cjs/Thread/components/ThreadHeader.js +6 -6
  256. package/cjs/Thread/components/ThreadList.js +34 -33
  257. package/cjs/Thread/components/ThreadList.js.map +1 -1
  258. package/cjs/Thread/components/ThreadListItem.js +33 -33
  259. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  260. package/cjs/Thread/components/ThreadMessageInput.js +28 -29
  261. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  262. package/cjs/Thread/components/ThreadUI.js +37 -37
  263. package/cjs/Thread/context.js +8 -8
  264. package/cjs/Thread.js +37 -37
  265. package/cjs/{ThreadProvider-572d67c0.js → ThreadProvider-c3623e5f.js} +9 -9
  266. package/cjs/ThreadProvider-c3623e5f.js.map +1 -0
  267. package/cjs/{UserProfileContext-ce0c283c.js → UserProfileContext-ad079e6d.js} +1 -1
  268. package/cjs/{UserProfileContext-ce0c283c.js.map → UserProfileContext-ad079e6d.js.map} +1 -1
  269. package/cjs/{VoiceMessageInputWrapper-88ad4670.js → VoiceMessageInputWrapper-1c4004d1.js} +18 -13
  270. package/cjs/VoiceMessageInputWrapper-1c4004d1.js.map +1 -0
  271. package/cjs/VoicePlayer/context.js +3 -3
  272. package/cjs/VoicePlayer/useVoicePlayer.js +3 -4
  273. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
  274. package/cjs/VoiceRecorder/context.js +21 -124
  275. package/cjs/VoiceRecorder/context.js.map +1 -1
  276. package/cjs/VoiceRecorder/useVoiceRecorder.js +2 -3
  277. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  278. package/cjs/WebAudioUtils-33ee4d42.js +126 -0
  279. package/cjs/WebAudioUtils-33ee4d42.js.map +1 -0
  280. package/cjs/{_rollupPluginBabelHelpers-6ab4baac.js → _rollupPluginBabelHelpers-440ec6e2.js} +1 -1
  281. package/cjs/_rollupPluginBabelHelpers-440ec6e2.js.map +1 -0
  282. package/cjs/{color-168c1d53.js → color-8b30623d.js} +1 -1
  283. package/cjs/{color-168c1d53.js.map → color-8b30623d.js.map} +1 -1
  284. package/cjs/{compareIds-441b4983.js → compareIds-3dbb4f79.js} +1 -1
  285. package/cjs/{compareIds-441b4983.js.map → compareIds-3dbb4f79.js.map} +1 -1
  286. package/cjs/{const-0273bf9e.js → const-1e096998.js} +1 -1
  287. package/cjs/{const-0273bf9e.js.map → const-1e096998.js.map} +1 -1
  288. package/cjs/{const-cf4cec6a.js → const-7bb85121.js} +1 -1
  289. package/cjs/{const-cf4cec6a.js.map → const-7bb85121.js.map} +1 -1
  290. package/cjs/{consts-b8c0be49.js → consts-02c09d93.js} +1 -1
  291. package/cjs/{consts-b8c0be49.js.map → consts-02c09d93.js.map} +1 -1
  292. package/cjs/{consts-e193b1b8.js → consts-3ebe6f94.js} +1 -1
  293. package/cjs/{consts-e193b1b8.js.map → consts-3ebe6f94.js.map} +1 -1
  294. package/cjs/{consts-2e23914f.js → consts-54b7b2b1.js} +1 -1
  295. package/cjs/{consts-2e23914f.js.map → consts-54b7b2b1.js.map} +1 -1
  296. package/cjs/{consts-472d9347.js → consts-d1f579c4.js} +1 -1
  297. package/cjs/{consts-472d9347.js.map → consts-d1f579c4.js.map} +1 -1
  298. package/cjs/{context-d718fff1.js → context-855dcb8e.js} +2 -2
  299. package/cjs/{context-d718fff1.js.map → context-855dcb8e.js.map} +1 -1
  300. package/cjs/dist/index.css +57 -56
  301. package/cjs/dist/index.css.map +1 -1
  302. package/cjs/handlers/OpenChannelHandler.js.map +1 -1
  303. package/cjs/handlers/SessionHandler.js.map +1 -1
  304. package/cjs/{index-903c0f93.js → index-02729806.js} +24 -3
  305. package/cjs/index-02729806.js.map +1 -0
  306. package/cjs/{index-9dd8a18a.js → index-15a62d58.js} +5 -6
  307. package/cjs/index-15a62d58.js.map +1 -0
  308. package/cjs/{index-0e43cd69.js → index-3d6159df.js} +2 -2
  309. package/cjs/{index-0e43cd69.js.map → index-3d6159df.js.map} +1 -1
  310. package/cjs/index-5bba1fd5.js +41 -0
  311. package/cjs/index-5bba1fd5.js.map +1 -0
  312. package/cjs/{index-b2e4a79e.js → index-6d24cef9.js} +7 -7
  313. package/cjs/index-6d24cef9.js.map +1 -0
  314. package/cjs/{index-4894fc55.js → index-7f214e91.js} +7 -7
  315. package/cjs/index-7f214e91.js.map +1 -0
  316. package/cjs/{index-44341b78.js → index-8a187344.js} +6 -3
  317. package/cjs/index-8a187344.js.map +1 -0
  318. package/cjs/{index-3d08adec.js → index-8a64de0e.js} +4 -4
  319. package/cjs/index-8a64de0e.js.map +1 -0
  320. package/cjs/{index-d3b05e98.js → index-8d42b734.js} +2 -2
  321. package/cjs/index-8d42b734.js.map +1 -0
  322. package/cjs/{index-3a7584a0.js → index-9e320445.js} +28 -29
  323. package/cjs/index-9e320445.js.map +1 -0
  324. package/cjs/{index-630f7132.js → index-a1141d68.js} +14 -14
  325. package/cjs/index-a1141d68.js.map +1 -0
  326. package/cjs/{index-47105c4f.js → index-b95c8165.js} +2 -2
  327. package/cjs/index-b95c8165.js.map +1 -0
  328. package/cjs/{index-5075f3b2.js → index-d6f14382.js} +14 -14
  329. package/cjs/index-d6f14382.js.map +1 -0
  330. package/cjs/{index-813deccc.js → index-d85616b2.js} +1 -1
  331. package/cjs/{index-813deccc.js.map → index-d85616b2.js.map} +1 -1
  332. package/cjs/{index-f2d71843.js → index-ecfe08c9.js} +113 -30
  333. package/cjs/index-ecfe08c9.js.map +1 -0
  334. package/cjs/{index-ba9683ca.js → index-f8237241.js} +7 -3
  335. package/cjs/index-f8237241.js.map +1 -0
  336. package/cjs/index.js +49 -49
  337. package/cjs/sendbirdSelectors.js +2 -2
  338. package/cjs/sendbirdSelectors.js.map +1 -1
  339. package/cjs/{stringSet-76f7df68.js → stringSet-e52248ab.js} +1 -1
  340. package/cjs/{stringSet-76f7df68.js.map → stringSet-e52248ab.js.map} +1 -1
  341. package/cjs/{tokenize-5071d1a6.js → tokenize-c5dd544b.js} +19 -5
  342. package/cjs/tokenize-c5dd544b.js.map +1 -0
  343. package/cjs/{topics-f70c5e0f.js → topics-09d72ec0.js} +1 -1
  344. package/cjs/topics-09d72ec0.js.map +1 -0
  345. package/cjs/tslib.es6-957ba986.js +97 -0
  346. package/cjs/tslib.es6-957ba986.js.map +1 -0
  347. package/cjs/{types-43ef9367.js → types-68cc0fcf.js} +1 -1
  348. package/cjs/types-68cc0fcf.js.map +1 -0
  349. package/cjs/ui/Accordion.js +3 -3
  350. package/cjs/ui/AccordionGroup.js +2 -2
  351. package/cjs/ui/AdminMessage.js +3 -3
  352. package/cjs/ui/Avatar.js +2 -2
  353. package/cjs/ui/Badge.js +5 -5
  354. package/cjs/ui/BottomSheet.js +1 -1
  355. package/cjs/ui/BottomSheet.js.map +1 -1
  356. package/cjs/ui/Button.js +3 -3
  357. package/cjs/ui/Button.js.map +1 -1
  358. package/cjs/ui/ChannelAvatar.js +3 -3
  359. package/cjs/ui/ChannelAvatar.js.map +1 -1
  360. package/cjs/ui/Checkbox.js +2 -2
  361. package/cjs/ui/Checkbox.js.map +1 -1
  362. package/cjs/ui/ConnectionStatus.js +4 -4
  363. package/cjs/ui/ContextMenu.js +6 -6
  364. package/cjs/ui/ContextMenu.js.map +1 -1
  365. package/cjs/ui/DateSeparator.js +4 -4
  366. package/cjs/ui/EmojiReactions.js +7 -7
  367. package/cjs/ui/FileMessageItemBody.js +6 -6
  368. package/cjs/ui/FileViewer.js +8 -8
  369. package/cjs/ui/IconButton.js +1 -1
  370. package/cjs/ui/IconButton.js.map +1 -1
  371. package/cjs/ui/ImageRenderer.js +1 -1
  372. package/cjs/ui/ImageRenderer.js.map +1 -1
  373. package/cjs/ui/Input.js +2 -2
  374. package/cjs/ui/Label.js +2 -2
  375. package/cjs/ui/LinkLabel.js +2 -2
  376. package/cjs/ui/Loader.js +1 -1
  377. package/cjs/ui/MentionLabel.js +10 -10
  378. package/cjs/ui/MentionUserLabel.js +1 -1
  379. package/cjs/ui/MessageContent.js +28 -28
  380. package/cjs/ui/MessageContent.js.map +1 -1
  381. package/cjs/ui/MessageInput.js +24 -23
  382. package/cjs/ui/MessageInput.js.map +1 -1
  383. package/cjs/ui/MessageItemMenu.js +8 -8
  384. package/cjs/ui/MessageItemMenu.js.map +1 -1
  385. package/cjs/ui/MessageItemReactionMenu.js +5 -5
  386. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  387. package/cjs/ui/MessageSearchFileItem.js +11 -11
  388. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  389. package/cjs/ui/MessageSearchItem.js +9 -9
  390. package/cjs/ui/MessageSearchItem.js.map +1 -1
  391. package/cjs/ui/MessageStatus.js +10 -10
  392. package/cjs/ui/Modal.js +7 -7
  393. package/cjs/ui/Modal.js.map +1 -1
  394. package/cjs/ui/OGMessageItemBody.js +14 -13
  395. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  396. package/cjs/ui/OpenChannelAdminMessage.js +3 -3
  397. package/cjs/ui/OpenChannelAvatar.js +6 -6
  398. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  399. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  400. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  401. package/cjs/ui/OpenchannelFileMessage.js +16 -16
  402. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  403. package/cjs/ui/OpenchannelOGMessage.js +19 -18
  404. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  405. package/cjs/ui/OpenchannelThumbnailMessage.js +15 -15
  406. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  407. package/cjs/ui/OpenchannelUserMessage.js +16 -16
  408. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  409. package/cjs/ui/PlaceHolder.js +6 -6
  410. package/cjs/ui/PlaybackTime.js +2 -2
  411. package/cjs/ui/ProgressBar.js.map +1 -1
  412. package/cjs/ui/QuoteMessage.js +6 -6
  413. package/cjs/ui/QuoteMessage.js.map +1 -1
  414. package/cjs/ui/QuoteMessageInput.js +6 -6
  415. package/cjs/ui/ReactionBadge.js +3 -3
  416. package/cjs/ui/ReactionBadge.js.map +1 -1
  417. package/cjs/ui/ReactionButton.js +1 -1
  418. package/cjs/ui/SortByRow.js +2 -2
  419. package/cjs/ui/TextButton.js +2 -2
  420. package/cjs/ui/TextButton.js.map +1 -1
  421. package/cjs/ui/TextMessageItemBody.js +14 -13
  422. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  423. package/cjs/ui/ThreadReplies.js +6 -6
  424. package/cjs/ui/ThumbnailMessageItemBody.js +4 -4
  425. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  426. package/cjs/ui/Tooltip.js +3 -3
  427. package/cjs/ui/Tooltip.js.map +1 -1
  428. package/cjs/ui/TooltipWrapper.js +1 -1
  429. package/cjs/ui/UnknownMessageItemBody.js +6 -6
  430. package/cjs/ui/UserListItem.js +11 -11
  431. package/cjs/ui/UserListItem.js.map +1 -1
  432. package/cjs/ui/UserProfile.js +9 -9
  433. package/cjs/ui/VoiceMessageItemBody.js +5 -6
  434. package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
  435. package/cjs/ui/VoiceMessgeInput.js +8 -8
  436. package/cjs/ui/Word.js +11 -11
  437. package/cjs/ui/Word.js.map +1 -1
  438. package/cjs/{useLongPress-3582b310.js → useLongPress-640ea281.js} +3 -3
  439. package/cjs/{useLongPress-3582b310.js.map → useLongPress-640ea281.js.map} +1 -1
  440. package/cjs/useSendbirdStateContext.js +1 -1
  441. package/cjs/useSendbirdStateContext.js.map +1 -1
  442. package/cjs/utils/message/isVoiceMessage.js +2 -2
  443. package/cjs/utils/message/isVoiceMessage.js.map +1 -1
  444. package/cjs/{utils-1ebf89f9.js → utils-7346a672.js} +1 -1
  445. package/cjs/{utils-1ebf89f9.js.map → utils-7346a672.js.map} +1 -1
  446. package/cjs/{utils-39eb2189.js → utils-93739833.js} +2 -2
  447. package/cjs/utils-93739833.js.map +1 -0
  448. package/cjs/{utils-fdfc9b0a.js → utils-a82eaed9.js} +1 -1
  449. package/cjs/{utils-fdfc9b0a.js.map → utils-a82eaed9.js.map} +1 -1
  450. package/cjs/{utils-39a3f99e.js → utils-dd55b959.js} +1 -1
  451. package/cjs/utils-dd55b959.js.map +1 -0
  452. package/cjs/{uuid-f23c161c.js → uuid-a8af0c03.js} +1 -1
  453. package/cjs/{uuid-f23c161c.js.map → uuid-a8af0c03.js.map} +1 -1
  454. package/cjs/withSendbird.js +1 -1
  455. package/{color-e54d3ed7.js → color-2037c3b8.js} +1 -1
  456. package/{color-e54d3ed7.js.map → color-2037c3b8.js.map} +1 -1
  457. package/{compareIds-3e30a438.js → compareIds-b858e41a.js} +1 -1
  458. package/{compareIds-3e30a438.js.map → compareIds-b858e41a.js.map} +1 -1
  459. package/{const-71bd6867.js → const-10a01327.js} +1 -1
  460. package/{const-71bd6867.js.map → const-10a01327.js.map} +1 -1
  461. package/{const-48a3200e.js → const-85ec8faf.js} +1 -1
  462. package/{const-48a3200e.js.map → const-85ec8faf.js.map} +1 -1
  463. package/{consts-e4e1a8fc.js → consts-3fe926ac.js} +1 -1
  464. package/{consts-e4e1a8fc.js.map → consts-3fe926ac.js.map} +1 -1
  465. package/{consts-4b1e008b.js → consts-89b1e965.js} +1 -1
  466. package/{consts-4b1e008b.js.map → consts-89b1e965.js.map} +1 -1
  467. package/{consts-665331c7.js → consts-ef58410d.js} +1 -1
  468. package/{consts-665331c7.js.map → consts-ef58410d.js.map} +1 -1
  469. package/{consts-30f09302.js → consts-f3b2a046.js} +1 -1
  470. package/{consts-30f09302.js.map → consts-f3b2a046.js.map} +1 -1
  471. package/{context-993ee0c3.js → context-8436b333.js} +2 -2
  472. package/{context-993ee0c3.js.map → context-8436b333.js.map} +1 -1
  473. package/dist/index.css +57 -56
  474. package/dist/index.css.map +1 -1
  475. package/handlers/OpenChannelHandler.js.map +1 -1
  476. package/handlers/SessionHandler.js.map +1 -1
  477. package/{index-ec8cbdfb.js → index-10da4b99.js} +14 -14
  478. package/index-10da4b99.js.map +1 -0
  479. package/index-23251a75.js +39 -0
  480. package/index-23251a75.js.map +1 -0
  481. package/{index-95f0372d.js → index-2f83ba2a.js} +2 -2
  482. package/index-2f83ba2a.js.map +1 -0
  483. package/index-390c0bba.js +53 -0
  484. package/index-390c0bba.js.map +1 -0
  485. package/{index-a90edcd2.js → index-4a1325ab.js} +7 -7
  486. package/index-4a1325ab.js.map +1 -0
  487. package/{index-88523047.js → index-5cbdbcf9.js} +7 -7
  488. package/index-5cbdbcf9.js.map +1 -0
  489. package/{index-10377bc5.js → index-84b28e71.js} +5 -6
  490. package/index-84b28e71.js.map +1 -0
  491. package/{index-0f373e79.js → index-8b3cd0b6.js} +24 -3
  492. package/index-8b3cd0b6.js.map +1 -0
  493. package/{index-8a52a6f4.js → index-8d6fa44a.js} +113 -30
  494. package/index-8d6fa44a.js.map +1 -0
  495. package/{index-8f0ae983.js → index-8efe881f.js} +2 -2
  496. package/{index-8f0ae983.js.map → index-8efe881f.js.map} +1 -1
  497. package/{index-2932882f.js → index-b41d07df.js} +6 -3
  498. package/index-b41d07df.js.map +1 -0
  499. package/{index-5c20d787.js → index-d5a761b9.js} +1 -1
  500. package/{index-5c20d787.js.map → index-d5a761b9.js.map} +1 -1
  501. package/{index-207577d6.js → index-e01f2743.js} +7 -3
  502. package/index-e01f2743.js.map +1 -0
  503. package/{index-c77693d8.js → index-e0325c33.js} +2 -2
  504. package/index-e0325c33.js.map +1 -0
  505. package/{index-d75ba9c0.js → index-f0fa0260.js} +4 -4
  506. package/index-f0fa0260.js.map +1 -0
  507. package/{index-cd1a9173.js → index-f87c5aab.js} +14 -14
  508. package/index-f87c5aab.js.map +1 -0
  509. package/index.d.ts +1 -1
  510. package/index.js +49 -49
  511. package/package.json +4 -2
  512. package/sendbirdSelectors.js +2 -2
  513. package/sendbirdSelectors.js.map +1 -1
  514. package/{stringSet-2d42f6ff.js → stringSet-fa7e0d83.js} +1 -1
  515. package/{stringSet-2d42f6ff.js.map → stringSet-fa7e0d83.js.map} +1 -1
  516. package/{tokenize-cd9c48bb.js → tokenize-7bcc2072.js} +19 -6
  517. package/tokenize-7bcc2072.js.map +1 -0
  518. package/{topics-6d4bf2ed.js → topics-2647294d.js} +1 -1
  519. package/topics-2647294d.js.map +1 -0
  520. package/tslib.es6-debac48c.js +92 -0
  521. package/tslib.es6-debac48c.js.map +1 -0
  522. package/{types-2fb5793c.js → types-abb04b7a.js} +1 -1
  523. package/types-abb04b7a.js.map +1 -0
  524. package/ui/Accordion.js +3 -3
  525. package/ui/AccordionGroup.js +2 -2
  526. package/ui/AdminMessage.js +3 -3
  527. package/ui/Avatar.js +2 -2
  528. package/ui/Badge.js +5 -5
  529. package/ui/BottomSheet.js +1 -1
  530. package/ui/BottomSheet.js.map +1 -1
  531. package/ui/Button.js +3 -3
  532. package/ui/Button.js.map +1 -1
  533. package/ui/ChannelAvatar.js +3 -3
  534. package/ui/ChannelAvatar.js.map +1 -1
  535. package/ui/Checkbox.js +2 -2
  536. package/ui/Checkbox.js.map +1 -1
  537. package/ui/ConnectionStatus.js +4 -4
  538. package/ui/ContextMenu.js +6 -6
  539. package/ui/ContextMenu.js.map +1 -1
  540. package/ui/DateSeparator.js +4 -4
  541. package/ui/EmojiReactions.js +7 -7
  542. package/ui/FileMessageItemBody.js +6 -6
  543. package/ui/FileViewer.js +8 -8
  544. package/ui/IconButton.js +1 -1
  545. package/ui/IconButton.js.map +1 -1
  546. package/ui/ImageRenderer.js +1 -1
  547. package/ui/ImageRenderer.js.map +1 -1
  548. package/ui/Input.js +2 -2
  549. package/ui/Label.js +2 -2
  550. package/ui/LinkLabel.js +2 -2
  551. package/ui/Loader.js +1 -1
  552. package/ui/MentionLabel.js +10 -10
  553. package/ui/MentionUserLabel.js +1 -1
  554. package/ui/MessageContent.js +28 -28
  555. package/ui/MessageContent.js.map +1 -1
  556. package/ui/MessageInput.js +24 -23
  557. package/ui/MessageInput.js.map +1 -1
  558. package/ui/MessageItemMenu.js +8 -8
  559. package/ui/MessageItemMenu.js.map +1 -1
  560. package/ui/MessageItemReactionMenu.js +5 -5
  561. package/ui/MessageItemReactionMenu.js.map +1 -1
  562. package/ui/MessageSearchFileItem.js +11 -11
  563. package/ui/MessageSearchFileItem.js.map +1 -1
  564. package/ui/MessageSearchItem.js +9 -9
  565. package/ui/MessageSearchItem.js.map +1 -1
  566. package/ui/MessageStatus.js +10 -10
  567. package/ui/Modal.js +7 -7
  568. package/ui/Modal.js.map +1 -1
  569. package/ui/OGMessageItemBody.js +14 -13
  570. package/ui/OGMessageItemBody.js.map +1 -1
  571. package/ui/OpenChannelAdminMessage.js +3 -3
  572. package/ui/OpenChannelAvatar.js +6 -6
  573. package/ui/OpenChannelAvatar.js.map +1 -1
  574. package/ui/OpenchannelConversationHeader.js +6 -6
  575. package/ui/OpenchannelConversationHeader.js.map +1 -1
  576. package/ui/OpenchannelFileMessage.js +16 -16
  577. package/ui/OpenchannelFileMessage.js.map +1 -1
  578. package/ui/OpenchannelOGMessage.js +19 -18
  579. package/ui/OpenchannelOGMessage.js.map +1 -1
  580. package/ui/OpenchannelThumbnailMessage.js +15 -15
  581. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  582. package/ui/OpenchannelUserMessage.js +16 -16
  583. package/ui/OpenchannelUserMessage.js.map +1 -1
  584. package/ui/PlaceHolder.js +6 -6
  585. package/ui/PlaybackTime.js +2 -2
  586. package/ui/ProgressBar.js.map +1 -1
  587. package/ui/QuoteMessage.js +6 -6
  588. package/ui/QuoteMessage.js.map +1 -1
  589. package/ui/QuoteMessageInput.js +6 -6
  590. package/ui/ReactionBadge.js +3 -3
  591. package/ui/ReactionBadge.js.map +1 -1
  592. package/ui/ReactionButton.js +1 -1
  593. package/ui/SortByRow.js +2 -2
  594. package/ui/TextButton.js +2 -2
  595. package/ui/TextButton.js.map +1 -1
  596. package/ui/TextMessageItemBody.js +14 -13
  597. package/ui/TextMessageItemBody.js.map +1 -1
  598. package/ui/ThreadReplies.js +6 -6
  599. package/ui/ThumbnailMessageItemBody.js +4 -4
  600. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  601. package/ui/Tooltip.js +3 -3
  602. package/ui/Tooltip.js.map +1 -1
  603. package/ui/TooltipWrapper.js +1 -1
  604. package/ui/UnknownMessageItemBody.js +6 -6
  605. package/ui/UserListItem.js +11 -11
  606. package/ui/UserListItem.js.map +1 -1
  607. package/ui/UserProfile.js +9 -9
  608. package/ui/VoiceMessageItemBody.js +5 -6
  609. package/ui/VoiceMessageItemBody.js.map +1 -1
  610. package/ui/VoiceMessgeInput.js +8 -8
  611. package/ui/Word.js +11 -11
  612. package/ui/Word.js.map +1 -1
  613. package/{useLongPress-c1a00d6e.js → useLongPress-42dc7c5d.js} +3 -3
  614. package/{useLongPress-c1a00d6e.js.map → useLongPress-42dc7c5d.js.map} +1 -1
  615. package/useSendbirdStateContext.js +1 -1
  616. package/useSendbirdStateContext.js.map +1 -1
  617. package/utils/message/isVoiceMessage.js +2 -2
  618. package/utils/message/isVoiceMessage.js.map +1 -1
  619. package/{utils-3c726d0f.js → utils-1905e84d.js} +2 -2
  620. package/utils-1905e84d.js.map +1 -0
  621. package/{utils-4c1f97d4.js → utils-19ce54ee.js} +1 -1
  622. package/{utils-4c1f97d4.js.map → utils-19ce54ee.js.map} +1 -1
  623. package/{utils-a7563986.js → utils-87be98af.js} +1 -1
  624. package/{utils-a7563986.js.map → utils-87be98af.js.map} +1 -1
  625. package/{utils-760413c9.js → utils-b568cd44.js} +1 -1
  626. package/utils-b568cd44.js.map +1 -0
  627. package/{uuid-368c5040.js → uuid-e979d613.js} +1 -1
  628. package/{uuid-368c5040.js.map → uuid-e979d613.js.map} +1 -1
  629. package/withSendbird.js +1 -1
  630. package/.yarn/install-state.gz +0 -0
  631. package/ChannelListProvider-b7ce527e.js.map +0 -1
  632. package/ChannelProvider-cd9afff3.js.map +0 -1
  633. package/MemberList-70806978.js.map +0 -1
  634. package/OpenChannelListProvider-22244a14.js.map +0 -1
  635. package/OpenChannelProvider-36270182.js.map +0 -1
  636. package/ThreadProvider-533e9025.js.map +0 -1
  637. package/VoiceMessageInputWrapper-c74412de.js.map +0 -1
  638. package/_rollupPluginBabelHelpers-3756a6a3.js.map +0 -1
  639. package/actionTypes-f6400d21.js +0 -6
  640. package/actionTypes-f6400d21.js.map +0 -1
  641. package/cjs/ChannelListProvider-d8f65b18.js.map +0 -1
  642. package/cjs/ChannelProvider-473548f7.js.map +0 -1
  643. package/cjs/MemberList-dbd3a4b4.js.map +0 -1
  644. package/cjs/OpenChannelListProvider-89659c0b.js.map +0 -1
  645. package/cjs/OpenChannelProvider-3d3d606e.js.map +0 -1
  646. package/cjs/ThreadProvider-572d67c0.js.map +0 -1
  647. package/cjs/VoiceMessageInputWrapper-88ad4670.js.map +0 -1
  648. package/cjs/_rollupPluginBabelHelpers-6ab4baac.js.map +0 -1
  649. package/cjs/actionTypes-1b068888.js +0 -10
  650. package/cjs/actionTypes-1b068888.js.map +0 -1
  651. package/cjs/index-3a7584a0.js.map +0 -1
  652. package/cjs/index-3d08adec.js.map +0 -1
  653. package/cjs/index-44341b78.js.map +0 -1
  654. package/cjs/index-47105c4f.js.map +0 -1
  655. package/cjs/index-4894fc55.js.map +0 -1
  656. package/cjs/index-5075f3b2.js.map +0 -1
  657. package/cjs/index-630f7132.js.map +0 -1
  658. package/cjs/index-903c0f93.js.map +0 -1
  659. package/cjs/index-9dd8a18a.js.map +0 -1
  660. package/cjs/index-b2e4a79e.js.map +0 -1
  661. package/cjs/index-ba9683ca.js.map +0 -1
  662. package/cjs/index-d3b05e98.js.map +0 -1
  663. package/cjs/index-f2d71843.js.map +0 -1
  664. package/cjs/tokenize-5071d1a6.js.map +0 -1
  665. package/cjs/topics-f70c5e0f.js.map +0 -1
  666. package/cjs/tslib.es6-67bdb021.js +0 -176
  667. package/cjs/tslib.es6-67bdb021.js.map +0 -1
  668. package/cjs/types-43ef9367.js.map +0 -1
  669. package/cjs/utils-39a3f99e.js.map +0 -1
  670. package/cjs/utils-39eb2189.js.map +0 -1
  671. package/index-0f373e79.js.map +0 -1
  672. package/index-10377bc5.js.map +0 -1
  673. package/index-207577d6.js.map +0 -1
  674. package/index-2932882f.js.map +0 -1
  675. package/index-88523047.js.map +0 -1
  676. package/index-8a52a6f4.js.map +0 -1
  677. package/index-95f0372d.js.map +0 -1
  678. package/index-a90edcd2.js.map +0 -1
  679. package/index-c77693d8.js.map +0 -1
  680. package/index-cc626895.js +0 -54
  681. package/index-cc626895.js.map +0 -1
  682. package/index-cd1a9173.js.map +0 -1
  683. package/index-d75ba9c0.js.map +0 -1
  684. package/index-ec8cbdfb.js.map +0 -1
  685. package/tokenize-cd9c48bb.js.map +0 -1
  686. package/topics-6d4bf2ed.js.map +0 -1
  687. package/tslib.es6-5180f9d1.js +0 -171
  688. package/tslib.es6-5180f9d1.js.map +0 -1
  689. package/types-2fb5793c.js.map +0 -1
  690. package/utils-3c726d0f.js.map +0 -1
  691. package/utils-760413c9.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MessageInput.js","sources":["../../src/ui/MentionUserLabel/renderToString.ts","../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/hooks/usePaste/insertTemplate.ts","../../src/ui/MessageInput/hooks/usePaste/consts.ts","../../src/ui/MessageInput/hooks/usePaste/utils.ts","../../src/ui/MessageInput/hooks/usePaste/index.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["// cretes a sanitized string from a mention user label\nimport DOMPurify from 'dompurify';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ntype renderToStringParams = {\n userId: string;\n nickname: string;\n};\n\nexport default function renderToString({ userId, nickname }: renderToStringParams): string {\n // donot change this template, it wont work\n const el = `<span data-userid=\"${userId}\" data-sb-mention=\"true\" class=\"${MENTION_USER_LABEL_CLASSNAME}\">${nickname}</span>`;\n const purifier = DOMPurify(window);\n const sanitized_ = purifier.sanitize(el);\n const token = sanitized_.split(' ');\n const [spanTag, ...rest] = token;\n // we do this because DOMPurify removes the contenteditable attribute\n const sanitized = [spanTag, 'contenteditable=\"false\"', ...rest].join(' ');\n return sanitized;\n}\n","// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\nexport default debounce;\n","import { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport renderMentionLabelToString from '../../../MentionUserLabel/renderToString';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return renderMentionLabelToString({ userId, nickname: text });\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\nimport { TEXT_MESSAGE_BODY_CLASSNAME } from \"../../../TextMessageItemBody/consts\";\nimport { OG_MESSAGE_BODY_CLASSNAME } from '../../../OGMessageItemBody/consts';\n\nexport function querySelectorIncludingSelf(\n master: HTMLElement,\n selector: string,\n): HTMLElement | null {\n const result = [\n master,\n ...Array.from(master.querySelectorAll(selector))\n ].find((el) => el.matches(selector)) as HTMLElement | null;\n return result;\n}\n\n// Pasted dom node can be OG_MESSAGE or partial message or full message\n// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes\n// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME\nexport function getLeafNodes(master: HTMLElement): ChildNode[] {\n // og message\n const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);\n if (ogMessage) {\n return Array.from(ogMessage.childNodes);\n }\n\n const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);\n if (textMessageBody) {\n return Array.from(textMessageBody.childNodes);\n }\n\n return Array.from(master.childNodes);\n}\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n}\n\nexport function domToMessageTemplate(nodeArray: ChildNode[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n // currentValue can be node(from messageBody or messageInput) or text\n let mentionNode;\n // this looks awkward, but it is a fallback to set default text\n let text = (currentValue as HTMLSpanElement)?.innerText;\n\n // if text node, set text\n if (currentValue instanceof Text) {\n mentionNode = false;\n text = currentValue.textContent;\n }\n\n if (currentValue instanceof HTMLElement) {\n mentionNode = (currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT))\n ? currentValue\n : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);\n }\n\n // if mentionNode is not null, it is a mention\n if (mentionNode) {\n const text = (currentValue as HTMLSpanElement)?.innerText;\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n const mentionedMember = users.find((user) => user.userId === template.userId);\n // Object.values would return array-> [undefined] if the user is not in the channel\n if (mentionedMember) {\n userMap[template.userId] = mentionedMember;\n }\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n getLeafNodes,\n} from './utils';\n\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport default function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, collect leaf nodes and parse words\n const leafNodes = getLeafNodes(pasteNode);\n const words = domToMessageTemplate(leafNodes);\n const mentionedUsers = getUsersFromWords(words, channel);\n\n // side effects\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../smart-components/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport renderMentionLabelToString from '../MentionUserLabel/renderToString';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n StringObjType,\n convertWordToStringObj,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\nimport { tokenizeMessage } from '../../smart-components/Message/utils/tokens/tokenize';\nimport { USER_MENTION_PREFIX } from '../../smart-components/Message/consts';\nimport { TOKEN_TYPES } from '../../smart-components/Message/utils/tokens/types';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n}\n\nconst resetInput = (ref) => {\n try {\n ref.current.innerHTML = '';\n } catch {\n //\n }\n}\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch { }\n setMentionedUserIds([]);\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n const tokens = tokenizeMessage({\n messageText: message?.mentionedMessageTemplate,\n mentionedUsers,\n });\n textField.innerHTML = tokens.map((token) => {\n if (token.type === TOKEN_TYPES.mention) {\n const mentionedUser = mentionedUsers.find((user) => user.userId === token.userId);\n const nickname = `${USER_MENTION_PREFIX}${mentionedUser?.nickname || token.value || stringSet.MENTION_NAME__NO_NAME}`;\n return renderMentionLabelToString({\n userId: token.userId,\n nickname,\n });\n }\n return sanitizeString(token.value);\n }).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch { }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.innerText.length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = [...textField?.childNodes];\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderMentionLabelToString({\n userId: mentionSelectedUser?.userId,\n nickname: `${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`,\n });\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.innerText) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else if (node?.nodeType === NodeTypes.ElementNode && node?.nodeName === NodeNames.Div) {\n // handles newline in safari\n const { textContent = '' } = node;\n messageText += `\\n${textContent}`;\n mentionTemplate += `\\n${textContent}`;\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.innerText?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n const onPaste = usePaste({\n ref,\n setMentionedUserIds,\n setMentionedUsers,\n channel,\n setIsInput,\n setHeight,\n });\n\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter && e?.nativeEvent?.isComposing !== true) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(ref?.current?.innerText?.length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {!isInput && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.() || (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n onVoiceMessageIconClick: PropTypes.func,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n setMentionedUsers: PropTypes.func,\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n};\n\nexport default MessageInput;\n"],"names":["renderToString","_a","userId","nickname","el","concat","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","slice","sanitized","__spreadArray","join","sanitizeString","str","replace","i","charCodeAt","inserTemplateToDOM","templateList","nodes","map","template","text","renderMentionLabelToString","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","querySelectorIncludingSelf","master","selector","result","Array","from","querySelectorAll","find","matches","getLeafNodes","ogMessage","OG_MESSAGE_BODY_CLASSNAME","childNodes","textMessageBody","TEXT_MESSAGE_BODY_CLASSNAME","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","length","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","Text","textContent","HTMLElement","classList","contains","text_1","dataset","userid","getUsersFromWords","channel","userMap","users","members","mentionedMember","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","leafNodes","words","mentionedUsers","TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","createRange","sel","getSelection","setStart","collapse","removeAllRanges","addRange","focus","resetInput","current","_unused","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","_ref$current","_ref$current$innerTex","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","textFieldId","stringSet","useContext","LocalizationContext","fileInputRef","useRef","isInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","useMemo","elem","MAX_HEIGHT","offsetHeight","scrollHeight","height","error","initialValue","useEffect","_textField$innerText","textField","_unused2","messageId","_message$mentionedUse","_message$mentionedMes","_textField$innerText2","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","type","TOKEN_TYPES","mention","mentionedUser","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","_unused3","useMentionedLabelDetection","newMentionedUserIds","getElementsByClassName","_node$dataset","arrayEqual","_document","_childNodes$startNode","_document2","_childNodes$endNodeIn","frontTextNode","createTextNode","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","newNodes","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","_window","_window$getSelection","_document3","_document3$getSelecti","call","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","sendMessage","mentionTemplate","ElementNode","nodeName","NodeNames","Span","Br","Div","params","isEditDisabled","trim","editMessage","onPaste","getClassName","contentEditable","role","preventEvent","_e$nativeEvent","_ref$current2","_ref$current2$childNo","_ref$current3","_ref$current3$childNo","_ref$current3$childNo2","_ref$current$childNod","_ref$current$childNod2","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_ref$current4","_ref$current4$innerTe","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","func","shape","number","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"MessageInput.js","sources":["../../src/ui/MentionUserLabel/renderToString.ts","../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/hooks/usePaste/insertTemplate.ts","../../src/ui/MessageInput/hooks/usePaste/consts.ts","../../src/ui/MessageInput/hooks/usePaste/utils.ts","../../src/ui/MessageInput/hooks/usePaste/index.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["// cretes a sanitized string from a mention user label\nimport DOMPurify from 'dompurify';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ntype renderToStringParams = {\n userId: string;\n nickname: string;\n};\n\nexport default function renderToString({ userId, nickname }: renderToStringParams): string {\n // donot change this template, it wont work\n const el = `<span data-userid=\"${userId}\" data-sb-mention=\"true\" class=\"${MENTION_USER_LABEL_CLASSNAME}\">${nickname}</span>`;\n const purifier = DOMPurify(window);\n const sanitized_ = purifier.sanitize(el);\n const token = sanitized_.split(' ');\n const [spanTag, ...rest] = token;\n // we do this because DOMPurify removes the contenteditable attribute\n const sanitized = [spanTag, 'contenteditable=\"false\"', ...rest].join(' ');\n return sanitized;\n}\n","// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\nexport default debounce;\n","import { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport renderMentionLabelToString from '../../../MentionUserLabel/renderToString';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return renderMentionLabelToString({ userId, nickname: text });\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\nimport { TEXT_MESSAGE_BODY_CLASSNAME } from '../../../TextMessageItemBody/consts';\nimport { OG_MESSAGE_BODY_CLASSNAME } from '../../../OGMessageItemBody/consts';\n\nexport function querySelectorIncludingSelf(\n master: HTMLElement,\n selector: string,\n): HTMLElement | null {\n const result = [\n master,\n ...Array.from(master.querySelectorAll(selector)),\n ].find((el) => el.matches(selector)) as HTMLElement | null;\n return result;\n}\n\n// Pasted dom node can be OG_MESSAGE or partial message or full message\n// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes\n// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME\nexport function getLeafNodes(master: HTMLElement): ChildNode[] {\n // og message\n const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);\n if (ogMessage) {\n return Array.from(ogMessage.childNodes);\n }\n\n const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);\n if (textMessageBody) {\n return Array.from(textMessageBody.childNodes);\n }\n\n return Array.from(master.childNodes);\n}\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n}\n\nexport function domToMessageTemplate(nodeArray: ChildNode[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n // currentValue can be node(from messageBody or messageInput) or text\n let mentionNode;\n // this looks awkward, but it is a fallback to set default text\n let text = (currentValue as HTMLSpanElement)?.innerText;\n\n // if text node, set text\n if (currentValue instanceof Text) {\n mentionNode = false;\n text = currentValue.textContent;\n }\n\n if (currentValue instanceof HTMLElement) {\n mentionNode = (currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT))\n ? currentValue\n : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);\n }\n\n // if mentionNode is not null, it is a mention\n if (mentionNode) {\n const text = (currentValue as HTMLSpanElement)?.innerText;\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n const mentionedMember = users.find((user) => user.userId === template.userId);\n // Object.values would return array-> [undefined] if the user is not in the channel\n if (mentionedMember) {\n userMap[template.userId] = mentionedMember;\n }\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n getLeafNodes,\n} from './utils';\n\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport default function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, collect leaf nodes and parse words\n const leafNodes = getLeafNodes(pasteNode);\n const words = domToMessageTemplate(leafNodes);\n const mentionedUsers = getUsersFromWords(words, channel);\n\n // side effects\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../smart-components/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport renderMentionLabelToString from '../MentionUserLabel/renderToString';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n StringObjType,\n convertWordToStringObj,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\nimport { tokenizeMessage } from '../../smart-components/Message/utils/tokens/tokenize';\nimport { USER_MENTION_PREFIX } from '../../smart-components/Message/consts';\nimport { TOKEN_TYPES } from '../../smart-components/Message/utils/tokens/types';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n}\n\nconst resetInput = (ref) => {\n try {\n ref.current.innerHTML = '';\n } catch {\n //\n }\n}\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n } = props;\n const textField = ref?.current;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch { }\n setMentionedUserIds([]);\n setIsInput(textField?.innerText?.trim().length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n const tokens = tokenizeMessage({\n messageText: message?.mentionedMessageTemplate,\n mentionedUsers,\n });\n textField.innerHTML = tokens.map((token) => {\n if (token.type === TOKEN_TYPES.mention) {\n const mentionedUser = mentionedUsers.find((user) => user.userId === token.userId);\n const nickname = `${USER_MENTION_PREFIX}${mentionedUser?.nickname || token.value || stringSet.MENTION_NAME__NO_NAME}`;\n return renderMentionLabelToString({\n userId: token.userId,\n nickname,\n });\n }\n return sanitizeString(token.value);\n }).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch { }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.innerText?.trim().length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.innerText.trim().length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = [...textField?.childNodes];\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderMentionLabelToString({\n userId: mentionSelectedUser?.userId,\n nickname: `${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`,\n });\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.innerText) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else if (node?.nodeType === NodeTypes.ElementNode && node?.nodeName === NodeNames.Div) {\n // handles newline in safari\n const { textContent = '' } = node;\n messageText += `\\n${textContent}`;\n mentionTemplate += `\\n${textContent}`;\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(textField?.innerText?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n const onPaste = usePaste({\n ref,\n setMentionedUserIds,\n setMentionedUsers,\n channel,\n setIsInput,\n setHeight,\n });\n\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter && e?.nativeEvent?.isComposing !== true) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(textField.innerText?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {textField?.innerText?.length === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.() || (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n onVoiceMessageIconClick: PropTypes.func,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n setMentionedUsers: PropTypes.func,\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n};\n\nexport default MessageInput;\n"],"names":["renderToString","_a","userId","nickname","el","concat","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","slice","sanitized","__spreadArray","join","sanitizeString","str","replace","i","charCodeAt","inserTemplateToDOM","templateList","nodes","map","template","text","renderMentionLabelToString","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","querySelectorIncludingSelf","master","selector","result","Array","from","querySelectorAll","find","matches","getLeafNodes","ogMessage","OG_MESSAGE_BODY_CLASSNAME","childNodes","textMessageBody","TEXT_MESSAGE_BODY_CLASSNAME","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","length","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","Text","textContent","HTMLElement","classList","contains","text_1","dataset","userid","getUsersFromWords","channel","userMap","users","members","mentionedMember","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","leafNodes","words","mentionedUsers","TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","createRange","sel","getSelection","setStart","collapse","removeAllRanges","addRange","focus","resetInput","current","_unused","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","_textField$innerText3","_textField$innerText5","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","textField","textFieldId","stringSet","useContext","LocalizationContext","fileInputRef","useRef","isInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","useMemo","elem","MAX_HEIGHT","offsetHeight","scrollHeight","height","error","initialValue","useEffect","_textField$innerText","_unused2","trim","messageId","_message$mentionedUse","_message$mentionedMes","_textField$innerText2","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","type","TOKEN_TYPES","mention","mentionedUser","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","_unused3","useMentionedLabelDetection","newMentionedUserIds","getElementsByClassName","_node$dataset","arrayEqual","_document","_childNodes$startNode","_document2","_childNodes$endNodeIn","frontTextNode","createTextNode","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","newNodes","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","_window","_window$getSelection","_document3","_document3$getSelecti","call","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","sendMessage","mentionTemplate","ElementNode","nodeName","NodeNames","Span","Br","Div","params","isEditDisabled","editMessage","onPaste","getClassName","contentEditable","role","preventEvent","_e$nativeEvent","_ref$current","_ref$current$childNod","_ref$current2","_ref$current2$childNo","_ref$current2$childNo2","_ref$current$childNod2","_ref$current$childNod3","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_textField$innerText4","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","func","shape","number","defaultProps"],"mappings":"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"}
@@ -2,18 +2,18 @@ import React__default, { useContext, useRef } from 'react';
2
2
  import ContextMenu, { MenuItems, MenuItem } from './ContextMenu.js';
3
3
  import Icon, { IconTypes, IconColors } from './Icon.js';
4
4
  import IconButton from './IconButton.js';
5
- import { r as isUserMessage, u as isSentMessage, v as isFailedMessage, w as isPendingMessage, j as getClassName, x as copyToClipboard } from '../index-cd1a9173.js';
6
- import { a as LocalizationContext } from '../LocalizationContext-43b10f97.js';
7
- import { R as Role } from '../types-2fb5793c.js';
8
- import '../tslib.es6-5180f9d1.js';
5
+ import { r as isUserMessage, u as isSentMessage, v as isFailedMessage, w as isPendingMessage, j as getClassName, x as copyToClipboard } from '../index-f87c5aab.js';
6
+ import { a as LocalizationContext } from '../LocalizationContext-428ea690.js';
7
+ import { R as Role } from '../types-abb04b7a.js';
8
+ import '../tslib.es6-debac48c.js';
9
9
  import 'react-dom';
10
10
  import './SortByRow.js';
11
- import '../uuid-368c5040.js';
12
- import '../index-8f0ae983.js';
11
+ import '../uuid-e979d613.js';
12
+ import '../index-8efe881f.js';
13
13
  import 'prop-types';
14
- import '../stringSet-2d42f6ff.js';
14
+ import '../stringSet-fa7e0d83.js';
15
15
  import '../utils/message/getOutgoingMessageState.js';
16
- import '../index-0f373e79.js';
16
+ import '../index-8b3cd0b6.js';
17
17
 
18
18
  function MessageItemMenu(_a) {
19
19
  var _b;
@@ -1 +1 @@
1
- {"version":3,"file":"MessageItemMenu.js","sources":["../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { ReplyType } from '../../index';\nimport { Role } from '../../lib/types';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: UserMessage | FileMessage) => void;\n setQuoteMessage?: (message: UserMessage | FileMessage) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: UserMessage | FileMessage }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (!channel?.isEphemeral && isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !channel?.isEphemeral && !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !channel?.isEphemeral\n && (\n ((channel as GroupChannel)?.isBroadcast && channel?.myRole === Role.OPERATOR)\n || !(channel as GroupChannel)?.isBroadcast\n ));\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_a","className","message","channel","_c","isByMe","_d","disabled","replyType","_e","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","_f","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","showMenuItemCopy","isUserMessage","showMenuItemEdit","isEphemeral","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","_b","call","isBroadcast","myRole","Role","OPERATOR","showMenuItemReply","showMenuItemThread","parentMessageId","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","closeDropdown","MenuItems","parentRef","parentContainRef","openLeft","MenuItem","copyToClipboard","MESSAGE_MENU__COPY","disable","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":"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"}
1
+ {"version":3,"file":"MessageItemMenu.js","sources":["../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { ReplyType } from '../../index';\nimport { Role } from '../../lib/types';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: UserMessage | FileMessage) => void;\n setQuoteMessage?: (message: UserMessage | FileMessage) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: UserMessage | FileMessage }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (!channel?.isEphemeral && isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !channel?.isEphemeral && !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !channel?.isEphemeral\n && (\n ((channel as GroupChannel)?.isBroadcast && channel?.myRole === Role.OPERATOR)\n || !(channel as GroupChannel)?.isBroadcast\n ));\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_a","className","message","channel","_c","isByMe","_d","disabled","replyType","_e","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","_f","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","showMenuItemCopy","isUserMessage","showMenuItemEdit","isEphemeral","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","_b","call","isBroadcast","myRole","Role","OPERATOR","showMenuItemReply","showMenuItemThread","parentMessageId","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","closeDropdown","MenuItems","parentRef","parentContainRef","openLeft","MenuItem","copyToClipboard","MESSAGE_MENU__COPY","disable","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":"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"}
@@ -4,14 +4,14 @@ import Icon, { IconTypes, IconColors } from './Icon.js';
4
4
  import IconButton from './IconButton.js';
5
5
  import ImageRenderer from './ImageRenderer.js';
6
6
  import ReactionButton from './ReactionButton.js';
7
- import { w as isPendingMessage, v as isFailedMessage, j as getClassName, y as getEmojiListAll } from '../index-cd1a9173.js';
8
- import '../tslib.es6-5180f9d1.js';
7
+ import { w as isPendingMessage, v as isFailedMessage, j as getClassName, y as getEmojiListAll } from '../index-f87c5aab.js';
8
+ import '../tslib.es6-debac48c.js';
9
9
  import 'react-dom';
10
10
  import './SortByRow.js';
11
- import '../uuid-368c5040.js';
12
- import '../index-8f0ae983.js';
11
+ import '../uuid-e979d613.js';
12
+ import '../index-8efe881f.js';
13
13
  import 'prop-types';
14
- import '../stringSet-2d42f6ff.js';
14
+ import '../stringSet-fa7e0d83.js';
15
15
  import '../utils/message/getOutgoingMessageState.js';
16
16
 
17
17
  function MessageItemReactionMenu(_a) {
@@ -1 +1 @@
1
- {"version":3,"file":"MessageItemReactionMenu.js","sources":["../../src/ui/MessageItemReactionMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useRef } from 'react';\nimport type { FileMessage, Reaction, UserMessage } from '@sendbird/chat/message';\nimport type { Emoji, EmojiContainer } from '@sendbird/chat';\n\nimport ContextMenu, { EmojiListItems } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport ReactionButton from '../ReactionButton';\nimport { getClassName, getEmojiListAll, isPendingMessage, isFailedMessage } from '../../utils';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n userId: string;\n spaceFromTrigger?: Record<string, unknown>;\n emojiContainer?: EmojiContainer;\n toggleReaction?: (message: UserMessage | FileMessage, reactionKey: string, isReacted: boolean) => void;\n setSupposedHover?: (bool: boolean) => void;\n}\n\nexport default function MessageItemReactionMenu({\n className,\n message,\n userId,\n spaceFromTrigger = {},\n emojiContainer,\n toggleReaction,\n setSupposedHover,\n}: Props): ReactElement {\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n if(isPendingMessage(message) || isFailedMessage(message)) {\n return null;\n }\n\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-reaction-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-reaction-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-reaction-menu__trigger__icon\"\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <EmojiListItems\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={spaceFromTrigger}\n >\n {getEmojiListAll(emojiContainer).map((emoji: Emoji): ReactElement => {\n const isReacted: boolean = message?.reactions?.\n filter((reaction: Reaction) => reaction.key === emoji.key)[0]?.userIds?.\n some((reactorId: string) => reactorId === userId);\n return (\n <ReactionButton\n key={emoji.key}\n width=\"36px\"\n height=\"36px\"\n selected={isReacted}\n onClick={() => {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n <ImageRenderer\n url={emoji.url}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style) => (\n <div style={style}>\n <Icon\n type={IconTypes.QUESTION}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n );\n })}\n </EmojiListItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemReactionMenu","_a","className","message","userId","_b","spaceFromTrigger","emojiContainer","toggleReaction","setSupposedHover","triggerRef","useRef","containerRef","isPendingMessage","isFailedMessage","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","EMOJI_MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","closeDropdown","EmojiListItems","parentRef","parentContainRef","getEmojiListAll","map","emoji","isReacted","_c","reactions","filter","reaction","key","userIds","some","reactorId","ReactionButton","selected","ImageRenderer","url","placeHolder","style","QUESTION","ON_BACKGROUND_3"],"mappings":"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"}
1
+ {"version":3,"file":"MessageItemReactionMenu.js","sources":["../../src/ui/MessageItemReactionMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useRef } from 'react';\nimport type { FileMessage, Reaction, UserMessage } from '@sendbird/chat/message';\nimport type { Emoji, EmojiContainer } from '@sendbird/chat';\n\nimport ContextMenu, { EmojiListItems } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport ReactionButton from '../ReactionButton';\nimport { getClassName, getEmojiListAll, isPendingMessage, isFailedMessage } from '../../utils';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n userId: string;\n spaceFromTrigger?: Record<string, unknown>;\n emojiContainer?: EmojiContainer;\n toggleReaction?: (message: UserMessage | FileMessage, reactionKey: string, isReacted: boolean) => void;\n setSupposedHover?: (bool: boolean) => void;\n}\n\nexport default function MessageItemReactionMenu({\n className,\n message,\n userId,\n spaceFromTrigger = {},\n emojiContainer,\n toggleReaction,\n setSupposedHover,\n}: Props): ReactElement {\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n if (isPendingMessage(message) || isFailedMessage(message)) {\n return null;\n }\n\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-reaction-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-reaction-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-reaction-menu__trigger__icon\"\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <EmojiListItems\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={spaceFromTrigger}\n >\n {getEmojiListAll(emojiContainer).map((emoji: Emoji): ReactElement => {\n const isReacted: boolean = message?.reactions?.\n filter((reaction: Reaction) => reaction.key === emoji.key)[0]?.userIds?.\n some((reactorId: string) => reactorId === userId);\n return (\n <ReactionButton\n key={emoji.key}\n width=\"36px\"\n height=\"36px\"\n selected={isReacted}\n onClick={() => {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n <ImageRenderer\n url={emoji.url}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style) => (\n <div style={style}>\n <Icon\n type={IconTypes.QUESTION}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n );\n })}\n </EmojiListItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemReactionMenu","_a","className","message","userId","_b","spaceFromTrigger","emojiContainer","toggleReaction","setSupposedHover","triggerRef","useRef","containerRef","isPendingMessage","isFailedMessage","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","EMOJI_MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","closeDropdown","EmojiListItems","parentRef","parentContainRef","getEmojiListAll","map","emoji","isReacted","_c","reactions","filter","reaction","key","userIds","some","reactorId","ReactionButton","selected","ImageRenderer","url","placeHolder","style","QUESTION","ON_BACKGROUND_3"],"mappings":";;;;;;;;;;;;;;;;AAsBwB,SAAAA,uBAAuBA,CAACC,EAQxC,EAAA;MAPNC,SAAS,GAAAD,EAAA,CAAAC,SAAA;IACTC,OAAO,GAAAF,EAAA,CAAAE,OAAA;IACPC,MAAM,GAAAH,EAAA,CAAAG,MAAA;IACNC,EAAA,GAAAJ,EAAA,CAAAK,gBAAqB;IAArBA,gBAAgB,mBAAG,EAAE,GAAAD,EAAA;IACrBE,cAAc,GAAAN,EAAA,CAAAM,cAAA;IACdC,cAAc,GAAAP,EAAA,CAAAO,cAAA;IACdC,gBAAgB,GAAAR,EAAA,CAAAQ,gBAAA,CAAA;AAEhB,EAAA,IAAMC,UAAU,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC/B,EAAA,IAAMC,YAAY,GAAGD,MAAM,CAAC,IAAI,CAAC,CAAA;EAEjC,IAAIE,gBAAgB,CAACV,OAAO,CAAC,IAAIW,eAAe,CAACX,OAAO,CAAC,EAAE;AACzD,IAAA,OAAO,IAAI,CAAA;AACZ,GAAA;EAED,oBACEY,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEd,SAAS,EAAEe,YAAY,CAAC,CAACf,SAAS,EAAE,qCAAqC,CAAC,CAAE;AAC5EgB,IAAAA,GAAG,EAAEN,YAAAA;AAAa,GAAA,eAElBG,cAAA,CAAAC,aAAA,CAACG,WAAW,EAAA;AACVC,IAAAA,WAAW,EAAE,UAACC,cAA0B,EAAmB;AAAA,MAAA,oBACzDN,cAAA,CAAAC,aAAA,CAACM,UAAU,EAAA;AACTpB,QAAAA,SAAS,EAAC,8CAA8C;AACxDgB,QAAAA,GAAG,EAAER,UAAW;AAChBa,QAAAA,KAAK,EAAC,MAAM;AACZC,QAAAA,MAAM,EAAC,MAAM;QACbC,OAAO,EAAE,YAAA;AACPJ,UAAAA,cAAc,EAAE,CAAA;UAChBZ,gBAAgB,CAAC,IAAI,CAAC,CAAA;SACtB;QACFiB,MAAM,EAAE,YAAA;UACNjB,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACzB,SAAA;AAAE,OAAA,eAEFM,cAAA,CAAAC,aAAA,CAACW,IAAI,EAAA;AACHzB,QAAAA,SAAS,EAAC,oDAAoD;QAC9D0B,IAAI,EAAEC,SAAS,CAACC,UAAW;QAC3BC,SAAS,EAAEC,UAAU,CAACC,eAAgB;AACtCV,QAAAA,KAAK,EAAC,MAAM;AACZC,QAAAA,MAAM,EAAC,MAAA;AAAM,OAAA,CAEjB,CAAa,CAAA;KACb;AACFU,IAAAA,SAAS,EAAE,UAACC,KAAiB,EAAA;AAC3B,MAAA,IAAMC,aAAa,GAAG,YAAA;AACpBD,QAAAA,KAAK,EAAE,CAAA;QACP1B,gBAAgB,CAAC,KAAK,CAAC,CAAA;OACxB,CAAA;AACD,MAAA,oBACEM,cAAA,CAAAC,aAAA,CAACqB,cAAc,EAAA;AACbC,QAAAA,SAAS,EAAE5B,UAAW;AACtB6B,QAAAA,gBAAgB,EAAE3B,YAAa;AAC/BwB,QAAAA,aAAa,EAAEA,aAAc;AAC7B9B,QAAAA,gBAAgB,EAAEA,gBAAAA;OAEjBkC,EAAAA,eAAe,CAACjC,cAAc,CAAC,CAACkC,GAAG,CAAC,UAACC,KAAY,EAAA;;AAChD,QAAA,IAAMC,SAAS,GAAY,CAAAC,EAAA,GAAA,CAAAvC,EAAA,GAAA,MAAAF,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,OAAO,CAAE0C,SAAS,MAAA,IAAA,IAAA5C,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAC3C6C,MAAM,CAAC,UAACC,QAAkB,EAAK;AAAA,UAAA,OAAAA,QAAQ,CAACC,GAAG,KAAKN,KAAK,CAACM,GAAG,CAAA;AAA1B,SAA0B,CAAA,CAAE,CAAC,CAAC,MAAA,IAAA,IAAA3C,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAE4C,OAAO,MACtE,IAAA,IAAAL,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAAM,IAAI,CAAC,UAACC,SAAiB;UAAK,OAAAA,SAAS,KAAK/C,MAAM,CAAA;AAApB,SAAoB,CAAC,CAAA;AACnD,QAAA,oBACEW,cAAA,CAAAC,aAAA,CAACoC,cAAc,EAAA;UACbJ,GAAG,EAAEN,KAAK,CAACM,GAAI;AACfzB,UAAAA,KAAK,EAAC,MAAM;AACZC,UAAAA,MAAM,EAAC,MAAM;AACb6B,UAAAA,QAAQ,EAAEV,SAAU;UACpBlB,OAAO,EAAE,YAAA;AACPW,YAAAA,aAAa,EAAE,CAAA;YACf5B,cAAc,CAACL,OAAO,EAAEuC,KAAK,CAACM,GAAG,EAAEL,SAAS,CAAC,CAAA;AAC/C,WAAA;AAAE,SAAA,eAEF5B,cAAA,CAAAC,aAAA,CAACsC,aAAa,EAAA;UACZC,GAAG,EAAEb,KAAK,CAACa,GAAI;AACfhC,UAAAA,KAAK,EAAC,MAAM;AACZC,UAAAA,MAAM,EAAC,MAAM;AACbgC,UAAAA,WAAW,EAAE,UAACC,KAAK;YAAK,oBACtB1C,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKyC,cAAAA,KAAK,EAAEA,KAAAA;AAAM,aAAA,eAChB1C,cAAA,CAAAC,aAAA,CAACW,IAAI,EAAA;cACHC,IAAI,EAAEC,SAAS,CAAC6B,QAAS;cACzB3B,SAAS,EAAEC,UAAU,CAAC2B,eAAgB;AACtCpC,cAAAA,KAAK,EAAC,MAAM;AACZC,cAAAA,MAAM,EAAC,MAAA;AAAM,aAAA,CAEjB,CAAM,CAAA;AARgB,WAAA;AAStB,SAAA,CAEN,CAAiB,CAAA;AAErB,OAAC,CAAC,CACa,CAAA;AAErB,KAAA;AAAE,GAAA,CAEN,CAAM,CAAA;AAEV;;;;"}
@@ -1,18 +1,18 @@
1
- import { a as __spreadArray } from '../tslib.es6-5180f9d1.js';
1
+ import { a as __spreadArray } from '../tslib.es6-debac48c.js';
2
2
  import React__default from 'react';
3
3
  import Avatar from './Avatar.js';
4
4
  import Icon, { IconTypes, IconColors } from './Icon.js';
5
- import { L as Label, a as LabelTypography, b as LabelColors } from '../index-8f0ae983.js';
6
- import { u as useLocalization } from '../LocalizationContext-43b10f97.js';
7
- import { f as format } from '../index-8a52a6f4.js';
8
- import { i as isToday, a as isYesterday, b as isThisYear } from '../index-2932882f.js';
9
- import { d as isVoiceMessage } from '../index-cd1a9173.js';
5
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../index-8efe881f.js';
6
+ import { u as useLocalization } from '../LocalizationContext-428ea690.js';
7
+ import { f as format } from '../index-8d6fa44a.js';
8
+ import { i as isToday, a as isYesterday, b as isThisYear } from '../index-b41d07df.js';
9
+ import { d as isVoiceMessage } from '../index-f87c5aab.js';
10
10
  import './ImageRenderer.js';
11
- import '../uuid-368c5040.js';
11
+ import '../uuid-e979d613.js';
12
12
  import 'prop-types';
13
- import '../stringSet-2d42f6ff.js';
14
- import '../index-0f373e79.js';
15
- import '../index-95f0372d.js';
13
+ import '../stringSet-fa7e0d83.js';
14
+ import '../index-8b3cd0b6.js';
15
+ import '../index-2f83ba2a.js';
16
16
  import '../utils/message/getOutgoingMessageState.js';
17
17
 
18
18
  function getCreatedAt(_a) {
@@ -93,7 +93,7 @@ function MessageSearchFileItem(props) {
93
93
  }, nickname || stringSet.NO_NAME), /*#__PURE__*/React__default.createElement("div", {
94
94
  className: "sendbird-message-search-file-item__right__content"
95
95
  }, !isVoiceMsg && /*#__PURE__*/React__default.createElement("div", {
96
- className: "sendbird-message-search-file-item__right__content__type-icon"
96
+ className: 'sendbird-message-search-file-item__right__content__type-icon'
97
97
  }, /*#__PURE__*/React__default.createElement(Icon, {
98
98
  type: getIconOfFileType(message),
99
99
  fillColor: IconColors.PRIMARY,