@sendbird/uikit-react 3.6.8 → 3.6.9

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-ba11ee5f.js} +8 -8
  46. package/{ChannelListProvider-63f3007c.js.map → ChannelListProvider-ba11ee5f.js.map} +1 -1
  47. package/{ChannelProvider-d6dedff9.js → ChannelProvider-7400e8f6.js} +67 -24
  48. package/ChannelProvider-7400e8f6.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-b2487387.js} +1 -1
  76. package/{CreateChannelProvider-32ceb13a.js.map → CreateChannelProvider-b2487387.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-c9b218d4.js} +3 -3
  87. package/{LocalizationContext-9a9a0064.js.map → LocalizationContext-c9b218d4.js.map} +1 -1
  88. package/{MediaQueryContext-aebb709a.js → MediaQueryContext-532b0a77.js} +1 -1
  89. package/{MediaQueryContext-aebb709a.js.map → MediaQueryContext-532b0a77.js.map} +1 -1
  90. package/{MemberList-54496842.js → MemberList-15511dd2.js} +7 -6
  91. package/{MemberList-54496842.js.map → MemberList-15511dd2.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-a79c47d4.js} +3 -3
  118. package/{OpenChannelListProvider-6f1599b7.js.map → OpenChannelListProvider-a79c47d4.js.map} +1 -1
  119. package/{OpenChannelProvider-8fdab056.js → OpenChannelProvider-4f21a22d.js} +13 -8
  120. package/OpenChannelProvider-4f21a22d.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-62276928.js} +7 -5
  136. package/RemoveMessageModal-62276928.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-593b6c29.js} +61 -15
  157. package/ThreadProvider-593b6c29.js.map +1 -0
  158. package/{UserProfileContext-9fba7a03.js → UserProfileContext-36e341fd.js} +1 -1
  159. package/{UserProfileContext-9fba7a03.js.map → UserProfileContext-36e341fd.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-ca6a01e4.js} +2 -2
  168. package/{WebAudioUtils-ba28e2b0.js.map → WebAudioUtils-ca6a01e4.js.map} +1 -1
  169. package/{_rollupPluginBabelHelpers-0f2ee8c1.js → _rollupPluginBabelHelpers-ea73a031.js} +1 -1
  170. package/_rollupPluginBabelHelpers-ea73a031.js.map +1 -0
  171. package/{actionTypes-670a9a48.js → actionTypes-bd59e881.js} +1 -1
  172. package/{actionTypes-670a9a48.js.map → actionTypes-bd59e881.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-69db317f.js} +8 -8
  217. package/cjs/{ChannelListProvider-1506b1fa.js.map → ChannelListProvider-69db317f.js.map} +1 -1
  218. package/cjs/{ChannelProvider-c8bc29d3.js → ChannelProvider-2ee005bc.js} +67 -24
  219. package/cjs/ChannelProvider-2ee005bc.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-1c4d626c.js} +1 -1
  247. package/cjs/{CreateChannelProvider-f30302a5.js.map → CreateChannelProvider-1c4d626c.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-eb7a59da.js} +3 -3
  258. package/cjs/{LocalizationContext-9c99457f.js.map → LocalizationContext-eb7a59da.js.map} +1 -1
  259. package/cjs/{MediaQueryContext-a5c77095.js → MediaQueryContext-ca045060.js} +1 -1
  260. package/cjs/{MediaQueryContext-a5c77095.js.map → MediaQueryContext-ca045060.js.map} +1 -1
  261. package/cjs/{MemberList-166dd7de.js → MemberList-eea5c64b.js} +8 -7
  262. package/cjs/{MemberList-166dd7de.js.map → MemberList-eea5c64b.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-25a0f74d.js} +3 -3
  289. package/cjs/{OpenChannelListProvider-74ae7138.js.map → OpenChannelListProvider-25a0f74d.js.map} +1 -1
  290. package/cjs/{OpenChannelProvider-57c10c09.js → OpenChannelProvider-036e515e.js} +13 -8
  291. package/cjs/OpenChannelProvider-036e515e.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-7ed24af4.js} +7 -5
  306. package/cjs/RemoveMessageModal-7ed24af4.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-4c93de8a.js} +61 -15
  327. package/cjs/ThreadProvider-4c93de8a.js.map +1 -0
  328. package/cjs/{UserProfileContext-1f226141.js → UserProfileContext-abe57718.js} +1 -1
  329. package/cjs/{UserProfileContext-1f226141.js.map → UserProfileContext-abe57718.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-348c38b8.js} +2 -2
  338. package/cjs/{WebAudioUtils-250f7398.js.map → WebAudioUtils-348c38b8.js.map} +1 -1
  339. package/cjs/{_rollupPluginBabelHelpers-117c3ffb.js → _rollupPluginBabelHelpers-a85bd364.js} +1 -1
  340. package/cjs/_rollupPluginBabelHelpers-a85bd364.js.map +1 -0
  341. package/cjs/{actionTypes-01de4d11.js → actionTypes-412ca236.js} +1 -1
  342. package/cjs/{actionTypes-01de4d11.js.map → actionTypes-412ca236.js.map} +1 -1
  343. package/cjs/{color-a057a4c2.js → color-2f1198fc.js} +1 -1
  344. package/cjs/{color-a057a4c2.js.map → color-2f1198fc.js.map} +1 -1
  345. package/cjs/{compareIds-49d9aea6.js → compareIds-89c258a0.js} +1 -1
  346. package/cjs/{compareIds-49d9aea6.js.map → compareIds-89c258a0.js.map} +1 -1
  347. package/cjs/{const-cd9b71c8.js → const-24d498a6.js} +1 -1
  348. package/cjs/{const-cd9b71c8.js.map → const-24d498a6.js.map} +1 -1
  349. package/cjs/{const-8e4d382d.js → const-95881697.js} +1 -1
  350. package/cjs/{const-8e4d382d.js.map → const-95881697.js.map} +1 -1
  351. package/cjs/{consts-4a51c64b.js → consts-2957b793.js} +1 -1
  352. package/cjs/{consts-4a51c64b.js.map → consts-2957b793.js.map} +1 -1
  353. package/cjs/{consts-fb9dd3a0.js → consts-7b830cc5.js} +5 -1
  354. package/cjs/{consts-fb9dd3a0.js.map → consts-7b830cc5.js.map} +1 -1
  355. package/cjs/{consts-3afe4fa8.js → consts-c5d38c32.js} +1 -1
  356. package/cjs/{consts-3afe4fa8.js.map → consts-c5d38c32.js.map} +1 -1
  357. package/cjs/{consts-d866b64a.js → consts-dde4f05d.js} +1 -1
  358. package/cjs/{consts-d866b64a.js.map → consts-dde4f05d.js.map} +1 -1
  359. package/cjs/{context-d7bb15b5.js → context-b53bf38e.js} +2 -2
  360. package/cjs/{context-d7bb15b5.js.map → context-b53bf38e.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-df172622.js → index-03655429.js} +2 -2
  364. package/cjs/{index-df172622.js.map → index-03655429.js.map} +1 -1
  365. package/cjs/{index-dc15cf44.js → index-0f229ac7.js} +4 -4
  366. package/cjs/{index-dc15cf44.js.map → index-0f229ac7.js.map} +1 -1
  367. package/cjs/{index-a5aa0a9b.js → index-0f7049fb.js} +8 -7
  368. package/cjs/{index-a5aa0a9b.js.map → index-0f7049fb.js.map} +1 -1
  369. package/cjs/{index-5b3bc2e9.js → index-1f796e5a.js} +4 -4
  370. package/cjs/{index-5b3bc2e9.js.map → index-1f796e5a.js.map} +1 -1
  371. package/cjs/index-28c0a443.js +58 -0
  372. package/cjs/index-28c0a443.js.map +1 -0
  373. package/cjs/{index-15e4fb71.js → index-2fbc5922.js} +4 -4
  374. package/cjs/{index-15e4fb71.js.map → index-2fbc5922.js.map} +1 -1
  375. package/cjs/{index-5359bc78.js → index-2fd388b9.js} +6 -6
  376. package/cjs/{index-5359bc78.js.map → index-2fd388b9.js.map} +1 -1
  377. package/cjs/{index-9cffff55.js → index-494b5c25.js} +3 -3
  378. package/cjs/{index-9cffff55.js.map → index-494b5c25.js.map} +1 -1
  379. package/cjs/{index-b64ce51a.js → index-4d39de27.js} +10 -9
  380. package/cjs/index-4d39de27.js.map +1 -0
  381. package/cjs/{index-2413bae4.js → index-5628e0c0.js} +1 -1
  382. package/cjs/index-5628e0c0.js.map +1 -0
  383. package/cjs/{index-0599b6f2.js → index-613acaa0.js} +36 -4
  384. package/cjs/index-613acaa0.js.map +1 -0
  385. package/cjs/{index-fe1b738f.js → index-6e0a495a.js} +3 -3
  386. package/cjs/{index-fe1b738f.js.map → index-6e0a495a.js.map} +1 -1
  387. package/cjs/{index-2d4ea9ad.js → index-7e10ab98.js} +4 -4
  388. package/cjs/index-7e10ab98.js.map +1 -0
  389. package/cjs/{index-464461c9.js → index-910f48df.js} +20 -12
  390. package/cjs/index-910f48df.js.map +1 -0
  391. package/cjs/{index-d5522aef.js → index-967cbc91.js} +2 -2
  392. package/cjs/{index-d5522aef.js.map → index-967cbc91.js.map} +1 -1
  393. package/cjs/{index-0d4c4adf.js → index-9813a2f9.js} +3 -3
  394. package/cjs/{index-0d4c4adf.js.map → index-9813a2f9.js.map} +1 -1
  395. package/cjs/{index-913491a1.js → index-ae51b0df.js} +2 -2
  396. package/cjs/{index-913491a1.js.map → index-ae51b0df.js.map} +1 -1
  397. package/cjs/{index-ba4dea0c.js → index-c9a4a555.js} +1 -1
  398. package/cjs/{index-ba4dea0c.js.map → index-c9a4a555.js.map} +1 -1
  399. package/cjs/{index-c59af641.js → index-de4da1f2.js} +2 -2
  400. package/cjs/{index-c59af641.js.map → index-de4da1f2.js.map} +1 -1
  401. package/cjs/index-f0b55959.js +139 -0
  402. package/cjs/index-f0b55959.js.map +1 -0
  403. package/cjs/{index-4eb2a000.js → index-f40c4cf0.js} +2 -2
  404. package/cjs/{index-4eb2a000.js.map → index-f40c4cf0.js.map} +1 -1
  405. package/cjs/index.js +60 -55
  406. package/cjs/index.js.map +1 -1
  407. package/cjs/{index.module-2c2cf337.js → index.module-5c951066.js} +1 -1
  408. package/cjs/{index.module-2c2cf337.js.map → index.module-5c951066.js.map} +1 -1
  409. package/cjs/package.json +1 -1
  410. package/cjs/{resolvedReplyType-053d2dbc.js → resolvedReplyType-314fee09.js} +1 -1
  411. package/cjs/{resolvedReplyType-053d2dbc.js.map → resolvedReplyType-314fee09.js.map} +1 -1
  412. package/cjs/sendbirdSelectors.js +3 -3
  413. package/cjs/stringFormatterUtils-3e53394c.js +16 -0
  414. package/cjs/stringFormatterUtils-3e53394c.js.map +1 -0
  415. package/cjs/{stringSet-dbdeec9c.js → stringSet-b75b75ae.js} +1 -1
  416. package/cjs/{stringSet-dbdeec9c.js.map → stringSet-b75b75ae.js.map} +1 -1
  417. package/cjs/{tokenize-7204c391.js → tokenize-42536b7a.js} +2 -2
  418. package/cjs/{tokenize-7204c391.js.map → tokenize-42536b7a.js.map} +1 -1
  419. package/cjs/{topics-c495cb3a.js → topics-2c35cfd7.js} +1 -1
  420. package/cjs/{topics-c495cb3a.js.map → topics-2c35cfd7.js.map} +1 -1
  421. package/cjs/{types-79ca7893.js → types-382588b3.js} +1 -1
  422. package/cjs/types-382588b3.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-84bd5a9a.js} +129 -8
  508. package/cjs/useHandleUploadFiles-84bd5a9a.js.map +1 -0
  509. package/cjs/{useLongPress-e7c92bb0.js → useLongPress-49aa9a49.js} +3 -3
  510. package/cjs/{useLongPress-e7c92bb0.js.map → useLongPress-49aa9a49.js.map} +1 -1
  511. package/cjs/useSendMultipleFilesMessage-c5266ca8.js +109 -0
  512. package/cjs/useSendMultipleFilesMessage-c5266ca8.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-b6cca626.js → utils-1e9e97b5.js} +4 -4
  517. package/cjs/{utils-b6cca626.js.map → utils-1e9e97b5.js.map} +1 -1
  518. package/cjs/{utils-657ea6e9.js → utils-4e18a724.js} +1 -1
  519. package/cjs/{utils-657ea6e9.js.map → utils-4e18a724.js.map} +1 -1
  520. package/cjs/{utils-c2f38151.js → utils-8958cb75.js} +1 -1
  521. package/cjs/{utils-c2f38151.js.map → utils-8958cb75.js.map} +1 -1
  522. package/cjs/{utils-90a7cd20.js → utils-b3e9e1b8.js} +2 -2
  523. package/cjs/{utils-90a7cd20.js.map → utils-b3e9e1b8.js.map} +1 -1
  524. package/cjs/{utils-cc9de39b.js → utils-d5a929c9.js} +1 -1
  525. package/cjs/{utils-cc9de39b.js.map → utils-d5a929c9.js.map} +1 -1
  526. package/cjs/utils-d6285655.js +62 -0
  527. package/cjs/utils-d6285655.js.map +1 -0
  528. package/cjs/{uuid-b2882230.js → uuid-34728ced.js} +1 -1
  529. package/cjs/{uuid-b2882230.js.map → uuid-34728ced.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-4cef414f.js} +1 -1
  533. package/{color-65ef45d7.js.map → color-4cef414f.js.map} +1 -1
  534. package/{compareIds-c0aa8024.js → compareIds-7e93f2e7.js} +1 -1
  535. package/{compareIds-c0aa8024.js.map → compareIds-7e93f2e7.js.map} +1 -1
  536. package/{const-2c36fe72.js → const-48ffde74.js} +1 -1
  537. package/{const-2c36fe72.js.map → const-48ffde74.js.map} +1 -1
  538. package/{const-537b3aa9.js → const-6c10846e.js} +1 -1
  539. package/{const-537b3aa9.js.map → const-6c10846e.js.map} +1 -1
  540. package/{consts-397a92f1.js → consts-439d56b4.js} +5 -2
  541. package/{consts-397a92f1.js.map → consts-439d56b4.js.map} +1 -1
  542. package/{consts-ee08d763.js → consts-a979689d.js} +1 -1
  543. package/{consts-ee08d763.js.map → consts-a979689d.js.map} +1 -1
  544. package/{consts-066d732d.js → consts-aad4bf65.js} +1 -1
  545. package/{consts-066d732d.js.map → consts-aad4bf65.js.map} +1 -1
  546. package/{consts-c105f2e8.js → consts-bd684c8d.js} +1 -1
  547. package/{consts-c105f2e8.js.map → consts-bd684c8d.js.map} +1 -1
  548. package/{context-524b02ab.js → context-9946197c.js} +2 -2
  549. package/{context-524b02ab.js.map → context-9946197c.js.map} +1 -1
  550. package/dist/index.css +371 -280
  551. package/dist/index.css.map +1 -1
  552. package/{index-2969a2df.js → index-0a50eba0.js} +20 -12
  553. package/index-0a50eba0.js.map +1 -0
  554. package/{index-72d247f7.js → index-1833cc50.js} +2 -2
  555. package/{index-72d247f7.js.map → index-1833cc50.js.map} +1 -1
  556. package/{index-3f6516a2.js → index-2d23ff73.js} +4 -4
  557. package/index-2d23ff73.js.map +1 -0
  558. package/{index-4236c5c8.js → index-320a1756.js} +2 -2
  559. package/{index-4236c5c8.js.map → index-320a1756.js.map} +1 -1
  560. package/{index-d6ceb67a.js → index-3370a58d.js} +2 -2
  561. package/{index-d6ceb67a.js.map → index-3370a58d.js.map} +1 -1
  562. package/{index-f1d37762.js → index-373d3069.js} +4 -4
  563. package/{index-f1d37762.js.map → index-373d3069.js.map} +1 -1
  564. package/index-44d3dac3.js +132 -0
  565. package/index-44d3dac3.js.map +1 -0
  566. package/{index-91634369.js → index-516ad99d.js} +1 -1
  567. package/{index-91634369.js.map → index-516ad99d.js.map} +1 -1
  568. package/{index-40e8e312.js → index-526cbeea.js} +2 -2
  569. package/{index-40e8e312.js.map → index-526cbeea.js.map} +1 -1
  570. package/{index-4c58b734.js → index-6bca558b.js} +8 -7
  571. package/{index-4c58b734.js.map → index-6bca558b.js.map} +1 -1
  572. package/{index-4c4b34c9.js → index-6d0ae6a0.js} +3 -3
  573. package/{index-4c4b34c9.js.map → index-6d0ae6a0.js.map} +1 -1
  574. package/{index-da7bc750.js → index-825c96d3.js} +3 -3
  575. package/{index-da7bc750.js.map → index-825c96d3.js.map} +1 -1
  576. package/{index-d972c8e3.js → index-9083293d.js} +4 -4
  577. package/{index-d972c8e3.js.map → index-9083293d.js.map} +1 -1
  578. package/{index-aa87ac03.js → index-a0bd5ef9.js} +3 -3
  579. package/{index-aa87ac03.js.map → index-a0bd5ef9.js.map} +1 -1
  580. package/{index-8017e2b5.js → index-b346dc02.js} +10 -9
  581. package/index-b346dc02.js.map +1 -0
  582. package/index-bae83553.js +51 -0
  583. package/index-bae83553.js.map +1 -0
  584. package/{index-39eeabbb.js → index-c323f04b.js} +33 -5
  585. package/index-c323f04b.js.map +1 -0
  586. package/{index-5ebb83a2.js → index-c5cb0bb2.js} +4 -4
  587. package/{index-5ebb83a2.js.map → index-c5cb0bb2.js.map} +1 -1
  588. package/{index-3e2f101e.js → index-d9b66555.js} +6 -6
  589. package/{index-3e2f101e.js.map → index-d9b66555.js.map} +1 -1
  590. package/{index-d16a8084.js → index-e2afa53f.js} +1 -1
  591. package/index-e2afa53f.js.map +1 -0
  592. package/{index-7c1266b5.js → index-fa19fef7.js} +2 -2
  593. package/{index-7c1266b5.js.map → index-fa19fef7.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-efef0194.js} +1 -1
  598. package/{index.module-b694546f.js.map → index.module-efef0194.js.map} +1 -1
  599. package/package.json +1 -1
  600. package/{resolvedReplyType-97610f1a.js → resolvedReplyType-84f1270f.js} +1 -1
  601. package/{resolvedReplyType-97610f1a.js.map → resolvedReplyType-84f1270f.js.map} +1 -1
  602. package/sendbirdSelectors.js +3 -3
  603. package/stringFormatterUtils-beea8d82.js +14 -0
  604. package/stringFormatterUtils-beea8d82.js.map +1 -0
  605. package/{stringSet-ed242956.js → stringSet-9fe06e0d.js} +1 -1
  606. package/{stringSet-ed242956.js.map → stringSet-9fe06e0d.js.map} +1 -1
  607. package/{tokenize-3c45100f.js → tokenize-d34eb5c6.js} +2 -2
  608. package/{tokenize-3c45100f.js.map → tokenize-d34eb5c6.js.map} +1 -1
  609. package/{topics-da8f3f42.js → topics-edd6182d.js} +1 -1
  610. package/{topics-da8f3f42.js.map → topics-edd6182d.js.map} +1 -1
  611. package/{types-3826bbff.js → types-269fec15.js} +1 -1
  612. package/types-269fec15.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-210750cc.js} +130 -10
  698. package/useHandleUploadFiles-210750cc.js.map +1 -0
  699. package/{useLongPress-0189f9c3.js → useLongPress-4b698dbb.js} +3 -3
  700. package/{useLongPress-0189f9c3.js.map → useLongPress-4b698dbb.js.map} +1 -1
  701. package/useSendMultipleFilesMessage-4a45ffbe.js +107 -0
  702. package/useSendMultipleFilesMessage-4a45ffbe.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-40781609.js → utils-1bfac67e.js} +1 -1
  707. package/{utils-40781609.js.map → utils-1bfac67e.js.map} +1 -1
  708. package/{utils-cae5adba.js → utils-4d948dec.js} +2 -2
  709. package/{utils-cae5adba.js.map → utils-4d948dec.js.map} +1 -1
  710. package/{utils-3bd17cc2.js → utils-55c9df93.js} +1 -1
  711. package/{utils-3bd17cc2.js.map → utils-55c9df93.js.map} +1 -1
  712. package/utils-73dd35ca.js +57 -0
  713. package/utils-73dd35ca.js.map +1 -0
  714. package/{utils-373b8143.js → utils-a184f6ea.js} +1 -1
  715. package/{utils-373b8143.js.map → utils-a184f6ea.js.map} +1 -1
  716. package/{utils-b7161189.js → utils-ec15538c.js} +4 -4
  717. package/{utils-b7161189.js.map → utils-ec15538c.js.map} +1 -1
  718. package/{uuid-6d982751.js → uuid-9094f15c.js} +1 -1
  719. package/{uuid-6d982751.js.map → uuid-9094f15c.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
package/cjs/ui/Word.js CHANGED
@@ -1,25 +1,26 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var ui_Label = require('../index-4eb2a000.js');
4
+ var ui_Label = require('../index-f40c4cf0.js');
5
5
  var ui_LinkLabel = require('./LinkLabel.js');
6
- var uuid = require('../uuid-b2882230.js');
7
- var index = require('../index-0599b6f2.js');
6
+ var uuid = require('../uuid-34728ced.js');
7
+ var index = require('../index-613acaa0.js');
8
8
  var ui_MentionLabel = require('./MentionLabel.js');
9
9
  require('prop-types');
10
- require('../stringSet-dbdeec9c.js');
11
- require('../_rollupPluginBabelHelpers-117c3ffb.js');
10
+ require('../stringSet-b75b75ae.js');
11
+ require('../_rollupPluginBabelHelpers-a85bd364.js');
12
12
  require('../utils/message/getOutgoingMessageState.js');
13
+ require('../index.module-5c951066.js');
13
14
  require('./ContextMenu.js');
14
15
  require('react-dom');
15
16
  require('./SortByRow.js');
16
17
  require('./UserProfile.js');
17
- require('../LocalizationContext-9c99457f.js');
18
- require('../index-ba4dea0c.js');
19
- require('../UserProfileContext-1f226141.js');
18
+ require('../LocalizationContext-eb7a59da.js');
19
+ require('../index-c9a4a555.js');
20
+ require('../UserProfileContext-abe57718.js');
20
21
  require('../sendbirdSelectors.js');
21
- require('../topics-c495cb3a.js');
22
- require('../utils-c2f38151.js');
22
+ require('../topics-2c35cfd7.js');
23
+ require('../utils-8958cb75.js');
23
24
  require('./Avatar.js');
24
25
  require('./ImageRenderer.js');
25
26
  require('./Icon.js');
@@ -1 +1 @@
1
- {"version":3,"file":"Word.js","sources":["../../../src/ui/Word/index.tsx"],"sourcesContent":["/**\n * @deprecated This component is deprecated and will be removed in the next major version.\n * Use TextFragment instead.\n */\nimport './index.scss';\nimport React from 'react';\nimport type { UserMessage } from '@sendbird/chat/message';\n\nimport { LabelTypography } from '../Label';\nimport LinkLabel from '../LinkLabel';\nimport uuidv4 from '../../utils/uuid';\nimport { convertWordToStringObj, StringObjType, StringObj } from '../../utils';\nimport MentionLabel from '../MentionLabel';\n\ninterface WordProps {\n word: string;\n message: UserMessage;\n isByMe?: boolean;\n mentionTemplate?: string;\n renderString?: (stringObj: StringObj) => JSX.Element;\n}\n\n// Word and StringObj will include types: normal, mention, url\nexport default function Word(props: WordProps): JSX.Element {\n const {\n word,\n message,\n isByMe = false,\n mentionTemplate = '@',\n renderString = null,\n } = props;\n if (word === '') {\n return null;\n }\n return (\n <span className=\"sendbird-word\">\n {\n convertWordToStringObj(word, message?.mentionedUsers).map((stringObj) => {\n const type = stringObj?.type || '';\n const value = stringObj?.value || '';\n const userId = stringObj?.userId || '';\n if (renderString && typeof renderString === 'function') {\n return renderString(stringObj);\n }\n if (type === StringObjType.mention) {\n return (\n <MentionLabel\n mentionTemplate={mentionTemplate}\n mentionedUserId={userId}\n mentionedUserNickname={value}\n key={uuidv4()}\n isByMe={isByMe}\n />\n );\n } else if (type === StringObjType.url) {\n const urlRegex = /([a-zA-Z0-9]+:\\/\\/)?([a-zA-Z0-9_]+:[a-zA-Z0-9_]+@)?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?(\\/.*)?/;\n const targetUrl = value.match(urlRegex)?.[0];\n const stringUrl = { front: '', url: '', back: '' };\n if (targetUrl) {\n const targetUrlIndex = value.indexOf(targetUrl);\n if (targetUrlIndex > 0) {\n stringUrl.front = value.slice(0, targetUrlIndex);\n }\n stringUrl.url = value.slice(targetUrlIndex, targetUrlIndex + targetUrl.length);\n if (targetUrlIndex + targetUrl.length < value.length) {\n stringUrl.back = value.slice(targetUrlIndex + targetUrl.length);\n }\n }\n if (targetUrl) {\n return [\n stringUrl.front ? stringUrl.front : '',\n stringUrl.url ? (\n <LinkLabel\n className=\"sendbird-word__url\"\n key={uuidv4()}\n src={stringUrl.url}\n type={LabelTypography.BODY_1}\n >\n {stringUrl.url}\n </LinkLabel>\n ) : null,\n stringUrl.back ? stringUrl.back : '',\n ];\n }\n return (\n <LinkLabel\n className=\"sendbird-word__url\"\n key={uuidv4()}\n src={word}\n type={LabelTypography.BODY_1}\n >\n {value}\n </LinkLabel>\n );\n } else {\n return value;\n }\n })\n }\n </span>\n );\n}\n"],"names":["Word","props","word","message","isByMe","mentionTemplate","renderString","React","createElement","className","convertWordToStringObj","mentionedUsers","map","stringObj","type","value","userId","StringObjType","mention","MentionLabel","mentionedUserId","mentionedUserNickname","key","uuidv4","url","_value$match","urlRegex","targetUrl","match","stringUrl","front","back","targetUrlIndex","indexOf","slice","length","LinkLabel","src","LabelTypography","BODY_1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAmBA;AACe,SAASA,IAAIA,CAACC,KAAgB,EAAe;EAC1D,MAAM;IACJC,IAAI;IACJC,OAAO;AACPC,IAAAA,MAAM,GAAG,KAAK;AACdC,IAAAA,eAAe,GAAG,GAAG;AACrBC,IAAAA,YAAY,GAAG,IAAA;AACjB,GAAC,GAAGL,KAAK,CAAA;EACT,IAAIC,IAAI,KAAK,EAAE,EAAE;AACf,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EACA,oBACEK,yBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAC,eAAA;AAAe,GAAA,EAE3BC,4BAAsB,CAACR,IAAI,EAAEC,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEQ,cAAc,CAAC,CAACC,GAAG,CAAEC,SAAS,IAAK;IACvE,MAAMC,IAAI,GAAG,CAAAD,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAATA,SAAS,CAAEC,IAAI,KAAI,EAAE,CAAA;IAClC,MAAMC,KAAK,GAAG,CAAAF,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAATA,SAAS,CAAEE,KAAK,KAAI,EAAE,CAAA;IACpC,MAAMC,MAAM,GAAG,CAAAH,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAATA,SAAS,CAAEG,MAAM,KAAI,EAAE,CAAA;AACtC,IAAA,IAAIV,YAAY,IAAI,OAAOA,YAAY,KAAK,UAAU,EAAE;MACtD,OAAOA,YAAY,CAACO,SAAS,CAAC,CAAA;AAChC,KAAA;AACA,IAAA,IAAIC,IAAI,KAAKG,mBAAa,CAACC,OAAO,EAAE;AAClC,MAAA,oBACEX,yBAAA,CAAAC,aAAA,CAACW,eAAY,EAAA;AACXd,QAAAA,eAAe,EAAEA,eAAgB;AACjCe,QAAAA,eAAe,EAAEJ,MAAO;AACxBK,QAAAA,qBAAqB,EAAEN,KAAM;QAC7BO,GAAG,EAAEC,WAAM,EAAG;AACdnB,QAAAA,MAAM,EAAEA,MAAAA;OACR,CAAA,CAAA;AAEN,KAAC,MAAM,IAAIU,IAAI,KAAKG,mBAAa,CAACO,GAAG,EAAE;AAAA,MAAA,IAAAC,YAAA,CAAA;MACrC,MAAMC,QAAQ,GAAG,qGAAqG,CAAA;AACtH,MAAA,MAAMC,SAAS,GAAAF,CAAAA,YAAA,GAAGV,KAAK,CAACa,KAAK,CAACF,QAAQ,CAAC,cAAAD,YAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAArBA,YAAA,CAAwB,CAAC,CAAC,CAAA;AAC5C,MAAA,MAAMI,SAAS,GAAG;AAAEC,QAAAA,KAAK,EAAE,EAAE;AAAEN,QAAAA,GAAG,EAAE,EAAE;AAAEO,QAAAA,IAAI,EAAE,EAAA;OAAI,CAAA;AAClD,MAAA,IAAIJ,SAAS,EAAE;AACb,QAAA,MAAMK,cAAc,GAAGjB,KAAK,CAACkB,OAAO,CAACN,SAAS,CAAC,CAAA;QAC/C,IAAIK,cAAc,GAAG,CAAC,EAAE;UACtBH,SAAS,CAACC,KAAK,GAAGf,KAAK,CAACmB,KAAK,CAAC,CAAC,EAAEF,cAAc,CAAC,CAAA;AAClD,SAAA;AACAH,QAAAA,SAAS,CAACL,GAAG,GAAGT,KAAK,CAACmB,KAAK,CAACF,cAAc,EAAEA,cAAc,GAAGL,SAAS,CAACQ,MAAM,CAAC,CAAA;QAC9E,IAAIH,cAAc,GAAGL,SAAS,CAACQ,MAAM,GAAGpB,KAAK,CAACoB,MAAM,EAAE;AACpDN,UAAAA,SAAS,CAACE,IAAI,GAAGhB,KAAK,CAACmB,KAAK,CAACF,cAAc,GAAGL,SAAS,CAACQ,MAAM,CAAC,CAAA;AACjE,SAAA;AACF,OAAA;AACA,MAAA,IAAIR,SAAS,EAAE;AACb,QAAA,OAAO,CACLE,SAAS,CAACC,KAAK,GAAGD,SAAS,CAACC,KAAK,GAAG,EAAE,EACtCD,SAAS,CAACL,GAAG,gBACXjB,yBAAA,CAAAC,aAAA,CAAC4B,uBAAS,EAAA;AACR3B,UAAAA,SAAS,EAAC,oBAAoB;UAC9Ba,GAAG,EAAEC,WAAM,EAAG;UACdc,GAAG,EAAER,SAAS,CAACL,GAAI;UACnBV,IAAI,EAAEwB,wBAAe,CAACC,MAAAA;AAAO,SAAA,EAE5BV,SAAS,CAACL,GAAG,CACJ,GACV,IAAI,EACRK,SAAS,CAACE,IAAI,GAAGF,SAAS,CAACE,IAAI,GAAG,EAAE,CACrC,CAAA;AACH,OAAA;AACA,MAAA,oBACExB,yBAAA,CAAAC,aAAA,CAAC4B,uBAAS,EAAA;AACR3B,QAAAA,SAAS,EAAC,oBAAoB;QAC9Ba,GAAG,EAAEC,WAAM,EAAG;AACdc,QAAAA,GAAG,EAAEnC,IAAK;QACVY,IAAI,EAAEwB,wBAAe,CAACC,MAAAA;AAAO,OAAA,EAE5BxB,KAAK,CACI,CAAA;AAEhB,KAAC,MAAM;AACL,MAAA,OAAOA,KAAK,CAAA;AACd,KAAA;AACF,GAAC,CAAC,CAEC,CAAA;AAEX;;;;"}
1
+ {"version":3,"file":"Word.js","sources":["../../../src/ui/Word/index.tsx"],"sourcesContent":["/**\n * @deprecated This component is deprecated and will be removed in the next major version.\n * Use TextFragment instead.\n */\nimport './index.scss';\nimport React from 'react';\nimport type { UserMessage } from '@sendbird/chat/message';\n\nimport { LabelTypography } from '../Label';\nimport LinkLabel from '../LinkLabel';\nimport uuidv4 from '../../utils/uuid';\nimport { convertWordToStringObj, StringObjType, StringObj } from '../../utils';\nimport MentionLabel from '../MentionLabel';\n\ninterface WordProps {\n word: string;\n message: UserMessage;\n isByMe?: boolean;\n mentionTemplate?: string;\n renderString?: (stringObj: StringObj) => JSX.Element;\n}\n\n// Word and StringObj will include types: normal, mention, url\nexport default function Word(props: WordProps): JSX.Element {\n const {\n word,\n message,\n isByMe = false,\n mentionTemplate = '@',\n renderString = null,\n } = props;\n if (word === '') {\n return null;\n }\n return (\n <span className=\"sendbird-word\">\n {\n convertWordToStringObj(word, message?.mentionedUsers).map((stringObj) => {\n const type = stringObj?.type || '';\n const value = stringObj?.value || '';\n const userId = stringObj?.userId || '';\n if (renderString && typeof renderString === 'function') {\n return renderString(stringObj);\n }\n if (type === StringObjType.mention) {\n return (\n <MentionLabel\n mentionTemplate={mentionTemplate}\n mentionedUserId={userId}\n mentionedUserNickname={value}\n key={uuidv4()}\n isByMe={isByMe}\n />\n );\n } else if (type === StringObjType.url) {\n const urlRegex = /([a-zA-Z0-9]+:\\/\\/)?([a-zA-Z0-9_]+:[a-zA-Z0-9_]+@)?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?(\\/.*)?/;\n const targetUrl = value.match(urlRegex)?.[0];\n const stringUrl = { front: '', url: '', back: '' };\n if (targetUrl) {\n const targetUrlIndex = value.indexOf(targetUrl);\n if (targetUrlIndex > 0) {\n stringUrl.front = value.slice(0, targetUrlIndex);\n }\n stringUrl.url = value.slice(targetUrlIndex, targetUrlIndex + targetUrl.length);\n if (targetUrlIndex + targetUrl.length < value.length) {\n stringUrl.back = value.slice(targetUrlIndex + targetUrl.length);\n }\n }\n if (targetUrl) {\n return [\n stringUrl.front ? stringUrl.front : '',\n stringUrl.url ? (\n <LinkLabel\n className=\"sendbird-word__url\"\n key={uuidv4()}\n src={stringUrl.url}\n type={LabelTypography.BODY_1}\n >\n {stringUrl.url}\n </LinkLabel>\n ) : null,\n stringUrl.back ? stringUrl.back : '',\n ];\n }\n return (\n <LinkLabel\n className=\"sendbird-word__url\"\n key={uuidv4()}\n src={word}\n type={LabelTypography.BODY_1}\n >\n {value}\n </LinkLabel>\n );\n } else {\n return value;\n }\n })\n }\n </span>\n );\n}\n"],"names":["Word","props","word","message","isByMe","mentionTemplate","renderString","React","createElement","className","convertWordToStringObj","mentionedUsers","map","stringObj","type","value","userId","StringObjType","mention","MentionLabel","mentionedUserId","mentionedUserNickname","key","uuidv4","url","_value$match","urlRegex","targetUrl","match","stringUrl","front","back","targetUrlIndex","indexOf","slice","length","LinkLabel","src","LabelTypography","BODY_1"],"mappings":"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"}
@@ -1,17 +1,20 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var LocalizationContext = require('./LocalizationContext-9c99457f.js');
4
+ var LocalizationContext = require('./LocalizationContext-eb7a59da.js');
5
5
  var VoicePlayer_useVoicePlayer = require('./VoicePlayer/useVoicePlayer.js');
6
6
  var VoiceRecorder_useVoiceRecorder = require('./VoiceRecorder/useVoiceRecorder.js');
7
- var utils = require('./utils-b6cca626.js');
8
- var ui_VoiceMessgeInput = require('./index-15e4fb71.js');
7
+ var utils = require('./utils-1e9e97b5.js');
8
+ var ui_VoiceMessgeInput = require('./index-2fbc5922.js');
9
9
  var ui_Modal = require('./ui/Modal.js');
10
10
  var ui_Button = require('./ui/Button.js');
11
11
  var useSendbirdStateContext = require('./useSendbirdStateContext.js');
12
- var consts = require('./consts-fb9dd3a0.js');
13
- var VoicePlayer_context = require('./index-fe1b738f.js');
14
- var uuid = require('./uuid-b2882230.js');
12
+ var consts = require('./consts-7b830cc5.js');
13
+ var VoicePlayer_context = require('./index-6e0a495a.js');
14
+ var uuid = require('./uuid-34728ced.js');
15
+ var index$1 = require('./index-613acaa0.js');
16
+ var index = require('./index-28c0a443.js');
17
+ require('./index-f40c4cf0.js');
15
18
 
16
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
20
 
@@ -150,7 +153,7 @@ const VoiceMessageInputWrapper = _ref => {
150
153
  }
151
154
  }
152
155
  }
153
- }), showModal && /*#__PURE__*/React__default["default"].createElement(ui_Modal["default"], {
156
+ }), showModal && /*#__PURE__*/React__default["default"].createElement(ui_Modal.Modal, {
154
157
  className: "sendbird-voice-message-input-wrapper-alert",
155
158
  titleText: utils.isDisabledBecauseMuted(channel) ? stringSet.MODAL__VOICE_MESSAGE_INPUT_DISABLED__TITLE_MUTED : stringSet.MODAL__VOICE_MESSAGE_INPUT_DISABLED__TITLE_FROZEN,
156
159
  hideFooter: true,
@@ -172,5 +175,123 @@ const VoiceMessageInputWrapper = _ref => {
172
175
  }, stringSet.BUTTON__OK))));
173
176
  };
174
177
 
178
+ /**
179
+ * The handleUploadFiles is a function sending a FileMessage and MultipleFilesMessage
180
+ * by the received FileList from the ChangeEvent of MessageInput component.
181
+ */
182
+
183
+ const useHandleUploadFiles = (_ref, _ref2) => {
184
+ let {
185
+ sendFileMessage,
186
+ sendMultipleFilesMessage,
187
+ quoteMessage
188
+ } = _ref;
189
+ let {
190
+ logger
191
+ } = _ref2;
192
+ const {
193
+ stringSet
194
+ } = LocalizationContext.useLocalization();
195
+ const {
196
+ config
197
+ } = useSendbirdStateContext();
198
+ const uikitUploadSizeLimit = config === null || config === void 0 ? void 0 : config.uikitUploadSizeLimit;
199
+ const uikitMultipleFilesMessageLimit = config === null || config === void 0 ? void 0 : config.uikitMultipleFilesMessageLimit;
200
+ const {
201
+ openModal
202
+ } = index.useGlobalModalContext();
203
+ const handleUploadFiles = React.useCallback(fileList => {
204
+ const files = Array.from(fileList);
205
+
206
+ // Validate Paremeters
207
+ if (!sendFileMessage || !sendMultipleFilesMessage) {
208
+ logger.warning('Channel|useHandleUploadFiles: required functions are undefined', {
209
+ sendFileMessage,
210
+ sendMultipleFilesMessage
211
+ });
212
+ return;
213
+ }
214
+ if (files.length === 0) {
215
+ logger.warning('Channel|useHandleUploadFiles: given file list is empty.', {
216
+ files
217
+ });
218
+ return;
219
+ }
220
+ if (files.length > uikitMultipleFilesMessageLimit) {
221
+ logger.info(`Channel|useHandleUploadFiles: Cannot upload files more than ${uikitMultipleFilesMessageLimit}`);
222
+ openModal({
223
+ modalProps: {
224
+ titleText: `Up to ${uikitMultipleFilesMessageLimit} files can be attached.`,
225
+ hideFooter: true
226
+ },
227
+ childElement: _ref3 => {
228
+ let {
229
+ closeModal
230
+ } = _ref3;
231
+ return /*#__PURE__*/React__default["default"].createElement(ui_Modal.ModalFooter, {
232
+ type: ui_Button.ButtonTypes.PRIMARY,
233
+ submitText: stringSet.BUTTON__OK,
234
+ hideCancelButton: true,
235
+ onCancel: closeModal,
236
+ onSubmit: closeModal
237
+ });
238
+ }
239
+ });
240
+ return;
241
+ }
242
+ if (files.some(file => file.size > uikitUploadSizeLimit)) {
243
+ // The default value of uikitUploadSizeLimit is 26MB
244
+ logger.info(`Channel|useHandleUploadFiles: Cannot upload file size exceeding ${uikitUploadSizeLimit}`);
245
+ openModal({
246
+ modalProps: {
247
+ titleText: `The maximum size per file is ${Math.floor(uikitUploadSizeLimit / 1000000)} MB.`,
248
+ hideFooter: true
249
+ },
250
+ childElement: _ref4 => {
251
+ let {
252
+ closeModal
253
+ } = _ref4;
254
+ return /*#__PURE__*/React__default["default"].createElement(ui_Modal.ModalFooter, {
255
+ type: ui_Button.ButtonTypes.PRIMARY,
256
+ submitText: stringSet.BUTTON__OK,
257
+ hideCancelButton: true,
258
+ onCancel: closeModal,
259
+ onSubmit: closeModal
260
+ });
261
+ }
262
+ });
263
+ return;
264
+ }
265
+ if (files.length === 1) {
266
+ logger.info('Channel|useHandleUploadFiles: sending one file.');
267
+ const [file] = files;
268
+ sendFileMessage(file, quoteMessage);
269
+ } else if (files.length > 1) {
270
+ logger.info('Channel|useHandleUploadFiles: sending multiple files.');
271
+ const imageFiles = [];
272
+ const otherFiles = [];
273
+ files.forEach(file => {
274
+ if (index$1.isImage(file.type)) {
275
+ imageFiles.push(file);
276
+ } else {
277
+ otherFiles.push(file);
278
+ }
279
+ });
280
+ if (imageFiles.length > 1) {
281
+ sendMultipleFilesMessage(imageFiles, quoteMessage);
282
+ } else if (imageFiles.length === 1) {
283
+ sendFileMessage(imageFiles[0], quoteMessage);
284
+ }
285
+ if (otherFiles.length > 0) {
286
+ otherFiles.forEach(file => {
287
+ sendFileMessage(file, quoteMessage);
288
+ });
289
+ }
290
+ }
291
+ }, [sendFileMessage, sendMultipleFilesMessage, quoteMessage]);
292
+ return [handleUploadFiles];
293
+ };
294
+
175
295
  exports.VoiceMessageInputWrapper = VoiceMessageInputWrapper;
176
- //# sourceMappingURL=VoiceMessageInputWrapper-953affee.js.map
296
+ exports.useHandleUploadFiles = useHandleUploadFiles;
297
+ //# sourceMappingURL=useHandleUploadFiles-84bd5a9a.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHandleUploadFiles-84bd5a9a.js","sources":["../../src/modules/Channel/components/MessageInput/VoiceMessageInputWrapper.tsx","../../src/modules/Channel/components/MessageInput/useHandleUploadFiles.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\nimport './voice-message-wrapper.scss';\n\nimport { useLocalization } from '../../../../lib/LocalizationContext';\nimport { useVoicePlayer } from '../../../../hooks/VoicePlayer/useVoicePlayer';\nimport { useVoiceRecorder, VoiceRecorderStatus } from '../../../../hooks/VoiceRecorder/useVoiceRecorder';\nimport { isDisabledBecauseFrozen, isDisabledBecauseMuted } from '../../context/utils';\n\nimport { VoiceMessageInput } from '../../../../ui/VoiceMessageInput';\nimport { VoiceMessageInputStatus } from '../../../../ui/VoiceMessageInput/types';\nimport Modal from '../../../../ui/Modal';\nimport Button, { ButtonSizes, ButtonTypes } from '../../../../ui/Button';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { VOICE_RECORDER_DEFAULT_MIN } from '../../../../utils/consts';\nimport { VOICE_PLAYER_STATUS } from '../../../../hooks/VoicePlayer/dux/initialState';\nimport uuidv4 from '../../../../utils/uuid';\n\nexport interface VoiceMessageInputWrapperProps {\n channel?: GroupChannel;\n onCancelClick?: () => void;\n onSubmitClick?: (file: File, duration: number) => void;\n}\n\nexport const VoiceMessageInputWrapper = ({\n channel,\n onCancelClick,\n onSubmitClick,\n}: VoiceMessageInputWrapperProps): React.ReactElement => {\n const uuid = useRef<string>(uuidv4()).current;\n const [audioFile, setAudioFile] = useState<File>(null);\n const [voiceInputState, setVoiceInputState] = useState<VoiceMessageInputStatus>(VoiceMessageInputStatus.READY_TO_RECORD);\n const [isSubmitted, setSubmit] = useState(false);\n const [isDisabled, setDisabled] = useState(false);\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useLocalization();\n const { config } = useSendbirdStateContext();\n const minRecordingTime = config?.voiceRecord?.minRecordingTime || VOICE_RECORDER_DEFAULT_MIN;\n const {\n start,\n stop,\n cancel,\n recordingTime,\n recordingStatus,\n recordingLimit,\n } = useVoiceRecorder({\n onRecordingStarted: () => {\n setVoiceInputState(VoiceMessageInputStatus.RECORDING);\n },\n onRecordingEnded: (audioFile) => {\n setAudioFile(audioFile);\n },\n });\n const voicePlayer = useVoicePlayer({\n channelUrl: channel?.url,\n key: uuid,\n audioFile: audioFile,\n });\n const {\n play,\n pause,\n playbackTime,\n playingStatus,\n } = voicePlayer;\n const stopVoicePlayer = voicePlayer.stop;\n\n // disabled state: muted & frozen\n useEffect(() => {\n if (isDisabledBecauseFrozen(channel) || isDisabledBecauseMuted(channel)) {\n setDisabled(true);\n } else {\n setDisabled(false);\n }\n }, [channel?.myRole, channel?.isFrozen, channel?.myMutedState]);\n\n // call onSubmitClick when submit button is clicked and recorded audio file is created\n useEffect(() => {\n if (isSubmitted && audioFile) {\n onSubmitClick(audioFile, recordingTime);\n setSubmit(false);\n setAudioFile(null);\n }\n }, [isSubmitted, audioFile, recordingTime]);\n // operate which control button should be displayed\n useEffect(() => {\n if (audioFile) {\n if (recordingTime < minRecordingTime) {\n setVoiceInputState(VoiceMessageInputStatus.READY_TO_RECORD);\n setAudioFile(null);\n } else if (playingStatus === VOICE_PLAYER_STATUS.PLAYING) {\n setVoiceInputState(VoiceMessageInputStatus.PLAYING);\n } else {\n setVoiceInputState(VoiceMessageInputStatus.READY_TO_PLAY);\n }\n }\n }, [audioFile, recordingTime, playingStatus]);\n\n return (\n <div className=\"sendbird-voice-message-input-wrapper\">\n <VoiceMessageInput\n currentValue={recordingStatus === VoiceRecorderStatus.COMPLETED ? playbackTime : recordingTime}\n maximumValue={recordingStatus === VoiceRecorderStatus.COMPLETED ? recordingTime : recordingLimit}\n currentType={voiceInputState}\n onCancelClick={() => {\n onCancelClick();\n cancel();\n stopVoicePlayer();\n }}\n onSubmitClick={() => {\n if (isDisabled) {\n setShowModal(true);\n setVoiceInputState(VoiceMessageInputStatus.READY_TO_RECORD);\n } else {\n stop();\n pause();\n setSubmit(true);\n }\n }}\n onControlClick={(type) => {\n switch (type) {\n case VoiceMessageInputStatus.READY_TO_RECORD: {\n stopVoicePlayer();\n start();\n break;\n }\n case VoiceMessageInputStatus.RECORDING: {\n if (recordingTime >= minRecordingTime && !isDisabled) {\n stop();\n } else if (isDisabled) {\n cancel();\n setShowModal(true);\n setVoiceInputState(VoiceMessageInputStatus.READY_TO_RECORD);\n } else {\n cancel();\n setVoiceInputState(VoiceMessageInputStatus.READY_TO_RECORD);\n }\n break;\n }\n case VoiceMessageInputStatus.READY_TO_PLAY: {\n play();\n break;\n }\n case VoiceMessageInputStatus.PLAYING: {\n pause();\n break;\n }\n }\n }}\n />\n {\n showModal && (\n <Modal\n className=\"sendbird-voice-message-input-wrapper-alert\"\n titleText={isDisabledBecauseMuted(channel)\n ? stringSet.MODAL__VOICE_MESSAGE_INPUT_DISABLED__TITLE_MUTED\n : stringSet.MODAL__VOICE_MESSAGE_INPUT_DISABLED__TITLE_FROZEN\n }\n hideFooter\n isCloseOnClickOutside\n onCancel={() => {\n setShowModal(false);\n onCancelClick();\n }}\n >\n <div className=\"sendbird-voice-message-input-wrapper-alert__body\">\n <Button\n className=\"sendbird-voice-message-input-wrapper-alert__body__ok-button\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.BIG}\n onClick={() => {\n setShowModal(false);\n onCancelClick();\n }}\n >\n {stringSet.BUTTON__OK}\n </Button>\n </div>\n </Modal>\n )\n }\n </div>\n );\n};\n\nexport default VoiceMessageInputWrapper;\n","import React, { useCallback } from 'react';\n\nimport { Logger } from '../../../../lib/SendbirdState';\nimport { SendMFMFunctionType } from '../../context/hooks/useSendMultipleFilesMessage';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { SendableMessageType, isImage } from '../../../../utils';\n// TODO: get SendFileMessageFunctionType from Channel\nimport { SendFileMessageFunctionType } from '../../../Thread/context/hooks/useSendFileMessage';\nimport { useGlobalModalContext } from '../../../../hooks/useModal';\nimport { ButtonTypes } from '../../../../ui/Button';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\nimport { ModalFooter } from '../../../../ui/Modal';\n\n/**\n * The handleUploadFiles is a function sending a FileMessage and MultipleFilesMessage\n * by the received FileList from the ChangeEvent of MessageInput component.\n */\n\ninterface useHandleUploadFilesDynamicProps {\n sendFileMessage: SendFileMessageFunctionType;\n sendMultipleFilesMessage: SendMFMFunctionType;\n quoteMessage?: SendableMessageType;\n}\ninterface useHandleUploadFilesStaticProps {\n logger: Logger;\n}\nexport type HandleUploadFunctionType = (files: FileList) => void;\n\nexport const useHandleUploadFiles = ({\n sendFileMessage,\n sendMultipleFilesMessage,\n quoteMessage,\n}: useHandleUploadFilesDynamicProps, {\n logger,\n}: useHandleUploadFilesStaticProps): Array<HandleUploadFunctionType> => {\n const { stringSet } = useLocalization();\n const { config } = useSendbirdStateContext();\n const uikitUploadSizeLimit = config?.uikitUploadSizeLimit;\n const uikitMultipleFilesMessageLimit = config?.uikitMultipleFilesMessageLimit;\n const { openModal } = useGlobalModalContext();\n\n const handleUploadFiles = useCallback((fileList: FileList) => {\n const files: File[] = Array.from(fileList);\n\n // Validate Paremeters\n if (!sendFileMessage || !sendMultipleFilesMessage) {\n logger.warning('Channel|useHandleUploadFiles: required functions are undefined', { sendFileMessage, sendMultipleFilesMessage });\n return;\n }\n if (files.length === 0) {\n logger.warning('Channel|useHandleUploadFiles: given file list is empty.', { files });\n return;\n }\n if (files.length > uikitMultipleFilesMessageLimit) {\n logger.info(`Channel|useHandleUploadFiles: Cannot upload files more than ${uikitMultipleFilesMessageLimit}`);\n openModal({\n modalProps: {\n titleText: `Up to ${uikitMultipleFilesMessageLimit} files can be attached.`,\n hideFooter: true,\n },\n childElement: ({ closeModal }) => (\n <ModalFooter\n type={ButtonTypes.PRIMARY}\n submitText={stringSet.BUTTON__OK}\n hideCancelButton\n onCancel={closeModal}\n onSubmit={closeModal}\n />\n ),\n });\n return;\n }\n if (files.some((file: File) => file.size > uikitUploadSizeLimit)) {\n // The default value of uikitUploadSizeLimit is 26MB\n logger.info(`Channel|useHandleUploadFiles: Cannot upload file size exceeding ${uikitUploadSizeLimit}`);\n openModal({\n modalProps: {\n titleText: `The maximum size per file is ${Math.floor(uikitUploadSizeLimit / 1000000)} MB.`,\n hideFooter: true,\n },\n childElement: ({ closeModal }) => (\n <ModalFooter\n type={ButtonTypes.PRIMARY}\n submitText={stringSet.BUTTON__OK}\n hideCancelButton\n onCancel={closeModal}\n onSubmit={closeModal}\n />\n ),\n });\n return;\n }\n\n if (files.length === 1) {\n logger.info('Channel|useHandleUploadFiles: sending one file.');\n const [file] = files;\n sendFileMessage(file, quoteMessage);\n } else if (files.length > 1) {\n logger.info('Channel|useHandleUploadFiles: sending multiple files.');\n const imageFiles: Array<File> = [];\n const otherFiles: Array<File> = [];\n files.forEach((file: File) => {\n if (isImage(file.type)) {\n imageFiles.push(file);\n } else {\n otherFiles.push(file);\n }\n });\n\n if (imageFiles.length > 1) {\n sendMultipleFilesMessage(imageFiles, quoteMessage);\n } else if (imageFiles.length === 1) {\n sendFileMessage(imageFiles[0], quoteMessage);\n }\n if (otherFiles.length > 0) {\n otherFiles.forEach((file: File) => {\n sendFileMessage(file, quoteMessage);\n });\n }\n }\n }, [\n sendFileMessage,\n sendMultipleFilesMessage,\n quoteMessage,\n ]);\n\n return [handleUploadFiles];\n};\n"],"names":["VoiceMessageInputWrapper","_ref","_config$voiceRecord","channel","onCancelClick","onSubmitClick","uuid","useRef","uuidv4","current","audioFile","setAudioFile","useState","voiceInputState","setVoiceInputState","VoiceMessageInputStatus","READY_TO_RECORD","isSubmitted","setSubmit","isDisabled","setDisabled","showModal","setShowModal","stringSet","useLocalization","config","useSendbirdStateContext","minRecordingTime","voiceRecord","VOICE_RECORDER_DEFAULT_MIN","start","stop","cancel","recordingTime","recordingStatus","recordingLimit","useVoiceRecorder","onRecordingStarted","RECORDING","onRecordingEnded","voicePlayer","useVoicePlayer","channelUrl","url","key","play","pause","playbackTime","playingStatus","stopVoicePlayer","useEffect","isDisabledBecauseFrozen","isDisabledBecauseMuted","myRole","isFrozen","myMutedState","VOICE_PLAYER_STATUS","PLAYING","READY_TO_PLAY","React","createElement","className","VoiceMessageInput","currentValue","VoiceRecorderStatus","COMPLETED","maximumValue","currentType","onControlClick","type","Modal","titleText","MODAL__VOICE_MESSAGE_INPUT_DISABLED__TITLE_MUTED","MODAL__VOICE_MESSAGE_INPUT_DISABLED__TITLE_FROZEN","hideFooter","isCloseOnClickOutside","onCancel","Button","ButtonTypes","PRIMARY","size","ButtonSizes","BIG","onClick","BUTTON__OK","useHandleUploadFiles","_ref2","sendFileMessage","sendMultipleFilesMessage","quoteMessage","logger","uikitUploadSizeLimit","uikitMultipleFilesMessageLimit","openModal","useGlobalModalContext","handleUploadFiles","useCallback","fileList","files","Array","from","warning","length","info","modalProps","childElement","_ref3","closeModal","ModalFooter","submitText","hideCancelButton","onSubmit","some","file","Math","floor","_ref4","imageFiles","otherFiles","forEach","isImage","push"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-117c3ffb.js');
3
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-a85bd364.js');
4
4
  var React = require('react');
5
- var MediaQueryContext = require('./MediaQueryContext-a5c77095.js');
5
+ var MediaQueryContext = require('./MediaQueryContext-ca045060.js');
6
6
 
7
7
  const DEFAULT_DURATION = 300;
8
8
  function preventDefault(e) {
@@ -84,4 +84,4 @@ function useLongPress(_ref) {
84
84
  }
85
85
 
86
86
  exports.useLongPress = useLongPress;
87
- //# sourceMappingURL=useLongPress-e7c92bb0.js.map
87
+ //# sourceMappingURL=useLongPress-49aa9a49.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLongPress-e7c92bb0.js","sources":["../../src/hooks/useLongPress.tsx"],"sourcesContent":["// thanks to: https://stackoverflow.com/questions/48048957/react-long-press-event\n/* example:\n const Component = ({ onClick }) => {\n const onLongPress = useLongPress({\n onClick: onClick,\n onLongPress: () => {\n alert('longpress');\n }\n }, {\n delay: 500,\n shouldPreventDefault: true,\n });\n return (\n <button {...onLongPress}>\n hello\n </button>\n )\n }\n*/\nimport React, {\n useState,\n useRef,\n useCallback,\n} from 'react';\nimport {\n useMediaQueryContext,\n} from '../lib/MediaQueryContext';\n\nconst DEFAULT_DURATION = 300;\n\nfunction preventDefault(e: Event) {\n if (!isTouchEvent(e)) {\n return;\n }\n\n if (e.touches.length < 2 && e.preventDefault) {\n e.preventDefault();\n }\n}\n\nexport function isTouchEvent(e: Event): e is TouchEvent {\n return e && 'touches' in e;\n}\n\ninterface PressHandlers<T> {\n onLongPress: (e: React.MouseEvent<T> | React.TouchEvent<T>) => void;\n onClick?: (e: React.MouseEvent<T> | React.TouchEvent<T>) => void;\n}\n\ninterface Options {\n delay?: number;\n shouldPreventDefault?: boolean;\n shouldStopPropagation?: boolean;\n}\n\ninterface UseLongPressType<T> {\n onTouchMove: (e: React.TouchEvent<T>) => void;\n onMouseDown: (e: React.MouseEvent<T>) => void;\n onTouchStart: (e: React.TouchEvent<T>) => void;\n onMouseUp: (e: React.MouseEvent<T>) => void;\n onMouseLeave: (e: React.MouseEvent<T>) => void;\n onTouchEnd: (e: React.TouchEvent<T>) => void;\n}\n\nexport default function useLongPress<T>({\n onLongPress,\n onClick,\n}: PressHandlers<T>, {\n delay = DEFAULT_DURATION,\n shouldPreventDefault = true,\n shouldStopPropagation = false,\n}: Options = {}): UseLongPressType<T> {\n const { isMobile } = useMediaQueryContext();\n const [longPressTriggered, setLongPressTriggered] = useState(false);\n const [dragTriggered, setDragTriggered] = useState(false);\n // https://www.typescriptlang.org/docs/handbook/utility-types.html#returntypetype\n const timeout = useRef<ReturnType<typeof setTimeout>>();\n const target = useRef<EventTarget>();\n\n const start = useCallback((e: React.MouseEvent<T> | React.TouchEvent<T>) => {\n e.persist();\n const clonedEvent = {\n ...e,\n };\n setDragTriggered(false);\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n if (shouldPreventDefault && e.target) {\n e.target.addEventListener(\n 'touchend',\n preventDefault,\n {\n passive: false,\n },\n );\n target.current = e.target;\n }\n\n timeout.current = setTimeout(() => {\n onLongPress(clonedEvent);\n setLongPressTriggered(true);\n }, delay);\n }, [onLongPress, delay, shouldPreventDefault, shouldStopPropagation, isMobile]);\n\n const clear = useCallback((\n e: React.MouseEvent<T> | React.TouchEvent<T>,\n shouldTriggerClick = true,\n onDrag = false,\n ) => {\n if (onDrag) {\n setDragTriggered(true);\n } else {\n setDragTriggered(false);\n }\n if (timeout?.current) {\n clearTimeout(timeout.current);\n }\n if (shouldTriggerClick && !longPressTriggered && !dragTriggered) {\n onClick?.(e);\n }\n setLongPressTriggered(false);\n if (shouldPreventDefault && target.current) {\n target.current.removeEventListener('touchend', preventDefault);\n }\n }, [shouldPreventDefault, onClick, longPressTriggered, dragTriggered]);\n\n return {\n onMouseDown: (e: React.MouseEvent<T>) => start(e),\n onMouseUp: (e: React.MouseEvent<T>) => clear(e),\n onMouseLeave: (e: React.MouseEvent<T>) => clear(e, false),\n onTouchStart: (e: React.TouchEvent<T>) => start(e),\n // setDragTriggered as true on touchmove, so that next onTouchEnd is ignored\n // if we dont do it, onClick?.(e) will be triggred, see inside clear()\n onTouchMove: (e: React.TouchEvent<T>) => clear(e, false, true),\n onTouchEnd: (e: React.TouchEvent<T>) => clear(e),\n };\n}\n"],"names":["DEFAULT_DURATION","preventDefault","e","isTouchEvent","touches","length","useLongPress","_ref","onLongPress","onClick","delay","shouldPreventDefault","shouldStopPropagation","arguments","undefined","isMobile","useMediaQueryContext","longPressTriggered","setLongPressTriggered","useState","dragTriggered","setDragTriggered","timeout","useRef","target","start","useCallback","persist","clonedEvent","_objectSpread","stopPropagation","addEventListener","passive","current","setTimeout","clear","shouldTriggerClick","onDrag","clearTimeout","removeEventListener","onMouseDown","onMouseUp","onMouseLeave","onTouchStart","onTouchMove","onTouchEnd"],"mappings":"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"}
1
+ {"version":3,"file":"useLongPress-49aa9a49.js","sources":["../../src/hooks/useLongPress.tsx"],"sourcesContent":["// thanks to: https://stackoverflow.com/questions/48048957/react-long-press-event\n/* example:\n const Component = ({ onClick }) => {\n const onLongPress = useLongPress({\n onClick: onClick,\n onLongPress: () => {\n alert('longpress');\n }\n }, {\n delay: 500,\n shouldPreventDefault: true,\n });\n return (\n <button {...onLongPress}>\n hello\n </button>\n )\n }\n*/\nimport React, {\n useState,\n useRef,\n useCallback,\n} from 'react';\nimport {\n useMediaQueryContext,\n} from '../lib/MediaQueryContext';\n\nconst DEFAULT_DURATION = 300;\n\nfunction preventDefault(e: Event) {\n if (!isTouchEvent(e)) {\n return;\n }\n\n if (e.touches.length < 2 && e.preventDefault) {\n e.preventDefault();\n }\n}\n\nexport function isTouchEvent(e: Event): e is TouchEvent {\n return e && 'touches' in e;\n}\n\ninterface PressHandlers<T> {\n onLongPress: (e: React.MouseEvent<T> | React.TouchEvent<T>) => void;\n onClick?: (e: React.MouseEvent<T> | React.TouchEvent<T>) => void;\n}\n\ninterface Options {\n delay?: number;\n shouldPreventDefault?: boolean;\n shouldStopPropagation?: boolean;\n}\n\ninterface UseLongPressType<T> {\n onTouchMove: (e: React.TouchEvent<T>) => void;\n onMouseDown: (e: React.MouseEvent<T>) => void;\n onTouchStart: (e: React.TouchEvent<T>) => void;\n onMouseUp: (e: React.MouseEvent<T>) => void;\n onMouseLeave: (e: React.MouseEvent<T>) => void;\n onTouchEnd: (e: React.TouchEvent<T>) => void;\n}\n\nexport default function useLongPress<T>({\n onLongPress,\n onClick,\n}: PressHandlers<T>, {\n delay = DEFAULT_DURATION,\n shouldPreventDefault = true,\n shouldStopPropagation = false,\n}: Options = {}): UseLongPressType<T> {\n const { isMobile } = useMediaQueryContext();\n const [longPressTriggered, setLongPressTriggered] = useState(false);\n const [dragTriggered, setDragTriggered] = useState(false);\n // https://www.typescriptlang.org/docs/handbook/utility-types.html#returntypetype\n const timeout = useRef<ReturnType<typeof setTimeout>>();\n const target = useRef<EventTarget>();\n\n const start = useCallback((e: React.MouseEvent<T> | React.TouchEvent<T>) => {\n e.persist();\n const clonedEvent = {\n ...e,\n };\n setDragTriggered(false);\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n if (shouldPreventDefault && e.target) {\n e.target.addEventListener(\n 'touchend',\n preventDefault,\n {\n passive: false,\n },\n );\n target.current = e.target;\n }\n\n timeout.current = setTimeout(() => {\n onLongPress(clonedEvent);\n setLongPressTriggered(true);\n }, delay);\n }, [onLongPress, delay, shouldPreventDefault, shouldStopPropagation, isMobile]);\n\n const clear = useCallback((\n e: React.MouseEvent<T> | React.TouchEvent<T>,\n shouldTriggerClick = true,\n onDrag = false,\n ) => {\n if (onDrag) {\n setDragTriggered(true);\n } else {\n setDragTriggered(false);\n }\n if (timeout?.current) {\n clearTimeout(timeout.current);\n }\n if (shouldTriggerClick && !longPressTriggered && !dragTriggered) {\n onClick?.(e);\n }\n setLongPressTriggered(false);\n if (shouldPreventDefault && target.current) {\n target.current.removeEventListener('touchend', preventDefault);\n }\n }, [shouldPreventDefault, onClick, longPressTriggered, dragTriggered]);\n\n return {\n onMouseDown: (e: React.MouseEvent<T>) => start(e),\n onMouseUp: (e: React.MouseEvent<T>) => clear(e),\n onMouseLeave: (e: React.MouseEvent<T>) => clear(e, false),\n onTouchStart: (e: React.TouchEvent<T>) => start(e),\n // setDragTriggered as true on touchmove, so that next onTouchEnd is ignored\n // if we dont do it, onClick?.(e) will be triggred, see inside clear()\n onTouchMove: (e: React.TouchEvent<T>) => clear(e, false, true),\n onTouchEnd: (e: React.TouchEvent<T>) => clear(e),\n };\n}\n"],"names":["DEFAULT_DURATION","preventDefault","e","isTouchEvent","touches","length","useLongPress","_ref","onLongPress","onClick","delay","shouldPreventDefault","shouldStopPropagation","arguments","undefined","isMobile","useMediaQueryContext","longPressTriggered","setLongPressTriggered","useState","dragTriggered","setDragTriggered","timeout","useRef","target","start","useCallback","persist","clonedEvent","_objectSpread","stopPropagation","addEventListener","passive","current","setTimeout","clear","shouldTriggerClick","onDrag","clearTimeout","removeEventListener","onMouseDown","onMouseUp","onMouseLeave","onTouchStart","onTouchMove","onTouchEnd"],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ 'use strict';
2
+
3
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-a85bd364.js');
4
+ var React = require('react');
5
+ var topics = require('./topics-2c35cfd7.js');
6
+ var utils = require('./utils-1e9e97b5.js');
7
+
8
+ /**
9
+ * pubSub is used instead of messagesDispatcher to avoid redundantly calling
10
+ * because this useSendMultipleFilesMessage is used in the Channel and Thread both
11
+ */
12
+ const useSendMultipleFilesMessage = (_ref, _ref2) => {
13
+ let {
14
+ currentChannel,
15
+ onBeforeSendMultipleFilesMessage
16
+ } = _ref;
17
+ let {
18
+ logger,
19
+ pubSub,
20
+ scrollRef
21
+ } = _ref2;
22
+ const sendMessage = React.useCallback((files, quoteMessage) => {
23
+ if (!currentChannel) {
24
+ logger.warning('Channel: Sending MFm failed, because currentChannel is null.', {
25
+ currentChannel
26
+ });
27
+ return;
28
+ }
29
+ if (files.length <= 1) {
30
+ logger.warning('Channel: Sending MFM failed, because there are no multiple files.', {
31
+ files
32
+ });
33
+ return;
34
+ }
35
+ let messageParams = {
36
+ fileInfoList: files.map(file => ({
37
+ file,
38
+ fileName: file.name,
39
+ fileSize: file.size,
40
+ mimeType: file.type
41
+ }))
42
+ };
43
+ if (quoteMessage) {
44
+ messageParams.isReplyToChannel = true;
45
+ messageParams.parentMessageId = quoteMessage.messageId;
46
+ }
47
+ if (typeof onBeforeSendMultipleFilesMessage === 'function') {
48
+ messageParams = onBeforeSendMultipleFilesMessage(files, quoteMessage);
49
+ }
50
+ logger.info('Channel: Start sending MFM', {
51
+ messageParams
52
+ });
53
+ try {
54
+ currentChannel.sendMultipleFilesMessage(messageParams)
55
+ /**
56
+ * We don't operate the onFileUploaded event for now
57
+ * until we will add UI/UX for it
58
+ */.onFileUploaded((requestId, index, uploadableFileInfo, error) => {
59
+ logger.info('Channel: onFileUploaded during sending MFM', {
60
+ requestId,
61
+ index,
62
+ error,
63
+ uploadableFileInfo
64
+ });
65
+ }).onPending(pendingMessage => {
66
+ logger.info('Channel: in progress of sending MFM', {
67
+ pendingMessage,
68
+ fileInfoList: messageParams.fileInfoList
69
+ });
70
+ pubSub.publish(topics.PUBSUB_TOPICS.SEND_MESSAGE_START, {
71
+ message: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, pendingMessage), {}, {
72
+ fileInfoList: messageParams.fileInfoList.map(fileInfo => _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, fileInfo), {}, {
73
+ url: URL.createObjectURL(fileInfo.file)
74
+ }))
75
+ }),
76
+ channel: currentChannel
77
+ });
78
+ if (scrollRef) {
79
+ setTimeout(() => utils.scrollIntoLast(0, scrollRef));
80
+ }
81
+ }).onFailed((error, failedMessage) => {
82
+ logger.error('Channel: Sending MFM failed.', {
83
+ error,
84
+ failedMessage
85
+ });
86
+ pubSub.publish(topics.PUBSUB_TOPICS.SEND_MESSAGE_FAILED, {
87
+ channel: currentChannel,
88
+ message: failedMessage
89
+ });
90
+ }).onSucceeded(succeededMessage => {
91
+ logger.info('Channel: Sending voice message success!', {
92
+ succeededMessage
93
+ });
94
+ pubSub.publish(topics.PUBSUB_TOPICS.SEND_FILE_MESSAGE, {
95
+ channel: currentChannel,
96
+ message: succeededMessage
97
+ });
98
+ });
99
+ } catch (error) {
100
+ logger.error('Channel: Sending MFM failed.', {
101
+ error
102
+ });
103
+ }
104
+ }, [currentChannel, onBeforeSendMultipleFilesMessage]);
105
+ return [sendMessage];
106
+ };
107
+
108
+ exports.useSendMultipleFilesMessage = useSendMultipleFilesMessage;
109
+ //# sourceMappingURL=useSendMultipleFilesMessage-c5266ca8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSendMultipleFilesMessage-c5266ca8.js","sources":["../../src/modules/Channel/context/hooks/useSendMultipleFilesMessage.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type {\n MultipleFilesMessageCreateParams,\n UploadableFileInfo,\n} from '@sendbird/chat/message';\n\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport type { Nullable } from '../../../../types';\nimport PUBSUB_TOPICS from '../../../../lib/pubSub/topics';\nimport { scrollIntoLast } from '../utils';\nimport { SendableMessageType } from '../../../../utils';\n\nexport type OnBeforeSendMFMType = (\n files: Array<File>,\n quoteMessage?: SendableMessageType,\n) => MultipleFilesMessageCreateParams;\n\nexport interface UseSendMFMDynamicParams {\n currentChannel: Nullable<GroupChannel>,\n onBeforeSendMultipleFilesMessage?: OnBeforeSendMFMType,\n}\nexport interface UseSendMFMStaticParams {\n logger: Logger,\n pubSub: any,\n scrollRef?: React.RefObject<HTMLDivElement>;\n}\nexport type SendMFMFunctionType = (files: Array<File>, quoteMessage?: SendableMessageType) => void;\n\n/**\n * pubSub is used instead of messagesDispatcher to avoid redundantly calling\n * because this useSendMultipleFilesMessage is used in the Channel and Thread both\n */\nexport const useSendMultipleFilesMessage = ({\n currentChannel,\n onBeforeSendMultipleFilesMessage,\n}: UseSendMFMDynamicParams, {\n logger,\n pubSub,\n scrollRef,\n}: UseSendMFMStaticParams): Array<SendMFMFunctionType> => {\n const sendMessage = useCallback((files: Array<File>, quoteMessage?: SendableMessageType): void => {\n if (!currentChannel) {\n logger.warning('Channel: Sending MFm failed, because currentChannel is null.', { currentChannel });\n return;\n }\n if (files.length <= 1) {\n logger.warning('Channel: Sending MFM failed, because there are no multiple files.', { files });\n return;\n }\n let messageParams: MultipleFilesMessageCreateParams = {\n fileInfoList: files.map((file: File): UploadableFileInfo => ({\n file,\n fileName: file.name,\n fileSize: file.size,\n mimeType: file.type,\n })),\n };\n if (quoteMessage) {\n messageParams.isReplyToChannel = true;\n messageParams.parentMessageId = quoteMessage.messageId;\n }\n if (typeof onBeforeSendMultipleFilesMessage === 'function') {\n messageParams = onBeforeSendMultipleFilesMessage(files, quoteMessage);\n }\n logger.info('Channel: Start sending MFM', { messageParams });\n try {\n currentChannel.sendMultipleFilesMessage(messageParams)\n /**\n * We don't operate the onFileUploaded event for now\n * until we will add UI/UX for it\n */\n .onFileUploaded((requestId, index, uploadableFileInfo, error) => {\n logger.info('Channel: onFileUploaded during sending MFM', { requestId, index, error, uploadableFileInfo });\n })\n .onPending((pendingMessage) => {\n logger.info('Channel: in progress of sending MFM', { pendingMessage, fileInfoList: messageParams.fileInfoList });\n pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {\n message: {\n ...pendingMessage,\n fileInfoList: messageParams.fileInfoList.map((fileInfo) => ({\n ...fileInfo,\n url: URL.createObjectURL(fileInfo.file as File),\n })),\n },\n channel: currentChannel,\n });\n if (scrollRef) {\n setTimeout(() => scrollIntoLast(0, scrollRef));\n }\n })\n .onFailed((error, failedMessage) => {\n logger.error('Channel: Sending MFM failed.', { error, failedMessage });\n pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_FAILED, {\n channel: currentChannel,\n message: failedMessage,\n });\n })\n .onSucceeded((succeededMessage) => {\n logger.info('Channel: Sending voice message success!', { succeededMessage });\n pubSub.publish(PUBSUB_TOPICS.SEND_FILE_MESSAGE, {\n channel: currentChannel,\n message: succeededMessage,\n });\n });\n } catch (error) {\n logger.error('Channel: Sending MFM failed.', { error });\n }\n }, [\n currentChannel,\n onBeforeSendMultipleFilesMessage,\n ]);\n return [sendMessage];\n};\n"],"names":["useSendMultipleFilesMessage","_ref","_ref2","currentChannel","onBeforeSendMultipleFilesMessage","logger","pubSub","scrollRef","sendMessage","useCallback","files","quoteMessage","warning","length","messageParams","fileInfoList","map","file","fileName","name","fileSize","size","mimeType","type","isReplyToChannel","parentMessageId","messageId","info","sendMultipleFilesMessage","onFileUploaded","requestId","index","uploadableFileInfo","error","onPending","pendingMessage","publish","PUBSUB_TOPICS","SEND_MESSAGE_START","message","_objectSpread","fileInfo","url","URL","createObjectURL","channel","setTimeout","scrollIntoLast","onFailed","failedMessage","SEND_MESSAGE_FAILED","onSucceeded","succeededMessage","SEND_FILE_MESSAGE"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var React = require('react');
4
4
  var withSendbird = require('./withSendbird.js');
5
- require('./_rollupPluginBabelHelpers-117c3ffb.js');
5
+ require('./_rollupPluginBabelHelpers-a85bd364.js');
6
6
 
7
7
  /**
8
8
  * Example:
@@ -2,9 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('../../index-0599b6f2.js');
6
- require('../../_rollupPluginBabelHelpers-117c3ffb.js');
5
+ var index = require('../../index-613acaa0.js');
6
+ require('../../_rollupPluginBabelHelpers-a85bd364.js');
7
7
  require('./getOutgoingMessageState.js');
8
+ require('../../index.module-5c951066.js');
8
9
 
9
10
  const isVoiceMessage = index.isVoiceMessage;
10
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"isVoiceMessage.js","sources":["../../../../src/utils/isVoiceMessage.ts"],"sourcesContent":["import { isVoiceMessage as _isVoiceMessage } from '.';\n\nexport const isVoiceMessage = _isVoiceMessage;\n"],"names":["isVoiceMessage","_isVoiceMessage"],"mappings":";;;;;;;;AAEO,MAAMA,cAAc,GAAGC;;;;"}
1
+ {"version":3,"file":"isVoiceMessage.js","sources":["../../../../src/utils/isVoiceMessage.ts"],"sourcesContent":["import { isVoiceMessage as _isVoiceMessage } from '.';\n\nexport const isVoiceMessage = _isVoiceMessage;\n"],"names":["isVoiceMessage","_isVoiceMessage"],"mappings":";;;;;;;;;AAEO,MAAMA,cAAc,GAAGC;;;;"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index$1 = require('./index-c59af641.js');
4
- var topics = require('./topics-c495cb3a.js');
5
- var index = require('./index-0599b6f2.js');
3
+ var index$1 = require('./index-de4da1f2.js');
4
+ var topics = require('./topics-2c35cfd7.js');
5
+ var index = require('./index-613acaa0.js');
6
6
 
7
7
  const RESET_MESSAGES = 'RESET_MESSAGES';
8
8
  const FETCH_INITIAL_MESSAGES_START = 'FETCH_INITIAL_MESSAGES_START';
@@ -337,4 +337,4 @@ exports.pubSubHandler = pubSubHandler;
337
337
  exports.pxToNumber = pxToNumber;
338
338
  exports.scrollIntoLast = scrollIntoLast;
339
339
  exports.scrollToRenderedMessage = scrollToRenderedMessage;
340
- //# sourceMappingURL=utils-b6cca626.js.map
340
+ //# sourceMappingURL=utils-1e9e97b5.js.map