@sendbird/uikit-react 3.6.8 → 3.6.9-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (745) hide show
  1. package/App.js +66 -57
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +167 -0
  4. package/Channel/components/ChannelHeader.js +22 -20
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +48 -42
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +18 -16
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +4 -4
  11. package/Channel/components/Message.js +42 -37
  12. package/Channel/components/Message.js.map +1 -1
  13. package/Channel/components/MessageInput.js +48 -35
  14. package/Channel/components/MessageInput.js.map +1 -1
  15. package/Channel/components/MessageList.js +44 -38
  16. package/Channel/components/MessageList.js.map +1 -1
  17. package/Channel/components/RemoveMessageModal.js +25 -21
  18. package/Channel/components/RemoveMessageModal.js.map +1 -1
  19. package/Channel/components/SuggestedMentionList.js +20 -18
  20. package/Channel/components/SuggestedMentionList.js.map +1 -1
  21. package/Channel/components/TypingIndicator.js +18 -16
  22. package/Channel/components/TypingIndicator.js.map +1 -1
  23. package/Channel/components/UnreadCount.js +4 -4
  24. package/Channel/context.js +15 -13
  25. package/Channel/context.js.map +1 -1
  26. package/Channel/utils/compareMessagesForGrouping.js +7 -6
  27. package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  28. package/Channel/utils/getMessagePartsInfo.js +8 -7
  29. package/Channel/utils/getMessagePartsInfo.js.map +1 -1
  30. package/Channel.js +50 -42
  31. package/Channel.js.map +1 -1
  32. package/ChannelList/components/AddChannel.js +16 -15
  33. package/ChannelList/components/AddChannel.js.map +1 -1
  34. package/ChannelList/components/ChannelListHeader.js +6 -6
  35. package/ChannelList/components/ChannelListUI.js +33 -31
  36. package/ChannelList/components/ChannelListUI.js.map +1 -1
  37. package/ChannelList/components/ChannelPreview.js +31 -29
  38. package/ChannelList/components/ChannelPreview.js.map +1 -1
  39. package/ChannelList/components/ChannelPreviewAction.js +16 -15
  40. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  41. package/ChannelList/context.js +9 -8
  42. package/ChannelList/context.js.map +1 -1
  43. package/ChannelList.js +33 -31
  44. package/ChannelList.js.map +1 -1
  45. package/{ChannelListProvider-63f3007c.js → ChannelListProvider-779a4c3d.js} +8 -8
  46. package/{ChannelListProvider-63f3007c.js.map → ChannelListProvider-779a4c3d.js.map} +1 -1
  47. package/{ChannelProvider-d6dedff9.js → ChannelProvider-f6fbfb1a.js} +67 -24
  48. package/ChannelProvider-f6fbfb1a.js.map +1 -0
  49. package/ChannelSettings/components/ChannelProfile.js +14 -12
  50. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  51. package/ChannelSettings/components/ChannelSettingsUI.js +18 -17
  52. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  53. package/ChannelSettings/components/EditDetailsModal.js +15 -13
  54. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  55. package/ChannelSettings/components/LeaveChannel.js +14 -13
  56. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  57. package/ChannelSettings/components/ModerationPanel.js +16 -15
  58. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  59. package/ChannelSettings/components/UserListItem.js +11 -10
  60. package/ChannelSettings/components/UserListItem.js.map +1 -1
  61. package/ChannelSettings/components/UserPanel.js +14 -13
  62. package/ChannelSettings/components/UserPanel.js.map +1 -1
  63. package/ChannelSettings/context.js +3 -3
  64. package/ChannelSettings.js +18 -17
  65. package/ChannelSettings.js.map +1 -1
  66. package/CreateChannel/components/CreateChannelUI.js +15 -14
  67. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  68. package/CreateChannel/components/InviteUsers.js +16 -15
  69. package/CreateChannel/components/InviteUsers.js.map +1 -1
  70. package/CreateChannel/components/SelectChannelType.js +13 -12
  71. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  72. package/CreateChannel/context.js +4 -4
  73. package/CreateChannel.js +15 -14
  74. package/CreateChannel.js.map +1 -1
  75. package/{CreateChannelProvider-32ceb13a.js → CreateChannelProvider-e6c8290a.js} +1 -1
  76. package/{CreateChannelProvider-32ceb13a.js.map → CreateChannelProvider-e6c8290a.js.map} +1 -1
  77. package/CreateOpenChannel/components/CreateOpenChannelUI.js +12 -10
  78. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  79. package/CreateOpenChannel/context.js +1 -1
  80. package/CreateOpenChannel.js +11 -9
  81. package/CreateOpenChannel.js.map +1 -1
  82. package/EditUserProfile/components/EditUserProfileUI.js +13 -12
  83. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  84. package/EditUserProfile.js +14 -13
  85. package/EditUserProfile.js.map +1 -1
  86. package/{LocalizationContext-9a9a0064.js → LocalizationContext-2a6ef338.js} +3 -3
  87. package/{LocalizationContext-9a9a0064.js.map → LocalizationContext-2a6ef338.js.map} +1 -1
  88. package/{MediaQueryContext-aebb709a.js → MediaQueryContext-5a34332e.js} +1 -1
  89. package/{MediaQueryContext-aebb709a.js.map → MediaQueryContext-5a34332e.js.map} +1 -1
  90. package/{MemberList-54496842.js → MemberList-5c9b9650.js} +7 -6
  91. package/{MemberList-54496842.js.map → MemberList-5c9b9650.js.map} +1 -1
  92. package/Message/hooks/useDirtyGetMentions.js +1 -1
  93. package/Message/hooks/useDirtyGetMentions.js.map +1 -1
  94. package/MessageSearch/components/MessageSearchUI.js +13 -11
  95. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  96. package/MessageSearch/context.js +1 -1
  97. package/MessageSearch.js +13 -11
  98. package/MessageSearch.js.map +1 -1
  99. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  100. package/OpenChannel/components/OpenChannelHeader.js +12 -12
  101. package/OpenChannel/components/OpenChannelInput.js +20 -20
  102. package/OpenChannel/components/OpenChannelMessage.js +35 -32
  103. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  104. package/OpenChannel/components/OpenChannelMessageList.js +34 -33
  105. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  106. package/OpenChannel/components/OpenChannelUI.js +34 -33
  107. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  108. package/OpenChannel/context.js +8 -8
  109. package/OpenChannel.js +34 -33
  110. package/OpenChannel.js.map +1 -1
  111. package/OpenChannelList/components/OpenChannelListUI.js +15 -13
  112. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  113. package/OpenChannelList/components/OpenChannelPreview.js +3 -3
  114. package/OpenChannelList/context.js +3 -3
  115. package/OpenChannelList.js +15 -13
  116. package/OpenChannelList.js.map +1 -1
  117. package/{OpenChannelListProvider-6f1599b7.js → OpenChannelListProvider-1ced6f18.js} +3 -3
  118. package/{OpenChannelListProvider-6f1599b7.js.map → OpenChannelListProvider-1ced6f18.js.map} +1 -1
  119. package/{OpenChannelProvider-8fdab056.js → OpenChannelProvider-4c64bb03.js} +13 -8
  120. package/OpenChannelProvider-4c64bb03.js.map +1 -0
  121. package/OpenChannelSettings/components/EditDetailsModal.js +16 -14
  122. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  123. package/OpenChannelSettings/components/OpenChannelProfile.js +15 -13
  124. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  125. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +19 -18
  126. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  127. package/OpenChannelSettings/components/OperatorUI.js +18 -17
  128. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  129. package/OpenChannelSettings/components/ParticipantUI.js +15 -14
  130. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  131. package/OpenChannelSettings/context.js +3 -3
  132. package/OpenChannelSettings.js +19 -18
  133. package/OpenChannelSettings.js.map +1 -1
  134. package/README.md +7 -0
  135. package/{RemoveMessageModal-715f4bd6.js → RemoveMessageModal-1f71ab21.js} +7 -5
  136. package/RemoveMessageModal-1f71ab21.js.map +1 -0
  137. package/SendbirdProvider.js +43 -24
  138. package/SendbirdProvider.js.map +1 -1
  139. package/Thread/components/ParentMessageInfo.js +39 -36
  140. package/Thread/components/ParentMessageInfo.js.map +1 -1
  141. package/Thread/components/ParentMessageInfoItem.js +33 -23
  142. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  143. package/Thread/components/ThreadHeader.js +6 -6
  144. package/Thread/components/ThreadList.js +43 -39
  145. package/Thread/components/ThreadList.js.map +1 -1
  146. package/Thread/components/ThreadListItem.js +50 -40
  147. package/Thread/components/ThreadListItem.js.map +1 -1
  148. package/Thread/components/ThreadMessageInput.js +48 -35
  149. package/Thread/components/ThreadMessageInput.js.map +1 -1
  150. package/Thread/components/ThreadUI.js +48 -43
  151. package/Thread/components/ThreadUI.js.map +1 -1
  152. package/Thread/context.js +12 -8
  153. package/Thread/context.js.map +1 -1
  154. package/Thread.js +58 -44
  155. package/Thread.js.map +1 -1
  156. package/{ThreadProvider-696e3a32.js → ThreadProvider-505e55a5.js} +61 -15
  157. package/ThreadProvider-505e55a5.js.map +1 -0
  158. package/{UserProfileContext-9fba7a03.js → UserProfileContext-ca5fc057.js} +1 -1
  159. package/{UserProfileContext-9fba7a03.js.map → UserProfileContext-ca5fc057.js.map} +1 -1
  160. package/VoicePlayer/context.js +3 -3
  161. package/VoicePlayer/useVoicePlayer.js +12 -10
  162. package/VoicePlayer/useVoicePlayer.js.map +1 -1
  163. package/VoiceRecorder/context.js +13 -11
  164. package/VoiceRecorder/context.js.map +1 -1
  165. package/VoiceRecorder/useVoiceRecorder.js +11 -9
  166. package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  167. package/{WebAudioUtils-ba28e2b0.js → WebAudioUtils-070519e4.js} +2 -2
  168. package/{WebAudioUtils-ba28e2b0.js.map → WebAudioUtils-070519e4.js.map} +1 -1
  169. package/{_rollupPluginBabelHelpers-0f2ee8c1.js → _rollupPluginBabelHelpers-50696833.js} +1 -1
  170. package/_rollupPluginBabelHelpers-50696833.js.map +1 -0
  171. package/{actionTypes-670a9a48.js → actionTypes-a7ddf06a.js} +1 -1
  172. package/{actionTypes-670a9a48.js.map → actionTypes-a7ddf06a.js.map} +1 -1
  173. package/cjs/App.js +66 -57
  174. package/cjs/App.js.map +1 -1
  175. package/cjs/Channel/components/ChannelHeader.js +22 -20
  176. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  177. package/cjs/Channel/components/ChannelUI.js +48 -42
  178. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  179. package/cjs/Channel/components/FileViewer.js +18 -16
  180. package/cjs/Channel/components/FileViewer.js.map +1 -1
  181. package/cjs/Channel/components/FrozenNotification.js +4 -4
  182. package/cjs/Channel/components/Message.js +42 -37
  183. package/cjs/Channel/components/Message.js.map +1 -1
  184. package/cjs/Channel/components/MessageInput.js +49 -36
  185. package/cjs/Channel/components/MessageInput.js.map +1 -1
  186. package/cjs/Channel/components/MessageList.js +44 -38
  187. package/cjs/Channel/components/MessageList.js.map +1 -1
  188. package/cjs/Channel/components/RemoveMessageModal.js +25 -21
  189. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  190. package/cjs/Channel/components/SuggestedMentionList.js +20 -18
  191. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  192. package/cjs/Channel/components/TypingIndicator.js +18 -16
  193. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  194. package/cjs/Channel/components/UnreadCount.js +4 -4
  195. package/cjs/Channel/context.js +15 -13
  196. package/cjs/Channel/context.js.map +1 -1
  197. package/cjs/Channel/utils/compareMessagesForGrouping.js +7 -6
  198. package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  199. package/cjs/Channel/utils/getMessagePartsInfo.js +8 -7
  200. package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
  201. package/cjs/Channel.js +50 -42
  202. package/cjs/Channel.js.map +1 -1
  203. package/cjs/ChannelList/components/AddChannel.js +16 -15
  204. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  205. package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
  206. package/cjs/ChannelList/components/ChannelListUI.js +33 -31
  207. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  208. package/cjs/ChannelList/components/ChannelPreview.js +31 -29
  209. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  210. package/cjs/ChannelList/components/ChannelPreviewAction.js +16 -15
  211. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  212. package/cjs/ChannelList/context.js +9 -8
  213. package/cjs/ChannelList/context.js.map +1 -1
  214. package/cjs/ChannelList.js +33 -31
  215. package/cjs/ChannelList.js.map +1 -1
  216. package/cjs/{ChannelListProvider-1506b1fa.js → ChannelListProvider-6ab7d534.js} +8 -8
  217. package/cjs/{ChannelListProvider-1506b1fa.js.map → ChannelListProvider-6ab7d534.js.map} +1 -1
  218. package/cjs/{ChannelProvider-c8bc29d3.js → ChannelProvider-5dab910c.js} +67 -24
  219. package/cjs/ChannelProvider-5dab910c.js.map +1 -0
  220. package/cjs/ChannelSettings/components/ChannelProfile.js +14 -12
  221. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  222. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -17
  223. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  224. package/cjs/ChannelSettings/components/EditDetailsModal.js +15 -13
  225. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  226. package/cjs/ChannelSettings/components/LeaveChannel.js +15 -14
  227. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  228. package/cjs/ChannelSettings/components/ModerationPanel.js +19 -18
  229. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  230. package/cjs/ChannelSettings/components/UserListItem.js +11 -10
  231. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  232. package/cjs/ChannelSettings/components/UserPanel.js +14 -13
  233. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  234. package/cjs/ChannelSettings/context.js +3 -3
  235. package/cjs/ChannelSettings.js +18 -17
  236. package/cjs/ChannelSettings.js.map +1 -1
  237. package/cjs/CreateChannel/components/CreateChannelUI.js +15 -14
  238. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  239. package/cjs/CreateChannel/components/InviteUsers.js +16 -15
  240. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  241. package/cjs/CreateChannel/components/SelectChannelType.js +13 -12
  242. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  243. package/cjs/CreateChannel/context.js +4 -4
  244. package/cjs/CreateChannel.js +15 -14
  245. package/cjs/CreateChannel.js.map +1 -1
  246. package/cjs/{CreateChannelProvider-f30302a5.js → CreateChannelProvider-87b5a870.js} +1 -1
  247. package/cjs/{CreateChannelProvider-f30302a5.js.map → CreateChannelProvider-87b5a870.js.map} +1 -1
  248. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +12 -10
  249. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  250. package/cjs/CreateOpenChannel/context.js +1 -1
  251. package/cjs/CreateOpenChannel.js +11 -9
  252. package/cjs/CreateOpenChannel.js.map +1 -1
  253. package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -12
  254. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  255. package/cjs/EditUserProfile.js +14 -13
  256. package/cjs/EditUserProfile.js.map +1 -1
  257. package/cjs/{LocalizationContext-9c99457f.js → LocalizationContext-01462759.js} +3 -3
  258. package/cjs/{LocalizationContext-9c99457f.js.map → LocalizationContext-01462759.js.map} +1 -1
  259. package/cjs/{MediaQueryContext-a5c77095.js → MediaQueryContext-550a1a76.js} +1 -1
  260. package/cjs/{MediaQueryContext-a5c77095.js.map → MediaQueryContext-550a1a76.js.map} +1 -1
  261. package/cjs/{MemberList-166dd7de.js → MemberList-446c4808.js} +8 -7
  262. package/cjs/{MemberList-166dd7de.js.map → MemberList-446c4808.js.map} +1 -1
  263. package/cjs/Message/hooks/useDirtyGetMentions.js +1 -1
  264. package/cjs/Message/hooks/useDirtyGetMentions.js.map +1 -1
  265. package/cjs/MessageSearch/components/MessageSearchUI.js +13 -11
  266. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  267. package/cjs/MessageSearch/context.js +1 -1
  268. package/cjs/MessageSearch.js +13 -11
  269. package/cjs/MessageSearch.js.map +1 -1
  270. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  271. package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
  272. package/cjs/OpenChannel/components/OpenChannelInput.js +20 -20
  273. package/cjs/OpenChannel/components/OpenChannelMessage.js +35 -32
  274. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  275. package/cjs/OpenChannel/components/OpenChannelMessageList.js +34 -33
  276. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  277. package/cjs/OpenChannel/components/OpenChannelUI.js +34 -33
  278. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  279. package/cjs/OpenChannel/context.js +8 -8
  280. package/cjs/OpenChannel.js +34 -33
  281. package/cjs/OpenChannel.js.map +1 -1
  282. package/cjs/OpenChannelList/components/OpenChannelListUI.js +15 -13
  283. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  284. package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
  285. package/cjs/OpenChannelList/context.js +3 -3
  286. package/cjs/OpenChannelList.js +15 -13
  287. package/cjs/OpenChannelList.js.map +1 -1
  288. package/cjs/{OpenChannelListProvider-74ae7138.js → OpenChannelListProvider-ca0abdf0.js} +3 -3
  289. package/cjs/{OpenChannelListProvider-74ae7138.js.map → OpenChannelListProvider-ca0abdf0.js.map} +1 -1
  290. package/cjs/{OpenChannelProvider-57c10c09.js → OpenChannelProvider-77ce94f4.js} +13 -8
  291. package/cjs/OpenChannelProvider-77ce94f4.js.map +1 -0
  292. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +16 -14
  293. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  294. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +15 -13
  295. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  296. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +19 -18
  297. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  298. package/cjs/OpenChannelSettings/components/OperatorUI.js +22 -21
  299. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  300. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -14
  301. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  302. package/cjs/OpenChannelSettings/context.js +3 -3
  303. package/cjs/OpenChannelSettings.js +19 -18
  304. package/cjs/OpenChannelSettings.js.map +1 -1
  305. package/cjs/{RemoveMessageModal-029b1c86.js → RemoveMessageModal-c97607e4.js} +7 -5
  306. package/cjs/RemoveMessageModal-c97607e4.js.map +1 -0
  307. package/cjs/SendbirdProvider.js +43 -24
  308. package/cjs/SendbirdProvider.js.map +1 -1
  309. package/cjs/Thread/components/ParentMessageInfo.js +39 -36
  310. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  311. package/cjs/Thread/components/ParentMessageInfoItem.js +33 -23
  312. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  313. package/cjs/Thread/components/ThreadHeader.js +6 -6
  314. package/cjs/Thread/components/ThreadList.js +43 -39
  315. package/cjs/Thread/components/ThreadList.js.map +1 -1
  316. package/cjs/Thread/components/ThreadListItem.js +53 -43
  317. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  318. package/cjs/Thread/components/ThreadMessageInput.js +49 -36
  319. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  320. package/cjs/Thread/components/ThreadUI.js +48 -43
  321. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  322. package/cjs/Thread/context.js +12 -8
  323. package/cjs/Thread/context.js.map +1 -1
  324. package/cjs/Thread.js +58 -44
  325. package/cjs/Thread.js.map +1 -1
  326. package/cjs/{ThreadProvider-9dfc3ad5.js → ThreadProvider-e33ab585.js} +61 -15
  327. package/cjs/ThreadProvider-e33ab585.js.map +1 -0
  328. package/cjs/{UserProfileContext-1f226141.js → UserProfileContext-a871377d.js} +1 -1
  329. package/cjs/{UserProfileContext-1f226141.js.map → UserProfileContext-a871377d.js.map} +1 -1
  330. package/cjs/VoicePlayer/context.js +3 -3
  331. package/cjs/VoicePlayer/useVoicePlayer.js +12 -10
  332. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
  333. package/cjs/VoiceRecorder/context.js +13 -11
  334. package/cjs/VoiceRecorder/context.js.map +1 -1
  335. package/cjs/VoiceRecorder/useVoiceRecorder.js +11 -9
  336. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  337. package/cjs/{WebAudioUtils-250f7398.js → WebAudioUtils-9110f2c8.js} +2 -2
  338. package/cjs/{WebAudioUtils-250f7398.js.map → WebAudioUtils-9110f2c8.js.map} +1 -1
  339. package/cjs/{_rollupPluginBabelHelpers-117c3ffb.js → _rollupPluginBabelHelpers-c6220b54.js} +1 -1
  340. package/cjs/_rollupPluginBabelHelpers-c6220b54.js.map +1 -0
  341. package/cjs/{actionTypes-01de4d11.js → actionTypes-e50d3f49.js} +1 -1
  342. package/cjs/{actionTypes-01de4d11.js.map → actionTypes-e50d3f49.js.map} +1 -1
  343. package/cjs/{color-a057a4c2.js → color-437027bf.js} +1 -1
  344. package/cjs/{color-a057a4c2.js.map → color-437027bf.js.map} +1 -1
  345. package/cjs/{compareIds-49d9aea6.js → compareIds-6d5c4c39.js} +1 -1
  346. package/cjs/{compareIds-49d9aea6.js.map → compareIds-6d5c4c39.js.map} +1 -1
  347. package/cjs/{const-cd9b71c8.js → const-2c58fa8c.js} +1 -1
  348. package/cjs/{const-cd9b71c8.js.map → const-2c58fa8c.js.map} +1 -1
  349. package/cjs/{const-8e4d382d.js → const-7cb82662.js} +1 -1
  350. package/cjs/{const-8e4d382d.js.map → const-7cb82662.js.map} +1 -1
  351. package/cjs/{consts-fb9dd3a0.js → consts-50006df9.js} +5 -1
  352. package/cjs/{consts-fb9dd3a0.js.map → consts-50006df9.js.map} +1 -1
  353. package/cjs/{consts-4a51c64b.js → consts-58a1099d.js} +1 -1
  354. package/cjs/{consts-4a51c64b.js.map → consts-58a1099d.js.map} +1 -1
  355. package/cjs/{consts-d866b64a.js → consts-85acfb7f.js} +1 -1
  356. package/cjs/{consts-d866b64a.js.map → consts-85acfb7f.js.map} +1 -1
  357. package/cjs/{consts-3afe4fa8.js → consts-de5a3115.js} +1 -1
  358. package/cjs/{consts-3afe4fa8.js.map → consts-de5a3115.js.map} +1 -1
  359. package/cjs/{context-d7bb15b5.js → context-57928814.js} +2 -2
  360. package/cjs/{context-d7bb15b5.js.map → context-57928814.js.map} +1 -1
  361. package/cjs/dist/index.css +371 -280
  362. package/cjs/dist/index.css.map +1 -1
  363. package/cjs/{index-2413bae4.js → index-0e23b304.js} +1 -1
  364. package/cjs/index-0e23b304.js.map +1 -0
  365. package/cjs/index-13b55ebd.js +139 -0
  366. package/cjs/index-13b55ebd.js.map +1 -0
  367. package/cjs/{index-0599b6f2.js → index-3888ca97.js} +36 -4
  368. package/cjs/index-3888ca97.js.map +1 -0
  369. package/cjs/{index-df172622.js → index-43271226.js} +2 -2
  370. package/cjs/{index-df172622.js.map → index-43271226.js.map} +1 -1
  371. package/cjs/{index-15e4fb71.js → index-4f568909.js} +4 -4
  372. package/cjs/{index-15e4fb71.js.map → index-4f568909.js.map} +1 -1
  373. package/cjs/{index-ba4dea0c.js → index-63eb5ff7.js} +1 -1
  374. package/cjs/{index-ba4dea0c.js.map → index-63eb5ff7.js.map} +1 -1
  375. package/cjs/{index-fe1b738f.js → index-64dc3492.js} +3 -3
  376. package/cjs/{index-fe1b738f.js.map → index-64dc3492.js.map} +1 -1
  377. package/cjs/{index-a5aa0a9b.js → index-6bfc2f69.js} +8 -7
  378. package/cjs/{index-a5aa0a9b.js.map → index-6bfc2f69.js.map} +1 -1
  379. package/cjs/{index-913491a1.js → index-71366fc1.js} +2 -2
  380. package/cjs/{index-913491a1.js.map → index-71366fc1.js.map} +1 -1
  381. package/cjs/{index-d5522aef.js → index-85aa0eb6.js} +2 -2
  382. package/cjs/{index-d5522aef.js.map → index-85aa0eb6.js.map} +1 -1
  383. package/cjs/{index-0d4c4adf.js → index-8633e84b.js} +3 -3
  384. package/cjs/{index-0d4c4adf.js.map → index-8633e84b.js.map} +1 -1
  385. package/cjs/index-8d04d6f8.js +58 -0
  386. package/cjs/index-8d04d6f8.js.map +1 -0
  387. package/cjs/{index-c59af641.js → index-8fca1595.js} +2 -2
  388. package/cjs/{index-c59af641.js.map → index-8fca1595.js.map} +1 -1
  389. package/cjs/{index-464461c9.js → index-957f62e0.js} +20 -12
  390. package/cjs/index-957f62e0.js.map +1 -0
  391. package/cjs/{index-9cffff55.js → index-9c68a768.js} +3 -3
  392. package/cjs/{index-9cffff55.js.map → index-9c68a768.js.map} +1 -1
  393. package/cjs/{index-dc15cf44.js → index-9ff45780.js} +4 -4
  394. package/cjs/{index-dc15cf44.js.map → index-9ff45780.js.map} +1 -1
  395. package/cjs/{index-5b3bc2e9.js → index-a734f18b.js} +4 -4
  396. package/cjs/{index-5b3bc2e9.js.map → index-a734f18b.js.map} +1 -1
  397. package/cjs/{index-5359bc78.js → index-aabf3cd7.js} +6 -6
  398. package/cjs/{index-5359bc78.js.map → index-aabf3cd7.js.map} +1 -1
  399. package/cjs/{index-4eb2a000.js → index-b5b8572e.js} +2 -2
  400. package/cjs/{index-4eb2a000.js.map → index-b5b8572e.js.map} +1 -1
  401. package/cjs/{index-2d4ea9ad.js → index-c36eec86.js} +4 -4
  402. package/cjs/index-c36eec86.js.map +1 -0
  403. package/cjs/{index-b64ce51a.js → index-cd217acb.js} +10 -9
  404. package/cjs/index-cd217acb.js.map +1 -0
  405. package/cjs/index.js +60 -55
  406. package/cjs/index.js.map +1 -1
  407. package/cjs/{index.module-2c2cf337.js → index.module-cd5fee9a.js} +1 -1
  408. package/cjs/{index.module-2c2cf337.js.map → index.module-cd5fee9a.js.map} +1 -1
  409. package/cjs/package.json +1 -1
  410. package/cjs/{resolvedReplyType-053d2dbc.js → resolvedReplyType-e6b60483.js} +1 -1
  411. package/cjs/{resolvedReplyType-053d2dbc.js.map → resolvedReplyType-e6b60483.js.map} +1 -1
  412. package/cjs/sendbirdSelectors.js +3 -3
  413. package/cjs/stringFormatterUtils-222bd4a1.js +16 -0
  414. package/cjs/stringFormatterUtils-222bd4a1.js.map +1 -0
  415. package/cjs/{stringSet-dbdeec9c.js → stringSet-569a20f9.js} +1 -1
  416. package/cjs/{stringSet-dbdeec9c.js.map → stringSet-569a20f9.js.map} +1 -1
  417. package/cjs/{tokenize-7204c391.js → tokenize-d84a3b40.js} +2 -2
  418. package/cjs/{tokenize-7204c391.js.map → tokenize-d84a3b40.js.map} +1 -1
  419. package/cjs/{topics-c495cb3a.js → topics-44c343a5.js} +1 -1
  420. package/cjs/{topics-c495cb3a.js.map → topics-44c343a5.js.map} +1 -1
  421. package/cjs/{types-79ca7893.js → types-065ea007.js} +1 -1
  422. package/cjs/types-065ea007.js.map +1 -0
  423. package/cjs/ui/Accordion.js +2 -2
  424. package/cjs/ui/AccordionGroup.js +2 -2
  425. package/cjs/ui/AdminMessage.js +2 -2
  426. package/cjs/ui/Avatar.js +1 -1
  427. package/cjs/ui/Badge.js +4 -4
  428. package/cjs/ui/BottomSheet.js +6 -1
  429. package/cjs/ui/BottomSheet.js.map +1 -1
  430. package/cjs/ui/Button.js +10 -12
  431. package/cjs/ui/Button.js.map +1 -1
  432. package/cjs/ui/ChannelAvatar.js +2 -2
  433. package/cjs/ui/ConnectionStatus.js +4 -4
  434. package/cjs/ui/ContextMenu.js +6 -5
  435. package/cjs/ui/ContextMenu.js.map +1 -1
  436. package/cjs/ui/DateSeparator.js +3 -3
  437. package/cjs/ui/EmojiReactions.js +14 -13
  438. package/cjs/ui/EmojiReactions.js.map +1 -1
  439. package/cjs/ui/FileMessageItemBody.js +7 -6
  440. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  441. package/cjs/ui/FileViewer.js +14 -13
  442. package/cjs/ui/FileViewer.js.map +1 -1
  443. package/cjs/ui/Icon.js +3 -0
  444. package/cjs/ui/Icon.js.map +1 -1
  445. package/cjs/ui/IconButton.js +1 -1
  446. package/cjs/ui/ImageRenderer.js +58 -14
  447. package/cjs/ui/ImageRenderer.js.map +1 -1
  448. package/cjs/ui/Input.js +2 -2
  449. package/cjs/ui/Label.js +2 -2
  450. package/cjs/ui/LinkLabel.js +2 -2
  451. package/cjs/ui/MentionLabel.js +11 -10
  452. package/cjs/ui/MentionLabel.js.map +1 -1
  453. package/cjs/ui/MentionUserLabel.js +1 -1
  454. package/cjs/ui/MessageContent.js +43 -34
  455. package/cjs/ui/MessageContent.js.map +1 -1
  456. package/cjs/ui/MessageInput/hooks/usePaste.js +4 -4
  457. package/cjs/ui/MessageInput.js +54 -40
  458. package/cjs/ui/MessageInput.js.map +1 -1
  459. package/cjs/ui/MessageItemMenu.js +9 -8
  460. package/cjs/ui/MessageItemMenu.js.map +1 -1
  461. package/cjs/ui/MessageItemReactionMenu.js +9 -8
  462. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  463. package/cjs/ui/MessageSearchFileItem.js +18 -18
  464. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  465. package/cjs/ui/MessageSearchItem.js +8 -8
  466. package/cjs/ui/MessageStatus.js +11 -10
  467. package/cjs/ui/MessageStatus.js.map +1 -1
  468. package/cjs/ui/Modal.js +26 -17
  469. package/cjs/ui/Modal.js.map +1 -1
  470. package/cjs/ui/OGMessageItemBody.js +14 -14
  471. package/cjs/ui/OpenChannelAdminMessage.js +2 -2
  472. package/cjs/ui/OpenChannelAvatar.js +5 -5
  473. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  474. package/cjs/ui/OpenchannelFileMessage.js +16 -15
  475. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  476. package/cjs/ui/OpenchannelOGMessage.js +18 -18
  477. package/cjs/ui/OpenchannelThumbnailMessage.js +15 -14
  478. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  479. package/cjs/ui/OpenchannelUserMessage.js +16 -15
  480. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  481. package/cjs/ui/PlaceHolder.js +5 -5
  482. package/cjs/ui/PlaybackTime.js +2 -2
  483. package/cjs/ui/QuoteMessage.js +15 -13
  484. package/cjs/ui/QuoteMessage.js.map +1 -1
  485. package/cjs/ui/QuoteMessageInput.js +14 -12
  486. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  487. package/cjs/ui/ReactionBadge.js +2 -2
  488. package/cjs/ui/ReactionButton.js +4 -4
  489. package/cjs/ui/SortByRow.js +1 -1
  490. package/cjs/ui/TextButton.js +1 -1
  491. package/cjs/ui/TextMessageItemBody.js +14 -14
  492. package/cjs/ui/ThreadReplies.js +5 -5
  493. package/cjs/ui/ThumbnailMessageItemBody.js +16 -17
  494. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  495. package/cjs/ui/Toggle.js +1 -1
  496. package/cjs/ui/Tooltip.js +2 -2
  497. package/cjs/ui/UnknownMessageItemBody.js +7 -6
  498. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  499. package/cjs/ui/UserListItem.js +11 -10
  500. package/cjs/ui/UserListItem.js.map +1 -1
  501. package/cjs/ui/UserProfile.js +9 -9
  502. package/cjs/ui/VoiceMessageItemBody.js +12 -10
  503. package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
  504. package/cjs/ui/VoiceMessgeInput.js +7 -7
  505. package/cjs/ui/Word.js +11 -10
  506. package/cjs/ui/Word.js.map +1 -1
  507. package/cjs/{VoiceMessageInputWrapper-953affee.js → useHandleUploadFiles-cd2fcecd.js} +129 -8
  508. package/cjs/useHandleUploadFiles-cd2fcecd.js.map +1 -0
  509. package/cjs/{useLongPress-e7c92bb0.js → useLongPress-b3303d9c.js} +3 -3
  510. package/cjs/{useLongPress-e7c92bb0.js.map → useLongPress-b3303d9c.js.map} +1 -1
  511. package/cjs/useSendMultipleFilesMessage-1093a2d5.js +109 -0
  512. package/cjs/useSendMultipleFilesMessage-1093a2d5.js.map +1 -0
  513. package/cjs/useSendbirdStateContext.js +1 -1
  514. package/cjs/utils/message/isVoiceMessage.js +3 -2
  515. package/cjs/utils/message/isVoiceMessage.js.map +1 -1
  516. package/cjs/{utils-c2f38151.js → utils-025bf87c.js} +1 -1
  517. package/cjs/{utils-c2f38151.js.map → utils-025bf87c.js.map} +1 -1
  518. package/cjs/utils-3b3b18a3.js +62 -0
  519. package/cjs/utils-3b3b18a3.js.map +1 -0
  520. package/cjs/{utils-657ea6e9.js → utils-4040fa0e.js} +1 -1
  521. package/cjs/{utils-657ea6e9.js.map → utils-4040fa0e.js.map} +1 -1
  522. package/cjs/{utils-b6cca626.js → utils-91440270.js} +4 -4
  523. package/cjs/{utils-b6cca626.js.map → utils-91440270.js.map} +1 -1
  524. package/cjs/{utils-cc9de39b.js → utils-9ce6a1d4.js} +1 -1
  525. package/cjs/{utils-cc9de39b.js.map → utils-9ce6a1d4.js.map} +1 -1
  526. package/cjs/{utils-90a7cd20.js → utils-a1c39113.js} +2 -2
  527. package/cjs/{utils-90a7cd20.js.map → utils-a1c39113.js.map} +1 -1
  528. package/cjs/{uuid-b2882230.js → uuid-10da34d7.js} +1 -1
  529. package/cjs/{uuid-b2882230.js.map → uuid-10da34d7.js.map} +1 -1
  530. package/cjs/withSendbird.js +8 -1
  531. package/cjs/withSendbird.js.map +1 -1
  532. package/{color-65ef45d7.js → color-6b4d0a7b.js} +1 -1
  533. package/{color-65ef45d7.js.map → color-6b4d0a7b.js.map} +1 -1
  534. package/{compareIds-c0aa8024.js → compareIds-8bbfc531.js} +1 -1
  535. package/{compareIds-c0aa8024.js.map → compareIds-8bbfc531.js.map} +1 -1
  536. package/{const-537b3aa9.js → const-7a48f2f0.js} +1 -1
  537. package/{const-537b3aa9.js.map → const-7a48f2f0.js.map} +1 -1
  538. package/{const-2c36fe72.js → const-bd67ba4a.js} +1 -1
  539. package/{const-2c36fe72.js.map → const-bd67ba4a.js.map} +1 -1
  540. package/{consts-ee08d763.js → consts-087a1fb9.js} +1 -1
  541. package/{consts-ee08d763.js.map → consts-087a1fb9.js.map} +1 -1
  542. package/{consts-397a92f1.js → consts-2ddaffce.js} +5 -2
  543. package/{consts-397a92f1.js.map → consts-2ddaffce.js.map} +1 -1
  544. package/{consts-066d732d.js → consts-8b2a8d9c.js} +1 -1
  545. package/{consts-066d732d.js.map → consts-8b2a8d9c.js.map} +1 -1
  546. package/{consts-c105f2e8.js → consts-a27675df.js} +1 -1
  547. package/{consts-c105f2e8.js.map → consts-a27675df.js.map} +1 -1
  548. package/{context-524b02ab.js → context-731512f4.js} +2 -2
  549. package/{context-524b02ab.js.map → context-731512f4.js.map} +1 -1
  550. package/dist/index.css +371 -280
  551. package/dist/index.css.map +1 -1
  552. package/{index-f1d37762.js → index-0791839a.js} +4 -4
  553. package/{index-f1d37762.js.map → index-0791839a.js.map} +1 -1
  554. package/{index-d16a8084.js → index-134f97cd.js} +1 -1
  555. package/index-134f97cd.js.map +1 -0
  556. package/{index-d972c8e3.js → index-1e76921e.js} +4 -4
  557. package/{index-d972c8e3.js.map → index-1e76921e.js.map} +1 -1
  558. package/{index-40e8e312.js → index-2588389f.js} +2 -2
  559. package/{index-40e8e312.js.map → index-2588389f.js.map} +1 -1
  560. package/{index-91634369.js → index-31fae6a0.js} +1 -1
  561. package/{index-91634369.js.map → index-31fae6a0.js.map} +1 -1
  562. package/{index-4236c5c8.js → index-3bead442.js} +2 -2
  563. package/{index-4236c5c8.js.map → index-3bead442.js.map} +1 -1
  564. package/{index-3f6516a2.js → index-6233952f.js} +4 -4
  565. package/index-6233952f.js.map +1 -0
  566. package/{index-8017e2b5.js → index-62371bdd.js} +10 -9
  567. package/index-62371bdd.js.map +1 -0
  568. package/{index-2969a2df.js → index-62abd822.js} +20 -12
  569. package/index-62abd822.js.map +1 -0
  570. package/{index-aa87ac03.js → index-66948f26.js} +3 -3
  571. package/{index-aa87ac03.js.map → index-66948f26.js.map} +1 -1
  572. package/index-7ff60f7d.js +51 -0
  573. package/index-7ff60f7d.js.map +1 -0
  574. package/{index-da7bc750.js → index-9fca62f4.js} +3 -3
  575. package/{index-da7bc750.js.map → index-9fca62f4.js.map} +1 -1
  576. package/{index-4c4b34c9.js → index-a3ca9833.js} +3 -3
  577. package/{index-4c4b34c9.js.map → index-a3ca9833.js.map} +1 -1
  578. package/index-b038bbfd.js +132 -0
  579. package/index-b038bbfd.js.map +1 -0
  580. package/{index-72d247f7.js → index-c46d2bb8.js} +2 -2
  581. package/{index-72d247f7.js.map → index-c46d2bb8.js.map} +1 -1
  582. package/{index-d6ceb67a.js → index-c5f3ebb5.js} +2 -2
  583. package/{index-d6ceb67a.js.map → index-c5f3ebb5.js.map} +1 -1
  584. package/{index-39eeabbb.js → index-cd866969.js} +33 -5
  585. package/index-cd866969.js.map +1 -0
  586. package/{index-5ebb83a2.js → index-d004f5a9.js} +4 -4
  587. package/{index-5ebb83a2.js.map → index-d004f5a9.js.map} +1 -1
  588. package/{index-3e2f101e.js → index-d4d4f948.js} +6 -6
  589. package/{index-3e2f101e.js.map → index-d4d4f948.js.map} +1 -1
  590. package/{index-4c58b734.js → index-d6757790.js} +8 -7
  591. package/{index-4c58b734.js.map → index-d6757790.js.map} +1 -1
  592. package/{index-7c1266b5.js → index-ec9b8bb2.js} +2 -2
  593. package/{index-7c1266b5.js.map → index-ec9b8bb2.js.map} +1 -1
  594. package/index.d.ts +155 -31
  595. package/index.js +60 -55
  596. package/index.js.map +1 -1
  597. package/{index.module-b694546f.js → index.module-05a84007.js} +1 -1
  598. package/{index.module-b694546f.js.map → index.module-05a84007.js.map} +1 -1
  599. package/package.json +1 -1
  600. package/{resolvedReplyType-97610f1a.js → resolvedReplyType-7fa7b725.js} +1 -1
  601. package/{resolvedReplyType-97610f1a.js.map → resolvedReplyType-7fa7b725.js.map} +1 -1
  602. package/sendbirdSelectors.js +3 -3
  603. package/stringFormatterUtils-bae59a9b.js +14 -0
  604. package/stringFormatterUtils-bae59a9b.js.map +1 -0
  605. package/{stringSet-ed242956.js → stringSet-a3384f83.js} +1 -1
  606. package/{stringSet-ed242956.js.map → stringSet-a3384f83.js.map} +1 -1
  607. package/{tokenize-3c45100f.js → tokenize-7edff95a.js} +2 -2
  608. package/{tokenize-3c45100f.js.map → tokenize-7edff95a.js.map} +1 -1
  609. package/{topics-da8f3f42.js → topics-85213ccb.js} +1 -1
  610. package/{topics-da8f3f42.js.map → topics-85213ccb.js.map} +1 -1
  611. package/{types-3826bbff.js → types-6bc0cc06.js} +1 -1
  612. package/types-6bc0cc06.js.map +1 -0
  613. package/ui/Accordion.js +2 -2
  614. package/ui/AccordionGroup.js +2 -2
  615. package/ui/AdminMessage.js +2 -2
  616. package/ui/Avatar.js +1 -1
  617. package/ui/Badge.js +4 -4
  618. package/ui/BottomSheet.js +6 -1
  619. package/ui/BottomSheet.js.map +1 -1
  620. package/ui/Button.js +10 -12
  621. package/ui/Button.js.map +1 -1
  622. package/ui/ChannelAvatar.js +2 -2
  623. package/ui/ConnectionStatus.js +4 -4
  624. package/ui/ContextMenu.js +6 -5
  625. package/ui/ContextMenu.js.map +1 -1
  626. package/ui/DateSeparator.js +3 -3
  627. package/ui/EmojiReactions.js +14 -13
  628. package/ui/EmojiReactions.js.map +1 -1
  629. package/ui/FileMessageItemBody.js +7 -6
  630. package/ui/FileMessageItemBody.js.map +1 -1
  631. package/ui/FileViewer.js +14 -13
  632. package/ui/FileViewer.js.map +1 -1
  633. package/ui/Icon.js +3 -0
  634. package/ui/Icon.js.map +1 -1
  635. package/ui/IconButton.js +1 -1
  636. package/ui/ImageRenderer.js +59 -15
  637. package/ui/ImageRenderer.js.map +1 -1
  638. package/ui/Input.js +2 -2
  639. package/ui/Label.js +2 -2
  640. package/ui/LinkLabel.js +2 -2
  641. package/ui/MentionLabel.js +11 -10
  642. package/ui/MentionLabel.js.map +1 -1
  643. package/ui/MentionUserLabel.js +1 -1
  644. package/ui/MessageContent.js +42 -33
  645. package/ui/MessageContent.js.map +1 -1
  646. package/ui/MessageInput/hooks/usePaste.js +4 -4
  647. package/ui/MessageInput.js +54 -40
  648. package/ui/MessageInput.js.map +1 -1
  649. package/ui/MessageItemMenu.js +9 -8
  650. package/ui/MessageItemMenu.js.map +1 -1
  651. package/ui/MessageItemReactionMenu.js +9 -8
  652. package/ui/MessageItemReactionMenu.js.map +1 -1
  653. package/ui/MessageSearchFileItem.js +18 -18
  654. package/ui/MessageSearchFileItem.js.map +1 -1
  655. package/ui/MessageSearchItem.js +8 -8
  656. package/ui/MessageStatus.js +11 -10
  657. package/ui/MessageStatus.js.map +1 -1
  658. package/ui/Modal.js +26 -18
  659. package/ui/Modal.js.map +1 -1
  660. package/ui/OGMessageItemBody.js +14 -14
  661. package/ui/OpenChannelAdminMessage.js +2 -2
  662. package/ui/OpenChannelAvatar.js +5 -5
  663. package/ui/OpenchannelConversationHeader.js +6 -6
  664. package/ui/OpenchannelFileMessage.js +16 -15
  665. package/ui/OpenchannelFileMessage.js.map +1 -1
  666. package/ui/OpenchannelOGMessage.js +18 -18
  667. package/ui/OpenchannelThumbnailMessage.js +15 -14
  668. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  669. package/ui/OpenchannelUserMessage.js +16 -15
  670. package/ui/OpenchannelUserMessage.js.map +1 -1
  671. package/ui/PlaceHolder.js +5 -5
  672. package/ui/PlaybackTime.js +2 -2
  673. package/ui/QuoteMessage.js +15 -13
  674. package/ui/QuoteMessage.js.map +1 -1
  675. package/ui/QuoteMessageInput.js +14 -12
  676. package/ui/QuoteMessageInput.js.map +1 -1
  677. package/ui/ReactionBadge.js +2 -2
  678. package/ui/ReactionButton.js +4 -4
  679. package/ui/SortByRow.js +1 -1
  680. package/ui/TextButton.js +1 -1
  681. package/ui/TextMessageItemBody.js +14 -14
  682. package/ui/ThreadReplies.js +5 -5
  683. package/ui/ThumbnailMessageItemBody.js +14 -15
  684. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  685. package/ui/Toggle.js +1 -1
  686. package/ui/Tooltip.js +2 -2
  687. package/ui/UnknownMessageItemBody.js +7 -6
  688. package/ui/UnknownMessageItemBody.js.map +1 -1
  689. package/ui/UserListItem.js +11 -10
  690. package/ui/UserListItem.js.map +1 -1
  691. package/ui/UserProfile.js +9 -9
  692. package/ui/VoiceMessageItemBody.js +12 -10
  693. package/ui/VoiceMessageItemBody.js.map +1 -1
  694. package/ui/VoiceMessgeInput.js +7 -7
  695. package/ui/Word.js +11 -10
  696. package/ui/Word.js.map +1 -1
  697. package/{VoiceMessageInputWrapper-b074aec5.js → useHandleUploadFiles-15dc0c2d.js} +130 -10
  698. package/useHandleUploadFiles-15dc0c2d.js.map +1 -0
  699. package/{useLongPress-0189f9c3.js → useLongPress-11759804.js} +3 -3
  700. package/{useLongPress-0189f9c3.js.map → useLongPress-11759804.js.map} +1 -1
  701. package/useSendMultipleFilesMessage-3b16fa85.js +107 -0
  702. package/useSendMultipleFilesMessage-3b16fa85.js.map +1 -0
  703. package/useSendbirdStateContext.js +1 -1
  704. package/utils/message/isVoiceMessage.js +3 -2
  705. package/utils/message/isVoiceMessage.js.map +1 -1
  706. package/utils-11da9785.js +57 -0
  707. package/utils-11da9785.js.map +1 -0
  708. package/{utils-40781609.js → utils-1a4154f1.js} +1 -1
  709. package/{utils-40781609.js.map → utils-1a4154f1.js.map} +1 -1
  710. package/{utils-3bd17cc2.js → utils-4078c160.js} +1 -1
  711. package/{utils-3bd17cc2.js.map → utils-4078c160.js.map} +1 -1
  712. package/{utils-373b8143.js → utils-749b8812.js} +1 -1
  713. package/{utils-373b8143.js.map → utils-749b8812.js.map} +1 -1
  714. package/{utils-cae5adba.js → utils-e72dd1e0.js} +2 -2
  715. package/{utils-cae5adba.js.map → utils-e72dd1e0.js.map} +1 -1
  716. package/{utils-b7161189.js → utils-fc37f1e5.js} +4 -4
  717. package/{utils-b7161189.js.map → utils-fc37f1e5.js.map} +1 -1
  718. package/{uuid-6d982751.js → uuid-87e2df67.js} +1 -1
  719. package/{uuid-6d982751.js.map → uuid-87e2df67.js.map} +1 -1
  720. package/withSendbird.js +8 -1
  721. package/withSendbird.js.map +1 -1
  722. package/ChannelProvider-d6dedff9.js.map +0 -1
  723. package/OpenChannelProvider-8fdab056.js.map +0 -1
  724. package/RemoveMessageModal-715f4bd6.js.map +0 -1
  725. package/ThreadProvider-696e3a32.js.map +0 -1
  726. package/VoiceMessageInputWrapper-b074aec5.js.map +0 -1
  727. package/_rollupPluginBabelHelpers-0f2ee8c1.js.map +0 -1
  728. package/cjs/ChannelProvider-c8bc29d3.js.map +0 -1
  729. package/cjs/OpenChannelProvider-57c10c09.js.map +0 -1
  730. package/cjs/RemoveMessageModal-029b1c86.js.map +0 -1
  731. package/cjs/ThreadProvider-9dfc3ad5.js.map +0 -1
  732. package/cjs/VoiceMessageInputWrapper-953affee.js.map +0 -1
  733. package/cjs/_rollupPluginBabelHelpers-117c3ffb.js.map +0 -1
  734. package/cjs/index-0599b6f2.js.map +0 -1
  735. package/cjs/index-2413bae4.js.map +0 -1
  736. package/cjs/index-2d4ea9ad.js.map +0 -1
  737. package/cjs/index-464461c9.js.map +0 -1
  738. package/cjs/index-b64ce51a.js.map +0 -1
  739. package/cjs/types-79ca7893.js.map +0 -1
  740. package/index-2969a2df.js.map +0 -1
  741. package/index-39eeabbb.js.map +0 -1
  742. package/index-3f6516a2.js.map +0 -1
  743. package/index-8017e2b5.js.map +0 -1
  744. package/index-d16a8084.js.map +0 -1
  745. package/types-3826bbff.js.map +0 -1
@@ -1,24 +1,24 @@
1
- import { _ as _objectSpread2 } from '../_rollupPluginBabelHelpers-0f2ee8c1.js';
1
+ import { _ as _objectSpread2 } from '../_rollupPluginBabelHelpers-50696833.js';
2
2
  import React__default, { useRef, useState, useMemo, useEffect, useCallback } from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import { N as NodeTypes, M as MessageInputKeys, a as NodeNames } from '../const-537b3aa9.js';
5
- import { U as USER_MENTION_TEMP_CHAR } from '../const-2c36fe72.js';
4
+ import { N as NodeTypes, M as MessageInputKeys, a as NodeNames } from '../const-7a48f2f0.js';
5
+ import { U as USER_MENTION_TEMP_CHAR } from '../const-bd67ba4a.js';
6
6
  import IconButton from './IconButton.js';
7
7
  import Button, { ButtonTypes, ButtonSizes } from './Button.js';
8
- import { r as renderToString, s as sanitizeString, n as nodeListToArray, u as usePaste } from '../index-3f6516a2.js';
8
+ import { r as renderToString, s as sanitizeString, n as nodeListToArray, u as usePaste } from '../index-6233952f.js';
9
9
  import Icon, { IconTypes, IconColors } from './Icon.js';
10
- import { L as Label, a as LabelTypography, b as LabelColors } from '../index-7c1266b5.js';
11
- import { u as useLocalization } from '../LocalizationContext-9a9a0064.js';
10
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../index-ec9b8bb2.js';
11
+ import { u as useLocalization } from '../LocalizationContext-2a6ef338.js';
12
12
  import useSendbirdStateContext from '../useSendbirdStateContext.js';
13
- import { j as arrayEqual, h as getClassName } from '../index-39eeabbb.js';
14
- import { t as tokenizeMessage, T as TOKEN_TYPES, U as USER_MENTION_PREFIX } from '../tokenize-3c45100f.js';
15
- import { K } from '../index.module-b694546f.js';
13
+ import { n as arrayEqual, m as getClassName, o as getMimeTypesUIKitAccepts } from '../index-cd866969.js';
14
+ import { t as tokenizeMessage, T as TOKEN_TYPES, U as USER_MENTION_PREFIX } from '../tokenize-7edff95a.js';
15
+ import { K } from '../index.module-05a84007.js';
16
+ import '../stringSet-a3384f83.js';
16
17
  import 'dompurify';
17
- import '../consts-c105f2e8.js';
18
- import '../consts-ee08d763.js';
19
- import '../consts-066d732d.js';
20
- import '../stringSet-ed242956.js';
21
- import '../index-91634369.js';
18
+ import '../consts-a27675df.js';
19
+ import '../consts-087a1fb9.js';
20
+ import '../consts-8b2a8d9c.js';
21
+ import '../index-31fae6a0.js';
22
22
  import '../withSendbird.js';
23
23
  import '../utils/message/getOutgoingMessageState.js';
24
24
 
@@ -65,13 +65,6 @@ const checkIfFileUploadEnabled = _ref => {
65
65
  const TEXT_FIELD_ID = 'sendbird-message-input-text-field';
66
66
  const LINE_HEIGHT = 76;
67
67
  const noop = () => {};
68
- const handleUploadFile = callback => event => {
69
- if (event.target.files && event.target.files[0]) {
70
- callback(event.target.files[0]);
71
- }
72
- // eslint-disable-next-line no-param-reassign
73
- event.target.value = '';
74
- };
75
68
  const displayCaret = (element, position) => {
76
69
  const range = document.createRange();
77
70
  const sel = window.getSelection();
@@ -104,6 +97,7 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
104
97
  isEdit,
105
98
  isMentionEnabled,
106
99
  isVoiceMessageEnabled,
100
+ // isSelectingMultipleFilesEnabled,
107
101
  disabled,
108
102
  message,
109
103
  placeholder,
@@ -125,7 +119,8 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
125
119
  renderFileUploadIcon,
126
120
  renderVoiceMessageIcon,
127
121
  renderSendMessageIcon,
128
- setMentionedUsers
122
+ setMentionedUsers,
123
+ acceptableMimeTypes
129
124
  } = props;
130
125
  const textFieldId = messageFieldId || TEXT_FIELD_ID;
131
126
  const {
@@ -526,8 +521,21 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
526
521
  }), /*#__PURE__*/React__default.createElement("input", {
527
522
  className: "sendbird-message-input--attach-input",
528
523
  type: "file",
529
- ref: fileInputRef,
530
- onChange: handleUploadFile(onFileUpload)
524
+ ref: fileInputRef
525
+ // It will affect to <Channel /> and <Thread />
526
+ ,
527
+ onChange: event => {
528
+ const {
529
+ files
530
+ } = event.currentTarget;
531
+ onFileUpload(files && files.length === 1 ? [files[0]] : [...files]);
532
+ event.target.value = '';
533
+ },
534
+ accept: getMimeTypesUIKitAccepts(acceptableMimeTypes)
535
+ // multiple={
536
+ // isSelectingMultipleFilesEnabled
537
+ // && isChannelTypeSupportsMultipleFilesMessage(channel)
538
+ // }
531
539
  }))), isVoiceMessageEnabled && !isEdit && !isInput && /*#__PURE__*/React__default.createElement(IconButton, {
532
540
  className: "sendbird-message-input--voice-message",
533
541
  width: "32px",
@@ -555,20 +563,13 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
555
563
  });
556
564
  MessageInput.propTypes = {
557
565
  className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
558
- messageFieldId: PropTypes.string,
559
- placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
560
- value: PropTypes.string,
561
566
  isEdit: PropTypes.bool,
562
567
  isMentionEnabled: PropTypes.bool,
563
568
  isVoiceMessageEnabled: PropTypes.bool,
564
- onVoiceMessageIconClick: PropTypes.func,
565
- message: PropTypes.shape({
566
- messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
567
- message: PropTypes.string,
568
- mentionedMessageTemplate: PropTypes.string,
569
- mentionedUsers: PropTypes.arrayOf(PropTypes.shape({}))
570
- }),
569
+ // isSelectingMultipleFilesEnabled: PropTypes.bool,
571
570
  disabled: PropTypes.bool,
571
+ value: PropTypes.string,
572
+ placeholder: PropTypes.string,
572
573
  maxLength: PropTypes.number,
573
574
  onFileUpload: PropTypes.func,
574
575
  onSendMessage: PropTypes.func,
@@ -576,22 +577,33 @@ MessageInput.propTypes = {
576
577
  onStartTyping: PropTypes.func,
577
578
  onCancelEdit: PropTypes.func,
578
579
  channelUrl: PropTypes.string,
580
+ channel: PropTypes.shape({
581
+ channelType: PropTypes.string
582
+ }).isRequired,
583
+ messageFieldId: PropTypes.string,
584
+ acceptableMimeTypes: PropTypes.arrayOf(PropTypes.string),
585
+ // Mention
586
+ message: PropTypes.shape({
587
+ messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
588
+ message: PropTypes.string,
589
+ mentionedMessageTemplate: PropTypes.string,
590
+ mentionedUsers: PropTypes.arrayOf(PropTypes.shape({}))
591
+ }),
592
+ setMentionedUsers: PropTypes.func,
579
593
  mentionSelectedUser: PropTypes.shape({
580
594
  userId: PropTypes.string,
581
595
  nickname: PropTypes.string
582
596
  }),
583
- setMentionedUsers: PropTypes.func,
584
597
  onUserMentioned: PropTypes.func,
585
598
  onMentionStringChange: PropTypes.func,
586
599
  onMentionedUserIdsUpdated: PropTypes.func,
587
600
  onKeyUp: PropTypes.func,
588
601
  onKeyDown: PropTypes.func,
602
+ // Voice Message
603
+ onVoiceMessageIconClick: PropTypes.func,
589
604
  renderVoiceMessageIcon: PropTypes.func,
590
605
  renderSendMessageIcon: PropTypes.func,
591
- renderFileUploadIcon: PropTypes.func,
592
- channel: PropTypes.shape({
593
- channelType: PropTypes.string
594
- }).isRequired
606
+ renderFileUploadIcon: PropTypes.func
595
607
  };
596
608
  MessageInput.defaultProps = {
597
609
  className: '',
@@ -604,6 +616,7 @@ MessageInput.defaultProps = {
604
616
  isEdit: false,
605
617
  isMentionEnabled: false,
606
618
  isVoiceMessageEnabled: true,
619
+ // isSelectingMultipleFilesEnabled: false,
607
620
  onVoiceMessageIconClick: noop,
608
621
  disabled: false,
609
622
  placeholder: '',
@@ -620,7 +633,8 @@ MessageInput.defaultProps = {
620
633
  setMentionedUsers: noop,
621
634
  renderVoiceMessageIcon: noop,
622
635
  renderFileUploadIcon: noop,
623
- renderSendMessageIcon: noop
636
+ renderSendMessageIcon: noop,
637
+ acceptableMimeTypes: null
624
638
  };
625
639
 
626
640
  export { MessageInput as default };
@@ -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 { nodeListToArray, sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\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 = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n};\n\nconst resetInput = (ref) => {\n try {\n /* 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 disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = 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 const textField = ref?.current;\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 && textField?.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(textField?.textContent?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {textField?.innerText?.length === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.()\n // 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 onChange={handleUploadFile(onFileUpload)}\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 messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n onVoiceMessageIconClick: PropTypes.func,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n setMentionedUsers: PropTypes.func,\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n renderVoiceMessageIcon: PropTypes.func,\n renderSendMessageIcon: PropTypes.func,\n renderFileUploadIcon: PropTypes.func,\n channel: PropTypes.shape({\n channelType: PropTypes.string,\n }).isRequired,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n setMentionedUsers: noop,\n renderVoiceMessageIcon: noop,\n renderFileUploadIcon: noop,\n renderSendMessageIcon: noop,\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","handleUploadFile","callback","event","target","files","value","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","_textField$innerText","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","setMentionedUsers","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","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","_textField$textConten4","_e$nativeEvent","_ref$current2","_ref$current2$childNo","_ref$current3","_ref$current3$childNo","_ref$current3$childNo2","_ref$current$childNod","_ref$current$childNod2","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_textField$textConten5","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","func","shape","number","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\n// import { isChannelTypeSupportsMultipleFilesMessage } from './utils';\nimport { nodeListToArray, sanitizeString } 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 const textField = ref?.current;\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 && textField?.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(textField?.textContent?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {textField?.innerText?.length === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.()\n // 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","_textField$innerText","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","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","_textField$textConten4","_e$nativeEvent","_ref$current2","_ref$current2$childNo","_ref$current3","_ref$current3$childNo","_ref$current3$childNo2","_ref$current$childNod","_ref$current$childNod2","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_textField$textConten5","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","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,18 +2,19 @@ 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 { q as isUserMessage, C as isSentMessage, D as isFailedMessage, E as isPendingMessage, h as getClassName, F as copyToClipboard } from '../index-39eeabbb.js';
6
- import { a as LocalizationContext } from '../LocalizationContext-9a9a0064.js';
7
- import { R as Role } from '../types-3826bbff.js';
8
- import '../_rollupPluginBabelHelpers-0f2ee8c1.js';
5
+ import { w as isUserMessage, F as isSentMessage, G as isFailedMessage, H as isPendingMessage, m as getClassName, I as copyToClipboard } from '../index-cd866969.js';
6
+ import { a as LocalizationContext } from '../LocalizationContext-2a6ef338.js';
7
+ import { R as Role } from '../types-6bc0cc06.js';
8
+ import '../_rollupPluginBabelHelpers-50696833.js';
9
9
  import 'react-dom';
10
10
  import './SortByRow.js';
11
- import '../uuid-6d982751.js';
12
- import '../index-7c1266b5.js';
11
+ import '../uuid-87e2df67.js';
12
+ import '../index-ec9b8bb2.js';
13
13
  import 'prop-types';
14
- import '../stringSet-ed242956.js';
14
+ import '../stringSet-a3384f83.js';
15
15
  import '../utils/message/getOutgoingMessageState.js';
16
- import '../index-91634369.js';
16
+ import '../index.module-05a84007.js';
17
+ import '../index-31fae6a0.js';
17
18
 
18
19
  function MessageItemMenu(_ref) {
19
20
  var _channel$isGroupChann;
@@ -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, 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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"}
@@ -4,18 +4,19 @@ import Icon, { IconTypes, IconColors } from './Icon.js';
4
4
  import IconButton from './IconButton.js';
5
5
  import ImageRenderer from './ImageRenderer.js';
6
6
  import ReactionButton from './ReactionButton.js';
7
- import { E as isPendingMessage, D as isFailedMessage, h as getClassName, G as getEmojiListAll } from '../index-39eeabbb.js';
8
- import '../_rollupPluginBabelHelpers-0f2ee8c1.js';
7
+ import { H as isPendingMessage, G as isFailedMessage, m as getClassName, J as getEmojiListAll } from '../index-cd866969.js';
8
+ import '../_rollupPluginBabelHelpers-50696833.js';
9
9
  import 'react-dom';
10
10
  import './SortByRow.js';
11
- import '../uuid-6d982751.js';
12
- import '../index-7c1266b5.js';
11
+ import '../uuid-87e2df67.js';
12
+ import '../index-ec9b8bb2.js';
13
13
  import 'prop-types';
14
- import '../stringSet-ed242956.js';
14
+ import '../stringSet-a3384f83.js';
15
15
  import '../utils/message/getOutgoingMessageState.js';
16
- import '../useLongPress-0189f9c3.js';
17
- import '../MediaQueryContext-aebb709a.js';
18
- import '../utils-40781609.js';
16
+ import '../index.module-05a84007.js';
17
+ import '../useLongPress-11759804.js';
18
+ import '../MediaQueryContext-5a34332e.js';
19
+ import '../utils-1a4154f1.js';
19
20
 
20
21
  function MessageItemReactionMenu(_ref) {
21
22
  let {