@sendbird/uikit-react 3.6.11-beta.2 → 3.7.0-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 (994) hide show
  1. package/App.js +272 -345
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +134 -0
  4. package/Channel/components/ChannelHeader.js +45 -50
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +76 -77
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +53 -58
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +9 -12
  11. package/Channel/components/FrozenNotification.js.map +1 -1
  12. package/Channel/components/Message.js +198 -176
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageInput.js +137 -130
  15. package/Channel/components/MessageInput.js.map +1 -1
  16. package/Channel/components/MessageList.js +171 -161
  17. package/Channel/components/MessageList.js.map +1 -1
  18. package/Channel/components/RemoveMessageModal.js +40 -41
  19. package/Channel/components/RemoveMessageModal.js.map +1 -1
  20. package/Channel/components/SuggestedMentionList.js +156 -136
  21. package/Channel/components/SuggestedMentionList.js.map +1 -1
  22. package/Channel/components/TypingIndicator.js +47 -48
  23. package/Channel/components/TypingIndicator.js.map +1 -1
  24. package/Channel/components/UnreadCount.js +17 -18
  25. package/Channel/components/UnreadCount.js.map +1 -1
  26. package/Channel/context.js +17 -17
  27. package/Channel/utils/compareMessagesForGrouping.js +11 -11
  28. package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  29. package/Channel/utils/getMessagePartsInfo.js +32 -26
  30. package/Channel/utils/getMessagePartsInfo.js.map +1 -1
  31. package/Channel.js +54 -51
  32. package/Channel.js.map +1 -1
  33. package/ChannelList/components/AddChannel.js +32 -30
  34. package/ChannelList/components/AddChannel.js.map +1 -1
  35. package/ChannelList/components/ChannelListHeader.js +22 -31
  36. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  37. package/ChannelList/components/ChannelListUI.js +93 -88
  38. package/ChannelList/components/ChannelListUI.js.map +1 -1
  39. package/ChannelList/components/ChannelPreview.js +79 -75
  40. package/ChannelList/components/ChannelPreview.js.map +1 -1
  41. package/ChannelList/components/ChannelPreviewAction.js +85 -91
  42. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  43. package/ChannelList/context.js +9 -10
  44. package/ChannelList/context.js.map +1 -1
  45. package/ChannelList.js +38 -35
  46. package/ChannelList.js.map +1 -1
  47. package/ChannelListProvider-f520f5b3.js +1051 -0
  48. package/ChannelListProvider-f520f5b3.js.map +1 -0
  49. package/ChannelProvider-7f6fd1f8.js +2080 -0
  50. package/ChannelProvider-7f6fd1f8.js.map +1 -0
  51. package/ChannelSettings/components/ChannelProfile.js +42 -37
  52. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  53. package/ChannelSettings/components/ChannelSettingsUI.js +44 -47
  54. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  55. package/ChannelSettings/components/EditDetailsModal.js +54 -52
  56. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  57. package/ChannelSettings/components/LeaveChannel.js +39 -41
  58. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  59. package/ChannelSettings/components/ModerationPanel.js +552 -509
  60. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  61. package/ChannelSettings/components/UserListItem.js +66 -66
  62. package/ChannelSettings/components/UserListItem.js.map +1 -1
  63. package/ChannelSettings/components/UserPanel.js +29 -26
  64. package/ChannelSettings/components/UserPanel.js.map +1 -1
  65. package/ChannelSettings/context.js +52 -57
  66. package/ChannelSettings/context.js.map +1 -1
  67. package/ChannelSettings.js +20 -19
  68. package/ChannelSettings.js.map +1 -1
  69. package/CreateChannel/components/CreateChannelUI.js +23 -25
  70. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  71. package/CreateChannel/components/InviteUsers.js +106 -102
  72. package/CreateChannel/components/InviteUsers.js.map +1 -1
  73. package/CreateChannel/components/SelectChannelType.js +38 -43
  74. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  75. package/CreateChannel/context.js +4 -4
  76. package/CreateChannel.js +22 -23
  77. package/CreateChannel.js.map +1 -1
  78. package/CreateChannelProvider-c25dd81b.js +48 -0
  79. package/{CreateChannelProvider-a2fad282.js.map → CreateChannelProvider-c25dd81b.js.map} +1 -1
  80. package/CreateOpenChannel/components/CreateOpenChannelUI.js +38 -36
  81. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  82. package/CreateOpenChannel/context.js +29 -34
  83. package/CreateOpenChannel/context.js.map +1 -1
  84. package/CreateOpenChannel.js +20 -21
  85. package/CreateOpenChannel.js.map +1 -1
  86. package/EditUserProfile/components/EditUserProfileUI.js +152 -21
  87. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  88. package/EditUserProfile/context.js +13 -13
  89. package/EditUserProfile/context.js.map +1 -1
  90. package/EditUserProfile.js +19 -19
  91. package/EditUserProfile.js.map +1 -1
  92. package/LocalizationContext-d18a86d8.js +20 -0
  93. package/{LocalizationContext-2463058b.js.map → LocalizationContext-d18a86d8.js.map} +1 -1
  94. package/MediaQueryContext-3eeeec4f.js +85 -0
  95. package/MediaQueryContext-3eeeec4f.js.map +1 -0
  96. package/MemberList-469dae9b.js +422 -0
  97. package/{MemberList-593867cb.js.map → MemberList-469dae9b.js.map} +1 -1
  98. package/Message/context.js +11 -12
  99. package/Message/context.js.map +1 -1
  100. package/Message/hooks/useDirtyGetMentions.js +21 -26
  101. package/Message/hooks/useDirtyGetMentions.js.map +1 -1
  102. package/MessageSearch/components/MessageSearchUI.js +56 -61
  103. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  104. package/MessageSearch/context.js +166 -177
  105. package/MessageSearch/context.js.map +1 -1
  106. package/MessageSearch.js +49 -47
  107. package/MessageSearch.js.map +1 -1
  108. package/OpenChannel/components/FrozenChannelNotification.js +6 -8
  109. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  110. package/OpenChannel/components/OpenChannelHeader.js +22 -27
  111. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  112. package/OpenChannel/components/OpenChannelInput.js +32 -35
  113. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  114. package/OpenChannel/components/OpenChannelMessage.js +170 -171
  115. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  116. package/OpenChannel/components/OpenChannelMessageList.js +70 -64
  117. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  118. package/OpenChannel/components/OpenChannelUI.js +53 -54
  119. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  120. package/OpenChannel/context.js +8 -9
  121. package/OpenChannel/context.js.map +1 -1
  122. package/OpenChannel.js +37 -35
  123. package/OpenChannel.js.map +1 -1
  124. package/OpenChannelList/components/OpenChannelListUI.js +63 -61
  125. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  126. package/OpenChannelList/components/OpenChannelPreview.js +22 -21
  127. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  128. package/OpenChannelList/context.js +3 -3
  129. package/OpenChannelList.js +27 -27
  130. package/OpenChannelList.js.map +1 -1
  131. package/{OpenChannelListProvider-a0a09f0b.js → OpenChannelListProvider-24e735a1.js} +156 -178
  132. package/{OpenChannelListProvider-a0a09f0b.js.map → OpenChannelListProvider-24e735a1.js.map} +1 -1
  133. package/OpenChannelProvider-e9cb0f98.js +1850 -0
  134. package/{OpenChannelProvider-3e4b8c8e.js.map → OpenChannelProvider-e9cb0f98.js.map} +1 -1
  135. package/OpenChannelSettings/components/EditDetailsModal.js +52 -51
  136. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  137. package/OpenChannelSettings/components/OpenChannelProfile.js +30 -29
  138. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  139. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +39 -47
  140. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  141. package/OpenChannelSettings/components/OperatorUI.js +550 -518
  142. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  143. package/OpenChannelSettings/components/ParticipantUI.js +16 -15
  144. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  145. package/OpenChannelSettings/context.js +58 -57
  146. package/OpenChannelSettings/context.js.map +1 -1
  147. package/OpenChannelSettings.js +20 -19
  148. package/OpenChannelSettings.js.map +1 -1
  149. package/README.md +4 -4
  150. package/RemoveMessageModal-f0cd37a5.js +33 -0
  151. package/RemoveMessageModal-f0cd37a5.js.map +1 -0
  152. package/SendbirdProvider.js +726 -690
  153. package/SendbirdProvider.js.map +1 -1
  154. package/Thread/components/ParentMessageInfo.js +194 -181
  155. package/Thread/components/ParentMessageInfo.js.map +1 -1
  156. package/Thread/components/ParentMessageInfoItem.js +86 -79
  157. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  158. package/Thread/components/ThreadHeader.js +22 -22
  159. package/Thread/components/ThreadHeader.js.map +1 -1
  160. package/Thread/components/ThreadList.js +126 -94
  161. package/Thread/components/ThreadList.js.map +1 -1
  162. package/Thread/components/ThreadListItem.js +260 -241
  163. package/Thread/components/ThreadListItem.js.map +1 -1
  164. package/Thread/components/ThreadMessageInput.js +121 -120
  165. package/Thread/components/ThreadMessageInput.js.map +1 -1
  166. package/Thread/components/ThreadUI.js +128 -144
  167. package/Thread/components/ThreadUI.js.map +1 -1
  168. package/Thread/context/types.js +9 -9
  169. package/Thread/context/types.js.map +1 -1
  170. package/Thread/context.js +1678 -19
  171. package/Thread/context.js.map +1 -1
  172. package/Thread.js +76 -73
  173. package/Thread.js.map +1 -1
  174. package/UserProfileContext-26e71f9a.js +34 -0
  175. package/UserProfileContext-26e71f9a.js.map +1 -0
  176. package/VoicePlayer/context.js +3 -3
  177. package/VoicePlayer/useVoicePlayer.js +52 -46
  178. package/VoicePlayer/useVoicePlayer.js.map +1 -1
  179. package/VoiceRecorder/context.js +68 -64
  180. package/VoiceRecorder/context.js.map +1 -1
  181. package/VoiceRecorder/useVoiceRecorder.js +50 -52
  182. package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  183. package/{WebAudioUtils-f9386235.js → WebAudioUtils-dbb010a5.js} +38 -38
  184. package/{WebAudioUtils-f9386235.js.map → WebAudioUtils-dbb010a5.js.map} +1 -1
  185. package/{_rollupPluginBabelHelpers-50c9576f.js → _rollupPluginBabelHelpers-07dcbc2b.js} +17 -17
  186. package/_rollupPluginBabelHelpers-07dcbc2b.js.map +1 -0
  187. package/{actionTypes-501b8c11.js → actionTypes-3cd49b5c.js} +2 -2
  188. package/{actionTypes-501b8c11.js.map → actionTypes-3cd49b5c.js.map} +1 -1
  189. package/cjs/App.js +270 -344
  190. package/cjs/App.js.map +1 -1
  191. package/cjs/Channel/components/ChannelHeader.js +44 -49
  192. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  193. package/cjs/Channel/components/ChannelUI.js +79 -80
  194. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  195. package/cjs/Channel/components/FileViewer.js +52 -57
  196. package/cjs/Channel/components/FileViewer.js.map +1 -1
  197. package/cjs/Channel/components/FrozenNotification.js +9 -12
  198. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  199. package/cjs/Channel/components/Message.js +197 -175
  200. package/cjs/Channel/components/Message.js.map +1 -1
  201. package/cjs/Channel/components/MessageInput.js +136 -129
  202. package/cjs/Channel/components/MessageInput.js.map +1 -1
  203. package/cjs/Channel/components/MessageList.js +173 -163
  204. package/cjs/Channel/components/MessageList.js.map +1 -1
  205. package/cjs/Channel/components/RemoveMessageModal.js +41 -42
  206. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  207. package/cjs/Channel/components/SuggestedMentionList.js +155 -135
  208. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  209. package/cjs/Channel/components/TypingIndicator.js +46 -47
  210. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  211. package/cjs/Channel/components/UnreadCount.js +17 -18
  212. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  213. package/cjs/Channel/context.js +17 -17
  214. package/cjs/Channel/utils/compareMessagesForGrouping.js +11 -11
  215. package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  216. package/cjs/Channel/utils/getMessagePartsInfo.js +32 -26
  217. package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
  218. package/cjs/Channel.js +54 -51
  219. package/cjs/Channel.js.map +1 -1
  220. package/cjs/ChannelList/components/AddChannel.js +31 -29
  221. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  222. package/cjs/ChannelList/components/ChannelListHeader.js +21 -30
  223. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  224. package/cjs/ChannelList/components/ChannelListUI.js +96 -91
  225. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  226. package/cjs/ChannelList/components/ChannelPreview.js +78 -74
  227. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  228. package/cjs/ChannelList/components/ChannelPreviewAction.js +84 -91
  229. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  230. package/cjs/ChannelList/context.js +9 -10
  231. package/cjs/ChannelList/context.js.map +1 -1
  232. package/cjs/ChannelList.js +38 -35
  233. package/cjs/ChannelList.js.map +1 -1
  234. package/cjs/ChannelListProvider-a418de2e.js +1060 -0
  235. package/cjs/ChannelListProvider-a418de2e.js.map +1 -0
  236. package/cjs/ChannelProvider-7fa98120.js +2088 -0
  237. package/cjs/ChannelProvider-7fa98120.js.map +1 -0
  238. package/cjs/ChannelSettings/components/ChannelProfile.js +41 -36
  239. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  240. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +44 -47
  241. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  242. package/cjs/ChannelSettings/components/EditDetailsModal.js +54 -52
  243. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  244. package/cjs/ChannelSettings/components/LeaveChannel.js +38 -40
  245. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  246. package/cjs/ChannelSettings/components/ModerationPanel.js +559 -516
  247. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  248. package/cjs/ChannelSettings/components/UserListItem.js +66 -66
  249. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  250. package/cjs/ChannelSettings/components/UserPanel.js +29 -26
  251. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  252. package/cjs/ChannelSettings/context.js +51 -56
  253. package/cjs/ChannelSettings/context.js.map +1 -1
  254. package/cjs/ChannelSettings.js +20 -19
  255. package/cjs/ChannelSettings.js.map +1 -1
  256. package/cjs/CreateChannel/components/CreateChannelUI.js +23 -25
  257. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  258. package/cjs/CreateChannel/components/InviteUsers.js +106 -102
  259. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  260. package/cjs/CreateChannel/components/SelectChannelType.js +37 -42
  261. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  262. package/cjs/CreateChannel/context.js +4 -4
  263. package/cjs/CreateChannel.js +22 -23
  264. package/cjs/CreateChannel.js.map +1 -1
  265. package/cjs/CreateChannelProvider-70c9cb7c.js +55 -0
  266. package/cjs/{CreateChannelProvider-8b8a557c.js.map → CreateChannelProvider-70c9cb7c.js.map} +1 -1
  267. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +39 -37
  268. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  269. package/cjs/CreateOpenChannel/context.js +28 -33
  270. package/cjs/CreateOpenChannel/context.js.map +1 -1
  271. package/cjs/CreateOpenChannel.js +20 -21
  272. package/cjs/CreateOpenChannel.js.map +1 -1
  273. package/cjs/EditUserProfile/components/EditUserProfileUI.js +153 -22
  274. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  275. package/cjs/EditUserProfile/context.js +13 -13
  276. package/cjs/EditUserProfile/context.js.map +1 -1
  277. package/cjs/EditUserProfile.js +21 -21
  278. package/cjs/EditUserProfile.js.map +1 -1
  279. package/cjs/{LocalizationContext-482c1343.js → LocalizationContext-5009012e.js} +9 -9
  280. package/cjs/{LocalizationContext-482c1343.js.map → LocalizationContext-5009012e.js.map} +1 -1
  281. package/cjs/MediaQueryContext-d6fdbe43.js +92 -0
  282. package/cjs/MediaQueryContext-d6fdbe43.js.map +1 -0
  283. package/cjs/MemberList-529a0086.js +428 -0
  284. package/cjs/{MemberList-26b8de48.js.map → MemberList-529a0086.js.map} +1 -1
  285. package/cjs/Message/context.js +11 -12
  286. package/cjs/Message/context.js.map +1 -1
  287. package/cjs/Message/hooks/useDirtyGetMentions.js +21 -26
  288. package/cjs/Message/hooks/useDirtyGetMentions.js.map +1 -1
  289. package/cjs/MessageSearch/components/MessageSearchUI.js +60 -65
  290. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  291. package/cjs/MessageSearch/context.js +165 -176
  292. package/cjs/MessageSearch/context.js.map +1 -1
  293. package/cjs/MessageSearch.js +49 -47
  294. package/cjs/MessageSearch.js.map +1 -1
  295. package/cjs/OpenChannel/components/FrozenChannelNotification.js +6 -8
  296. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  297. package/cjs/OpenChannel/components/OpenChannelHeader.js +22 -27
  298. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  299. package/cjs/OpenChannel/components/OpenChannelInput.js +32 -35
  300. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  301. package/cjs/OpenChannel/components/OpenChannelMessage.js +169 -170
  302. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  303. package/cjs/OpenChannel/components/OpenChannelMessageList.js +69 -63
  304. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  305. package/cjs/OpenChannel/components/OpenChannelUI.js +56 -57
  306. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  307. package/cjs/OpenChannel/context.js +8 -9
  308. package/cjs/OpenChannel/context.js.map +1 -1
  309. package/cjs/OpenChannel.js +37 -35
  310. package/cjs/OpenChannel.js.map +1 -1
  311. package/cjs/OpenChannelList/components/OpenChannelListUI.js +66 -64
  312. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  313. package/cjs/OpenChannelList/components/OpenChannelPreview.js +22 -21
  314. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  315. package/cjs/OpenChannelList/context.js +3 -3
  316. package/cjs/OpenChannelList.js +27 -27
  317. package/cjs/OpenChannelList.js.map +1 -1
  318. package/cjs/OpenChannelListProvider-0b8cd3bf.js +416 -0
  319. package/cjs/{OpenChannelListProvider-2e3ee48d.js.map → OpenChannelListProvider-0b8cd3bf.js.map} +1 -1
  320. package/cjs/OpenChannelProvider-d8cc11fe.js +1859 -0
  321. package/cjs/{OpenChannelProvider-8577ea58.js.map → OpenChannelProvider-d8cc11fe.js.map} +1 -1
  322. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +53 -52
  323. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  324. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +29 -28
  325. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  326. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +40 -48
  327. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  328. package/cjs/OpenChannelSettings/components/OperatorUI.js +557 -525
  329. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  330. package/cjs/OpenChannelSettings/components/ParticipantUI.js +16 -15
  331. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  332. package/cjs/OpenChannelSettings/context.js +57 -56
  333. package/cjs/OpenChannelSettings/context.js.map +1 -1
  334. package/cjs/OpenChannelSettings.js +20 -19
  335. package/cjs/OpenChannelSettings.js.map +1 -1
  336. package/cjs/RemoveMessageModal-f029d40e.js +39 -0
  337. package/cjs/RemoveMessageModal-f029d40e.js.map +1 -0
  338. package/cjs/SendbirdProvider.js +733 -693
  339. package/cjs/SendbirdProvider.js.map +1 -1
  340. package/cjs/Thread/components/ParentMessageInfo.js +193 -180
  341. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  342. package/cjs/Thread/components/ParentMessageInfoItem.js +86 -79
  343. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  344. package/cjs/Thread/components/ThreadHeader.js +22 -22
  345. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  346. package/cjs/Thread/components/ThreadList.js +125 -93
  347. package/cjs/Thread/components/ThreadList.js.map +1 -1
  348. package/cjs/Thread/components/ThreadListItem.js +263 -244
  349. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  350. package/cjs/Thread/components/ThreadMessageInput.js +120 -119
  351. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  352. package/cjs/Thread/components/ThreadUI.js +134 -150
  353. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  354. package/cjs/Thread/context/types.js +9 -13
  355. package/cjs/Thread/context/types.js.map +1 -1
  356. package/cjs/Thread/context.js +1680 -21
  357. package/cjs/Thread/context.js.map +1 -1
  358. package/cjs/Thread.js +76 -73
  359. package/cjs/Thread.js.map +1 -1
  360. package/cjs/UserProfileContext-922a43ec.js +41 -0
  361. package/cjs/UserProfileContext-922a43ec.js.map +1 -0
  362. package/cjs/VoicePlayer/context.js +3 -3
  363. package/cjs/VoicePlayer/useVoicePlayer.js +52 -46
  364. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
  365. package/cjs/VoiceRecorder/context.js +67 -63
  366. package/cjs/VoiceRecorder/context.js.map +1 -1
  367. package/cjs/VoiceRecorder/useVoiceRecorder.js +49 -51
  368. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  369. package/cjs/{WebAudioUtils-142344fd.js → WebAudioUtils-29717597.js} +38 -38
  370. package/cjs/{WebAudioUtils-142344fd.js.map → WebAudioUtils-29717597.js.map} +1 -1
  371. package/cjs/{_rollupPluginBabelHelpers-83d7e84b.js → _rollupPluginBabelHelpers-94c18dc1.js} +16 -17
  372. package/cjs/_rollupPluginBabelHelpers-94c18dc1.js.map +1 -0
  373. package/cjs/{actionTypes-1d118952.js → actionTypes-7fa02f94.js} +2 -2
  374. package/cjs/{actionTypes-1d118952.js.map → actionTypes-7fa02f94.js.map} +1 -1
  375. package/cjs/{color-d83b77ac.js → color-477ddbd4.js} +12 -13
  376. package/cjs/color-477ddbd4.js.map +1 -0
  377. package/cjs/{compareIds-bef997cb.js → compareIds-de541666.js} +7 -6
  378. package/cjs/compareIds-de541666.js.map +1 -0
  379. package/cjs/{const-1726bde0.js → const-640252c1.js} +4 -4
  380. package/cjs/{const-1726bde0.js.map → const-640252c1.js.map} +1 -1
  381. package/cjs/const-9def5c09.js +19 -0
  382. package/cjs/{const-67ff9e34.js.map → const-9def5c09.js.map} +1 -1
  383. package/cjs/consts-54f5c12d.js +6 -0
  384. package/cjs/consts-54f5c12d.js.map +1 -0
  385. package/cjs/consts-85cd42fa.js +6 -0
  386. package/cjs/{consts-bf228385.js.map → consts-85cd42fa.js.map} +1 -1
  387. package/cjs/{consts-fb07c671.js → consts-95462b21.js} +18 -25
  388. package/cjs/{consts-fb07c671.js.map → consts-95462b21.js.map} +1 -1
  389. package/cjs/consts-a3b7ae99.js +6 -0
  390. package/cjs/{consts-d3b53f23.js.map → consts-a3b7ae99.js.map} +1 -1
  391. package/cjs/{context-bd2878ff.js → context-9814fafe.js} +5 -6
  392. package/cjs/{context-bd2878ff.js.map → context-9814fafe.js.map} +1 -1
  393. package/cjs/dist/index.css +110 -95
  394. package/cjs/dist/index.css.map +1 -1
  395. package/cjs/handlers/OpenChannelHandler.js.map +1 -1
  396. package/cjs/handlers/SessionHandler.js.map +1 -1
  397. package/cjs/hooks/useModal.js +84 -0
  398. package/cjs/hooks/useModal.js.map +1 -0
  399. package/cjs/{index-81baccd0.js → index-0a25b9b2.js} +166 -154
  400. package/cjs/index-0a25b9b2.js.map +1 -0
  401. package/cjs/index-0ec5a831.js +308 -0
  402. package/cjs/{index-1f6b30ea.js.map → index-0ec5a831.js.map} +1 -1
  403. package/cjs/{index-18720f0d.js → index-35820a94.js} +2 -2
  404. package/cjs/{index-18720f0d.js.map → index-35820a94.js.map} +1 -1
  405. package/cjs/index-609b07a2.js +7 -0
  406. package/cjs/index-609b07a2.js.map +1 -0
  407. package/cjs/index-6b0644d7.js +369 -0
  408. package/cjs/index-6b0644d7.js.map +1 -0
  409. package/cjs/{index-857630c5.js → index-7b0c6630.js} +104 -114
  410. package/cjs/index-7b0c6630.js.map +1 -0
  411. package/cjs/index-80a11b6a.js +197 -0
  412. package/cjs/{index-6ab9a40d.js.map → index-80a11b6a.js.map} +1 -1
  413. package/cjs/{index-4eb7e2b5.js → index-826b76d5.js} +2 -4
  414. package/cjs/index-826b76d5.js.map +1 -0
  415. package/cjs/{index-11f9cc0f.js → index-83d2aed9.js} +3 -12
  416. package/cjs/index-83d2aed9.js.map +1 -0
  417. package/cjs/index-aeb36f01.js +173 -0
  418. package/cjs/index-aeb36f01.js.map +1 -0
  419. package/cjs/{index-c9b003b3.js → index-b6d51e74.js} +56 -193
  420. package/cjs/index-b6d51e74.js.map +1 -0
  421. package/cjs/index-b995f638.js +741 -0
  422. package/cjs/index-b995f638.js.map +1 -0
  423. package/cjs/{index-759f2a26.js → index-bdf7089c.js} +72 -80
  424. package/cjs/{index-759f2a26.js.map → index-bdf7089c.js.map} +1 -1
  425. package/cjs/{index-7c374c20.js → index-c22e0cbf.js} +25 -28
  426. package/cjs/{index-7c374c20.js.map → index-c22e0cbf.js.map} +1 -1
  427. package/cjs/index-daf80c58.js +20 -0
  428. package/cjs/index-daf80c58.js.map +1 -0
  429. package/cjs/index-e81e2882.js +59 -0
  430. package/cjs/{index-2ab19f9b.js.map → index-e81e2882.js.map} +1 -1
  431. package/cjs/{index-91b4af96.js → index-ee3bf381.js} +39 -37
  432. package/cjs/{index-91b4af96.js.map → index-ee3bf381.js.map} +1 -1
  433. package/cjs/{index-d04f312e.js → index-fd8a0abb.js} +10 -30
  434. package/cjs/index-fd8a0abb.js.map +1 -0
  435. package/cjs/index.js +66 -63
  436. package/cjs/index.js.map +1 -1
  437. package/cjs/lame.all.js.map +1 -1
  438. package/cjs/package.json +2 -49
  439. package/cjs/{topics-adde627b.js → pubSub/topics.js} +6 -2
  440. package/cjs/pubSub/topics.js.map +1 -0
  441. package/cjs/{resolvedReplyType-85b4bd7c.js → resolvedReplyType-c20ef661.js} +1 -1
  442. package/cjs/{resolvedReplyType-85b4bd7c.js.map → resolvedReplyType-c20ef661.js.map} +1 -1
  443. package/cjs/sendbirdSelectors.js +381 -332
  444. package/cjs/sendbirdSelectors.js.map +1 -1
  445. package/cjs/stringFormatterUtils-e324636c.js +16 -0
  446. package/cjs/{stringFormatterUtils-8d6592ca.js.map → stringFormatterUtils-e324636c.js.map} +1 -1
  447. package/cjs/{stringSet-d00535a5.js → stringSet-98b52c49.js} +9 -2
  448. package/cjs/stringSet-98b52c49.js.map +1 -0
  449. package/cjs/{tokenize-9296fc47.js → tokenize-91bdbeb0.js} +56 -61
  450. package/cjs/{tokenize-9296fc47.js.map → tokenize-91bdbeb0.js.map} +1 -1
  451. package/cjs/tslib.es6-2f2b0bca.js +102 -0
  452. package/cjs/tslib.es6-2f2b0bca.js.map +1 -0
  453. package/cjs/types-31ed2276.js +11 -0
  454. package/cjs/types-31ed2276.js.map +1 -0
  455. package/cjs/types-66554668.js +15 -0
  456. package/cjs/types-66554668.js.map +1 -0
  457. package/cjs/ui/Accordion.js +18 -19
  458. package/cjs/ui/Accordion.js.map +1 -1
  459. package/cjs/ui/AccordionGroup.js +11 -10
  460. package/cjs/ui/AccordionGroup.js.map +1 -1
  461. package/cjs/ui/AdminMessage.js +10 -10
  462. package/cjs/ui/AdminMessage.js.map +1 -1
  463. package/cjs/ui/Avatar.js +59 -55
  464. package/cjs/ui/Avatar.js.map +1 -1
  465. package/cjs/ui/Badge.js +15 -16
  466. package/cjs/ui/Badge.js.map +1 -1
  467. package/cjs/ui/BottomSheet.js +15 -17
  468. package/cjs/ui/BottomSheet.js.map +1 -1
  469. package/cjs/ui/Button.js +31 -33
  470. package/cjs/ui/Button.js.map +1 -1
  471. package/cjs/ui/ChannelAvatar.js +41 -38
  472. package/cjs/ui/ChannelAvatar.js.map +1 -1
  473. package/cjs/ui/Checkbox.js +10 -9
  474. package/cjs/ui/Checkbox.js.map +1 -1
  475. package/cjs/ui/ConnectionStatus.js +5 -7
  476. package/cjs/ui/ConnectionStatus.js.map +1 -1
  477. package/cjs/ui/ContextMenu.js +143 -144
  478. package/cjs/ui/ContextMenu.js.map +1 -1
  479. package/cjs/ui/DateSeparator.js +14 -12
  480. package/cjs/ui/DateSeparator.js.map +1 -1
  481. package/cjs/ui/EmojiReactions.js +206 -176
  482. package/cjs/ui/EmojiReactions.js.map +1 -1
  483. package/cjs/ui/FileMessageItemBody.js +23 -23
  484. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  485. package/cjs/ui/FileViewer.js +14 -12
  486. package/cjs/ui/FileViewer.js.map +1 -1
  487. package/cjs/ui/Icon.js +16 -16
  488. package/cjs/ui/Icon.js.map +1 -1
  489. package/cjs/ui/IconButton.js +28 -20
  490. package/cjs/ui/IconButton.js.map +1 -1
  491. package/cjs/ui/ImageRenderer.js +84 -64
  492. package/cjs/ui/ImageRenderer.js.map +1 -1
  493. package/cjs/ui/Input.js +14 -16
  494. package/cjs/ui/Input.js.map +1 -1
  495. package/cjs/ui/Label.js +2 -2
  496. package/cjs/ui/LinkLabel.js +2 -2
  497. package/cjs/ui/LinkLabel.js.map +1 -1
  498. package/cjs/ui/Loader.js +12 -10
  499. package/cjs/ui/Loader.js.map +1 -1
  500. package/cjs/ui/MentionLabel.js +63 -59
  501. package/cjs/ui/MentionLabel.js.map +1 -1
  502. package/cjs/ui/MentionUserLabel.js +10 -10
  503. package/cjs/ui/MentionUserLabel.js.map +1 -1
  504. package/cjs/ui/MessageContent.js +187 -171
  505. package/cjs/ui/MessageContent.js.map +1 -1
  506. package/cjs/ui/MessageInput/hooks/usePaste.js +5 -4
  507. package/cjs/ui/MessageInput/hooks/usePaste.js.map +1 -1
  508. package/cjs/ui/MessageInput.js +55 -57
  509. package/cjs/ui/MessageInput.js.map +1 -1
  510. package/cjs/ui/MessageItemMenu.js +93 -72
  511. package/cjs/ui/MessageItemMenu.js.map +1 -1
  512. package/cjs/ui/MessageItemReactionMenu.js +64 -56
  513. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  514. package/cjs/ui/MessageSearchFileItem.js +40 -49
  515. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  516. package/cjs/ui/MessageSearchItem.js +32 -40
  517. package/cjs/ui/MessageSearchItem.js.map +1 -1
  518. package/cjs/ui/MessageStatus.js +11 -11
  519. package/cjs/ui/Modal.js +57 -59
  520. package/cjs/ui/Modal.js.map +1 -1
  521. package/cjs/ui/MutedAvatarOverlay.js +10 -10
  522. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  523. package/cjs/ui/OGMessageItemBody.js +47 -47
  524. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  525. package/cjs/ui/OpenChannelAdminMessage.js +7 -8
  526. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  527. package/cjs/ui/OpenChannelAvatar.js +17 -18
  528. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  529. package/cjs/ui/OpenchannelConversationHeader.js +13 -17
  530. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  531. package/cjs/ui/OpenchannelFileMessage.js +147 -139
  532. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  533. package/cjs/ui/OpenchannelOGMessage.js +185 -178
  534. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  535. package/cjs/ui/OpenchannelThumbnailMessage.js +220 -213
  536. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  537. package/cjs/ui/OpenchannelUserMessage.js +172 -164
  538. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  539. package/cjs/ui/PlaceHolder.js +108 -10
  540. package/cjs/ui/PlaceHolder.js.map +1 -1
  541. package/cjs/ui/PlaybackTime.js +16 -15
  542. package/cjs/ui/PlaybackTime.js.map +1 -1
  543. package/cjs/ui/ProgressBar.js +15 -13
  544. package/cjs/ui/ProgressBar.js.map +1 -1
  545. package/cjs/ui/QuoteMessage.js +41 -44
  546. package/cjs/ui/QuoteMessage.js.map +1 -1
  547. package/cjs/ui/QuoteMessageInput.js +45 -31
  548. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  549. package/cjs/ui/ReactionBadge.js +17 -13
  550. package/cjs/ui/ReactionBadge.js.map +1 -1
  551. package/cjs/ui/ReactionButton.js +19 -19
  552. package/cjs/ui/ReactionButton.js.map +1 -1
  553. package/cjs/ui/SortByRow.js +14 -14
  554. package/cjs/ui/SortByRow.js.map +1 -1
  555. package/cjs/ui/TextButton.js +21 -13
  556. package/cjs/ui/TextButton.js.map +1 -1
  557. package/cjs/ui/TextMessageItemBody.js +33 -31
  558. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  559. package/cjs/ui/ThreadReplies.js +21 -25
  560. package/cjs/ui/ThreadReplies.js.map +1 -1
  561. package/cjs/ui/ThumbnailMessageItemBody.js +37 -28
  562. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  563. package/cjs/ui/Toggle.js +85 -77
  564. package/cjs/ui/Toggle.js.map +1 -1
  565. package/cjs/ui/Tooltip.js +9 -8
  566. package/cjs/ui/Tooltip.js.map +1 -1
  567. package/cjs/ui/TooltipWrapper.js +18 -17
  568. package/cjs/ui/TooltipWrapper.js.map +1 -1
  569. package/cjs/ui/UnknownMessageItemBody.js +19 -20
  570. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  571. package/cjs/ui/UserListItem.js +80 -75
  572. package/cjs/ui/UserListItem.js.map +1 -1
  573. package/cjs/ui/UserProfile.js +28 -33
  574. package/cjs/ui/UserProfile.js.map +1 -1
  575. package/cjs/ui/VoiceMessageItemBody.js +49 -43
  576. package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
  577. package/cjs/ui/VoiceMessgeInput.js +8 -7
  578. package/cjs/ui/VoiceMessgeInput.js.map +1 -1
  579. package/cjs/ui/Word.js +29 -27
  580. package/cjs/ui/Word.js.map +1 -1
  581. package/cjs/{useHandleUploadFiles-b2fc56e5.js → useHandleUploadFiles-fbe6ad64.js} +114 -127
  582. package/cjs/useHandleUploadFiles-fbe6ad64.js.map +1 -0
  583. package/cjs/useLongPress-c1da8ba7.js +105 -0
  584. package/cjs/useLongPress-c1da8ba7.js.map +1 -0
  585. package/cjs/useSendMultipleFilesMessage-87e0ffa3.js +316 -0
  586. package/cjs/useSendMultipleFilesMessage-87e0ffa3.js.map +1 -0
  587. package/cjs/useSendbirdStateContext.js +8 -3
  588. package/cjs/useSendbirdStateContext.js.map +1 -1
  589. package/cjs/useStatefulFileInfoList-aa70b6b9.js +228 -0
  590. package/cjs/useStatefulFileInfoList-aa70b6b9.js.map +1 -0
  591. package/cjs/utils/message/getOutgoingMessageState.js +14 -16
  592. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  593. package/cjs/utils/message/isVoiceMessage.js +4 -4
  594. package/cjs/utils/message/isVoiceMessage.js.map +1 -1
  595. package/cjs/utils-0fac6ad1.js +27 -0
  596. package/cjs/utils-0fac6ad1.js.map +1 -0
  597. package/cjs/utils-180c6bc8.js +10 -0
  598. package/cjs/utils-180c6bc8.js.map +1 -0
  599. package/cjs/{utils-991911af.js → utils-46483130.js} +3 -3
  600. package/cjs/{utils-991911af.js.map → utils-46483130.js.map} +1 -1
  601. package/cjs/utils-55fc6797.js +170 -0
  602. package/cjs/utils-55fc6797.js.map +1 -0
  603. package/cjs/utils-851724e0.js +62 -0
  604. package/cjs/utils-851724e0.js.map +1 -0
  605. package/cjs/utils-e313131f.js +35 -0
  606. package/cjs/utils-e313131f.js.map +1 -0
  607. package/cjs/uuid-c74bbbb6.js +17 -0
  608. package/cjs/{uuid-b2806cf5.js.map → uuid-c74bbbb6.js.map} +1 -1
  609. package/cjs/withSendbird.js +16 -22
  610. package/cjs/withSendbird.js.map +1 -1
  611. package/{color-b7f211a8.js → color-1383d4ab.js} +5 -5
  612. package/{color-b7f211a8.js.map → color-1383d4ab.js.map} +1 -1
  613. package/compareIds-b56b02f1.js +16 -0
  614. package/compareIds-b56b02f1.js.map +1 -0
  615. package/{const-74ec9eb4.js → const-4bc3721f.js} +4 -4
  616. package/{const-74ec9eb4.js.map → const-4bc3721f.js.map} +1 -1
  617. package/const-e3326913.js +13 -0
  618. package/{const-711048c3.js.map → const-e3326913.js.map} +1 -1
  619. package/consts-7f4d53a3.js +4 -0
  620. package/consts-7f4d53a3.js.map +1 -0
  621. package/consts-833420ed.js +4 -0
  622. package/{consts-6ee24012.js.map → consts-833420ed.js.map} +1 -1
  623. package/consts-aa64aca8.js +30 -0
  624. package/{consts-691a3935.js.map → consts-aa64aca8.js.map} +1 -1
  625. package/consts-f0ba9b80.js +4 -0
  626. package/consts-f0ba9b80.js.map +1 -0
  627. package/context-ae47ac54.js +12 -0
  628. package/{context-b4c70964.js.map → context-ae47ac54.js.map} +1 -1
  629. package/dist/index.css +110 -95
  630. package/dist/index.css.map +1 -1
  631. package/handlers/OpenChannelHandler.js.map +1 -1
  632. package/handlers/SessionHandler.js.map +1 -1
  633. package/hooks/useModal.js +73 -0
  634. package/hooks/useModal.js.map +1 -0
  635. package/{index-aa520474.js → index-12103973.js} +2 -2
  636. package/{index-aa520474.js.map → index-12103973.js.map} +1 -1
  637. package/index-124a5766.js +298 -0
  638. package/{index-e15f6b6a.js.map → index-124a5766.js.map} +1 -1
  639. package/{index-13401b87.js → index-1432c287.js} +2 -4
  640. package/index-1432c287.js.map +1 -0
  641. package/{index-b22c4150.js → index-1969ccd8.js} +25 -28
  642. package/{index-b22c4150.js.map → index-1969ccd8.js.map} +1 -1
  643. package/index-3d508585.js +53 -0
  644. package/{index-ae7ef8cf.js.map → index-3d508585.js.map} +1 -1
  645. package/{index-8a01c364.js → index-40447645.js} +73 -81
  646. package/{index-8a01c364.js.map → index-40447645.js.map} +1 -1
  647. package/{index-c421b228.js → index-7a1085b6.js} +99 -109
  648. package/index-7a1085b6.js.map +1 -0
  649. package/index-89b3b8ba.js +362 -0
  650. package/index-89b3b8ba.js.map +1 -0
  651. package/index-8c72f0bd.js +182 -0
  652. package/{index-98138798.js.map → index-8c72f0bd.js.map} +1 -1
  653. package/index-942c5fa2.js +161 -0
  654. package/index-942c5fa2.js.map +1 -0
  655. package/index-c6095960.js +4 -0
  656. package/index-c6095960.js.map +1 -0
  657. package/index-c7ed4aef.js +13 -0
  658. package/index-c7ed4aef.js.map +1 -0
  659. package/{index-daa3ae67.js → index-c81fd6ec.js} +56 -193
  660. package/index-c81fd6ec.js.map +1 -0
  661. package/{index-7700a436.js → index-d3f61405.js} +10 -30
  662. package/index-d3f61405.js.map +1 -0
  663. package/{index-5cb32ab5.js → index-dc1827ea.js} +3 -12
  664. package/index-dc1827ea.js.map +1 -0
  665. package/{index-3530f4f6.js → index-ec0c048b.js} +39 -37
  666. package/{index-3530f4f6.js.map → index-ec0c048b.js.map} +1 -1
  667. package/{index-b25ffa7e.js → index-eec0ce47.js} +166 -154
  668. package/index-eec0ce47.js.map +1 -0
  669. package/index-fc1642cb.js +692 -0
  670. package/index-fc1642cb.js.map +1 -0
  671. package/index.d.ts +143 -79
  672. package/index.js +66 -63
  673. package/index.js.map +1 -1
  674. package/lame.all.js.map +1 -1
  675. package/package.json +3 -3
  676. package/{topics-5659403d.js → pubSub/topics.js} +4 -3
  677. package/pubSub/topics.js.map +1 -0
  678. package/{resolvedReplyType-1a128514.js → resolvedReplyType-0532593c.js} +1 -1
  679. package/{resolvedReplyType-1a128514.js.map → resolvedReplyType-0532593c.js.map} +1 -1
  680. package/sendbirdSelectors.js +381 -332
  681. package/sendbirdSelectors.js.map +1 -1
  682. package/stringFormatterUtils-444f6f4c.js +14 -0
  683. package/{stringFormatterUtils-dbad592d.js.map → stringFormatterUtils-444f6f4c.js.map} +1 -1
  684. package/{stringSet-2814bf17.js → stringSet-1106c8ec.js} +9 -2
  685. package/stringSet-1106c8ec.js.map +1 -0
  686. package/{tokenize-4b153552.js → tokenize-d17bf862.js} +56 -61
  687. package/{tokenize-4b153552.js.map → tokenize-d17bf862.js.map} +1 -1
  688. package/tslib.es6-0c779aab.js +97 -0
  689. package/tslib.es6-0c779aab.js.map +1 -0
  690. package/types-4ffc52f6.js +15 -0
  691. package/types-4ffc52f6.js.map +1 -0
  692. package/types-50e412d8.js +9 -0
  693. package/types-50e412d8.js.map +1 -0
  694. package/ui/Accordion.js +18 -19
  695. package/ui/Accordion.js.map +1 -1
  696. package/ui/AccordionGroup.js +11 -10
  697. package/ui/AccordionGroup.js.map +1 -1
  698. package/ui/AdminMessage.js +10 -10
  699. package/ui/AdminMessage.js.map +1 -1
  700. package/ui/Avatar.js +59 -55
  701. package/ui/Avatar.js.map +1 -1
  702. package/ui/Badge.js +15 -16
  703. package/ui/Badge.js.map +1 -1
  704. package/ui/BottomSheet.js +15 -17
  705. package/ui/BottomSheet.js.map +1 -1
  706. package/ui/Button.js +19 -26
  707. package/ui/Button.js.map +1 -1
  708. package/ui/ChannelAvatar.js +41 -38
  709. package/ui/ChannelAvatar.js.map +1 -1
  710. package/ui/Checkbox.js +10 -9
  711. package/ui/Checkbox.js.map +1 -1
  712. package/ui/ConnectionStatus.js +5 -7
  713. package/ui/ConnectionStatus.js.map +1 -1
  714. package/ui/ContextMenu.js +143 -144
  715. package/ui/ContextMenu.js.map +1 -1
  716. package/ui/DateSeparator.js +14 -12
  717. package/ui/DateSeparator.js.map +1 -1
  718. package/ui/EmojiReactions.js +207 -177
  719. package/ui/EmojiReactions.js.map +1 -1
  720. package/ui/FileMessageItemBody.js +23 -23
  721. package/ui/FileMessageItemBody.js.map +1 -1
  722. package/ui/FileViewer.js +14 -12
  723. package/ui/FileViewer.js.map +1 -1
  724. package/ui/Icon.js +2 -2
  725. package/ui/Icon.js.map +1 -1
  726. package/ui/IconButton.js +28 -20
  727. package/ui/IconButton.js.map +1 -1
  728. package/ui/ImageRenderer.js +84 -65
  729. package/ui/ImageRenderer.js.map +1 -1
  730. package/ui/Input.js +14 -16
  731. package/ui/Input.js.map +1 -1
  732. package/ui/Label.js +2 -2
  733. package/ui/LinkLabel.js +2 -2
  734. package/ui/LinkLabel.js.map +1 -1
  735. package/ui/Loader.js +12 -10
  736. package/ui/Loader.js.map +1 -1
  737. package/ui/MentionLabel.js +64 -60
  738. package/ui/MentionLabel.js.map +1 -1
  739. package/ui/MentionUserLabel.js +10 -10
  740. package/ui/MentionUserLabel.js.map +1 -1
  741. package/ui/MessageContent.js +186 -170
  742. package/ui/MessageContent.js.map +1 -1
  743. package/ui/MessageInput/hooks/usePaste.js +5 -4
  744. package/ui/MessageInput/hooks/usePaste.js.map +1 -1
  745. package/ui/MessageInput.js +48 -50
  746. package/ui/MessageInput.js.map +1 -1
  747. package/ui/MessageItemMenu.js +93 -72
  748. package/ui/MessageItemMenu.js.map +1 -1
  749. package/ui/MessageItemReactionMenu.js +64 -56
  750. package/ui/MessageItemReactionMenu.js.map +1 -1
  751. package/ui/MessageSearchFileItem.js +40 -49
  752. package/ui/MessageSearchFileItem.js.map +1 -1
  753. package/ui/MessageSearchItem.js +32 -40
  754. package/ui/MessageSearchItem.js.map +1 -1
  755. package/ui/MessageStatus.js +11 -11
  756. package/ui/Modal.js +57 -59
  757. package/ui/Modal.js.map +1 -1
  758. package/ui/MutedAvatarOverlay.js +10 -10
  759. package/ui/MutedAvatarOverlay.js.map +1 -1
  760. package/ui/OGMessageItemBody.js +47 -47
  761. package/ui/OGMessageItemBody.js.map +1 -1
  762. package/ui/OpenChannelAdminMessage.js +7 -8
  763. package/ui/OpenChannelAdminMessage.js.map +1 -1
  764. package/ui/OpenChannelAvatar.js +17 -18
  765. package/ui/OpenChannelAvatar.js.map +1 -1
  766. package/ui/OpenchannelConversationHeader.js +13 -17
  767. package/ui/OpenchannelConversationHeader.js.map +1 -1
  768. package/ui/OpenchannelFileMessage.js +147 -139
  769. package/ui/OpenchannelFileMessage.js.map +1 -1
  770. package/ui/OpenchannelOGMessage.js +185 -178
  771. package/ui/OpenchannelOGMessage.js.map +1 -1
  772. package/ui/OpenchannelThumbnailMessage.js +220 -213
  773. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  774. package/ui/OpenchannelUserMessage.js +172 -164
  775. package/ui/OpenchannelUserMessage.js.map +1 -1
  776. package/ui/PlaceHolder.js +106 -8
  777. package/ui/PlaceHolder.js.map +1 -1
  778. package/ui/PlaybackTime.js +16 -15
  779. package/ui/PlaybackTime.js.map +1 -1
  780. package/ui/ProgressBar.js +15 -13
  781. package/ui/ProgressBar.js.map +1 -1
  782. package/ui/QuoteMessage.js +41 -44
  783. package/ui/QuoteMessage.js.map +1 -1
  784. package/ui/QuoteMessageInput.js +45 -31
  785. package/ui/QuoteMessageInput.js.map +1 -1
  786. package/ui/ReactionBadge.js +17 -13
  787. package/ui/ReactionBadge.js.map +1 -1
  788. package/ui/ReactionButton.js +19 -19
  789. package/ui/ReactionButton.js.map +1 -1
  790. package/ui/SortByRow.js +14 -14
  791. package/ui/SortByRow.js.map +1 -1
  792. package/ui/TextButton.js +21 -13
  793. package/ui/TextButton.js.map +1 -1
  794. package/ui/TextMessageItemBody.js +33 -31
  795. package/ui/TextMessageItemBody.js.map +1 -1
  796. package/ui/ThreadReplies.js +21 -25
  797. package/ui/ThreadReplies.js.map +1 -1
  798. package/ui/ThumbnailMessageItemBody.js +37 -28
  799. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  800. package/ui/Toggle.js +86 -78
  801. package/ui/Toggle.js.map +1 -1
  802. package/ui/Tooltip.js +9 -8
  803. package/ui/Tooltip.js.map +1 -1
  804. package/ui/TooltipWrapper.js +18 -17
  805. package/ui/TooltipWrapper.js.map +1 -1
  806. package/ui/UnknownMessageItemBody.js +19 -20
  807. package/ui/UnknownMessageItemBody.js.map +1 -1
  808. package/ui/UserListItem.js +80 -75
  809. package/ui/UserListItem.js.map +1 -1
  810. package/ui/UserProfile.js +29 -34
  811. package/ui/UserProfile.js.map +1 -1
  812. package/ui/VoiceMessageItemBody.js +49 -43
  813. package/ui/VoiceMessageItemBody.js.map +1 -1
  814. package/ui/VoiceMessgeInput.js +8 -7
  815. package/ui/VoiceMessgeInput.js.map +1 -1
  816. package/ui/Word.js +29 -27
  817. package/ui/Word.js.map +1 -1
  818. package/{useHandleUploadFiles-406a6c9c.js → useHandleUploadFiles-33aff88e.js} +111 -124
  819. package/useHandleUploadFiles-33aff88e.js.map +1 -0
  820. package/useLongPress-322bb6a3.js +103 -0
  821. package/useLongPress-322bb6a3.js.map +1 -0
  822. package/useSendMultipleFilesMessage-4489a0f6.js +283 -0
  823. package/useSendMultipleFilesMessage-4489a0f6.js.map +1 -0
  824. package/useSendbirdStateContext.js +5 -3
  825. package/useSendbirdStateContext.js.map +1 -1
  826. package/useStatefulFileInfoList-dd95f949.js +219 -0
  827. package/useStatefulFileInfoList-dd95f949.js.map +1 -0
  828. package/utils/message/getOutgoingMessageState.js +8 -9
  829. package/utils/message/getOutgoingMessageState.js.map +1 -1
  830. package/utils/message/isVoiceMessage.js +4 -4
  831. package/utils/message/isVoiceMessage.js.map +1 -1
  832. package/{utils-7cc92ac2.js → utils-158c1683.js} +3 -3
  833. package/{utils-7cc92ac2.js.map → utils-158c1683.js.map} +1 -1
  834. package/utils-3660243c.js +25 -0
  835. package/utils-3660243c.js.map +1 -0
  836. package/utils-40040f8e.js +157 -0
  837. package/utils-40040f8e.js.map +1 -0
  838. package/utils-48a3ef27.js +31 -0
  839. package/utils-48a3ef27.js.map +1 -0
  840. package/utils-74c161a0.js +7 -0
  841. package/utils-74c161a0.js.map +1 -0
  842. package/utils-e98a7f8c.js +57 -0
  843. package/utils-e98a7f8c.js.map +1 -0
  844. package/uuid-3c77ef7b.js +15 -0
  845. package/{uuid-16373bba.js.map → uuid-3c77ef7b.js.map} +1 -1
  846. package/withSendbird.js +16 -22
  847. package/withSendbird.js.map +1 -1
  848. package/ChannelListProvider-1188e373.js +0 -1028
  849. package/ChannelListProvider-1188e373.js.map +0 -1
  850. package/ChannelProvider-9de00431.js +0 -1933
  851. package/ChannelProvider-9de00431.js.map +0 -1
  852. package/CreateChannelProvider-a2fad282.js +0 -44
  853. package/LocalizationContext-2463058b.js +0 -20
  854. package/MediaQueryContext-e3429d12.js +0 -87
  855. package/MediaQueryContext-e3429d12.js.map +0 -1
  856. package/MemberList-593867cb.js +0 -404
  857. package/OpenChannelProvider-3e4b8c8e.js +0 -1890
  858. package/RemoveMessageModal-9162aebe.js +0 -38
  859. package/RemoveMessageModal-9162aebe.js.map +0 -1
  860. package/ThreadProvider-9a3b145f.js +0 -1778
  861. package/ThreadProvider-9a3b145f.js.map +0 -1
  862. package/UserProfileContext-4ae968eb.js +0 -41
  863. package/UserProfileContext-4ae968eb.js.map +0 -1
  864. package/_rollupPluginBabelHelpers-50c9576f.js.map +0 -1
  865. package/cjs/ChannelListProvider-e55e6242.js +0 -1037
  866. package/cjs/ChannelListProvider-e55e6242.js.map +0 -1
  867. package/cjs/ChannelProvider-6fa73019.js +0 -1941
  868. package/cjs/ChannelProvider-6fa73019.js.map +0 -1
  869. package/cjs/CreateChannelProvider-8b8a557c.js +0 -52
  870. package/cjs/MediaQueryContext-73aac8cf.js +0 -94
  871. package/cjs/MediaQueryContext-73aac8cf.js.map +0 -1
  872. package/cjs/MemberList-26b8de48.js +0 -410
  873. package/cjs/OpenChannelListProvider-2e3ee48d.js +0 -439
  874. package/cjs/OpenChannelProvider-8577ea58.js +0 -1899
  875. package/cjs/RemoveMessageModal-dfeeb36a.js +0 -44
  876. package/cjs/RemoveMessageModal-dfeeb36a.js.map +0 -1
  877. package/cjs/ThreadProvider-8b0cf491.js +0 -1787
  878. package/cjs/ThreadProvider-8b0cf491.js.map +0 -1
  879. package/cjs/UserProfileContext-fa8d0383.js +0 -49
  880. package/cjs/UserProfileContext-fa8d0383.js.map +0 -1
  881. package/cjs/_rollupPluginBabelHelpers-83d7e84b.js.map +0 -1
  882. package/cjs/color-d83b77ac.js.map +0 -1
  883. package/cjs/compareIds-bef997cb.js.map +0 -1
  884. package/cjs/const-67ff9e34.js +0 -20
  885. package/cjs/consts-b018b1ed.js +0 -6
  886. package/cjs/consts-b018b1ed.js.map +0 -1
  887. package/cjs/consts-bf228385.js +0 -6
  888. package/cjs/consts-d3b53f23.js +0 -6
  889. package/cjs/index-11f9cc0f.js.map +0 -1
  890. package/cjs/index-1a9fdbb4.js +0 -368
  891. package/cjs/index-1a9fdbb4.js.map +0 -1
  892. package/cjs/index-1f6b30ea.js +0 -330
  893. package/cjs/index-2ab19f9b.js +0 -57
  894. package/cjs/index-4b5a006d.js +0 -139
  895. package/cjs/index-4b5a006d.js.map +0 -1
  896. package/cjs/index-4eb7e2b5.js.map +0 -1
  897. package/cjs/index-56a25735.js +0 -171
  898. package/cjs/index-56a25735.js.map +0 -1
  899. package/cjs/index-6ab9a40d.js +0 -202
  900. package/cjs/index-7f41c4b6.js +0 -118
  901. package/cjs/index-7f41c4b6.js.map +0 -1
  902. package/cjs/index-81baccd0.js.map +0 -1
  903. package/cjs/index-857630c5.js.map +0 -1
  904. package/cjs/index-8ec12d1d.js +0 -164
  905. package/cjs/index-8ec12d1d.js.map +0 -1
  906. package/cjs/index-c9b003b3.js.map +0 -1
  907. package/cjs/index-cbcacbee.js +0 -9
  908. package/cjs/index-cbcacbee.js.map +0 -1
  909. package/cjs/index-d04f312e.js.map +0 -1
  910. package/cjs/index-e9ac5ae1.js +0 -58
  911. package/cjs/index-e9ac5ae1.js.map +0 -1
  912. package/cjs/index-fbe9cc73.js +0 -647
  913. package/cjs/index-fbe9cc73.js.map +0 -1
  914. package/cjs/index.module-a24e9cd7.js +0 -6
  915. package/cjs/index.module-a24e9cd7.js.map +0 -1
  916. package/cjs/stringFormatterUtils-8d6592ca.js +0 -16
  917. package/cjs/stringSet-d00535a5.js.map +0 -1
  918. package/cjs/topics-adde627b.js.map +0 -1
  919. package/cjs/types-0b5148cb.js +0 -17
  920. package/cjs/types-0b5148cb.js.map +0 -1
  921. package/cjs/useHandleUploadFiles-b2fc56e5.js.map +0 -1
  922. package/cjs/useLongPress-1c0f4696.js +0 -87
  923. package/cjs/useLongPress-1c0f4696.js.map +0 -1
  924. package/cjs/useSendMultipleFilesMessage-81cdc9d0.js +0 -109
  925. package/cjs/useSendMultipleFilesMessage-81cdc9d0.js.map +0 -1
  926. package/cjs/utils-418b4438.js +0 -62
  927. package/cjs/utils-418b4438.js.map +0 -1
  928. package/cjs/utils-5bfb4516.js +0 -35
  929. package/cjs/utils-5bfb4516.js.map +0 -1
  930. package/cjs/utils-68aa6bf6.js +0 -345
  931. package/cjs/utils-68aa6bf6.js.map +0 -1
  932. package/cjs/utils-b34d4e2c.js +0 -31
  933. package/cjs/utils-b34d4e2c.js.map +0 -1
  934. package/cjs/utils-c47c68b1.js +0 -6
  935. package/cjs/utils-c47c68b1.js.map +0 -1
  936. package/cjs/uuid-b2806cf5.js +0 -15
  937. package/compareIds-8ed6e36a.js +0 -15
  938. package/compareIds-8ed6e36a.js.map +0 -1
  939. package/const-711048c3.js +0 -13
  940. package/consts-675764c9.js +0 -4
  941. package/consts-675764c9.js.map +0 -1
  942. package/consts-691a3935.js +0 -37
  943. package/consts-6ee24012.js +0 -4
  944. package/consts-eb77e905.js +0 -4
  945. package/consts-eb77e905.js.map +0 -1
  946. package/context-b4c70964.js +0 -13
  947. package/index-128523eb.js +0 -110
  948. package/index-128523eb.js.map +0 -1
  949. package/index-13401b87.js.map +0 -1
  950. package/index-5cb32ab5.js.map +0 -1
  951. package/index-5d6a0f12.js +0 -598
  952. package/index-5d6a0f12.js.map +0 -1
  953. package/index-60a7bf91.js +0 -164
  954. package/index-60a7bf91.js.map +0 -1
  955. package/index-7700a436.js.map +0 -1
  956. package/index-7946293f.js +0 -152
  957. package/index-7946293f.js.map +0 -1
  958. package/index-7b7478f5.js +0 -132
  959. package/index-7b7478f5.js.map +0 -1
  960. package/index-82178c6a.js +0 -361
  961. package/index-82178c6a.js.map +0 -1
  962. package/index-98138798.js +0 -187
  963. package/index-98887e8d.js +0 -7
  964. package/index-98887e8d.js.map +0 -1
  965. package/index-ae7ef8cf.js +0 -51
  966. package/index-b25ffa7e.js.map +0 -1
  967. package/index-c421b228.js.map +0 -1
  968. package/index-d99155f7.js +0 -51
  969. package/index-d99155f7.js.map +0 -1
  970. package/index-daa3ae67.js.map +0 -1
  971. package/index-e15f6b6a.js +0 -320
  972. package/index.module-60af77d3.js +0 -4
  973. package/index.module-60af77d3.js.map +0 -1
  974. package/stringFormatterUtils-dbad592d.js +0 -14
  975. package/stringSet-2814bf17.js.map +0 -1
  976. package/topics-5659403d.js.map +0 -1
  977. package/types-89092633.js +0 -15
  978. package/types-89092633.js.map +0 -1
  979. package/useHandleUploadFiles-406a6c9c.js.map +0 -1
  980. package/useLongPress-5e1ad951.js +0 -85
  981. package/useLongPress-5e1ad951.js.map +0 -1
  982. package/useSendMultipleFilesMessage-a3a2c84b.js +0 -107
  983. package/useSendMultipleFilesMessage-a3a2c84b.js.map +0 -1
  984. package/utils-0c22998a.js +0 -306
  985. package/utils-0c22998a.js.map +0 -1
  986. package/utils-407da489.js +0 -4
  987. package/utils-407da489.js.map +0 -1
  988. package/utils-b97d5113.js +0 -57
  989. package/utils-b97d5113.js.map +0 -1
  990. package/utils-cae84d8a.js +0 -29
  991. package/utils-cae84d8a.js.map +0 -1
  992. package/utils-ebf008e2.js +0 -31
  993. package/utils-ebf008e2.js.map +0 -1
  994. package/uuid-16373bba.js +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"MessageInput.js","sources":["../../src/ui/MessageInput/messageInputUtils.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["/**\n * Write new utils here\n * Migrate old utils as needed, and delete utils.js\n */\n// import { ChannelType } from '@sendbird/chat';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { match } from 'ts-pattern';\n\nimport type { SendBirdStateConfig } from '../../lib/types';\n\n/**\n * FIXME:\n * Import this ChannelType enum from @sendbird/chat\n * once MessageInput.spec unit tests can be run \\wo jest <-> ESM issue\n */\nenum ChannelType {\n BASE = 'base',\n GROUP = 'group',\n OPEN = 'open',\n}\n/**\n * FIXME: Simplify this in UIKit@v4\n * If customer is using MessageInput inside our modules(ie: Channel, Thread, etc),\n * we should use the config from the module.\n * If customer is using MessageInput outside our modules(ie: custom UI),\n * we expect Channel to be undefined and customer gets control to show/hide file-upload.\n * @param {*} channel GroupChannel | OpenChannel\n * @param {*} config SendBirdStateConfig\n * @returns boolean\n */\nexport const checkIfFileUploadEnabled = ({ channel, config }: {\n channel?: GroupChannel | OpenChannel,\n config?: SendBirdStateConfig,\n}) => {\n const isEnabled = match(channel?.channelType)\n .with(ChannelType.GROUP, () => config?.groupChannel?.enableDocument)\n .with(ChannelType.OPEN, () => config?.openChannel?.enableDocument)\n .otherwise(() => true);\n\n return isEnabled;\n};\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\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 '../../modules/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 { useLocalization } from '../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\n\nimport {\n isChannelTypeSupportsMultipleFilesMessage,\n nodeListToArray,\n sanitizeString,\n} from './utils';\nimport {\n arrayEqual,\n getClassName,\n getMimeTypesUIKitAccepts,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\nimport { tokenizeMessage } from '../../modules/Message/utils/tokens/tokenize';\nimport { USER_MENTION_PREFIX } from '../../modules/Message/consts';\nimport { TOKEN_TYPES } from '../../modules/Message/utils/tokens/types';\nimport { checkIfFileUploadEnabled } from './messageInputUtils';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\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 /* eslint-disable no-param-reassign */\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 isSelectingMultipleFilesEnabled,\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 acceptableMimeTypes,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useLocalization();\n const { config } = useSendbirdStateContext();\n\n const isFileUploadEnabled = checkIfFileUploadEnabled({\n channel,\n config,\n });\n\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 //\n }\n setMentionedUserIds([]);\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n const tokens = tokenizeMessage({\n messageText: message?.mentionedMessageTemplate,\n mentionedUsers,\n });\n textField.innerHTML = tokens.map((token) => {\n if (token.type === TOKEN_TYPES.mention) {\n const mentionedUser = mentionedUsers.find((user) => user.userId === token.userId);\n const nickname = `${USER_MENTION_PREFIX}${mentionedUser?.nickname || token.value || stringSet.MENTION_NAME__NO_NAME}`;\n return renderMentionLabelToString({\n userId: token.userId,\n nickname,\n });\n }\n return sanitizeString(token.value);\n }).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch {\n //\n }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.textContent?.trim().length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = nodeListToArray(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?.textContent) {\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 // important: keeps the keyboard open -> must add test on refactor\n textField.focus();\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.textContent?.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 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\n && ref?.current?.textContent?.trim().length > 0\n && e?.nativeEvent?.isComposing !== true\n ) {\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?.textContent?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {(ref?.current?.textContent?.length ?? 0) === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.()\n // UIKit Dashboard configuration should have lower priority than\n // renderFileUploadIcon which is set in code level\n || (isFileUploadEnabled && (\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 // It will affect to <Channel /> and <Thread />\n onChange={(event) => {\n const { files } = event.currentTarget;\n onFileUpload(files && files.length === 1 ? [files[0]] : [...files]);\n event.target.value = '';\n }}\n accept={getMimeTypesUIKitAccepts(acceptableMimeTypes)}\n multiple={\n isSelectingMultipleFilesEnabled\n && isChannelTypeSupportsMultipleFilesMessage(channel)\n }\n />\n </IconButton>\n )\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 isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n isSelectingMultipleFilesEnabled: PropTypes.bool,\n disabled: PropTypes.bool,\n value: PropTypes.string,\n placeholder: PropTypes.string,\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 channel: PropTypes.shape({\n channelType: PropTypes.string,\n }).isRequired,\n messageFieldId: PropTypes.string,\n acceptableMimeTypes: PropTypes.arrayOf(PropTypes.string),\n // Mention\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 setMentionedUsers: PropTypes.func,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n // Voice Message\n onVoiceMessageIconClick: PropTypes.func,\n renderVoiceMessageIcon: PropTypes.func,\n renderSendMessageIcon: PropTypes.func,\n renderFileUploadIcon: 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 isSelectingMultipleFilesEnabled: false,\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 setMentionedUsers: noop,\n renderVoiceMessageIcon: noop,\n renderFileUploadIcon: noop,\n renderSendMessageIcon: noop,\n acceptableMimeTypes: null,\n};\n\nexport default MessageInput;\n"],"names":["ChannelType","checkIfFileUploadEnabled","_ref","channel","config","isEnabled","match","channelType","with","GROUP","_config$groupChannel","groupChannel","enableDocument","OPEN","_config$openChannel","openChannel","otherwise","TEXT_FIELD_ID","LINE_HEIGHT","noop","displayCaret","element","position","range","document","createRange","sel","window","getSelection","setStart","childNodes","collapse","removeAllRanges","addRange","focus","resetInput","ref","current","innerHTML","_unused","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","_ref$current","_ref$current$textCont","_ref$current$textCont2","_ref$current6","_ref$current6$textCon","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","isSelectingMultipleFilesEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","setMentionedUsers","acceptableMimeTypes","textFieldId","stringSet","useLocalization","useSendbirdStateContext","isFileUploadEnabled","fileInputRef","useRef","isInput","setIsInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","setHeight","useMemo","elem","MAX_HEIGHT","body","offsetHeight","scrollHeight","style","height","error","initialValue","value","useEffect","_textField$textConten","textField","length","_unused2","textContent","trim","messageId","_message$mentionedUse","_message$mentionedMes","_textField$textConten2","mentionedUsers","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","map","token","type","TOKEN_TYPES","mention","mentionedUser","find","user","userId","nickname","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","renderMentionLabelToString","sanitizeString","join","_unused3","useMentionedLabelDetection","useCallback","_textField$textConten3","newMentionedUserIds","getElementsByClassName","node","_node$dataset","dataset","userid","arrayEqual","_document","_childNodes$startNode","_document2","_childNodes$endNodeIn","nodeListToArray","frontTextNode","createTextNode","slice","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","createElement","newNodes","forEach","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","_window","_window$getSelection","_document3","_document3$getSelecti","call","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","i","sendMessage","mentionTemplate","ElementNode","nodeName","NodeNames","Span","innerText","Br","Div","params","isEditDisabled","editMessage","onPaste","usePaste","getClassName","id","contentEditable","role","e","preventEvent","preventDefault","_ref$current2","_ref$current2$textCon","_e$nativeEvent","_ref$current3","_ref$current3$childNo","_ref$current4","_ref$current4$childNo","_ref$current4$childNo2","_ref$current$childNod","_ref$current$childNod2","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_ref$current5","_ref$current5$textCon","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","event","files","currentTarget","target","accept","getMimeTypesUIKitAccepts","multiple","isChannelTypeSupportsMultipleFilesMessage","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","number","func","shape","isRequired","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"MessageInput.js","sources":["../../src/ui/MessageInput/messageInputUtils.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["/**\n * Write new utils here\n * Migrate old utils as needed, and delete utils.js\n */\n// import { ChannelType } from '@sendbird/chat';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { match } from 'ts-pattern';\n\nimport type { SendBirdStateConfig } from '../../lib/types';\n\n/**\n * FIXME:\n * Import this ChannelType enum from @sendbird/chat\n * once MessageInput.spec unit tests can be run \\wo jest <-> ESM issue\n */\nenum ChannelType {\n BASE = 'base',\n GROUP = 'group',\n OPEN = 'open',\n}\n/**\n * FIXME: Simplify this in UIKit@v4\n * If customer is using MessageInput inside our modules(ie: Channel, Thread, etc),\n * we should use the config from the module.\n * If customer is using MessageInput outside our modules(ie: custom UI),\n * we expect Channel to be undefined and customer gets control to show/hide file-upload.\n * @param {*} channel GroupChannel | OpenChannel\n * @param {*} config SendBirdStateConfig\n * @returns boolean\n */\nexport const checkIfFileUploadEnabled = ({ channel, config }: {\n channel?: GroupChannel | OpenChannel,\n config?: SendBirdStateConfig,\n}) => {\n const isEnabled = match(channel?.channelType)\n .with(ChannelType.GROUP, () => config?.groupChannel?.enableDocument)\n .with(ChannelType.OPEN, () => config?.openChannel?.enableDocument)\n .otherwise(() => true);\n\n return isEnabled;\n};\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\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 '../../modules/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 { useLocalization } from '../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\n\nimport {\n isChannelTypeSupportsMultipleFilesMessage,\n nodeListToArray,\n sanitizeString,\n} from './utils';\nimport {\n arrayEqual,\n getClassName,\n getMimeTypesUIKitAccepts,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\nimport { tokenizeMessage } from '../../modules/Message/utils/tokens/tokenize';\nimport { USER_MENTION_PREFIX } from '../../modules/Message/consts';\nimport { TOKEN_TYPES } from '../../modules/Message/utils/tokens/types';\nimport { checkIfFileUploadEnabled } from './messageInputUtils';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\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 /* eslint-disable no-param-reassign */\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 isSelectingMultipleFilesEnabled,\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 acceptableMimeTypes,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useLocalization();\n const { config } = useSendbirdStateContext();\n\n const isFileUploadEnabled = checkIfFileUploadEnabled({\n channel,\n config,\n });\n\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 //\n }\n setMentionedUserIds([]);\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n const tokens = tokenizeMessage({\n messageText: message?.mentionedMessageTemplate,\n mentionedUsers,\n });\n textField.innerHTML = tokens.map((token) => {\n if (token.type === TOKEN_TYPES.mention) {\n const mentionedUser = mentionedUsers.find((user) => user.userId === token.userId);\n const nickname = `${USER_MENTION_PREFIX}${mentionedUser?.nickname || token.value || stringSet.MENTION_NAME__NO_NAME}`;\n return renderMentionLabelToString({\n userId: token.userId,\n nickname,\n });\n }\n return sanitizeString(token.value);\n }).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch {\n //\n }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.textContent?.trim().length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = nodeListToArray(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?.textContent) {\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 // important: keeps the keyboard open -> must add test on refactor\n textField.focus();\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.textContent?.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 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\n && ref?.current?.textContent?.trim().length > 0\n && e?.nativeEvent?.isComposing !== true\n ) {\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?.textContent?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {(ref?.current?.textContent?.length ?? 0) === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.()\n // UIKit Dashboard configuration should have lower priority than\n // renderFileUploadIcon which is set in code level\n || (isFileUploadEnabled && (\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 // It will affect to <Channel /> and <Thread />\n onChange={(event) => {\n const { files } = event.currentTarget;\n onFileUpload(files && files.length === 1 ? [files[0]] : [...files]);\n event.target.value = '';\n }}\n accept={getMimeTypesUIKitAccepts(acceptableMimeTypes)}\n multiple={\n isSelectingMultipleFilesEnabled\n && isChannelTypeSupportsMultipleFilesMessage(channel)\n }\n />\n </IconButton>\n )\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 isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n isSelectingMultipleFilesEnabled: PropTypes.bool,\n disabled: PropTypes.bool,\n value: PropTypes.string,\n placeholder: PropTypes.string,\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 channel: PropTypes.shape({\n channelType: PropTypes.string,\n }).isRequired,\n messageFieldId: PropTypes.string,\n acceptableMimeTypes: PropTypes.arrayOf(PropTypes.string),\n // Mention\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 setMentionedUsers: PropTypes.func,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n // Voice Message\n onVoiceMessageIconClick: PropTypes.func,\n renderVoiceMessageIcon: PropTypes.func,\n renderSendMessageIcon: PropTypes.func,\n renderFileUploadIcon: 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 isSelectingMultipleFilesEnabled: false,\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 setMentionedUsers: noop,\n renderVoiceMessageIcon: noop,\n renderFileUploadIcon: noop,\n renderSendMessageIcon: noop,\n acceptableMimeTypes: null,\n};\n\nexport default MessageInput;\n"],"names":["ChannelType","checkIfFileUploadEnabled","_a","channel","config","isEnabled","match","channelType","with","GROUP","groupChannel","enableDocument","OPEN","openChannel","otherwise","TEXT_FIELD_ID","LINE_HEIGHT","noop","displayCaret","element","position","range","document","createRange","sel","window","getSelection","setStart","childNodes","collapse","removeAllRanges","addRange","focus","resetInput","ref","current","innerHTML","_unused","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","_ref$current","_ref$current$textCont","_ref$current6","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","isSelectingMultipleFilesEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","setMentionedUsers","acceptableMimeTypes","textFieldId","stringSet","useLocalization","useSendbirdStateContext","isFileUploadEnabled","fileInputRef","useRef","isInput","setIsInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","setHeight","useMemo","elem","MAX_HEIGHT","body","offsetHeight","scrollHeight","style","height","error","initialValue","value","useEffect","_textField$textConten","textField","length","_unused2","textContent","trim","messageId","_message$mentionedUse","_message$mentionedMes","_textField$textConten2","mentionedUsers","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","map","token","type","TOKEN_TYPES","mention","mentionedUser","find","user","userId","nickname","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","renderMentionLabelToString","sanitizeString","join","_unused3","useMentionedLabelDetection","useCallback","_textField$textConten3","newMentionedUserIds","getElementsByClassName","node","_node$dataset","dataset","userid","arrayEqual","_document","_childNodes$startNode","_document2","_childNodes$endNodeIn","nodeListToArray","frontTextNode","createTextNode","slice","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","createElement","newNodes","forEach","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","_window","_window$getSelection","_document3","_document3$getSelecti","call","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","i","sendMessage","mentionTemplate","ElementNode","nodeName","NodeNames","Span","innerText","Br","Div","params","isEditDisabled","editMessage","onPaste","usePaste","getClassName","id","contentEditable","role","e","preventEvent","preventDefault","_ref$current2","_e$nativeEvent","_ref$current3","_ref$current4","_ref$current$childNod","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_ref$current5","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","event","files","currentTarget","target","accept","getMimeTypesUIKitAccepts","multiple","isChannelTypeSupportsMultipleFilesMessage","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","number","func","shape","isRequired","defaultProps"],"mappings":"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"}
@@ -2,55 +2,71 @@ 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 { w as isUserMessage, F as isSentMessage, G as isFailedMessage, H as isPendingMessage, m as getClassName, I as copyToClipboard } from '../index-5d6a0f12.js';
6
- import { a as LocalizationContext } from '../LocalizationContext-2463058b.js';
7
- import { R as Role } from '../types-89092633.js';
8
- import '../_rollupPluginBabelHelpers-50c9576f.js';
5
+ import { y as isUserMessage, H as isSentMessage, I as isFailedMessage, J as isPendingMessage, o as getClassName, K as copyToClipboard } from '../index-fc1642cb.js';
6
+ import { a as LocalizationContext } from '../LocalizationContext-d18a86d8.js';
7
+ import { R as Role } from '../types-50e412d8.js';
8
+ import { u as useChannelContext } from '../ChannelProvider-7f6fd1f8.js';
9
+ import '../tslib.es6-0c779aab.js';
9
10
  import 'react-dom';
10
11
  import './SortByRow.js';
11
- import '../uuid-16373bba.js';
12
- import '../index-aa520474.js';
12
+ import '../uuid-3c77ef7b.js';
13
+ import '../index-12103973.js';
13
14
  import 'prop-types';
14
- import '../stringSet-2814bf17.js';
15
+ import '../stringSet-1106c8ec.js';
15
16
  import '../utils/message/getOutgoingMessageState.js';
16
- import '../index.module-60af77d3.js';
17
- import '../index-7700a436.js';
17
+ import '../index-c6095960.js';
18
+ import '../index-d3f61405.js';
19
+ import '../UserProfileContext-26e71f9a.js';
20
+ import '../useSendbirdStateContext.js';
21
+ import '../withSendbird.js';
22
+ import '../const-e3326913.js';
23
+ import '../utils-40040f8e.js';
24
+ import '../index-c81fd6ec.js';
25
+ import '@sendbird/chat/message';
26
+ import '../useSendMultipleFilesMessage-4489a0f6.js';
27
+ import '../pubSub/topics.js';
28
+ import '../compareIds-b56b02f1.js';
29
+ import '@sendbird/chat/groupChannel';
30
+ import '../_rollupPluginBabelHelpers-07dcbc2b.js';
31
+ import '../consts-aa64aca8.js';
32
+ import '../resolvedReplyType-0532593c.js';
18
33
 
19
- function MessageItemMenu(_ref) {
20
- var _channel$isGroupChann;
21
- let {
22
- className,
23
- message,
24
- channel,
25
- isByMe = false,
26
- disabled = false,
27
- replyType,
28
- disableDeleteMessage = null,
29
- showEdit,
30
- showRemove,
31
- resendMessage,
32
- setQuoteMessage,
33
- setSupposedHover,
34
- onReplyInThread,
35
- onMoveToParentMessage = null
36
- } = _ref;
37
- const {
38
- stringSet
39
- } = useContext(LocalizationContext);
40
- const triggerRef = useRef(null);
41
- const containerRef = useRef(null);
42
- const showMenuItemCopy = isUserMessage(message);
43
- const showMenuItemEdit = !(channel !== null && channel !== void 0 && channel.isEphemeral) && isUserMessage(message) && isSentMessage(message) && isByMe;
44
- const showMenuItemResend = isFailedMessage(message) && (message === null || message === void 0 ? void 0 : message.isResendable) && isByMe;
45
- const showMenuItemDelete = !(channel !== null && channel !== void 0 && channel.isEphemeral) && !isPendingMessage(message) && isByMe;
46
- const showMenuItemOpenInChannel = onMoveToParentMessage !== null;
34
+ function MessageItemMenu(_a) {
35
+ var _b;
36
+ var className = _a.className,
37
+ message = _a.message,
38
+ channel = _a.channel,
39
+ _c = _a.isByMe,
40
+ isByMe = _c === void 0 ? false : _c,
41
+ _d = _a.disabled,
42
+ disabled = _d === void 0 ? false : _d,
43
+ replyType = _a.replyType,
44
+ _e = _a.disableDeleteMessage,
45
+ disableDeleteMessage = _e === void 0 ? null : _e,
46
+ showEdit = _a.showEdit,
47
+ showRemove = _a.showRemove,
48
+ resendMessage = _a.resendMessage,
49
+ setQuoteMessage = _a.setQuoteMessage,
50
+ setSupposedHover = _a.setSupposedHover,
51
+ onReplyInThread = _a.onReplyInThread,
52
+ _f = _a.onMoveToParentMessage,
53
+ onMoveToParentMessage = _f === void 0 ? null : _f;
54
+ var stringSet = useContext(LocalizationContext).stringSet;
55
+ var triggerRef = useRef(null);
56
+ var containerRef = useRef(null);
57
+ var channelStore = useChannelContext();
58
+ var showMenuItemCopy = isUserMessage(message);
59
+ var showMenuItemEdit = !(channel === null || channel === void 0 ? void 0 : channel.isEphemeral) && isUserMessage(message) && isSentMessage(message) && isByMe;
60
+ var showMenuItemResend = isFailedMessage(message) && (message === null || message === void 0 ? void 0 : message.isResendable) && isByMe;
61
+ var showMenuItemDelete = !(channel === null || channel === void 0 ? void 0 : channel.isEphemeral) && !isPendingMessage(message) && isByMe;
62
+ var showMenuItemOpenInChannel = onMoveToParentMessage !== null;
47
63
  /**
48
64
  * TODO: Manage timing issue
49
65
  * User delete pending message -> Sending message success
50
66
  */
51
- const isReplyTypeEnabled = !isFailedMessage(message) && !isPendingMessage(message) && (channel === null || channel === void 0 ? void 0 : (_channel$isGroupChann = channel.isGroupChannel) === null || _channel$isGroupChann === void 0 ? void 0 : _channel$isGroupChann.call(channel)) && !(channel !== null && channel !== void 0 && channel.isEphemeral) && ((channel === null || channel === void 0 ? void 0 : channel.isBroadcast) && (channel === null || channel === void 0 ? void 0 : channel.myRole) === Role.OPERATOR || !(channel !== null && channel !== void 0 && channel.isBroadcast));
52
- const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';
53
- const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !(message !== null && message !== void 0 && message.parentMessageId) && onReplyInThread;
67
+ var isReplyTypeEnabled = !isFailedMessage(message) && !isPendingMessage(message) && ((_b = channel === null || channel === void 0 ? void 0 : channel.isGroupChannel) === null || _b === void 0 ? void 0 : _b.call(channel)) && !(channel === null || channel === void 0 ? void 0 : channel.isEphemeral) && ((channel === null || channel === void 0 ? void 0 : channel.isBroadcast) && (channel === null || channel === void 0 ? void 0 : channel.myRole) === Role.OPERATOR || !(channel === null || channel === void 0 ? void 0 : channel.isBroadcast));
68
+ var showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';
69
+ var showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !(message === null || message === void 0 ? void 0 : message.parentMessageId) && onReplyInThread;
54
70
  if (!(showMenuItemCopy || showMenuItemReply || showMenuItemThread || showMenuItemOpenInChannel || showMenuItemEdit || showMenuItemResend || showMenuItemDelete)) {
55
71
  return null;
56
72
  }
@@ -58,28 +74,30 @@ function MessageItemMenu(_ref) {
58
74
  className: getClassName([className, 'sendbird-message-item-menu']),
59
75
  ref: containerRef
60
76
  }, /*#__PURE__*/React__default.createElement(ContextMenu, {
61
- menuTrigger: toggleDropdown => /*#__PURE__*/React__default.createElement(IconButton, {
62
- className: "sendbird-message-item-menu__trigger",
63
- ref: triggerRef,
64
- width: "32px",
65
- height: "32px",
66
- onClick: () => {
67
- toggleDropdown();
68
- setSupposedHover(true);
69
- },
70
- onBlur: () => {
71
- setSupposedHover(false);
72
- }
73
- }, /*#__PURE__*/React__default.createElement(Icon, {
74
- className: "sendbird-message-item-menu__trigger__icon",
75
- type: IconTypes.MORE,
76
- fillColor: IconColors.CONTENT_INVERSE,
77
- width: "24px",
78
- height: "24px"
79
- })),
80
- menuItems: close => {
81
- var _message$threadInfo;
82
- const closeDropdown = () => {
77
+ menuTrigger: function (toggleDropdown) {
78
+ return /*#__PURE__*/React__default.createElement(IconButton, {
79
+ className: "sendbird-message-item-menu__trigger",
80
+ ref: triggerRef,
81
+ width: "32px",
82
+ height: "32px",
83
+ onClick: function () {
84
+ toggleDropdown();
85
+ setSupposedHover(true);
86
+ },
87
+ onBlur: function () {
88
+ setSupposedHover(false);
89
+ }
90
+ }, /*#__PURE__*/React__default.createElement(Icon, {
91
+ className: "sendbird-message-item-menu__trigger__icon",
92
+ type: IconTypes.MORE,
93
+ fillColor: IconColors.CONTENT_INVERSE,
94
+ width: "24px",
95
+ height: "24px"
96
+ }));
97
+ },
98
+ menuItems: function (close) {
99
+ var _a;
100
+ var closeDropdown = function () {
83
101
  close();
84
102
  setSupposedHover(false);
85
103
  };
@@ -91,14 +109,14 @@ function MessageItemMenu(_ref) {
91
109
  openLeft: isByMe
92
110
  }, showMenuItemCopy && /*#__PURE__*/React__default.createElement(MenuItem, {
93
111
  className: "sendbird-message-item-menu__list__menu-item menu-item-copy",
94
- onClick: () => {
112
+ onClick: function () {
95
113
  copyToClipboard(message === null || message === void 0 ? void 0 : message.message);
96
114
  closeDropdown();
97
115
  },
98
116
  dataSbId: "ui_message_item_menu_copy"
99
117
  }, stringSet.MESSAGE_MENU__COPY), showMenuItemReply && /*#__PURE__*/React__default.createElement(MenuItem, {
100
118
  className: "sendbird-message-item-menu__list__menu-item menu-item-reply",
101
- onClick: () => {
119
+ onClick: function () {
102
120
  setQuoteMessage(message);
103
121
  closeDropdown();
104
122
  },
@@ -106,23 +124,23 @@ function MessageItemMenu(_ref) {
106
124
  dataSbId: "ui_message_item_menu_reply"
107
125
  }, stringSet.MESSAGE_MENU__REPLY), showMenuItemThread && /*#__PURE__*/React__default.createElement(MenuItem, {
108
126
  className: "sendbird-message-item-menu__list__menu-item menu-item-thread",
109
- onClick: () => {
127
+ onClick: function () {
110
128
  onReplyInThread === null || onReplyInThread === void 0 ? void 0 : onReplyInThread({
111
- message
129
+ message: message
112
130
  });
113
131
  closeDropdown();
114
132
  },
115
133
  dataSbId: "ui_message_item_menu_thread"
116
134
  }, stringSet.MESSAGE_MENU__THREAD), showMenuItemOpenInChannel && /*#__PURE__*/React__default.createElement(MenuItem, {
117
135
  className: "sendbird-message-item-menu__list__menu-item menu-item-open-channel",
118
- onClick: () => {
136
+ onClick: function () {
119
137
  onMoveToParentMessage === null || onMoveToParentMessage === void 0 ? void 0 : onMoveToParentMessage();
120
138
  closeDropdown();
121
139
  },
122
140
  dataSbId: "ui_message_item_menu_open_in_channel"
123
141
  }, stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL), showMenuItemEdit && /*#__PURE__*/React__default.createElement(MenuItem, {
124
142
  className: "sendbird-message-item-menu__list__menu-item menu-item-edit",
125
- onClick: () => {
143
+ onClick: function () {
126
144
  if (!disabled) {
127
145
  showEdit(true);
128
146
  closeDropdown();
@@ -131,7 +149,7 @@ function MessageItemMenu(_ref) {
131
149
  dataSbId: "ui_message_item_menu_edit"
132
150
  }, stringSet.MESSAGE_MENU__EDIT), showMenuItemResend && /*#__PURE__*/React__default.createElement(MenuItem, {
133
151
  className: "sendbird-message-item-menu__list__menu-item menu-item-resend",
134
- onClick: () => {
152
+ onClick: function () {
135
153
  if (!disabled) {
136
154
  resendMessage(message);
137
155
  closeDropdown();
@@ -140,13 +158,16 @@ function MessageItemMenu(_ref) {
140
158
  dataSbId: "ui_message_item_menu_resend"
141
159
  }, stringSet.MESSAGE_MENU__RESEND), showMenuItemDelete && /*#__PURE__*/React__default.createElement(MenuItem, {
142
160
  className: "sendbird-message-item-menu__list__menu-item menu-item-delete",
143
- onClick: () => {
144
- if (!disabled) {
161
+ onClick: function () {
162
+ var _a;
163
+ if (isFailedMessage(message)) {
164
+ (_a = channelStore === null || channelStore === void 0 ? void 0 : channelStore.deleteMessage) === null || _a === void 0 ? void 0 : _a.call(channelStore, message);
165
+ } else if (!disabled) {
145
166
  showRemove(true);
146
167
  closeDropdown();
147
168
  }
148
169
  },
149
- disable: typeof disableDeleteMessage === 'boolean' ? disableDeleteMessage : (message === null || message === void 0 ? void 0 : (_message$threadInfo = message.threadInfo) === null || _message$threadInfo === void 0 ? void 0 : _message$threadInfo.replyCount) > 0,
170
+ disable: typeof disableDeleteMessage === 'boolean' ? disableDeleteMessage : ((_a = message === null || message === void 0 ? void 0 : message.threadInfo) === null || _a === void 0 ? void 0 : _a.replyCount) > 0,
150
171
  dataSbId: "ui_message_item_menu_delete"
151
172
  }, stringSet.MESSAGE_MENU__DELETE));
152
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MessageItemMenu.js","sources":["../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage, SendableMessageType,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { Role } from '../../lib/types';\nimport { ReplyType } from '../../types';\n\ninterface Props {\n className?: string | Array<string>;\n message: SendableMessageType;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: SendableMessageType) => void;\n setQuoteMessage?: (message: SendableMessageType) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: SendableMessageType }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (!channel?.isEphemeral && isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !channel?.isEphemeral && !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !channel?.isEphemeral\n && (\n ((channel as GroupChannel)?.isBroadcast && channel?.myRole === Role.OPERATOR)\n || !(channel as GroupChannel)?.isBroadcast\n ));\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_copy\"\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n dataSbId=\"ui_message_item_menu_reply\"\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_thread\"\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_open_in_channel\"\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_edit\"\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_resend\"\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n dataSbId=\"ui_message_item_menu_delete\"\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_ref","_channel$isGroupChann","className","message","channel","isByMe","disabled","replyType","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","showMenuItemCopy","isUserMessage","showMenuItemEdit","isEphemeral","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","call","isBroadcast","myRole","Role","OPERATOR","showMenuItemReply","showMenuItemThread","parentMessageId","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","_message$threadInfo","closeDropdown","MenuItems","parentRef","parentContainRef","openLeft","MenuItem","copyToClipboard","dataSbId","MESSAGE_MENU__COPY","disable","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":"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"}
1
+ {"version":3,"file":"MessageItemMenu.js","sources":["../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage,\n SendableMessageType,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { Role } from '../../lib/types';\nimport { ReplyType } from '../../types';\nimport { useChannelContext } from '../../modules/Channel/context/ChannelProvider';\n\ninterface Props {\n className?: string | Array<string>;\n message: SendableMessageType;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: SendableMessageType) => void;\n setQuoteMessage?: (message: SendableMessageType) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: SendableMessageType }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n const channelStore = useChannelContext();\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (!channel?.isEphemeral && isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !channel?.isEphemeral && !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !channel?.isEphemeral\n && (\n ((channel as GroupChannel)?.isBroadcast && channel?.myRole === Role.OPERATOR)\n || !(channel as GroupChannel)?.isBroadcast\n ));\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_copy\"\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n dataSbId=\"ui_message_item_menu_reply\"\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_thread\"\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_open_in_channel\"\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_edit\"\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_resend\"\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (isFailedMessage(message)) {\n channelStore?.deleteMessage?.(message);\n } else if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n dataSbId=\"ui_message_item_menu_delete\"\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_a","className","message","channel","_c","isByMe","_d","disabled","replyType","_e","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","_f","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","channelStore","useChannelContext","showMenuItemCopy","isUserMessage","showMenuItemEdit","isEphemeral","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","_b","call","isBroadcast","myRole","Role","OPERATOR","showMenuItemReply","showMenuItemThread","parentMessageId","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","closeDropdown","MenuItems","parentRef","parentContainRef","openLeft","MenuItem","copyToClipboard","dataSbId","MESSAGE_MENU__COPY","disable","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","deleteMessage","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCwB,SAAAA,eAAeA,CAACC,EAehC,EAAA;;MAdNC,SAAS,GAAAD,EAAA,CAAAC,SAAA;IACTC,OAAO,GAAAF,EAAA,CAAAE,OAAA;IACPC,OAAO,GAAAH,EAAA,CAAAG,OAAA;IACPC,EAAc,GAAAJ,EAAA,CAAAK,MAAA;IAAdA,MAAM,GAAAD,EAAA,KAAA,KAAA,CAAA,GAAG,KAAK,GAAAA,EAAA;IACdE,EAAgB,GAAAN,EAAA,CAAAO,QAAA;IAAhBA,QAAQ,GAAAD,EAAA,KAAA,KAAA,CAAA,GAAG,KAAK,GAAAA,EAAA;IAChBE,SAAS,GAAAR,EAAA,CAAAQ,SAAA;IACTC,EAA2B,GAAAT,EAAA,CAAAU,oBAAA;IAA3BA,oBAAoB,GAAGD,EAAA,KAAA,KAAA,CAAA,GAAA,IAAI,GAAAA,EAAA;IAC3BE,QAAQ,GAAAX,EAAA,CAAAW,QAAA;IACRC,UAAU,GAAAZ,EAAA,CAAAY,UAAA;IACVC,aAAa,GAAAb,EAAA,CAAAa,aAAA;IACbC,eAAe,qBAAA;IACfC,gBAAgB,GAAAf,EAAA,CAAAe,gBAAA;IAChBC,eAAe,GAAAhB,EAAA,CAAAgB,eAAA;IACfC,EAAA,GAAAjB,EAAA,CAAAkB,qBAA4B;IAA5BA,qBAAqB,GAAGD,EAAA,KAAA,KAAA,CAAA,GAAA,IAAI,GAAAA,EAAA,CAAA;AAEpB,EAAA,IAAAE,SAAS,GAAKC,UAAU,CAACC,mBAAmB,CAAC,UAApC,CAAA;AACjB,EAAA,IAAMC,UAAU,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC/B,EAAA,IAAMC,YAAY,GAAGD,MAAM,CAAC,IAAI,CAAC,CAAA;AACjC,EAAA,IAAME,YAAY,GAAGC,iBAAiB,EAAE,CAAA;AAExC,EAAA,IAAMC,gBAAgB,GAAYC,aAAa,CAAC1B,OAAsB,CAAC,CAAA;AACvE,EAAA,IAAM2B,gBAAgB,GAAa,EAAC1B,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAE2B,WAAW,CAAA,IAAIF,aAAa,CAAC1B,OAAsB,CAAC,IAAI6B,aAAa,CAAC7B,OAAO,CAAC,IAAIG,MAAO,CAAA;EACtI,IAAM2B,kBAAkB,GAAaC,eAAe,CAAC/B,OAAO,CAAC,KAAIA,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEgC,YAAY,CAAA,IAAI7B,MAAO,CAAA;EACjG,IAAM8B,kBAAkB,GAAY,EAAChC,OAAO,KAAP,IAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAE2B,WAAW,CAAA,IAAI,CAACM,gBAAgB,CAAClC,OAAO,CAAC,IAAIG,MAAM,CAAA;AACjG,EAAA,IAAMgC,yBAAyB,GAAYnB,qBAAqB,KAAK,IAAI,CAAA;AACzE;;;AAGG;AACH,EAAA,IAAMoB,kBAAkB,GAAG,CAACL,eAAe,CAAC/B,OAAO,CAAC,IAC/C,CAACkC,gBAAgB,CAAClC,OAAO,CAAC,KACzB,MAAAC,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,OAAO,CAAEoC,cAAc,MAAI,IAAA,IAAAC,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAAC,IAAA,CAAAtC,OAAA,CAAA,CAC5B,IAAA,EAACA,OAAO,KAAP,IAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAE2B,WAAW,CAAA,KAErB,CAAC3B,OAAwB,KAAA,IAAA,IAAxBA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,OAAO,CAAmBuC,WAAW,KAAI,CAAAvC,OAAO,KAAP,IAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEwC,MAAM,MAAKC,IAAI,CAACC,QAAQ,IACzE,EAAE1C,OAAwB,KAAA,IAAA,IAAxBA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAmBuC,WAAW,CAAA,CAC1C,CAAA;AACJ,EAAA,IAAMI,iBAAiB,GAAGR,kBAAkB,IAAI9B,SAAS,KAAK,aAAa,CAAA;EAC3E,IAAMuC,kBAAkB,GAAGT,kBAAkB,IAAI9B,SAAS,KAAK,QAAQ,IAAI,EAACN,OAAO,KAAP,IAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAE8C,eAAe,CAAA,IAAIhC,eAAe,CAAA;AAEvH,EAAA,IAAI,EAAEW,gBAAgB,IACjBmB,iBAAiB,IACjBC,kBAAkB,IAClBV,yBAAyB,IACzBR,gBAAgB,IAChBG,kBAAkB,IAClBG,kBAAkB,CACtB,EAAE;AACD,IAAA,OAAO,IAAI,CAAA;AACZ,GAAA;EACD,oBACEc,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEjD,SAAS,EAAEkD,YAAY,CAAC,CAAClD,SAAS,EAAE,4BAA4B,CAAC,CAAE;AACnEmD,IAAAA,GAAG,EAAE5B,YAAAA;AAAa,GAAA,eAElByB,cAAA,CAAAC,aAAA,CAACG,WAAW,EAAA;AACVC,IAAAA,WAAW,EAAE,UAACC,cAA0B,EAAmB;AAAA,MAAA,oBACzDN,cAAA,CAAAC,aAAA,CAACM,UAAU,EAAA;AACTvD,QAAAA,SAAS,EAAC,qCAAqC;AAC/CmD,QAAAA,GAAG,EAAE9B,UAAW;AAChBmC,QAAAA,KAAK,EAAC,MAAM;AACZC,QAAAA,MAAM,EAAC,MAAM;QACbC,OAAO,EAAE,YAAA;AACPJ,UAAAA,cAAc,EAAE,CAAA;UAChBxC,gBAAgB,CAAC,IAAI,CAAC,CAAA;SACtB;QACF6C,MAAM,EAAE,YAAA;UACN7C,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACzB,SAAA;AAAE,OAAA,eAEFkC,cAAA,CAAAC,aAAA,CAACW,IAAI,EAAA;AACH5D,QAAAA,SAAS,EAAC,2CAA2C;QACrD6D,IAAI,EAAEC,SAAS,CAACC,IAAK;QACrBC,SAAS,EAAEC,UAAU,CAACC,eAAgB;AACtCV,QAAAA,KAAK,EAAC,MAAM;AACZC,QAAAA,MAAM,EAAC,MAAA;AAAM,OAEjB,CAAY,CAAC,CAAA;KACb;AACFU,IAAAA,SAAS,EAAE,UAACC,KAAiB,EAAA;;AAC3B,MAAA,IAAMC,aAAa,GAAG,YAAA;AACpBD,QAAAA,KAAK,EAAE,CAAA;QACPtD,gBAAgB,CAAC,KAAK,CAAC,CAAA;OACxB,CAAA;AACD,MAAA,oBACEkC,cAAA,CAAAC,aAAA,CAACqB,SAAS,EAAA;AACRtE,QAAAA,SAAS,EAAC,kCAAkC;AAC5CuE,QAAAA,SAAS,EAAElD,UAAW;AACtBmD,QAAAA,gBAAgB,EAAEjD,YAAa;AAC/B8C,QAAAA,aAAa,EAAEA,aAAc;AAC7BI,QAAAA,QAAQ,EAAErE,MAAAA;AAAO,OAAA,EAEhBsB,gBAAgB,iBACfsB,cAAA,CAAAC,aAAA,CAACyB,QAAQ,EAAA;AACP1E,QAAAA,SAAS,EAAC,4DAA4D;QACtE0D,OAAO,EAAE,YAAA;AACPiB,UAAAA,eAAe,CAAE1E,OAAuB,KAAvB,IAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAkBA,OAAO,CAAC,CAAA;AAClDoE,UAAAA,aAAa,EAAE,CAAA;SACf;AACFO,QAAAA,QAAQ,EAAC,2BAAA;OAER1D,EAAAA,SAAS,CAAC2D,kBACH,CACX,EACAhC,iBAAiB,iBAChBG,cAAA,CAAAC,aAAA,CAACyB,QAAQ,EAAA;AACP1E,QAAAA,SAAS,EAAC,6DAA6D;QACvE0D,OAAO,EAAE,YAAA;UACP7C,eAAe,CAACZ,OAAO,CAAC,CAAA;AACxBoE,UAAAA,aAAa,EAAE,CAAA;SACf;AACFS,QAAAA,OAAO,EAAE,CAAA7E,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAE8C,eAAe,IAAG,CAAE;AACtC6B,QAAAA,QAAQ,EAAC,4BAAA;OAER1D,EAAAA,SAAS,CAAC6D,mBACH,CACX,EACAjC,kBAAkB,iBACjBE,cAAA,CAAAC,aAAA,CAACyB,QAAQ,EAAA;AACP1E,QAAAA,SAAS,EAAC,8DAA8D;QACxE0D,OAAO,EAAE,YAAA;AACP3C,UAAAA,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAG;AAAEd,YAAAA,OAAO,EAAAA,OAAAA;AAAE,WAAA,CAAC,CAAA;AAC9BoE,UAAAA,aAAa,EAAE,CAAA;SACf;AACFO,QAAAA,QAAQ,EAAC,6BAAA;OAER1D,EAAAA,SAAS,CAAC8D,oBACH,CACX,EACA5C,yBAAyB,iBACxBY,cAAA,CAAAC,aAAA,CAACyB,QAAQ,EAAA;AACP1E,QAAAA,SAAS,EAAC,oEAAoE;QAC9E0D,OAAO,EAAE,YAAA;AACPzC,UAAAA,qBAAqB,KAArB,IAAA,IAAAA,qBAAqB,KAArB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,qBAAqB,EAAI,CAAA;AACzBoD,UAAAA,aAAa,EAAE,CAAA;SACf;AACFO,QAAAA,QAAQ,EAAC,sCAAA;OAER1D,EAAAA,SAAS,CAAC+D,6BACH,CACX,EACArD,gBAAgB,iBACfoB,cAAA,CAAAC,aAAA,CAACyB,QAAQ,EAAA;AACP1E,QAAAA,SAAS,EAAC,4DAA4D;QACtE0D,OAAO,EAAE,YAAA;UACP,IAAI,CAACpD,QAAQ,EAAE;YACbI,QAAQ,CAAC,IAAI,CAAC,CAAA;AACd2D,YAAAA,aAAa,EAAE,CAAA;AAChB,WAAA;SACD;AACFO,QAAAA,QAAQ,EAAC,2BAAA;OAER1D,EAAAA,SAAS,CAACgE,kBACH,CACX,EACAnD,kBAAkB,iBACjBiB,cAAA,CAAAC,aAAA,CAACyB,QAAQ,EAAA;AACP1E,QAAAA,SAAS,EAAC,8DAA8D;QACxE0D,OAAO,EAAE,YAAA;UACP,IAAI,CAACpD,QAAQ,EAAE;YACbM,aAAa,CAACX,OAAO,CAAC,CAAA;AACtBoE,YAAAA,aAAa,EAAE,CAAA;AAChB,WAAA;SACD;AACFO,QAAAA,QAAQ,EAAC,6BAAA;OAER1D,EAAAA,SAAS,CAACiE,oBACH,CACX,EACAjD,kBAAkB,iBACjBc,cAAA,CAAAC,aAAA,CAACyB,QAAQ,EAAA;AACP1E,QAAAA,SAAS,EAAC,8DAA8D;QACxE0D,OAAO,EAAE,YAAA;;AACP,UAAA,IAAI1B,eAAe,CAAC/B,OAAO,CAAC,EAAE;AAC5B,YAAA,CAAAF,EAAA,GAAAyB,YAAY,KAAZ,IAAA,IAAAA,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,YAAY,CAAE4D,aAAa,MAAA,IAAA,IAAArF,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAAyC,IAAA,CAAAhB,YAAA,EAAGvB,OAAO,CAAC,CAAA;AACvC,WAAA,MAAM,IAAI,CAACK,QAAQ,EAAE;YACpBK,UAAU,CAAC,IAAI,CAAC,CAAA;AAChB0D,YAAAA,aAAa,EAAE,CAAA;AAChB,WAAA;SACD;AACFS,QAAAA,OAAO,EACL,OAAOrE,oBAAoB,KAAK,SAAS,GACrCA,oBAAoB,GACpB,CAAA,CAAAV,EAAA,GAAAE,OAAO,KAAP,IAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEoF,UAAU,MAAE,IAAA,IAAAtF,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAAuF,UAAU,IAAG,CACvC;AACDV,QAAAA,QAAQ,EAAC,6BAAA;AAA6B,OAAA,EAErC1D,SAAS,CAACqE,oBACH,CAEH,CAAC,CAAA;AAEhB,KAAA;AAAE,GAEN,CAAK,CAAC,CAAA;AAEV;;;;"}