@sendbird/uikit-react 3.4.4 → 3.4.5-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 (552) hide show
  1. package/App.js +47 -42
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +80 -0
  4. package/Channel/components/ChannelHeader.js +19 -19
  5. package/Channel/components/ChannelUI.js +39 -35
  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 -39
  10. package/Channel/components/Message.js.map +1 -1
  11. package/Channel/components/MessageInput.js +27 -24
  12. package/Channel/components/MessageInput.js.map +1 -1
  13. package/Channel/components/MessageList.js +65 -62
  14. package/Channel/components/MessageList.js.map +1 -1
  15. package/Channel/components/RemoveMessageModal.js +17 -17
  16. package/Channel/components/SuggestedMentionList.js +17 -17
  17. package/Channel/components/TypingIndicator.js +15 -15
  18. package/Channel/components/UnreadCount.js +4 -4
  19. package/Channel/context.js +14 -14
  20. package/Channel.js +40 -35
  21. package/Channel.js.map +1 -1
  22. package/ChannelList/components/AddChannel.js +15 -15
  23. package/ChannelList/components/ChannelListHeader.js +6 -6
  24. package/ChannelList/components/ChannelListUI.js +40 -62
  25. package/ChannelList/components/ChannelListUI.js.map +1 -1
  26. package/ChannelList/components/ChannelPreview.js +26 -26
  27. package/ChannelList/components/ChannelPreviewAction.js +14 -14
  28. package/ChannelList/context.js +8 -8
  29. package/ChannelList.js +30 -30
  30. package/{ChannelListProvider-3c107fc7.js → ChannelListProvider-38d1234f.js} +18 -12
  31. package/ChannelListProvider-38d1234f.js.map +1 -0
  32. package/{ChannelProvider-28639e83.js → ChannelProvider-1e05ac9e.js} +32 -32
  33. package/ChannelProvider-1e05ac9e.js.map +1 -0
  34. package/ChannelSettings/components/ChannelProfile.js +11 -11
  35. package/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  36. package/ChannelSettings/components/EditDetailsModal.js +11 -11
  37. package/ChannelSettings/components/LeaveChannel.js +11 -11
  38. package/ChannelSettings/components/ModerationPanel.js +14 -14
  39. package/ChannelSettings/components/UserListItem.js +10 -10
  40. package/ChannelSettings/components/UserPanel.js +13 -13
  41. package/ChannelSettings/context.js +3 -3
  42. package/ChannelSettings.js +17 -17
  43. package/CreateChannel/components/CreateChannelUI.js +13 -13
  44. package/CreateChannel/components/InviteUsers.js +13 -13
  45. package/CreateChannel/components/SelectChannelType.js +10 -10
  46. package/CreateChannel/context.js +4 -4
  47. package/CreateChannel.js +13 -13
  48. package/{CreateChannelProvider-09772304.js → CreateChannelProvider-3614d73c.js} +1 -1
  49. package/{CreateChannelProvider-09772304.js.map → CreateChannelProvider-3614d73c.js.map} +1 -1
  50. package/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  51. package/CreateOpenChannel/context.js +1 -1
  52. package/CreateOpenChannel.js +9 -9
  53. package/EditUserProfile/components/EditUserProfileUI.js +12 -12
  54. package/EditUserProfile.js +12 -12
  55. package/{LocalizationContext-ef72d4b1.js → LocalizationContext-34b46c40.js} +3 -3
  56. package/{LocalizationContext-ef72d4b1.js.map → LocalizationContext-34b46c40.js.map} +1 -1
  57. package/{MediaQueryContext-683c7242.js → MediaQueryContext-ce624aa4.js} +1 -1
  58. package/{MediaQueryContext-683c7242.js.map → MediaQueryContext-ce624aa4.js.map} +1 -1
  59. package/{MemberList-0bc3ff4a.js → MemberList-4de628ca.js} +5 -5
  60. package/{MemberList-0bc3ff4a.js.map → MemberList-4de628ca.js.map} +1 -1
  61. package/Message/context.js +30 -0
  62. package/Message/context.js.map +1 -0
  63. package/MessageSearch/components/MessageSearchUI.js +11 -11
  64. package/MessageSearch/context.js +1 -1
  65. package/MessageSearch.js +11 -11
  66. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  67. package/OpenChannel/components/OpenChannelHeader.js +12 -12
  68. package/OpenChannel/components/OpenChannelInput.js +19 -16
  69. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  70. package/OpenChannel/components/OpenChannelMessage.js +28 -24
  71. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  72. package/OpenChannel/components/OpenChannelMessageList.js +58 -38
  73. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  74. package/OpenChannel/components/OpenChannelUI.js +31 -27
  75. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  76. package/OpenChannel/context.js +8 -8
  77. package/OpenChannel.js +31 -27
  78. package/OpenChannel.js.map +1 -1
  79. package/OpenChannelList/components/OpenChannelListUI.js +13 -13
  80. package/OpenChannelList/components/OpenChannelPreview.js +4 -4
  81. package/OpenChannelList/context.js +3 -3
  82. package/OpenChannelList.js +13 -13
  83. package/{OpenChannelListProvider-e5246224.js → OpenChannelListProvider-ab54ddfd.js} +3 -3
  84. package/{OpenChannelListProvider-e5246224.js.map → OpenChannelListProvider-ab54ddfd.js.map} +1 -1
  85. package/{OpenChannelProvider-c5952f33.js → OpenChannelProvider-801fe2a5.js} +7 -7
  86. package/{OpenChannelProvider-c5952f33.js.map → OpenChannelProvider-801fe2a5.js.map} +1 -1
  87. package/OpenChannelSettings/components/EditDetailsModal.js +12 -12
  88. package/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  89. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  90. package/OpenChannelSettings/components/OperatorUI.js +16 -16
  91. package/OpenChannelSettings/components/ParticipantUI.js +14 -14
  92. package/OpenChannelSettings/context.js +3 -3
  93. package/OpenChannelSettings.js +17 -17
  94. package/README.md +3 -2
  95. package/{RemoveMessageModal-63a8b079.js → RemoveMessageModal-73877b13.js} +3 -3
  96. package/{RemoveMessageModal-63a8b079.js.map → RemoveMessageModal-73877b13.js.map} +1 -1
  97. package/SendbirdProvider.js +93 -14
  98. package/SendbirdProvider.js.map +1 -1
  99. package/Thread/components/ParentMessageInfo.js +32 -28
  100. package/Thread/components/ParentMessageInfo.js.map +1 -1
  101. package/Thread/components/ParentMessageInfoItem.js +43 -45
  102. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  103. package/Thread/components/ThreadHeader.js +6 -6
  104. package/Thread/components/ThreadList.js +48 -36
  105. package/Thread/components/ThreadList.js.map +1 -1
  106. package/Thread/components/ThreadListItem.js +34 -30
  107. package/Thread/components/ThreadListItem.js.map +1 -1
  108. package/Thread/components/ThreadMessageInput.js +28 -25
  109. package/Thread/components/ThreadMessageInput.js.map +1 -1
  110. package/Thread/components/ThreadUI.js +66 -58
  111. package/Thread/components/ThreadUI.js.map +1 -1
  112. package/Thread/context.js +8 -8
  113. package/Thread.js +44 -40
  114. package/Thread.js.map +1 -1
  115. package/{ThreadProvider-435a6f11.js → ThreadProvider-44c43f8d.js} +7 -7
  116. package/{ThreadProvider-435a6f11.js.map → ThreadProvider-44c43f8d.js.map} +1 -1
  117. package/{UserProfileContext-5d7c5f9f.js → UserProfileContext-3fa0c617.js} +1 -1
  118. package/{UserProfileContext-5d7c5f9f.js.map → UserProfileContext-3fa0c617.js.map} +1 -1
  119. package/{VoiceMessageInputWrapper-8a9dda68.js → VoiceMessageInputWrapper-9e4d2e0f.js} +7 -7
  120. package/{VoiceMessageInputWrapper-8a9dda68.js.map → VoiceMessageInputWrapper-9e4d2e0f.js.map} +1 -1
  121. package/VoicePlayer/context.js +3 -3
  122. package/VoicePlayer/useVoicePlayer.js +3 -3
  123. package/VoiceRecorder/context.js +2 -2
  124. package/VoiceRecorder/useVoiceRecorder.js +2 -2
  125. package/{_rollupPluginBabelHelpers-37cba0d6.js → _rollupPluginBabelHelpers-f78972d2.js} +1 -1
  126. package/_rollupPluginBabelHelpers-f78972d2.js.map +1 -0
  127. package/{actionTypes-80e9dbe4.js → actionTypes-1693ceb3.js} +1 -1
  128. package/{actionTypes-80e9dbe4.js.map → actionTypes-1693ceb3.js.map} +1 -1
  129. package/cjs/App.js +47 -42
  130. package/cjs/App.js.map +1 -1
  131. package/cjs/Channel/components/ChannelHeader.js +19 -19
  132. package/cjs/Channel/components/ChannelUI.js +39 -35
  133. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  134. package/cjs/Channel/components/FileViewer.js +15 -15
  135. package/cjs/Channel/components/FrozenNotification.js +4 -4
  136. package/cjs/Channel/components/Message.js +43 -39
  137. package/cjs/Channel/components/Message.js.map +1 -1
  138. package/cjs/Channel/components/MessageInput.js +27 -24
  139. package/cjs/Channel/components/MessageInput.js.map +1 -1
  140. package/cjs/Channel/components/MessageList.js +65 -62
  141. package/cjs/Channel/components/MessageList.js.map +1 -1
  142. package/cjs/Channel/components/RemoveMessageModal.js +17 -17
  143. package/cjs/Channel/components/SuggestedMentionList.js +17 -17
  144. package/cjs/Channel/components/TypingIndicator.js +15 -15
  145. package/cjs/Channel/components/UnreadCount.js +4 -4
  146. package/cjs/Channel/context.js +14 -14
  147. package/cjs/Channel.js +40 -35
  148. package/cjs/Channel.js.map +1 -1
  149. package/cjs/ChannelList/components/AddChannel.js +15 -15
  150. package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
  151. package/cjs/ChannelList/components/ChannelListUI.js +39 -61
  152. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  153. package/cjs/ChannelList/components/ChannelPreview.js +26 -26
  154. package/cjs/ChannelList/components/ChannelPreviewAction.js +14 -14
  155. package/cjs/ChannelList/context.js +8 -8
  156. package/cjs/ChannelList.js +30 -30
  157. package/cjs/{ChannelListProvider-b7ffadf7.js → ChannelListProvider-1f84d03b.js} +18 -12
  158. package/cjs/ChannelListProvider-1f84d03b.js.map +1 -0
  159. package/cjs/{ChannelProvider-b963c72c.js → ChannelProvider-5915747e.js} +32 -32
  160. package/cjs/ChannelProvider-5915747e.js.map +1 -0
  161. package/cjs/ChannelSettings/components/ChannelProfile.js +11 -11
  162. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  163. package/cjs/ChannelSettings/components/EditDetailsModal.js +11 -11
  164. package/cjs/ChannelSettings/components/LeaveChannel.js +11 -11
  165. package/cjs/ChannelSettings/components/ModerationPanel.js +14 -14
  166. package/cjs/ChannelSettings/components/UserListItem.js +10 -10
  167. package/cjs/ChannelSettings/components/UserPanel.js +13 -13
  168. package/cjs/ChannelSettings/context.js +3 -3
  169. package/cjs/ChannelSettings.js +17 -17
  170. package/cjs/CreateChannel/components/CreateChannelUI.js +13 -13
  171. package/cjs/CreateChannel/components/InviteUsers.js +13 -13
  172. package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
  173. package/cjs/CreateChannel/context.js +4 -4
  174. package/cjs/CreateChannel.js +13 -13
  175. package/cjs/{CreateChannelProvider-ea54c83b.js → CreateChannelProvider-b0ade226.js} +1 -1
  176. package/cjs/{CreateChannelProvider-ea54c83b.js.map → CreateChannelProvider-b0ade226.js.map} +1 -1
  177. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  178. package/cjs/CreateOpenChannel/context.js +1 -1
  179. package/cjs/CreateOpenChannel.js +9 -9
  180. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -12
  181. package/cjs/EditUserProfile.js +12 -12
  182. package/cjs/{LocalizationContext-4822793b.js → LocalizationContext-3fb1efd5.js} +3 -3
  183. package/cjs/{LocalizationContext-4822793b.js.map → LocalizationContext-3fb1efd5.js.map} +1 -1
  184. package/cjs/{MediaQueryContext-b83880cc.js → MediaQueryContext-9982e73b.js} +1 -1
  185. package/cjs/{MediaQueryContext-b83880cc.js.map → MediaQueryContext-9982e73b.js.map} +1 -1
  186. package/cjs/{MemberList-4cfc05a3.js → MemberList-574bae3f.js} +5 -5
  187. package/cjs/{MemberList-4cfc05a3.js.map → MemberList-574bae3f.js.map} +1 -1
  188. package/cjs/Message/context.js +39 -0
  189. package/cjs/Message/context.js.map +1 -0
  190. package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
  191. package/cjs/MessageSearch/context.js +1 -1
  192. package/cjs/MessageSearch.js +11 -11
  193. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  194. package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
  195. package/cjs/OpenChannel/components/OpenChannelInput.js +19 -16
  196. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  197. package/cjs/OpenChannel/components/OpenChannelMessage.js +28 -24
  198. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  199. package/cjs/OpenChannel/components/OpenChannelMessageList.js +58 -38
  200. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  201. package/cjs/OpenChannel/components/OpenChannelUI.js +31 -27
  202. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  203. package/cjs/OpenChannel/context.js +8 -8
  204. package/cjs/OpenChannel.js +31 -27
  205. package/cjs/OpenChannel.js.map +1 -1
  206. package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
  207. package/cjs/OpenChannelList/components/OpenChannelPreview.js +4 -4
  208. package/cjs/OpenChannelList/context.js +3 -3
  209. package/cjs/OpenChannelList.js +13 -13
  210. package/cjs/{OpenChannelListProvider-9fc6f344.js → OpenChannelListProvider-43b94684.js} +3 -3
  211. package/cjs/{OpenChannelListProvider-9fc6f344.js.map → OpenChannelListProvider-43b94684.js.map} +1 -1
  212. package/cjs/{OpenChannelProvider-64fb7652.js → OpenChannelProvider-411e1365.js} +7 -7
  213. package/cjs/{OpenChannelProvider-64fb7652.js.map → OpenChannelProvider-411e1365.js.map} +1 -1
  214. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +12 -12
  215. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  216. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  217. package/cjs/OpenChannelSettings/components/OperatorUI.js +16 -16
  218. package/cjs/OpenChannelSettings/components/ParticipantUI.js +14 -14
  219. package/cjs/OpenChannelSettings/context.js +3 -3
  220. package/cjs/OpenChannelSettings.js +17 -17
  221. package/cjs/{RemoveMessageModal-00de23ec.js → RemoveMessageModal-0c4b41d0.js} +3 -3
  222. package/cjs/{RemoveMessageModal-00de23ec.js.map → RemoveMessageModal-0c4b41d0.js.map} +1 -1
  223. package/cjs/SendbirdProvider.js +92 -13
  224. package/cjs/SendbirdProvider.js.map +1 -1
  225. package/cjs/Thread/components/ParentMessageInfo.js +32 -28
  226. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  227. package/cjs/Thread/components/ParentMessageInfoItem.js +42 -44
  228. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  229. package/cjs/Thread/components/ThreadHeader.js +6 -6
  230. package/cjs/Thread/components/ThreadList.js +48 -36
  231. package/cjs/Thread/components/ThreadList.js.map +1 -1
  232. package/cjs/Thread/components/ThreadListItem.js +34 -30
  233. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  234. package/cjs/Thread/components/ThreadMessageInput.js +28 -25
  235. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  236. package/cjs/Thread/components/ThreadUI.js +67 -59
  237. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  238. package/cjs/Thread/context.js +8 -8
  239. package/cjs/Thread.js +44 -40
  240. package/cjs/Thread.js.map +1 -1
  241. package/cjs/{ThreadProvider-93f2b7e5.js → ThreadProvider-73f209d6.js} +7 -7
  242. package/cjs/{ThreadProvider-93f2b7e5.js.map → ThreadProvider-73f209d6.js.map} +1 -1
  243. package/cjs/{UserProfileContext-7bc4eec4.js → UserProfileContext-b0b956b8.js} +1 -1
  244. package/cjs/{UserProfileContext-7bc4eec4.js.map → UserProfileContext-b0b956b8.js.map} +1 -1
  245. package/cjs/{VoiceMessageInputWrapper-82c8ef13.js → VoiceMessageInputWrapper-2301a9cd.js} +7 -7
  246. package/cjs/{VoiceMessageInputWrapper-82c8ef13.js.map → VoiceMessageInputWrapper-2301a9cd.js.map} +1 -1
  247. package/cjs/VoicePlayer/context.js +3 -3
  248. package/cjs/VoicePlayer/useVoicePlayer.js +3 -3
  249. package/cjs/VoiceRecorder/context.js +2 -2
  250. package/cjs/VoiceRecorder/useVoiceRecorder.js +2 -2
  251. package/cjs/{_rollupPluginBabelHelpers-1218aafb.js → _rollupPluginBabelHelpers-05716924.js} +1 -1
  252. package/cjs/_rollupPluginBabelHelpers-05716924.js.map +1 -0
  253. package/cjs/{actionTypes-f186c4dd.js → actionTypes-de2a8f54.js} +1 -1
  254. package/cjs/{actionTypes-f186c4dd.js.map → actionTypes-de2a8f54.js.map} +1 -1
  255. package/cjs/{color-937f65ad.js → color-360107a6.js} +1 -1
  256. package/cjs/{color-937f65ad.js.map → color-360107a6.js.map} +1 -1
  257. package/cjs/{compareIds-3d732a01.js → compareIds-c4f938a4.js} +1 -1
  258. package/cjs/{compareIds-3d732a01.js.map → compareIds-c4f938a4.js.map} +1 -1
  259. package/cjs/{const-44ac2c14.js → const-7ce7d646.js} +1 -1
  260. package/cjs/{const-44ac2c14.js.map → const-7ce7d646.js.map} +1 -1
  261. package/cjs/{const-73aa22ac.js → const-893ed415.js} +1 -1
  262. package/cjs/{const-73aa22ac.js.map → const-893ed415.js.map} +1 -1
  263. package/cjs/consts-0b50a0c8.js +6 -0
  264. package/cjs/consts-0b50a0c8.js.map +1 -0
  265. package/cjs/consts-c4097faa.js +6 -0
  266. package/cjs/consts-c4097faa.js.map +1 -0
  267. package/cjs/{consts-2b0eaee0.js → consts-d9856131.js} +1 -1
  268. package/cjs/{consts-2b0eaee0.js.map → consts-d9856131.js.map} +1 -1
  269. package/cjs/{consts-11872691.js → consts-f5219aa0.js} +1 -1
  270. package/cjs/{consts-11872691.js.map → consts-f5219aa0.js.map} +1 -1
  271. package/cjs/{context-7e270322.js → context-971dc2dc.js} +2 -2
  272. package/cjs/{context-7e270322.js.map → context-971dc2dc.js.map} +1 -1
  273. package/cjs/dist/index.css +34 -26
  274. package/cjs/dist/index.css.map +1 -1
  275. package/cjs/{index-aaa65319.js → index-046dffba.js} +7 -7
  276. package/cjs/{index-aaa65319.js.map → index-046dffba.js.map} +1 -1
  277. package/cjs/{index-1151a507.js → index-05458f16.js} +1 -1
  278. package/cjs/{index-1151a507.js.map → index-05458f16.js.map} +1 -1
  279. package/cjs/{index-cfff5dbb.js → index-106dbf0e.js} +2 -2
  280. package/cjs/{index-cfff5dbb.js.map → index-106dbf0e.js.map} +1 -1
  281. package/cjs/{index-c7ff34af.js → index-1ebfe279.js} +5 -5
  282. package/cjs/{index-c7ff34af.js.map → index-1ebfe279.js.map} +1 -1
  283. package/cjs/{index-7207d339.js → index-2068f053.js} +11 -5
  284. package/cjs/index-2068f053.js.map +1 -0
  285. package/cjs/{index-2f2f3e43.js → index-27196170.js} +8 -2
  286. package/cjs/index-27196170.js.map +1 -0
  287. package/cjs/{index-57989185.js → index-3ecf6f1c.js} +1 -1
  288. package/cjs/{index-57989185.js.map → index-3ecf6f1c.js.map} +1 -1
  289. package/cjs/index-4efda0a3.js +63 -0
  290. package/cjs/index-4efda0a3.js.map +1 -0
  291. package/cjs/{index-f52caf82.js → index-4f21cdee.js} +2 -2
  292. package/cjs/{index-f52caf82.js.map → index-4f21cdee.js.map} +1 -1
  293. package/cjs/{index-f78cff63.js → index-871938c2.js} +2 -2
  294. package/cjs/{index-f78cff63.js.map → index-871938c2.js.map} +1 -1
  295. package/cjs/{index-a5fad93c.js → index-95fe4955.js} +4 -4
  296. package/cjs/{index-a5fad93c.js.map → index-95fe4955.js.map} +1 -1
  297. package/cjs/{index-e9d3a5d6.js → index-a981854c.js} +3 -3
  298. package/cjs/{index-e9d3a5d6.js.map → index-a981854c.js.map} +1 -1
  299. package/cjs/{index-20fc629b.js → index-b8bcbe2e.js} +3 -3
  300. package/cjs/{index-20fc629b.js.map → index-b8bcbe2e.js.map} +1 -1
  301. package/cjs/{index-a867516a.js → index-bd887626.js} +4 -4
  302. package/cjs/{index-a867516a.js.map → index-bd887626.js.map} +1 -1
  303. package/cjs/{index-3f30ab14.js → index-d4ad85fe.js} +7 -7
  304. package/cjs/{index-3f30ab14.js.map → index-d4ad85fe.js.map} +1 -1
  305. package/cjs/index.js +55 -51
  306. package/cjs/index.js.map +1 -1
  307. package/cjs/sendbirdSelectors.js +2 -2
  308. package/cjs/{stringSet-7f49973c.js → stringSet-eba21df4.js} +1 -1
  309. package/cjs/{stringSet-7f49973c.js.map → stringSet-eba21df4.js.map} +1 -1
  310. package/cjs/tokenize-ca4ac5a1.js +134 -0
  311. package/cjs/tokenize-ca4ac5a1.js.map +1 -0
  312. package/cjs/{topics-9d6a6d36.js → topics-e4dffa33.js} +1 -1
  313. package/cjs/{topics-9d6a6d36.js.map → topics-e4dffa33.js.map} +1 -1
  314. package/cjs/{tslib.es6-46c08a06.js → tslib.es6-94d25845.js} +1 -1
  315. package/cjs/{tslib.es6-46c08a06.js.map → tslib.es6-94d25845.js.map} +1 -1
  316. package/cjs/{types-31b11c88.js → types-dd4057f8.js} +1 -1
  317. package/cjs/types-dd4057f8.js.map +1 -0
  318. package/cjs/ui/Accordion.js +3 -3
  319. package/cjs/ui/AccordionGroup.js +2 -2
  320. package/cjs/ui/AdminMessage.js +3 -3
  321. package/cjs/ui/Avatar.js +2 -2
  322. package/cjs/ui/Badge.js +5 -5
  323. package/cjs/ui/BottomSheet.js +1 -1
  324. package/cjs/ui/Button.js +3 -3
  325. package/cjs/ui/ChannelAvatar.js +3 -3
  326. package/cjs/ui/ConnectionStatus.js +4 -4
  327. package/cjs/ui/ContextMenu.js +5 -5
  328. package/cjs/ui/DateSeparator.js +4 -4
  329. package/cjs/ui/EmojiReactions.js +7 -7
  330. package/cjs/ui/FileMessageItemBody.js +6 -6
  331. package/cjs/ui/FileViewer.js +8 -8
  332. package/cjs/ui/IconButton.js +1 -1
  333. package/cjs/ui/ImageRenderer.js +1 -1
  334. package/cjs/ui/Input.js +2 -2
  335. package/cjs/ui/Label.js +2 -2
  336. package/cjs/ui/LinkLabel.js +2 -2
  337. package/cjs/ui/Loader.js +1 -1
  338. package/cjs/ui/MentionLabel.js +12 -11
  339. package/cjs/ui/MentionLabel.js.map +1 -1
  340. package/cjs/ui/MentionUserLabel.js +1 -1
  341. package/cjs/ui/MessageContent.js +29 -25
  342. package/cjs/ui/MessageContent.js.map +1 -1
  343. package/cjs/ui/MessageInput.js +81 -52
  344. package/cjs/ui/MessageInput.js.map +1 -1
  345. package/cjs/ui/MessageItemMenu.js +8 -8
  346. package/cjs/ui/MessageItemReactionMenu.js +5 -5
  347. package/cjs/ui/MessageSearchFileItem.js +10 -10
  348. package/cjs/ui/MessageSearchItem.js +9 -9
  349. package/cjs/ui/MessageStatus.js +10 -10
  350. package/cjs/ui/Modal.js +7 -7
  351. package/cjs/ui/OGMessageItemBody.js +26 -32
  352. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  353. package/cjs/ui/OpenChannelAdminMessage.js +3 -3
  354. package/cjs/ui/OpenChannelAvatar.js +6 -6
  355. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  356. package/cjs/ui/OpenchannelFileMessage.js +16 -16
  357. package/cjs/ui/OpenchannelOGMessage.js +48 -64
  358. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  359. package/cjs/ui/OpenchannelThumbnailMessage.js +15 -15
  360. package/cjs/ui/OpenchannelUserMessage.js +16 -16
  361. package/cjs/ui/PlaceHolder.js +6 -6
  362. package/cjs/ui/PlaybackTime.js +2 -2
  363. package/cjs/ui/QuoteMessage.js +6 -6
  364. package/cjs/ui/QuoteMessageInput.js +6 -6
  365. package/cjs/ui/ReactionBadge.js +3 -3
  366. package/cjs/ui/ReactionButton.js +1 -1
  367. package/cjs/ui/SortByRow.js +2 -2
  368. package/cjs/ui/TextButton.js +2 -2
  369. package/cjs/ui/TextMessageItemBody.js +25 -30
  370. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  371. package/cjs/ui/ThreadReplies.js +6 -6
  372. package/cjs/ui/ThumbnailMessageItemBody.js +2 -2
  373. package/cjs/ui/Tooltip.js +3 -3
  374. package/cjs/ui/TooltipWrapper.js +1 -1
  375. package/cjs/ui/UnknownMessageItemBody.js +6 -6
  376. package/cjs/ui/UserListItem.js +10 -10
  377. package/cjs/ui/UserProfile.js +9 -9
  378. package/cjs/ui/VoiceMessageItemBody.js +5 -5
  379. package/cjs/ui/VoiceMessgeInput.js +8 -8
  380. package/cjs/ui/Word.js +15 -10
  381. package/cjs/ui/Word.js.map +1 -1
  382. package/cjs/{useLongPress-839c53cb.js → useLongPress-d8b2586f.js} +3 -3
  383. package/cjs/{useLongPress-839c53cb.js.map → useLongPress-d8b2586f.js.map} +1 -1
  384. package/cjs/useSendbirdStateContext.js +1 -1
  385. package/cjs/utils/message/isVoiceMessage.js +2 -2
  386. package/cjs/{utils-41bb82dc.js → utils-49414b11.js} +1 -1
  387. package/cjs/{utils-41bb82dc.js.map → utils-49414b11.js.map} +1 -1
  388. package/cjs/{utils-7d2c966a.js → utils-6584b9f0.js} +1 -1
  389. package/cjs/{utils-7d2c966a.js.map → utils-6584b9f0.js.map} +1 -1
  390. package/cjs/{utils-9fc9438c.js → utils-7846a174.js} +2 -2
  391. package/cjs/{utils-9fc9438c.js.map → utils-7846a174.js.map} +1 -1
  392. package/cjs/{utils-dae078f4.js → utils-f294dd80.js} +1 -1
  393. package/cjs/{utils-dae078f4.js.map → utils-f294dd80.js.map} +1 -1
  394. package/cjs/{uuid-8454abf3.js → uuid-fe1b03cf.js} +1 -1
  395. package/cjs/{uuid-8454abf3.js.map → uuid-fe1b03cf.js.map} +1 -1
  396. package/cjs/withSendbird.js +1 -1
  397. package/{color-e5d40073.js → color-6e50d9e2.js} +1 -1
  398. package/{color-e5d40073.js.map → color-6e50d9e2.js.map} +1 -1
  399. package/{compareIds-148644b4.js → compareIds-67c3b05b.js} +1 -1
  400. package/{compareIds-148644b4.js.map → compareIds-67c3b05b.js.map} +1 -1
  401. package/{const-bf594206.js → const-8c87d265.js} +1 -1
  402. package/{const-bf594206.js.map → const-8c87d265.js.map} +1 -1
  403. package/{const-bba4efc9.js → const-b20d1024.js} +1 -1
  404. package/{const-bba4efc9.js.map → const-b20d1024.js.map} +1 -1
  405. package/{consts-f9543b99.js → consts-44e40533.js} +1 -1
  406. package/{consts-f9543b99.js.map → consts-44e40533.js.map} +1 -1
  407. package/consts-5929bec3.js +4 -0
  408. package/consts-5929bec3.js.map +1 -0
  409. package/{consts-b3042213.js → consts-5b2caf41.js} +1 -1
  410. package/{consts-b3042213.js.map → consts-5b2caf41.js.map} +1 -1
  411. package/consts-996c0a58.js +4 -0
  412. package/consts-996c0a58.js.map +1 -0
  413. package/{context-e82cf2c4.js → context-3ffe9980.js} +2 -2
  414. package/{context-e82cf2c4.js.map → context-3ffe9980.js.map} +1 -1
  415. package/dist/index.css +34 -26
  416. package/dist/index.css.map +1 -1
  417. package/{index-1dfb77d4.js → index-055bcae0.js} +2 -2
  418. package/{index-1dfb77d4.js.map → index-055bcae0.js.map} +1 -1
  419. package/{index-e1cff2ff.js → index-1d770388.js} +3 -3
  420. package/{index-e1cff2ff.js.map → index-1d770388.js.map} +1 -1
  421. package/{index-113d122f.js → index-26931609.js} +5 -5
  422. package/{index-113d122f.js.map → index-26931609.js.map} +1 -1
  423. package/{index-556999ef.js → index-3ee902ac.js} +8 -3
  424. package/index-3ee902ac.js.map +1 -0
  425. package/{index-18c2f8d4.js → index-3fff67da.js} +1 -1
  426. package/{index-18c2f8d4.js.map → index-3fff67da.js.map} +1 -1
  427. package/{index-253052c7.js → index-4538a9f1.js} +7 -7
  428. package/{index-253052c7.js.map → index-4538a9f1.js.map} +1 -1
  429. package/{index-9a413f89.js → index-55b1016d.js} +3 -3
  430. package/{index-9a413f89.js.map → index-55b1016d.js.map} +1 -1
  431. package/{index-e3d008b9.js → index-5668e8eb.js} +1 -1
  432. package/{index-e3d008b9.js.map → index-5668e8eb.js.map} +1 -1
  433. package/{index-86cb1c98.js → index-5d8bac74.js} +4 -4
  434. package/{index-86cb1c98.js.map → index-5d8bac74.js.map} +1 -1
  435. package/index-66393faa.js +57 -0
  436. package/index-66393faa.js.map +1 -0
  437. package/{index-97a2ff37.js → index-6e6736ec.js} +2 -2
  438. package/{index-97a2ff37.js.map → index-6e6736ec.js.map} +1 -1
  439. package/{index-2c0ab386.js → index-824e5bc8.js} +11 -5
  440. package/index-824e5bc8.js.map +1 -0
  441. package/{index-e571f56c.js → index-c36339ab.js} +4 -4
  442. package/{index-e571f56c.js.map → index-c36339ab.js.map} +1 -1
  443. package/{index-5be5af6d.js → index-d5769ac4.js} +7 -7
  444. package/{index-5be5af6d.js.map → index-d5769ac4.js.map} +1 -1
  445. package/{index-90365474.js → index-e34d85fd.js} +2 -2
  446. package/{index-90365474.js.map → index-e34d85fd.js.map} +1 -1
  447. package/index.d.ts +28 -1
  448. package/index.js +55 -51
  449. package/index.js.map +1 -1
  450. package/package.json +1 -1
  451. package/sendbirdSelectors.js +2 -2
  452. package/{stringSet-273bec27.js → stringSet-a9c3ac4a.js} +1 -1
  453. package/{stringSet-273bec27.js.map → stringSet-a9c3ac4a.js.map} +1 -1
  454. package/tokenize-63675252.js +130 -0
  455. package/tokenize-63675252.js.map +1 -0
  456. package/{topics-df7f51d4.js → topics-2a79610f.js} +1 -1
  457. package/{topics-df7f51d4.js.map → topics-2a79610f.js.map} +1 -1
  458. package/{tslib.es6-1aaf3795.js → tslib.es6-bb0710b6.js} +1 -1
  459. package/{tslib.es6-1aaf3795.js.map → tslib.es6-bb0710b6.js.map} +1 -1
  460. package/{types-ed183627.js → types-27a6a112.js} +1 -1
  461. package/types-27a6a112.js.map +1 -0
  462. package/ui/Accordion.js +3 -3
  463. package/ui/AccordionGroup.js +2 -2
  464. package/ui/AdminMessage.js +3 -3
  465. package/ui/Avatar.js +2 -2
  466. package/ui/Badge.js +5 -5
  467. package/ui/BottomSheet.js +1 -1
  468. package/ui/Button.js +3 -3
  469. package/ui/ChannelAvatar.js +3 -3
  470. package/ui/ConnectionStatus.js +4 -4
  471. package/ui/ContextMenu.js +5 -5
  472. package/ui/DateSeparator.js +4 -4
  473. package/ui/EmojiReactions.js +7 -7
  474. package/ui/FileMessageItemBody.js +6 -6
  475. package/ui/FileViewer.js +8 -8
  476. package/ui/IconButton.js +1 -1
  477. package/ui/ImageRenderer.js +1 -1
  478. package/ui/Input.js +2 -2
  479. package/ui/Label.js +2 -2
  480. package/ui/LinkLabel.js +2 -2
  481. package/ui/Loader.js +1 -1
  482. package/ui/MentionLabel.js +12 -11
  483. package/ui/MentionLabel.js.map +1 -1
  484. package/ui/MentionUserLabel.js +1 -1
  485. package/ui/MessageContent.js +29 -25
  486. package/ui/MessageContent.js.map +1 -1
  487. package/ui/MessageInput.js +81 -52
  488. package/ui/MessageInput.js.map +1 -1
  489. package/ui/MessageItemMenu.js +8 -8
  490. package/ui/MessageItemReactionMenu.js +5 -5
  491. package/ui/MessageSearchFileItem.js +10 -10
  492. package/ui/MessageSearchItem.js +9 -9
  493. package/ui/MessageStatus.js +10 -10
  494. package/ui/Modal.js +7 -7
  495. package/ui/OGMessageItemBody.js +26 -32
  496. package/ui/OGMessageItemBody.js.map +1 -1
  497. package/ui/OpenChannelAdminMessage.js +3 -3
  498. package/ui/OpenChannelAvatar.js +6 -6
  499. package/ui/OpenchannelConversationHeader.js +6 -6
  500. package/ui/OpenchannelFileMessage.js +16 -16
  501. package/ui/OpenchannelOGMessage.js +48 -64
  502. package/ui/OpenchannelOGMessage.js.map +1 -1
  503. package/ui/OpenchannelThumbnailMessage.js +15 -15
  504. package/ui/OpenchannelUserMessage.js +16 -16
  505. package/ui/PlaceHolder.js +6 -6
  506. package/ui/PlaybackTime.js +2 -2
  507. package/ui/QuoteMessage.js +6 -6
  508. package/ui/QuoteMessageInput.js +6 -6
  509. package/ui/ReactionBadge.js +3 -3
  510. package/ui/ReactionButton.js +1 -1
  511. package/ui/SortByRow.js +2 -2
  512. package/ui/TextButton.js +2 -2
  513. package/ui/TextMessageItemBody.js +25 -30
  514. package/ui/TextMessageItemBody.js.map +1 -1
  515. package/ui/ThreadReplies.js +6 -6
  516. package/ui/ThumbnailMessageItemBody.js +2 -2
  517. package/ui/Tooltip.js +3 -3
  518. package/ui/TooltipWrapper.js +1 -1
  519. package/ui/UnknownMessageItemBody.js +6 -6
  520. package/ui/UserListItem.js +10 -10
  521. package/ui/UserProfile.js +9 -9
  522. package/ui/VoiceMessageItemBody.js +5 -5
  523. package/ui/VoiceMessgeInput.js +8 -8
  524. package/ui/Word.js +15 -10
  525. package/ui/Word.js.map +1 -1
  526. package/{useLongPress-1ae5a380.js → useLongPress-7504e5b8.js} +3 -3
  527. package/{useLongPress-1ae5a380.js.map → useLongPress-7504e5b8.js.map} +1 -1
  528. package/useSendbirdStateContext.js +1 -1
  529. package/utils/message/isVoiceMessage.js +2 -2
  530. package/{utils-09901477.js → utils-1789e6d0.js} +1 -1
  531. package/{utils-09901477.js.map → utils-1789e6d0.js.map} +1 -1
  532. package/{utils-25614c42.js → utils-3ba27c29.js} +1 -1
  533. package/{utils-25614c42.js.map → utils-3ba27c29.js.map} +1 -1
  534. package/{utils-1b97d8ea.js → utils-3c4b1dd1.js} +2 -2
  535. package/{utils-1b97d8ea.js.map → utils-3c4b1dd1.js.map} +1 -1
  536. package/{utils-99c30ef6.js → utils-8318012f.js} +1 -1
  537. package/{utils-99c30ef6.js.map → utils-8318012f.js.map} +1 -1
  538. package/{uuid-29207f65.js → uuid-9ea19939.js} +1 -1
  539. package/{uuid-29207f65.js.map → uuid-9ea19939.js.map} +1 -1
  540. package/withSendbird.js +1 -1
  541. package/ChannelListProvider-3c107fc7.js.map +0 -1
  542. package/ChannelProvider-28639e83.js.map +0 -1
  543. package/_rollupPluginBabelHelpers-37cba0d6.js.map +0 -1
  544. package/cjs/ChannelListProvider-b7ffadf7.js.map +0 -1
  545. package/cjs/ChannelProvider-b963c72c.js.map +0 -1
  546. package/cjs/_rollupPluginBabelHelpers-1218aafb.js.map +0 -1
  547. package/cjs/index-2f2f3e43.js.map +0 -1
  548. package/cjs/index-7207d339.js.map +0 -1
  549. package/cjs/types-31b11c88.js.map +0 -1
  550. package/index-2c0ab386.js.map +0 -1
  551. package/index-556999ef.js.map +0 -1
  552. package/types-ed183627.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';\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: HTMLSpanElement[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n let mentionNode = currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY) as HTMLSpanElement;\n // sometimes the mention node is the parent node\n // in this case querySelector will return null\n if (!mentionNode) {\n mentionNode = (\n currentValue.classList.contains(MENTION_CLASS) // for nodes copied from message\n || currentValue.classList.contains(MENTION_CLASS_IN_INPUT) // for nodes copied from input\n ) ? currentValue : null;\n }\n const text = currentValue.innerText;\n if (mentionNode) {\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 userMap[template.userId] = users.find((user) => user.userId === template.userId);\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 { MENTION_CLASS_COMBINED_QUERY, MENTION_CLASS_IN_INPUT, TEXT_MESSAGE_CLASS } from './consts';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\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, sanitize and insert\n let childNodes = pasteNode.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`) as NodeListOf<HTMLSpanElement>;\n if (pasteNode.querySelectorAll(`.${MENTION_CLASS_IN_INPUT}`).length > 0) {\n // @ts-ignore\n childNodes = pasteNode.children;\n }\n let nodeArray = Array.from(childNodes);\n // handle paste when there is only one child\n if (pasteNode.children.length === 1 && pasteNode.querySelectorAll(MENTION_CLASS_COMBINED_QUERY).length === 1) {\n nodeArray = Array.from(pasteNode.children) as HTMLSpanElement[];\n }\n const words = domToMessageTemplate(nodeArray);\n\n const mentionedUsers = getUsersFromWords(words, channel);\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n\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';\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 textField.innerHTML = message?.mentionedMessageTemplate?.split(' ').map((word) => (\n convertWordToStringObj(word, mentionedUsers).map((stringObj) => {\n const { type, value, userId } = stringObj;\n if (type === StringObjType.mention && mentionedUsers.some((user) => user?.userId === userId)) {\n const nickname = `${USER_MENTION_TEMP_CHAR}${mentionedUsers.find((user) => user?.userId === userId)?.nickname\n || value\n || stringSet.MENTION_NAME__NO_NAME\n }`\n return renderMentionLabelToString({ userId, nickname });\n }\n return sanitizeString(value);\n }).join('')\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 { // 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","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","querySelectorAll","length","Array","from","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","classList","contains","dataset","userid","getUsersFromWords","channel","userMap","users","members","find","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","childNodes","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","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","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","messageId","mentionedMessageTemplate","word","convertWordToStringObj","stringObj","type","StringObjType","mention","some","USER_MENTION_TEMP_CHAR","MENTION_NAME__NO_NAME","useMentionedLabelDetection","newMentionedUserIds","getElementsByClassName","arrayEqual","frontTextNode","createTextNode","textContent","backTextNode","mentionLabel","div","newNodes","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","sendMessage","messageText","mentionTemplate","ElementNode","nodeName","NodeNames","Span","Br","params","isEditDisabled","trim","editMessage","onPaste","getClassName","preventEvent","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","LabelTypography","BODY_1","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconTypes","SEND","IconColors","ON_BACKGROUND_4","PRIMARY","click","ATTACH","CONTENT_INVERSE","AUDIO_ON_LINED","ButtonTypes","SECONDARY","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 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","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","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","messageId","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","type","TOKEN_TYPES","mention","mentionedUser","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","useMentionedLabelDetection","newMentionedUserIds","getElementsByClassName","arrayEqual","frontTextNode","createTextNode","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","newNodes","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","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","preventEvent","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","LabelTypography","BODY_1","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconTypes","SEND","IconColors","ON_BACKGROUND_4","PRIMARY","click","ATTACH","CONTENT_INVERSE","AUDIO_ON_LINED","ButtonTypes","SECONDARY","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 { s as isUserMessage, v as isSentMessage, w as isFailedMessage, x as isPendingMessage, j as getClassName, y as copyToClipboard } from '../index-556999ef.js';
6
- import { a as LocalizationContext } from '../LocalizationContext-ef72d4b1.js';
7
- import { R as Role } from '../types-ed183627.js';
8
- import '../tslib.es6-1aaf3795.js';
5
+ import { r as isUserMessage, u as isSentMessage, v as isFailedMessage, w as isPendingMessage, j as getClassName, x as copyToClipboard } from '../index-3ee902ac.js';
6
+ import { a as LocalizationContext } from '../LocalizationContext-34b46c40.js';
7
+ import { R as Role } from '../types-27a6a112.js';
8
+ import '../tslib.es6-bb0710b6.js';
9
9
  import 'react-dom';
10
10
  import './SortByRow.js';
11
- import '../uuid-29207f65.js';
12
- import '../index-2c0ab386.js';
11
+ import '../uuid-9ea19939.js';
12
+ import '../index-824e5bc8.js';
13
13
  import 'prop-types';
14
- import '../stringSet-273bec27.js';
14
+ import '../stringSet-a9c3ac4a.js';
15
15
  import '../utils/message/getOutgoingMessageState.js';
16
- import '../index-18c2f8d4.js';
16
+ import '../index-3fff67da.js';
17
17
 
18
18
  function MessageItemMenu(_a) {
19
19
  var _b;
@@ -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 { x as isPendingMessage, w as isFailedMessage, j as getClassName, z as getEmojiListAll } from '../index-556999ef.js';
8
- import '../tslib.es6-1aaf3795.js';
7
+ import { w as isPendingMessage, v as isFailedMessage, j as getClassName, y as getEmojiListAll } from '../index-3ee902ac.js';
8
+ import '../tslib.es6-bb0710b6.js';
9
9
  import 'react-dom';
10
10
  import './SortByRow.js';
11
- import '../uuid-29207f65.js';
12
- import '../index-2c0ab386.js';
11
+ import '../uuid-9ea19939.js';
12
+ import '../index-824e5bc8.js';
13
13
  import 'prop-types';
14
- import '../stringSet-273bec27.js';
14
+ import '../stringSet-a9c3ac4a.js';
15
15
  import '../utils/message/getOutgoingMessageState.js';
16
16
 
17
17
  function MessageItemReactionMenu(_a) {
@@ -1,18 +1,18 @@
1
- import { a as __spreadArray } from '../tslib.es6-1aaf3795.js';
1
+ import { a as __spreadArray } from '../tslib.es6-bb0710b6.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-2c0ab386.js';
6
- import { u as useLocalization } from '../LocalizationContext-ef72d4b1.js';
7
- import { f as format } from '../index-97a2ff37.js';
8
- import { i as isToday, a as isYesterday, b as isThisYear } from '../index-9a413f89.js';
9
- import { d as isVoiceMessage } from '../index-556999ef.js';
5
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../index-824e5bc8.js';
6
+ import { u as useLocalization } from '../LocalizationContext-34b46c40.js';
7
+ import { f as format } from '../index-6e6736ec.js';
8
+ import { i as isToday, a as isYesterday, b as isThisYear } from '../index-55b1016d.js';
9
+ import { d as isVoiceMessage } from '../index-3ee902ac.js';
10
10
  import './ImageRenderer.js';
11
- import '../uuid-29207f65.js';
11
+ import '../uuid-9ea19939.js';
12
12
  import 'prop-types';
13
- import '../stringSet-273bec27.js';
14
- import '../index-18c2f8d4.js';
15
- import '../index-1dfb77d4.js';
13
+ import '../stringSet-a9c3ac4a.js';
14
+ import '../index-3fff67da.js';
15
+ import '../index-055bcae0.js';
16
16
  import '../utils/message/getOutgoingMessageState.js';
17
17
 
18
18
  function getCreatedAt(_a) {
@@ -1,17 +1,17 @@
1
- import { a as __spreadArray } from '../tslib.es6-1aaf3795.js';
1
+ import { a as __spreadArray } from '../tslib.es6-bb0710b6.js';
2
2
  import React__default from 'react';
3
- import { f as format } from '../index-97a2ff37.js';
4
- import { i as isToday, a as isYesterday, b as isThisYear } from '../index-9a413f89.js';
3
+ import { f as format } from '../index-6e6736ec.js';
4
+ import { i as isToday, a as isYesterday, b as isThisYear } from '../index-55b1016d.js';
5
5
  import Avatar from './Avatar.js';
6
- import { L as Label, a as LabelTypography, b as LabelColors } from '../index-2c0ab386.js';
7
- import { u as useLocalization } from '../LocalizationContext-ef72d4b1.js';
8
- import '../index-18c2f8d4.js';
9
- import '../index-1dfb77d4.js';
6
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../index-824e5bc8.js';
7
+ import { u as useLocalization } from '../LocalizationContext-34b46c40.js';
8
+ import '../index-3fff67da.js';
9
+ import '../index-055bcae0.js';
10
10
  import './ImageRenderer.js';
11
11
  import './Icon.js';
12
12
  import 'prop-types';
13
- import '../uuid-29207f65.js';
14
- import '../stringSet-273bec27.js';
13
+ import '../uuid-9ea19939.js';
14
+ import '../stringSet-a9c3ac4a.js';
15
15
 
16
16
  function getCreatedAt (_a) {
17
17
  var createdAt = _a.createdAt,
@@ -1,16 +1,16 @@
1
- import '../tslib.es6-1aaf3795.js';
1
+ import '../tslib.es6-bb0710b6.js';
2
2
  import 'react';
3
- import '../index-97a2ff37.js';
3
+ import '../index-6e6736ec.js';
4
4
  import './Icon.js';
5
- import '../index-2c0ab386.js';
5
+ import '../index-824e5bc8.js';
6
6
  import './Loader.js';
7
- import '../index-556999ef.js';
7
+ import '../index-3ee902ac.js';
8
8
  import '../utils/message/getOutgoingMessageState.js';
9
- export { e as MessageStatusTypes, M as default } from '../index-5be5af6d.js';
10
- import '../LocalizationContext-ef72d4b1.js';
11
- import '../index-18c2f8d4.js';
9
+ export { e as MessageStatusTypes, M as default } from '../index-d5769ac4.js';
10
+ import '../LocalizationContext-34b46c40.js';
11
+ import '../index-3fff67da.js';
12
12
  import 'prop-types';
13
- import '../stringSet-273bec27.js';
14
- import '../index-9a413f89.js';
15
- import '../index-1dfb77d4.js';
13
+ import '../stringSet-a9c3ac4a.js';
14
+ import '../index-55b1016d.js';
15
+ import '../index-055bcae0.js';
16
16
  //# sourceMappingURL=MessageStatus.js.map
package/ui/Modal.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import React__default, { useContext } from 'react';
2
2
  import { createPortal } from 'react-dom';
3
- import { M as MODAL_ROOT } from '../index-e3d008b9.js';
4
- import { a as LocalizationContext } from '../LocalizationContext-ef72d4b1.js';
3
+ import { M as MODAL_ROOT } from '../index-5668e8eb.js';
4
+ import { a as LocalizationContext } from '../LocalizationContext-34b46c40.js';
5
5
  import Button, { ButtonTypes } from './Button.js';
6
6
  import Icon, { IconTypes, IconColors } from './Icon.js';
7
7
  import IconButton from './IconButton.js';
8
- import { L as Label, a as LabelTypography, b as LabelColors } from '../index-2c0ab386.js';
9
- import { u as useMediaQueryContext } from '../MediaQueryContext-683c7242.js';
10
- import '../stringSet-273bec27.js';
11
- import '../index-18c2f8d4.js';
12
- import '../tslib.es6-1aaf3795.js';
8
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../index-824e5bc8.js';
9
+ import { u as useMediaQueryContext } from '../MediaQueryContext-ce624aa4.js';
10
+ import '../stringSet-a9c3ac4a.js';
11
+ import '../index-3fff67da.js';
12
+ import '../tslib.es6-bb0710b6.js';
13
13
  import 'prop-types';
14
14
 
15
15
  var ModalHeader = function (_a) {
@@ -1,30 +1,33 @@
1
1
  import React__default, { useRef, useContext, useMemo } from 'react';
2
- import Word from './Word.js';
3
2
  import ImageRenderer from './ImageRenderer.js';
4
3
  import Icon, { IconTypes } from './Icon.js';
5
- import { L as Label, a as LabelTypography, b as LabelColors } from '../index-2c0ab386.js';
6
- import { u as uuidv4 } from '../uuid-29207f65.js';
7
- import { j as getClassName, e as isEditedMessage } from '../index-556999ef.js';
8
- import { a as LocalizationContext } from '../LocalizationContext-ef72d4b1.js';
9
- import './LinkLabel.js';
4
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../index-824e5bc8.js';
5
+ import { j as getClassName, e as isEditedMessage } from '../index-3ee902ac.js';
6
+ import { a as LocalizationContext } from '../LocalizationContext-34b46c40.js';
7
+ import { T as TextFragment } from '../index-66393faa.js';
8
+ import { t as tokenizeMessage } from '../tokenize-63675252.js';
9
+ import { O as OG_MESSAGE_BODY_CLASSNAME } from '../consts-996c0a58.js';
10
+ import '../tslib.es6-bb0710b6.js';
10
11
  import 'prop-types';
12
+ import '../stringSet-a9c3ac4a.js';
13
+ import '../utils/message/getOutgoingMessageState.js';
14
+ import '../index-3fff67da.js';
15
+ import '../Message/context.js';
11
16
  import './MentionLabel.js';
12
17
  import './ContextMenu.js';
13
- import '../tslib.es6-1aaf3795.js';
14
18
  import 'react-dom';
15
19
  import './SortByRow.js';
16
- import '../utils/message/getOutgoingMessageState.js';
17
- import '../stringSet-273bec27.js';
20
+ import '../uuid-9ea19939.js';
18
21
  import './UserProfile.js';
19
- import '../UserProfileContext-5d7c5f9f.js';
22
+ import '../UserProfileContext-3fa0c617.js';
20
23
  import '../sendbirdSelectors.js';
21
- import '../topics-df7f51d4.js';
22
- import '../utils-99c30ef6.js';
24
+ import '../topics-2a79610f.js';
25
+ import '../utils-8318012f.js';
23
26
  import './Avatar.js';
24
27
  import './Button.js';
25
28
  import '../useSendbirdStateContext.js';
26
29
  import '../withSendbird.js';
27
- import '../index-18c2f8d4.js';
30
+ import './LinkLabel.js';
28
31
 
29
32
  function OGMessageItemBody(_a) {
30
33
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
@@ -49,36 +52,27 @@ function OGMessageItemBody(_a) {
49
52
  };
50
53
 
51
54
  var isMessageMentioned = isMentionEnabled && ((_b = message === null || message === void 0 ? void 0 : message.mentionedMessageTemplate) === null || _b === void 0 ? void 0 : _b.length) > 0 && ((_c = message === null || message === void 0 ? void 0 : message.mentionedUsers) === null || _c === void 0 ? void 0 : _c.length) > 0;
52
- var sentences = useMemo(function () {
53
- var _a, _b;
54
-
55
+ var tokens = useMemo(function () {
55
56
  if (isMessageMentioned) {
56
- return (_a = message === null || message === void 0 ? void 0 : message.mentionedMessageTemplate) === null || _a === void 0 ? void 0 : _a.split(/\n/).map(function (sentence) {
57
- return sentence.split(/\s/);
57
+ return tokenizeMessage({
58
+ mentionedUsers: message === null || message === void 0 ? void 0 : message.mentionedUsers,
59
+ messageText: message === null || message === void 0 ? void 0 : message.mentionedMessageTemplate
58
60
  });
59
61
  }
60
62
 
61
- return (_b = message === null || message === void 0 ? void 0 : message.message) === null || _b === void 0 ? void 0 : _b.split(/\n/).map(function (sentence) {
62
- return sentence.split(/\s/);
63
+ return tokenizeMessage({
64
+ messageText: message === null || message === void 0 ? void 0 : message.message
63
65
  });
64
- }, [message === null || message === void 0 ? void 0 : message.mentionedMessageTemplate]);
66
+ }, [message === null || message === void 0 ? void 0 : message.updatedAt]);
65
67
  return /*#__PURE__*/React__default.createElement("div", {
66
68
  className: getClassName([className, 'sendbird-og-message-item-body', isByMe ? 'outgoing' : 'incoming', mouseHover ? 'mouse-hover' : '', isReactionEnabled && ((_d = message === null || message === void 0 ? void 0 : message.reactions) === null || _d === void 0 ? void 0 : _d.length) > 0 ? 'reactions' : ''])
67
69
  }, /*#__PURE__*/React__default.createElement(Label, {
68
- key: uuidv4(),
69
70
  type: LabelTypography.BODY_1,
70
71
  color: isByMe ? LabelColors.ONCONTENT_1 : LabelColors.ONBACKGROUND_1
71
72
  }, /*#__PURE__*/React__default.createElement("div", {
72
- className: "sendbird-og-message-item-body__text-bubble"
73
- }, sentences === null || sentences === void 0 ? void 0 : sentences.map(function (sentence, index) {
74
- return [sentence === null || sentence === void 0 ? void 0 : sentence.map(function (word) {
75
- return /*#__PURE__*/React__default.createElement(Word, {
76
- key: uuidv4(),
77
- word: word,
78
- message: message,
79
- isByMe: isByMe
80
- });
81
- }), (sentences === null || sentences === void 0 ? void 0 : sentences[index + 1]) ? /*#__PURE__*/React__default.createElement("br", null) : null];
73
+ className: OG_MESSAGE_BODY_CLASSNAME
74
+ }, /*#__PURE__*/React__default.createElement(TextFragment, {
75
+ tokens: tokens
82
76
  }), isEditedMessage(message) && /*#__PURE__*/React__default.createElement(Label, {
83
77
  className: "sendbird-og-message-item-body__text-bubble__message",
84
78
  type: LabelTypography.BODY_1,