@sendbird/uikit-react 3.5.0-rc.1 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (936) hide show
  1. package/App.js +312 -235
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +544 -0
  4. package/Channel/components/ChannelHeader.js +46 -41
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +104 -131
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +56 -52
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +12 -7
  11. package/Channel/components/FrozenNotification.js.map +1 -1
  12. package/Channel/components/Message.js +240 -230
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageInput.js +152 -129
  15. package/Channel/components/MessageInput.js.map +1 -1
  16. package/Channel/components/MessageList.js +260 -175
  17. package/Channel/components/MessageList.js.map +1 -1
  18. package/Channel/components/RemoveMessageModal.js +34 -30
  19. package/Channel/components/RemoveMessageModal.js.map +1 -1
  20. package/Channel/components/SuggestedMentionList.js +139 -193
  21. package/Channel/components/SuggestedMentionList.js.map +1 -1
  22. package/Channel/components/TypingIndicator.js +44 -61
  23. package/Channel/components/TypingIndicator.js.map +1 -1
  24. package/Channel/components/UnreadCount.js +18 -20
  25. package/Channel/components/UnreadCount.js.map +1 -1
  26. package/Channel/context.js +12 -19
  27. package/Channel/context.js.map +1 -1
  28. package/Channel.js +69 -44
  29. package/Channel.js.map +1 -1
  30. package/ChannelList/components/AddChannel.js +29 -30
  31. package/ChannelList/components/AddChannel.js.map +1 -1
  32. package/ChannelList/components/ChannelListHeader.js +32 -28
  33. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  34. package/ChannelList/components/ChannelListUI.js +101 -142
  35. package/ChannelList/components/ChannelListUI.js.map +1 -1
  36. package/ChannelList/components/ChannelPreview.js +72 -82
  37. package/ChannelList/components/ChannelPreview.js.map +1 -1
  38. package/ChannelList/components/ChannelPreviewAction.js +36 -36
  39. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  40. package/ChannelList/context.js +7 -8
  41. package/ChannelList/context.js.map +1 -1
  42. package/ChannelList.js +32 -31
  43. package/ChannelList.js.map +1 -1
  44. package/{ChannelListProvider-1d36e2e9.js → ChannelListProvider-4cf5c0f5.js} +233 -285
  45. package/ChannelListProvider-4cf5c0f5.js.map +1 -0
  46. package/{ChannelProvider-289cd35f.js → ChannelProvider-6e8e99df.js} +659 -726
  47. package/ChannelProvider-6e8e99df.js.map +1 -0
  48. package/ChannelSettings/components/ChannelProfile.js +33 -46
  49. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  50. package/ChannelSettings/components/ChannelSettingsUI.js +45 -48
  51. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  52. package/ChannelSettings/components/EditDetailsModal.js +47 -58
  53. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  54. package/ChannelSettings/components/LeaveChannel.js +40 -46
  55. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  56. package/ChannelSettings/components/ModerationPanel.js +522 -605
  57. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  58. package/ChannelSettings/components/UserListItem.js +71 -72
  59. package/ChannelSettings/components/UserListItem.js.map +1 -1
  60. package/ChannelSettings/components/UserPanel.js +29 -32
  61. package/ChannelSettings/components/UserPanel.js.map +1 -1
  62. package/ChannelSettings/context.js +53 -57
  63. package/ChannelSettings/context.js.map +1 -1
  64. package/ChannelSettings.js +20 -20
  65. package/ChannelSettings.js.map +1 -1
  66. package/CreateChannel/components/CreateChannelUI.js +24 -24
  67. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  68. package/CreateChannel/components/InviteUsers.js +102 -124
  69. package/CreateChannel/components/InviteUsers.js.map +1 -1
  70. package/CreateChannel/components/SelectChannelType.js +41 -42
  71. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  72. package/CreateChannel/context.js +4 -4
  73. package/CreateChannel.js +22 -21
  74. package/CreateChannel.js.map +1 -1
  75. package/CreateChannelProvider-34603fa5.js +44 -0
  76. package/CreateChannelProvider-34603fa5.js.map +1 -0
  77. package/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
  78. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  79. package/CreateOpenChannel/context.js +33 -33
  80. package/CreateOpenChannel/context.js.map +1 -1
  81. package/CreateOpenChannel.js +18 -17
  82. package/CreateOpenChannel.js.map +1 -1
  83. package/EditUserProfile/components/EditUserProfileUI.js +12 -13
  84. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  85. package/EditUserProfile/context.js +0 -2
  86. package/EditUserProfile/context.js.map +1 -1
  87. package/EditUserProfile.js +18 -17
  88. package/EditUserProfile.js.map +1 -1
  89. package/LocalizationContext-04c0c9dc.js +20 -0
  90. package/{LocalizationContext-289c1917.js.map → LocalizationContext-04c0c9dc.js.map} +1 -1
  91. package/MediaQueryContext-ff9dca2b.js +87 -0
  92. package/MediaQueryContext-ff9dca2b.js.map +1 -0
  93. package/MemberList-9bf26111.js +403 -0
  94. package/MemberList-9bf26111.js.map +1 -0
  95. package/Message/context.js +31 -0
  96. package/Message/context.js.map +1 -0
  97. package/MessageSearch/components/MessageSearchUI.js +62 -71
  98. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  99. package/MessageSearch/context.js +201 -224
  100. package/MessageSearch/context.js.map +1 -1
  101. package/MessageSearch.js +46 -58
  102. package/MessageSearch.js.map +1 -1
  103. package/OpenChannel/components/FrozenChannelNotification.js +8 -6
  104. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  105. package/OpenChannel/components/OpenChannelHeader.js +27 -25
  106. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  107. package/OpenChannel/components/OpenChannelInput.js +50 -35
  108. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  109. package/OpenChannel/components/OpenChannelMessage.js +174 -191
  110. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  111. package/OpenChannel/components/OpenChannelMessageList.js +72 -92
  112. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  113. package/OpenChannel/components/OpenChannelUI.js +52 -49
  114. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  115. package/OpenChannel/context.js +8 -9
  116. package/OpenChannel/context.js.map +1 -1
  117. package/OpenChannel.js +36 -30
  118. package/OpenChannel.js.map +1 -1
  119. package/OpenChannelList/components/OpenChannelListUI.js +61 -76
  120. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  121. package/OpenChannelList/components/OpenChannelPreview.js +21 -22
  122. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  123. package/OpenChannelList/context.js +3 -4
  124. package/OpenChannelList/context.js.map +1 -1
  125. package/OpenChannelList.js +26 -24
  126. package/OpenChannelList.js.map +1 -1
  127. package/OpenChannelListProvider-d7372692.js +429 -0
  128. package/OpenChannelListProvider-d7372692.js.map +1 -0
  129. package/OpenChannelProvider-24cd68b9.js +1885 -0
  130. package/OpenChannelProvider-24cd68b9.js.map +1 -0
  131. package/OpenChannelSettings/components/EditDetailsModal.js +47 -56
  132. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  133. package/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
  134. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  135. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
  136. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  137. package/OpenChannelSettings/components/OperatorUI.js +516 -586
  138. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  139. package/OpenChannelSettings/components/ParticipantUI.js +15 -16
  140. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  141. package/OpenChannelSettings/context.js +56 -69
  142. package/OpenChannelSettings/context.js.map +1 -1
  143. package/OpenChannelSettings.js +19 -20
  144. package/OpenChannelSettings.js.map +1 -1
  145. package/README.md +62 -13
  146. package/RemoveMessageModal-94e2bf9e.js +36 -0
  147. package/RemoveMessageModal-94e2bf9e.js.map +1 -0
  148. package/SendbirdProvider.js +749 -408
  149. package/SendbirdProvider.js.map +1 -1
  150. package/Thread/components/ParentMessageInfo.js +238 -217
  151. package/Thread/components/ParentMessageInfo.js.map +1 -1
  152. package/Thread/components/ParentMessageInfoItem.js +112 -89
  153. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  154. package/Thread/components/ThreadHeader.js +22 -23
  155. package/Thread/components/ThreadHeader.js.map +1 -1
  156. package/Thread/components/ThreadList.js +108 -83
  157. package/Thread/components/ThreadList.js.map +1 -1
  158. package/Thread/components/ThreadListItem.js +306 -276
  159. package/Thread/components/ThreadListItem.js.map +1 -1
  160. package/Thread/components/ThreadMessageInput.js +146 -113
  161. package/Thread/components/ThreadMessageInput.js.map +1 -1
  162. package/Thread/components/ThreadUI.js +169 -138
  163. package/Thread/components/ThreadUI.js.map +1 -1
  164. package/Thread/context/types.js +9 -14
  165. package/Thread/context/types.js.map +1 -1
  166. package/Thread/context.js +8 -8
  167. package/Thread.js +87 -57
  168. package/Thread.js.map +1 -1
  169. package/ThreadProvider-203b94f3.js +1695 -0
  170. package/ThreadProvider-203b94f3.js.map +1 -0
  171. package/{UserProfileContext-e3530842.js → UserProfileContext-c776d522.js} +1 -4
  172. package/{UserProfileContext-e3530842.js.map → UserProfileContext-c776d522.js.map} +1 -1
  173. package/VoiceMessageInputWrapper-77d8f487.js +170 -0
  174. package/VoiceMessageInputWrapper-77d8f487.js.map +1 -0
  175. package/VoicePlayer/context.js +7 -0
  176. package/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
  177. package/VoicePlayer/useVoicePlayer.js +84 -0
  178. package/VoicePlayer/useVoicePlayer.js.map +1 -0
  179. package/VoiceRecorder/context.js +156 -0
  180. package/VoiceRecorder/context.js.map +1 -0
  181. package/VoiceRecorder/useVoiceRecorder.js +121 -0
  182. package/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  183. package/WebAudioUtils-62e6d3a7.js +123 -0
  184. package/WebAudioUtils-62e6d3a7.js.map +1 -0
  185. package/{_rollupPluginBabelHelpers-519f674b.js → _rollupPluginBabelHelpers-fb0e05a4.js} +17 -11
  186. package/_rollupPluginBabelHelpers-fb0e05a4.js.map +1 -0
  187. package/actionTypes-1db5749d.js +8 -0
  188. package/actionTypes-1db5749d.js.map +1 -0
  189. package/cjs/App.js +312 -235
  190. package/cjs/App.js.map +1 -1
  191. package/cjs/Channel/components/ChannelHeader.js +46 -41
  192. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  193. package/cjs/Channel/components/ChannelUI.js +102 -129
  194. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  195. package/cjs/Channel/components/FileViewer.js +56 -52
  196. package/cjs/Channel/components/FileViewer.js.map +1 -1
  197. package/cjs/Channel/components/FrozenNotification.js +12 -7
  198. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  199. package/cjs/Channel/components/Message.js +243 -233
  200. package/cjs/Channel/components/Message.js.map +1 -1
  201. package/cjs/Channel/components/MessageInput.js +151 -128
  202. package/cjs/Channel/components/MessageInput.js.map +1 -1
  203. package/cjs/Channel/components/MessageList.js +260 -175
  204. package/cjs/Channel/components/MessageList.js.map +1 -1
  205. package/cjs/Channel/components/RemoveMessageModal.js +34 -30
  206. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  207. package/cjs/Channel/components/SuggestedMentionList.js +139 -193
  208. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  209. package/cjs/Channel/components/TypingIndicator.js +44 -61
  210. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  211. package/cjs/Channel/components/UnreadCount.js +18 -20
  212. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  213. package/cjs/Channel/context.js +12 -23
  214. package/cjs/Channel/context.js.map +1 -1
  215. package/cjs/Channel.js +69 -44
  216. package/cjs/Channel.js.map +1 -1
  217. package/cjs/ChannelList/components/AddChannel.js +29 -30
  218. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  219. package/cjs/ChannelList/components/ChannelListHeader.js +32 -28
  220. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  221. package/cjs/ChannelList/components/ChannelListUI.js +100 -141
  222. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  223. package/cjs/ChannelList/components/ChannelPreview.js +72 -82
  224. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  225. package/cjs/ChannelList/components/ChannelPreviewAction.js +36 -36
  226. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  227. package/cjs/ChannelList/context.js +7 -8
  228. package/cjs/ChannelList/context.js.map +1 -1
  229. package/cjs/ChannelList.js +32 -31
  230. package/cjs/ChannelList.js.map +1 -1
  231. package/cjs/{ChannelListProvider-0de52d2b.js → ChannelListProvider-e0ce316a.js} +232 -284
  232. package/cjs/ChannelListProvider-e0ce316a.js.map +1 -0
  233. package/cjs/{ChannelProvider-fc58e60e.js → ChannelProvider-0df75472.js} +657 -724
  234. package/cjs/ChannelProvider-0df75472.js.map +1 -0
  235. package/cjs/ChannelSettings/components/ChannelProfile.js +33 -46
  236. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  237. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +45 -48
  238. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  239. package/cjs/ChannelSettings/components/EditDetailsModal.js +47 -58
  240. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  241. package/cjs/ChannelSettings/components/LeaveChannel.js +40 -46
  242. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  243. package/cjs/ChannelSettings/components/ModerationPanel.js +522 -605
  244. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  245. package/cjs/ChannelSettings/components/UserListItem.js +71 -72
  246. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  247. package/cjs/ChannelSettings/components/UserPanel.js +29 -32
  248. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  249. package/cjs/ChannelSettings/context.js +55 -59
  250. package/cjs/ChannelSettings/context.js.map +1 -1
  251. package/cjs/ChannelSettings.js +20 -20
  252. package/cjs/ChannelSettings.js.map +1 -1
  253. package/cjs/CreateChannel/components/CreateChannelUI.js +24 -24
  254. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  255. package/cjs/CreateChannel/components/InviteUsers.js +102 -124
  256. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  257. package/cjs/CreateChannel/components/SelectChannelType.js +41 -42
  258. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  259. package/cjs/CreateChannel/context.js +4 -4
  260. package/cjs/CreateChannel.js +22 -21
  261. package/cjs/CreateChannel.js.map +1 -1
  262. package/cjs/CreateChannelProvider-c0fca0a5.js +52 -0
  263. package/cjs/CreateChannelProvider-c0fca0a5.js.map +1 -0
  264. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
  265. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  266. package/cjs/CreateOpenChannel/context.js +33 -33
  267. package/cjs/CreateOpenChannel/context.js.map +1 -1
  268. package/cjs/CreateOpenChannel.js +18 -17
  269. package/cjs/CreateOpenChannel.js.map +1 -1
  270. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -13
  271. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  272. package/cjs/EditUserProfile/context.js +0 -2
  273. package/cjs/EditUserProfile/context.js.map +1 -1
  274. package/cjs/EditUserProfile.js +18 -17
  275. package/cjs/EditUserProfile.js.map +1 -1
  276. package/cjs/{LocalizationContext-bddc5c2b.js → LocalizationContext-0e429c3d.js} +9 -11
  277. package/cjs/{LocalizationContext-bddc5c2b.js.map → LocalizationContext-0e429c3d.js.map} +1 -1
  278. package/cjs/MediaQueryContext-33fc3b17.js +94 -0
  279. package/cjs/MediaQueryContext-33fc3b17.js.map +1 -0
  280. package/cjs/MemberList-a45a51c4.js +409 -0
  281. package/cjs/MemberList-a45a51c4.js.map +1 -0
  282. package/cjs/Message/context.js +40 -0
  283. package/cjs/Message/context.js.map +1 -0
  284. package/cjs/MessageSearch/components/MessageSearchUI.js +61 -70
  285. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  286. package/cjs/MessageSearch/context.js +201 -224
  287. package/cjs/MessageSearch/context.js.map +1 -1
  288. package/cjs/MessageSearch.js +46 -58
  289. package/cjs/MessageSearch.js.map +1 -1
  290. package/cjs/OpenChannel/components/FrozenChannelNotification.js +8 -6
  291. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  292. package/cjs/OpenChannel/components/OpenChannelHeader.js +27 -25
  293. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  294. package/cjs/OpenChannel/components/OpenChannelInput.js +50 -35
  295. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  296. package/cjs/OpenChannel/components/OpenChannelMessage.js +174 -191
  297. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  298. package/cjs/OpenChannel/components/OpenChannelMessageList.js +72 -92
  299. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  300. package/cjs/OpenChannel/components/OpenChannelUI.js +52 -49
  301. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  302. package/cjs/OpenChannel/context.js +8 -9
  303. package/cjs/OpenChannel/context.js.map +1 -1
  304. package/cjs/OpenChannel.js +36 -30
  305. package/cjs/OpenChannel.js.map +1 -1
  306. package/cjs/OpenChannelList/components/OpenChannelListUI.js +61 -76
  307. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  308. package/cjs/OpenChannelList/components/OpenChannelPreview.js +21 -22
  309. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  310. package/cjs/OpenChannelList/context.js +3 -4
  311. package/cjs/OpenChannelList/context.js.map +1 -1
  312. package/cjs/OpenChannelList.js +26 -24
  313. package/cjs/OpenChannelList.js.map +1 -1
  314. package/cjs/OpenChannelListProvider-fc8b53ee.js +439 -0
  315. package/cjs/OpenChannelListProvider-fc8b53ee.js.map +1 -0
  316. package/cjs/OpenChannelProvider-217a8ac2.js +1894 -0
  317. package/cjs/OpenChannelProvider-217a8ac2.js.map +1 -0
  318. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +47 -56
  319. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  320. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
  321. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  322. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
  323. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  324. package/cjs/OpenChannelSettings/components/OperatorUI.js +516 -586
  325. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  326. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -16
  327. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  328. package/cjs/OpenChannelSettings/context.js +57 -70
  329. package/cjs/OpenChannelSettings/context.js.map +1 -1
  330. package/cjs/OpenChannelSettings.js +19 -20
  331. package/cjs/OpenChannelSettings.js.map +1 -1
  332. package/cjs/{RemoveMessageModal-9169766a.js → RemoveMessageModal-5903f232.js} +19 -14
  333. package/cjs/RemoveMessageModal-5903f232.js.map +1 -0
  334. package/cjs/SendbirdProvider.js +748 -408
  335. package/cjs/SendbirdProvider.js.map +1 -1
  336. package/cjs/Thread/components/ParentMessageInfo.js +237 -216
  337. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  338. package/cjs/Thread/components/ParentMessageInfoItem.js +111 -88
  339. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  340. package/cjs/Thread/components/ThreadHeader.js +22 -23
  341. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  342. package/cjs/Thread/components/ThreadList.js +108 -83
  343. package/cjs/Thread/components/ThreadList.js.map +1 -1
  344. package/cjs/Thread/components/ThreadListItem.js +305 -275
  345. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  346. package/cjs/Thread/components/ThreadMessageInput.js +146 -113
  347. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  348. package/cjs/Thread/components/ThreadUI.js +170 -139
  349. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  350. package/cjs/Thread/context/types.js +13 -14
  351. package/cjs/Thread/context/types.js.map +1 -1
  352. package/cjs/Thread/context.js +8 -8
  353. package/cjs/Thread.js +87 -57
  354. package/cjs/Thread.js.map +1 -1
  355. package/cjs/ThreadProvider-8ee179c2.js +1704 -0
  356. package/cjs/ThreadProvider-8ee179c2.js.map +1 -0
  357. package/cjs/{UserProfileContext-8d0dee57.js → UserProfileContext-87580795.js} +1 -4
  358. package/cjs/{UserProfileContext-8d0dee57.js.map → UserProfileContext-87580795.js.map} +1 -1
  359. package/cjs/VoiceMessageInputWrapper-4fdc8ef1.js +176 -0
  360. package/cjs/VoiceMessageInputWrapper-4fdc8ef1.js.map +1 -0
  361. package/cjs/VoicePlayer/context.js +17 -0
  362. package/cjs/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
  363. package/cjs/VoicePlayer/useVoicePlayer.js +88 -0
  364. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -0
  365. package/cjs/VoiceRecorder/context.js +166 -0
  366. package/cjs/VoiceRecorder/context.js.map +1 -0
  367. package/cjs/VoiceRecorder/useVoiceRecorder.js +126 -0
  368. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  369. package/cjs/WebAudioUtils-e226789c.js +126 -0
  370. package/cjs/WebAudioUtils-e226789c.js.map +1 -0
  371. package/cjs/{_rollupPluginBabelHelpers-fed1e122.js → _rollupPluginBabelHelpers-c89f311a.js} +17 -10
  372. package/cjs/_rollupPluginBabelHelpers-c89f311a.js.map +1 -0
  373. package/cjs/actionTypes-0fa2943d.js +10 -0
  374. package/cjs/actionTypes-0fa2943d.js.map +1 -0
  375. package/cjs/{color-f47044b3.js → color-bada0fc7.js} +13 -21
  376. package/cjs/color-bada0fc7.js.map +1 -0
  377. package/cjs/{compareIds-4124b297.js → compareIds-ccccfe86.js} +5 -6
  378. package/cjs/compareIds-ccccfe86.js.map +1 -0
  379. package/cjs/const-a85f3364.js +20 -0
  380. package/cjs/const-a85f3364.js.map +1 -0
  381. package/cjs/{const-fd64914b.js → const-d8cece19.js} +4 -4
  382. package/cjs/const-d8cece19.js.map +1 -0
  383. package/cjs/consts-1c3020ad.js +6 -0
  384. package/cjs/consts-1c3020ad.js.map +1 -0
  385. package/cjs/consts-1d94dc61.js +6 -0
  386. package/cjs/consts-1d94dc61.js.map +1 -0
  387. package/cjs/consts-5e0f96b3.js +41 -0
  388. package/cjs/consts-5e0f96b3.js.map +1 -0
  389. package/cjs/consts-740f60b8.js +6 -0
  390. package/cjs/consts-740f60b8.js.map +1 -0
  391. package/cjs/{context-7a0e057b.js → context-8e7e8457.js} +6 -5
  392. package/cjs/{context-7a0e057b.js.map → context-8e7e8457.js.map} +1 -1
  393. package/cjs/dist/index.css +1640 -1187
  394. package/cjs/dist/index.css.map +1 -1
  395. package/cjs/handlers/OpenChannelHandler.js.map +1 -1
  396. package/cjs/handlers/SessionHandler.js.map +1 -1
  397. package/cjs/{index-d14a43c4.js → index-016f7106.js} +1 -1
  398. package/cjs/{index-d14a43c4.js.map → index-016f7106.js.map} +1 -1
  399. package/cjs/{index-9ca07037.js → index-1613ae03.js} +29 -37
  400. package/cjs/index-1613ae03.js.map +1 -0
  401. package/cjs/index-2be14d85.js +57 -0
  402. package/cjs/index-2be14d85.js.map +1 -0
  403. package/cjs/index-3b30939e.js +79 -0
  404. package/cjs/index-3b30939e.js.map +1 -0
  405. package/cjs/index-5231fde8.js +585 -0
  406. package/cjs/index-5231fde8.js.map +1 -0
  407. package/cjs/index-648c06ed.js +330 -0
  408. package/cjs/index-648c06ed.js.map +1 -0
  409. package/cjs/{index-5d5497c2.js → index-6cb0d040.js} +11 -25
  410. package/cjs/index-6cb0d040.js.map +1 -0
  411. package/cjs/{index-c475c3c8.js → index-71fdaa1b.js} +55 -63
  412. package/cjs/index-71fdaa1b.js.map +1 -0
  413. package/cjs/{index-343cd84a.js → index-7d125728.js} +2 -2
  414. package/cjs/{index-343cd84a.js.map → index-7d125728.js.map} +1 -1
  415. package/cjs/{index-3a4f8219.js → index-7f6bbe0c.js} +42 -51
  416. package/cjs/index-7f6bbe0c.js.map +1 -0
  417. package/cjs/{index-8de8f28a.js → index-869e9a94.js} +2 -2
  418. package/cjs/{index-8de8f28a.js.map → index-869e9a94.js.map} +1 -1
  419. package/cjs/index-89d81dad.js +456 -0
  420. package/cjs/index-89d81dad.js.map +1 -0
  421. package/cjs/{index-abbc8024.js → index-8affdde5.js} +57 -3
  422. package/cjs/index-8affdde5.js.map +1 -0
  423. package/cjs/index-99f16473.js +202 -0
  424. package/cjs/index-99f16473.js.map +1 -0
  425. package/cjs/index-c9d348b6.js +367 -0
  426. package/cjs/index-c9d348b6.js.map +1 -0
  427. package/cjs/index-e8c0080f.js +161 -0
  428. package/cjs/index-e8c0080f.js.map +1 -0
  429. package/cjs/{index-c5cd589d.js → index-f570d25c.js} +1 -1
  430. package/cjs/index-f570d25c.js.map +1 -0
  431. package/cjs/index.js +84 -63
  432. package/cjs/index.js.map +1 -1
  433. package/cjs/index.module-0585715f.js +6 -0
  434. package/cjs/index.module-0585715f.js.map +1 -0
  435. package/cjs/lame.all.js +2541 -0
  436. package/cjs/lame.all.js.map +1 -0
  437. package/cjs/resolvedReplyType-67e78c63.js +32 -0
  438. package/cjs/resolvedReplyType-67e78c63.js.map +1 -0
  439. package/cjs/sendbirdSelectors.js +307 -417
  440. package/cjs/sendbirdSelectors.js.map +1 -1
  441. package/cjs/{stringSet-3e6167ef.js → stringSet-106da549.js} +112 -90
  442. package/cjs/stringSet-106da549.js.map +1 -0
  443. package/cjs/tokenize-2aa0f876.js +164 -0
  444. package/cjs/tokenize-2aa0f876.js.map +1 -0
  445. package/cjs/topics-b384e6b3.js +18 -0
  446. package/cjs/topics-b384e6b3.js.map +1 -0
  447. package/cjs/types-e0b77c8c.js +17 -0
  448. package/cjs/types-e0b77c8c.js.map +1 -0
  449. package/cjs/ui/Accordion.js +21 -24
  450. package/cjs/ui/Accordion.js.map +1 -1
  451. package/cjs/ui/AccordionGroup.js +10 -13
  452. package/cjs/ui/AccordionGroup.js.map +1 -1
  453. package/cjs/ui/AdminMessage.js +10 -13
  454. package/cjs/ui/AdminMessage.js.map +1 -1
  455. package/cjs/ui/Avatar.js +57 -79
  456. package/cjs/ui/Avatar.js.map +1 -1
  457. package/cjs/ui/Badge.js +16 -15
  458. package/cjs/ui/Badge.js.map +1 -1
  459. package/cjs/ui/BottomSheet.js +14 -12
  460. package/cjs/ui/BottomSheet.js.map +1 -1
  461. package/cjs/ui/Button.js +20 -35
  462. package/cjs/ui/Button.js.map +1 -1
  463. package/cjs/ui/ChannelAvatar.js +38 -41
  464. package/cjs/ui/ChannelAvatar.js.map +1 -1
  465. package/cjs/ui/Checkbox.js +11 -13
  466. package/cjs/ui/Checkbox.js.map +1 -1
  467. package/cjs/ui/ConnectionStatus.js +7 -5
  468. package/cjs/ui/ConnectionStatus.js.map +1 -1
  469. package/cjs/ui/ContextMenu.js +175 -199
  470. package/cjs/ui/ContextMenu.js.map +1 -1
  471. package/cjs/ui/DateSeparator.js +12 -14
  472. package/cjs/ui/DateSeparator.js.map +1 -1
  473. package/cjs/ui/EmojiReactions.js +299 -107
  474. package/cjs/ui/EmojiReactions.js.map +1 -1
  475. package/cjs/ui/FileMessageItemBody.js +22 -23
  476. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  477. package/cjs/ui/FileViewer.js +36 -36
  478. package/cjs/ui/FileViewer.js.map +1 -1
  479. package/cjs/ui/Icon.js +447 -623
  480. package/cjs/ui/Icon.js.map +1 -1
  481. package/cjs/ui/IconButton.js +20 -31
  482. package/cjs/ui/IconButton.js.map +1 -1
  483. package/cjs/ui/ImageRenderer.js +34 -43
  484. package/cjs/ui/ImageRenderer.js.map +1 -1
  485. package/cjs/ui/Input.js +16 -16
  486. package/cjs/ui/Input.js.map +1 -1
  487. package/cjs/ui/Label.js +2 -2
  488. package/cjs/ui/LinkLabel.js +4 -3
  489. package/cjs/ui/LinkLabel.js.map +1 -1
  490. package/cjs/ui/Loader.js +10 -12
  491. package/cjs/ui/Loader.js.map +1 -1
  492. package/cjs/ui/MentionLabel.js +58 -65
  493. package/cjs/ui/MentionLabel.js.map +1 -1
  494. package/cjs/ui/MentionUserLabel.js +12 -10
  495. package/cjs/ui/MentionUserLabel.js.map +1 -1
  496. package/cjs/ui/MessageContent.js +212 -548
  497. package/cjs/ui/MessageContent.js.map +1 -1
  498. package/cjs/ui/MessageInput.js +392 -119
  499. package/cjs/ui/MessageInput.js.map +1 -1
  500. package/cjs/ui/MessageItemMenu.js +83 -83
  501. package/cjs/ui/MessageItemMenu.js.map +1 -1
  502. package/cjs/ui/MessageItemReactionMenu.js +58 -62
  503. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  504. package/cjs/ui/MessageSearchFileItem.js +56 -51
  505. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  506. package/cjs/ui/MessageSearchItem.js +42 -41
  507. package/cjs/ui/MessageSearchItem.js.map +1 -1
  508. package/cjs/ui/MessageStatus.js +10 -11
  509. package/cjs/ui/MessageStatus.js.map +1 -1
  510. package/cjs/ui/Modal.js +52 -46
  511. package/cjs/ui/Modal.js.map +1 -1
  512. package/cjs/ui/MutedAvatarOverlay.js +10 -10
  513. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  514. package/cjs/ui/OGMessageItemBody.js +67 -63
  515. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  516. package/cjs/ui/OpenChannelAdminMessage.js +8 -7
  517. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  518. package/cjs/ui/OpenChannelAvatar.js +18 -17
  519. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  520. package/cjs/ui/OpenchannelConversationHeader.js +17 -13
  521. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  522. package/cjs/ui/OpenchannelFileMessage.js +140 -151
  523. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  524. package/cjs/ui/OpenchannelOGMessage.js +204 -233
  525. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  526. package/cjs/ui/OpenchannelThumbnailMessage.js +215 -222
  527. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  528. package/cjs/ui/OpenchannelUserMessage.js +168 -178
  529. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  530. package/cjs/ui/PlaceHolder.js +5 -6
  531. package/cjs/ui/PlaceHolder.js.map +1 -1
  532. package/cjs/ui/PlaybackTime.js +35 -0
  533. package/cjs/ui/PlaybackTime.js.map +1 -0
  534. package/cjs/ui/ProgressBar.js +40 -0
  535. package/cjs/ui/ProgressBar.js.map +1 -0
  536. package/cjs/ui/QuoteMessage.js +50 -44
  537. package/cjs/ui/QuoteMessage.js.map +1 -1
  538. package/cjs/ui/QuoteMessageInput.js +31 -29
  539. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  540. package/cjs/ui/ReactionBadge.js +13 -21
  541. package/cjs/ui/ReactionBadge.js.map +1 -1
  542. package/cjs/ui/ReactionButton.js +30 -27
  543. package/cjs/ui/ReactionButton.js.map +1 -1
  544. package/cjs/ui/SortByRow.js +14 -18
  545. package/cjs/ui/SortByRow.js.map +1 -1
  546. package/cjs/ui/TextButton.js +13 -21
  547. package/cjs/ui/TextButton.js.map +1 -1
  548. package/cjs/ui/TextMessageItemBody.js +41 -48
  549. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  550. package/cjs/ui/ThreadReplies.js +25 -22
  551. package/cjs/ui/ThreadReplies.js.map +1 -1
  552. package/cjs/ui/ThumbnailMessageItemBody.js +36 -45
  553. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  554. package/cjs/ui/Toggle.js +202 -0
  555. package/cjs/ui/Toggle.js.map +1 -0
  556. package/cjs/ui/Tooltip.js +8 -9
  557. package/cjs/ui/Tooltip.js.map +1 -1
  558. package/cjs/ui/TooltipWrapper.js +17 -20
  559. package/cjs/ui/TooltipWrapper.js.map +1 -1
  560. package/cjs/ui/UnknownMessageItemBody.js +21 -22
  561. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  562. package/cjs/ui/UserListItem.js +76 -76
  563. package/cjs/ui/UserListItem.js.map +1 -1
  564. package/cjs/ui/UserProfile.js +31 -29
  565. package/cjs/ui/UserProfile.js.map +1 -1
  566. package/cjs/ui/VoiceMessageItemBody.js +119 -0
  567. package/cjs/ui/VoiceMessageItemBody.js.map +1 -0
  568. package/cjs/ui/VoiceMessgeInput.js +22 -0
  569. package/cjs/ui/VoiceMessgeInput.js.map +1 -0
  570. package/cjs/ui/Word.js +31 -39
  571. package/cjs/ui/Word.js.map +1 -1
  572. package/cjs/useDirtyGetMentions-b8ca5675.js +77 -0
  573. package/cjs/useDirtyGetMentions-b8ca5675.js.map +1 -0
  574. package/cjs/useLongPress-8037894e.js +87 -0
  575. package/cjs/useLongPress-8037894e.js.map +1 -0
  576. package/cjs/useSendbirdStateContext.js +2 -3
  577. package/cjs/useSendbirdStateContext.js.map +1 -1
  578. package/cjs/utils/message/getOutgoingMessageState.js +16 -21
  579. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  580. package/cjs/utils/message/isVoiceMessage.js +12 -0
  581. package/cjs/utils/message/isVoiceMessage.js.map +1 -0
  582. package/cjs/{utils-5f86a394.js → utils-01ff5332.js} +3 -7
  583. package/cjs/{utils-5f86a394.js.map → utils-01ff5332.js.map} +1 -1
  584. package/cjs/utils-2edcddc8.js +35 -0
  585. package/cjs/utils-2edcddc8.js.map +1 -0
  586. package/cjs/utils-5ac3db44.js +31 -0
  587. package/cjs/utils-5ac3db44.js.map +1 -0
  588. package/cjs/{utils-374d57b4.js → utils-ad7b5b82.js} +1 -1
  589. package/cjs/{utils-374d57b4.js.map → utils-ad7b5b82.js.map} +1 -1
  590. package/cjs/uuid-12b01f73.js +15 -0
  591. package/cjs/{uuid-2475ef6c.js.map → uuid-12b01f73.js.map} +1 -1
  592. package/cjs/withSendbird.js +5 -6
  593. package/cjs/withSendbird.js.map +1 -1
  594. package/{color-163ba24d.js → color-347926b6.js} +5 -14
  595. package/{color-163ba24d.js.map → color-347926b6.js.map} +1 -1
  596. package/{compareIds-ef41eb2c.js → compareIds-3a43c11b.js} +5 -6
  597. package/compareIds-3a43c11b.js.map +1 -0
  598. package/const-18dba7a4.js +13 -0
  599. package/const-18dba7a4.js.map +1 -0
  600. package/{const-76d87f47.js → const-c608f749.js} +4 -4
  601. package/const-c608f749.js.map +1 -0
  602. package/consts-6bca01c7.js +4 -0
  603. package/consts-6bca01c7.js.map +1 -0
  604. package/consts-7a169a0f.js +4 -0
  605. package/consts-7a169a0f.js.map +1 -0
  606. package/consts-c1baf70a.js +27 -0
  607. package/consts-c1baf70a.js.map +1 -0
  608. package/consts-fb4d475a.js +4 -0
  609. package/consts-fb4d475a.js.map +1 -0
  610. package/context-786ef1a2.js +13 -0
  611. package/{context-10475c77.js.map → context-786ef1a2.js.map} +1 -1
  612. package/dist/index.css +1640 -1187
  613. package/dist/index.css.map +1 -1
  614. package/handlers/OpenChannelHandler.js.map +1 -1
  615. package/handlers/SessionHandler.js.map +1 -1
  616. package/{index-12754b45.js → index-06b854f7.js} +55 -63
  617. package/index-06b854f7.js.map +1 -0
  618. package/index-2673effb.js +360 -0
  619. package/index-2673effb.js.map +1 -0
  620. package/{index-4ebfc7a7.js → index-319984d0.js} +1 -1
  621. package/{index-4ebfc7a7.js.map → index-319984d0.js.map} +1 -1
  622. package/{index-3c013a28.js → index-4455855e.js} +2 -2
  623. package/{index-3c013a28.js.map → index-4455855e.js.map} +1 -1
  624. package/index-6663ce18.js +450 -0
  625. package/index-6663ce18.js.map +1 -0
  626. package/{index-a02da5bd.js → index-6c252d25.js} +2 -2
  627. package/{index-a02da5bd.js.map → index-6c252d25.js.map} +1 -1
  628. package/index-71a20863.js +320 -0
  629. package/index-71a20863.js.map +1 -0
  630. package/index-7d71b26c.js +154 -0
  631. package/index-7d71b26c.js.map +1 -0
  632. package/{index-2f346069.js → index-9a4e0846.js} +1 -1
  633. package/index-9a4e0846.js.map +1 -0
  634. package/{index-232388fa.js → index-9cd77b08.js} +29 -37
  635. package/index-9cd77b08.js.map +1 -0
  636. package/index-c149ea48.js +187 -0
  637. package/index-c149ea48.js.map +1 -0
  638. package/index-cf3939c6.js +76 -0
  639. package/index-cf3939c6.js.map +1 -0
  640. package/index-cf859f03.js +540 -0
  641. package/index-cf859f03.js.map +1 -0
  642. package/{index-2784bdd8.js → index-e33f7f55.js} +11 -25
  643. package/index-e33f7f55.js.map +1 -0
  644. package/{index-aea7b7d6.js → index-eabd1e7e.js} +39 -48
  645. package/index-eabd1e7e.js.map +1 -0
  646. package/index-ebb62af1.js +51 -0
  647. package/index-ebb62af1.js.map +1 -0
  648. package/{index-751f97ce.js → index-edf844f0.js} +57 -4
  649. package/index-edf844f0.js.map +1 -0
  650. package/index.d.ts +176 -124
  651. package/index.js +84 -63
  652. package/index.js.map +1 -1
  653. package/index.module-6b7ed635.js +4 -0
  654. package/index.module-6b7ed635.js.map +1 -0
  655. package/lame.all.js +2537 -0
  656. package/lame.all.js.map +1 -0
  657. package/package.json +62 -41
  658. package/resolvedReplyType-8776d777.js +29 -0
  659. package/resolvedReplyType-8776d777.js.map +1 -0
  660. package/sendbirdSelectors.js +307 -417
  661. package/sendbirdSelectors.js.map +1 -1
  662. package/{stringSet-9ae71b7d.js → stringSet-e0ee1265.js} +112 -90
  663. package/stringSet-e0ee1265.js.map +1 -0
  664. package/tokenize-1b053c86.js +159 -0
  665. package/tokenize-1b053c86.js.map +1 -0
  666. package/topics-70f569e9.js +16 -0
  667. package/topics-70f569e9.js.map +1 -0
  668. package/types-77bbdda6.js +15 -0
  669. package/types-77bbdda6.js.map +1 -0
  670. package/ui/Accordion.js +21 -24
  671. package/ui/Accordion.js.map +1 -1
  672. package/ui/AccordionGroup.js +10 -13
  673. package/ui/AccordionGroup.js.map +1 -1
  674. package/ui/AdminMessage.js +10 -13
  675. package/ui/AdminMessage.js.map +1 -1
  676. package/ui/Avatar.js +57 -79
  677. package/ui/Avatar.js.map +1 -1
  678. package/ui/Badge.js +16 -15
  679. package/ui/Badge.js.map +1 -1
  680. package/ui/BottomSheet.js +14 -12
  681. package/ui/BottomSheet.js.map +1 -1
  682. package/ui/Button.js +20 -35
  683. package/ui/Button.js.map +1 -1
  684. package/ui/ChannelAvatar.js +38 -41
  685. package/ui/ChannelAvatar.js.map +1 -1
  686. package/ui/Checkbox.js +11 -13
  687. package/ui/Checkbox.js.map +1 -1
  688. package/ui/ConnectionStatus.js +7 -5
  689. package/ui/ConnectionStatus.js.map +1 -1
  690. package/ui/ContextMenu.js +176 -200
  691. package/ui/ContextMenu.js.map +1 -1
  692. package/ui/DateSeparator.js +12 -14
  693. package/ui/DateSeparator.js.map +1 -1
  694. package/ui/EmojiReactions.js +300 -108
  695. package/ui/EmojiReactions.js.map +1 -1
  696. package/ui/FileMessageItemBody.js +22 -23
  697. package/ui/FileMessageItemBody.js.map +1 -1
  698. package/ui/FileViewer.js +36 -36
  699. package/ui/FileViewer.js.map +1 -1
  700. package/ui/Icon.js +448 -622
  701. package/ui/Icon.js.map +1 -1
  702. package/ui/IconButton.js +20 -31
  703. package/ui/IconButton.js.map +1 -1
  704. package/ui/ImageRenderer.js +34 -43
  705. package/ui/ImageRenderer.js.map +1 -1
  706. package/ui/Input.js +16 -16
  707. package/ui/Input.js.map +1 -1
  708. package/ui/Label.js +2 -2
  709. package/ui/LinkLabel.js +4 -3
  710. package/ui/LinkLabel.js.map +1 -1
  711. package/ui/Loader.js +10 -12
  712. package/ui/Loader.js.map +1 -1
  713. package/ui/MentionLabel.js +58 -65
  714. package/ui/MentionLabel.js.map +1 -1
  715. package/ui/MentionUserLabel.js +12 -10
  716. package/ui/MentionUserLabel.js.map +1 -1
  717. package/ui/MessageContent.js +215 -551
  718. package/ui/MessageContent.js.map +1 -1
  719. package/ui/MessageInput.js +392 -120
  720. package/ui/MessageInput.js.map +1 -1
  721. package/ui/MessageItemMenu.js +83 -83
  722. package/ui/MessageItemMenu.js.map +1 -1
  723. package/ui/MessageItemReactionMenu.js +58 -62
  724. package/ui/MessageItemReactionMenu.js.map +1 -1
  725. package/ui/MessageSearchFileItem.js +55 -50
  726. package/ui/MessageSearchFileItem.js.map +1 -1
  727. package/ui/MessageSearchItem.js +41 -40
  728. package/ui/MessageSearchItem.js.map +1 -1
  729. package/ui/MessageStatus.js +10 -11
  730. package/ui/MessageStatus.js.map +1 -1
  731. package/ui/Modal.js +52 -46
  732. package/ui/Modal.js.map +1 -1
  733. package/ui/MutedAvatarOverlay.js +10 -10
  734. package/ui/MutedAvatarOverlay.js.map +1 -1
  735. package/ui/OGMessageItemBody.js +68 -64
  736. package/ui/OGMessageItemBody.js.map +1 -1
  737. package/ui/OpenChannelAdminMessage.js +8 -7
  738. package/ui/OpenChannelAdminMessage.js.map +1 -1
  739. package/ui/OpenChannelAvatar.js +18 -17
  740. package/ui/OpenChannelAvatar.js.map +1 -1
  741. package/ui/OpenchannelConversationHeader.js +17 -13
  742. package/ui/OpenchannelConversationHeader.js.map +1 -1
  743. package/ui/OpenchannelFileMessage.js +140 -151
  744. package/ui/OpenchannelFileMessage.js.map +1 -1
  745. package/ui/OpenchannelOGMessage.js +204 -233
  746. package/ui/OpenchannelOGMessage.js.map +1 -1
  747. package/ui/OpenchannelThumbnailMessage.js +215 -222
  748. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  749. package/ui/OpenchannelUserMessage.js +168 -178
  750. package/ui/OpenchannelUserMessage.js.map +1 -1
  751. package/ui/PlaceHolder.js +5 -6
  752. package/ui/PlaceHolder.js.map +1 -1
  753. package/ui/PlaybackTime.js +26 -0
  754. package/ui/PlaybackTime.js.map +1 -0
  755. package/ui/ProgressBar.js +30 -0
  756. package/ui/ProgressBar.js.map +1 -0
  757. package/ui/QuoteMessage.js +50 -44
  758. package/ui/QuoteMessage.js.map +1 -1
  759. package/ui/QuoteMessageInput.js +31 -29
  760. package/ui/QuoteMessageInput.js.map +1 -1
  761. package/ui/ReactionBadge.js +13 -21
  762. package/ui/ReactionBadge.js.map +1 -1
  763. package/ui/ReactionButton.js +30 -27
  764. package/ui/ReactionButton.js.map +1 -1
  765. package/ui/SortByRow.js +14 -18
  766. package/ui/SortByRow.js.map +1 -1
  767. package/ui/TextButton.js +13 -21
  768. package/ui/TextButton.js.map +1 -1
  769. package/ui/TextMessageItemBody.js +41 -48
  770. package/ui/TextMessageItemBody.js.map +1 -1
  771. package/ui/ThreadReplies.js +25 -22
  772. package/ui/ThreadReplies.js.map +1 -1
  773. package/ui/ThumbnailMessageItemBody.js +36 -45
  774. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  775. package/ui/Toggle.js +191 -0
  776. package/ui/Toggle.js.map +1 -0
  777. package/ui/Tooltip.js +8 -9
  778. package/ui/Tooltip.js.map +1 -1
  779. package/ui/TooltipWrapper.js +17 -20
  780. package/ui/TooltipWrapper.js.map +1 -1
  781. package/ui/UnknownMessageItemBody.js +21 -22
  782. package/ui/UnknownMessageItemBody.js.map +1 -1
  783. package/ui/UserListItem.js +76 -76
  784. package/ui/UserListItem.js.map +1 -1
  785. package/ui/UserProfile.js +31 -29
  786. package/ui/UserProfile.js.map +1 -1
  787. package/ui/VoiceMessageItemBody.js +110 -0
  788. package/ui/VoiceMessageItemBody.js.map +1 -0
  789. package/ui/VoiceMessgeInput.js +14 -0
  790. package/ui/VoiceMessgeInput.js.map +1 -0
  791. package/ui/Word.js +31 -39
  792. package/ui/Word.js.map +1 -1
  793. package/useDirtyGetMentions-f00f1f94.js +75 -0
  794. package/useDirtyGetMentions-f00f1f94.js.map +1 -0
  795. package/useLongPress-1ab49410.js +85 -0
  796. package/useLongPress-1ab49410.js.map +1 -0
  797. package/useSendbirdStateContext.js +2 -3
  798. package/useSendbirdStateContext.js.map +1 -1
  799. package/utils/message/getOutgoingMessageState.js +9 -15
  800. package/utils/message/getOutgoingMessageState.js.map +1 -1
  801. package/utils/message/isVoiceMessage.js +8 -0
  802. package/utils/message/isVoiceMessage.js.map +1 -0
  803. package/{utils-ea66f822.js → utils-56cb7de5.js} +1 -1
  804. package/{utils-ea66f822.js.map → utils-56cb7de5.js.map} +1 -1
  805. package/utils-77f7e8b2.js +29 -0
  806. package/utils-77f7e8b2.js.map +1 -0
  807. package/{utils-ddb0df4c.js → utils-7f3d0d8c.js} +3 -7
  808. package/{utils-ddb0df4c.js.map → utils-7f3d0d8c.js.map} +1 -1
  809. package/utils-af9b1c06.js +31 -0
  810. package/utils-af9b1c06.js.map +1 -0
  811. package/uuid-92d22300.js +13 -0
  812. package/{uuid-7e004f47.js.map → uuid-92d22300.js.map} +1 -1
  813. package/withSendbird.js +5 -6
  814. package/withSendbird.js.map +1 -1
  815. package/ChannelListProvider-1d36e2e9.js.map +0 -1
  816. package/ChannelProvider-289cd35f.js.map +0 -1
  817. package/CreateChannelProvider-72b655e9.js +0 -55
  818. package/CreateChannelProvider-72b655e9.js.map +0 -1
  819. package/LocalizationContext-289c1917.js +0 -22
  820. package/MediaQueryContext-273d29f6.js +0 -90
  821. package/MediaQueryContext-273d29f6.js.map +0 -1
  822. package/MemberList-7ad0fa0b.js +0 -435
  823. package/MemberList-7ad0fa0b.js.map +0 -1
  824. package/NotificationChannel/components/NotificationChannelUI.js +0 -119
  825. package/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
  826. package/NotificationChannel/components/NotificationList.js +0 -111
  827. package/NotificationChannel/components/NotificationList.js.map +0 -1
  828. package/NotificationChannel/components/NotificationMessageWrap.js +0 -136
  829. package/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
  830. package/NotificationChannel/context.js +0 -12
  831. package/NotificationChannel.js +0 -58
  832. package/NotificationChannel.js.map +0 -1
  833. package/NotificationChannelProvider-ad556c64.js +0 -535
  834. package/NotificationChannelProvider-ad556c64.js.map +0 -1
  835. package/OpenChannelListProvider-0febf8b2.js +0 -434
  836. package/OpenChannelListProvider-0febf8b2.js.map +0 -1
  837. package/OpenChannelProvider-c254c663.js +0 -2000
  838. package/OpenChannelProvider-c254c663.js.map +0 -1
  839. package/RemoveMessageModal-d6cbf9fa.js +0 -31
  840. package/RemoveMessageModal-d6cbf9fa.js.map +0 -1
  841. package/ThreadProvider-8696ef31.js +0 -1644
  842. package/ThreadProvider-8696ef31.js.map +0 -1
  843. package/_rollupPluginBabelHelpers-519f674b.js.map +0 -1
  844. package/actionTypes-9f87e87f.js +0 -6
  845. package/actionTypes-9f87e87f.js.map +0 -1
  846. package/cjs/ChannelListProvider-0de52d2b.js.map +0 -1
  847. package/cjs/ChannelProvider-fc58e60e.js.map +0 -1
  848. package/cjs/CreateChannelProvider-a82d20f4.js +0 -62
  849. package/cjs/CreateChannelProvider-a82d20f4.js.map +0 -1
  850. package/cjs/MediaQueryContext-4711a81f.js +0 -97
  851. package/cjs/MediaQueryContext-4711a81f.js.map +0 -1
  852. package/cjs/MemberList-b2623166.js +0 -441
  853. package/cjs/MemberList-b2623166.js.map +0 -1
  854. package/cjs/NotificationChannel/components/NotificationChannelUI.js +0 -125
  855. package/cjs/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
  856. package/cjs/NotificationChannel/components/NotificationList.js +0 -117
  857. package/cjs/NotificationChannel/components/NotificationList.js.map +0 -1
  858. package/cjs/NotificationChannel/components/NotificationMessageWrap.js +0 -142
  859. package/cjs/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
  860. package/cjs/NotificationChannel/context.js +0 -21
  861. package/cjs/NotificationChannel.js +0 -64
  862. package/cjs/NotificationChannel.js.map +0 -1
  863. package/cjs/NotificationChannelProvider-2cdc7ff4.js +0 -543
  864. package/cjs/NotificationChannelProvider-2cdc7ff4.js.map +0 -1
  865. package/cjs/OpenChannelListProvider-60bc3c69.js +0 -443
  866. package/cjs/OpenChannelListProvider-60bc3c69.js.map +0 -1
  867. package/cjs/OpenChannelProvider-3ed4eb6e.js +0 -2009
  868. package/cjs/OpenChannelProvider-3ed4eb6e.js.map +0 -1
  869. package/cjs/RemoveMessageModal-9169766a.js.map +0 -1
  870. package/cjs/ThreadProvider-389f5031.js +0 -1653
  871. package/cjs/ThreadProvider-389f5031.js.map +0 -1
  872. package/cjs/_rollupPluginBabelHelpers-fed1e122.js.map +0 -1
  873. package/cjs/actionTypes-2f90e726.js +0 -10
  874. package/cjs/actionTypes-2f90e726.js.map +0 -1
  875. package/cjs/color-f47044b3.js.map +0 -1
  876. package/cjs/compareIds-4124b297.js.map +0 -1
  877. package/cjs/const-015e5589.js +0 -20
  878. package/cjs/const-015e5589.js.map +0 -1
  879. package/cjs/const-fd64914b.js.map +0 -1
  880. package/cjs/index-30c97863.js +0 -194
  881. package/cjs/index-30c97863.js.map +0 -1
  882. package/cjs/index-3a4f8219.js.map +0 -1
  883. package/cjs/index-40e4653a.js +0 -59
  884. package/cjs/index-40e4653a.js.map +0 -1
  885. package/cjs/index-5d5497c2.js.map +0 -1
  886. package/cjs/index-62c1bdfc.js +0 -701
  887. package/cjs/index-62c1bdfc.js.map +0 -1
  888. package/cjs/index-9ca07037.js.map +0 -1
  889. package/cjs/index-9f3670d0.js +0 -360
  890. package/cjs/index-9f3670d0.js.map +0 -1
  891. package/cjs/index-abbc8024.js.map +0 -1
  892. package/cjs/index-c475c3c8.js.map +0 -1
  893. package/cjs/index-c5cd589d.js.map +0 -1
  894. package/cjs/stringSet-3e6167ef.js.map +0 -1
  895. package/cjs/topics-56842e14.js +0 -22
  896. package/cjs/topics-56842e14.js.map +0 -1
  897. package/cjs/tslib.es6-b8ba50ef.js +0 -110
  898. package/cjs/tslib.es6-b8ba50ef.js.map +0 -1
  899. package/cjs/useLongPress-99c66f7f.js +0 -118
  900. package/cjs/useLongPress-99c66f7f.js.map +0 -1
  901. package/cjs/utils-9adfd244.js +0 -38
  902. package/cjs/utils-9adfd244.js.map +0 -1
  903. package/cjs/utils-f6a96ebf.js +0 -32
  904. package/cjs/utils-f6a96ebf.js.map +0 -1
  905. package/cjs/uuid-2475ef6c.js +0 -19
  906. package/compareIds-ef41eb2c.js.map +0 -1
  907. package/const-76d87f47.js.map +0 -1
  908. package/const-da6f3d34.js +0 -14
  909. package/const-da6f3d34.js.map +0 -1
  910. package/context-10475c77.js +0 -12
  911. package/index-12754b45.js.map +0 -1
  912. package/index-1e46e582.js +0 -179
  913. package/index-1e46e582.js.map +0 -1
  914. package/index-232388fa.js.map +0 -1
  915. package/index-2784bdd8.js.map +0 -1
  916. package/index-2f346069.js.map +0 -1
  917. package/index-4637b0de.js +0 -57
  918. package/index-4637b0de.js.map +0 -1
  919. package/index-4900e890.js +0 -353
  920. package/index-4900e890.js.map +0 -1
  921. package/index-751f97ce.js.map +0 -1
  922. package/index-855ef33d.js +0 -662
  923. package/index-855ef33d.js.map +0 -1
  924. package/index-aea7b7d6.js.map +0 -1
  925. package/stringSet-9ae71b7d.js.map +0 -1
  926. package/topics-e2963bba.js +0 -13
  927. package/topics-e2963bba.js.map +0 -1
  928. package/tslib.es6-72df3331.js +0 -104
  929. package/tslib.es6-72df3331.js.map +0 -1
  930. package/useLongPress-1a777e9e.js +0 -116
  931. package/useLongPress-1a777e9e.js.map +0 -1
  932. package/utils-2976f2c1.js +0 -30
  933. package/utils-2976f2c1.js.map +0 -1
  934. package/utils-6b69fb18.js +0 -34
  935. package/utils-6b69fb18.js.map +0 -1
  936. package/uuid-7e004f47.js +0 -17
@@ -1 +1 @@
1
- {"version":3,"file":"MessageItemMenu.js","sources":["../../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { ReplyType } from '../../index';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: UserMessage | FileMessage) => void;\n setQuoteMessage?: (message: UserMessage | FileMessage) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: UserMessage | FileMessage }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !(channel as GroupChannel)?.isBroadcast);\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_a","className","message","channel","_c","isByMe","_d","disabled","replyType","_e","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","_f","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","showMenuItemCopy","isUserMessage","showMenuItemEdit","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","_b","call","isBroadcast","showMenuItemReply","showMenuItemThread","parentMessageId","React","getClassName","ContextMenu","toggleDropdown","IconButton","Icon","IconTypes","MORE","IconColors","CONTENT_INVERSE","close","closeDropdown","MenuItems","MenuItem","copyToClipboard","MESSAGE_MENU__COPY","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":"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"}
1
+ {"version":3,"file":"MessageItemMenu.js","sources":["../../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { ReplyType } from '../../index';\nimport { Role } from '../../lib/types';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: UserMessage | FileMessage) => void;\n setQuoteMessage?: (message: UserMessage | FileMessage) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: UserMessage | FileMessage }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (!channel?.isEphemeral && isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !channel?.isEphemeral && !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !channel?.isEphemeral\n && (\n ((channel as GroupChannel)?.isBroadcast && channel?.myRole === Role.OPERATOR)\n || !(channel as GroupChannel)?.isBroadcast\n ));\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_copy\"\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n dataSbId=\"ui_message_item_menu_reply\"\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_thread\"\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_open_in_channel\"\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_edit\"\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_resend\"\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n dataSbId=\"ui_message_item_menu_delete\"\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_ref","_channel$isGroupChann","className","message","channel","isByMe","disabled","replyType","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","showMenuItemCopy","isUserMessage","showMenuItemEdit","isEphemeral","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","call","isBroadcast","myRole","Role","OPERATOR","showMenuItemReply","showMenuItemThread","parentMessageId","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","_message$threadInfo","closeDropdown","MenuItems","parentRef","parentContainRef","openLeft","MenuItem","copyToClipboard","dataSbId","MESSAGE_MENU__COPY","disable","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":"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"}
@@ -6,103 +6,99 @@ var ui_Icon = require('./Icon.js');
6
6
  var ui_IconButton = require('./IconButton.js');
7
7
  var ui_ImageRenderer = require('./ImageRenderer.js');
8
8
  var ui_ReactionButton = require('./ReactionButton.js');
9
- var index = require('../index-62c1bdfc.js');
10
- require('../tslib.es6-b8ba50ef.js');
9
+ var index = require('../index-5231fde8.js');
10
+ require('../_rollupPluginBabelHelpers-c89f311a.js');
11
11
  require('react-dom');
12
12
  require('./SortByRow.js');
13
- require('../uuid-2475ef6c.js');
14
- require('../index-5d5497c2.js');
13
+ require('../uuid-12b01f73.js');
14
+ require('../index-6cb0d040.js');
15
15
  require('prop-types');
16
- require('../stringSet-3e6167ef.js');
16
+ require('../stringSet-106da549.js');
17
17
  require('../utils/message/getOutgoingMessageState.js');
18
+ require('../useLongPress-8037894e.js');
19
+ require('../MediaQueryContext-33fc3b17.js');
20
+ require('../utils-ad7b5b82.js');
18
21
 
19
22
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
23
 
21
24
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
25
 
23
- function MessageItemReactionMenu(_a) {
24
- var className = _a.className,
25
- message = _a.message,
26
- userId = _a.userId,
27
- _b = _a.spaceFromTrigger,
28
- spaceFromTrigger = _b === void 0 ? {} : _b,
29
- emojiContainer = _a.emojiContainer,
30
- toggleReaction = _a.toggleReaction,
31
- setSupposedHover = _a.setSupposedHover;
32
- var triggerRef = React.useRef(null);
33
- var containerRef = React.useRef(null);
34
-
26
+ function MessageItemReactionMenu(_ref) {
27
+ let {
28
+ className,
29
+ message,
30
+ userId,
31
+ spaceFromTrigger = {
32
+ x: 0,
33
+ y: 0
34
+ },
35
+ emojiContainer,
36
+ toggleReaction,
37
+ setSupposedHover
38
+ } = _ref;
39
+ const triggerRef = React.useRef(null);
40
+ const containerRef = React.useRef(null);
35
41
  if (index.isPendingMessage(message) || index.isFailedMessage(message)) {
36
42
  return null;
37
43
  }
38
-
39
44
  return /*#__PURE__*/React__default["default"].createElement("div", {
40
45
  className: index.getClassName([className, 'sendbird-message-item-reaction-menu']),
41
46
  ref: containerRef
42
47
  }, /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu["default"], {
43
- menuTrigger: function (toggleDropdown) {
44
- return /*#__PURE__*/React__default["default"].createElement(ui_IconButton, {
45
- className: "sendbird-message-item-reaction-menu__trigger",
46
- ref: triggerRef,
47
- width: "32px",
48
- height: "32px",
49
- onClick: function () {
50
- toggleDropdown();
51
- setSupposedHover(true);
52
- },
53
- onBlur: function () {
54
- setSupposedHover(false);
55
- }
56
- }, /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
57
- className: "sendbird-message-item-reaction-menu__trigger__icon",
58
- type: ui_Icon.IconTypes.EMOJI_MORE,
59
- fillColor: ui_Icon.IconColors.CONTENT_INVERSE,
60
- width: "24px",
61
- height: "24px"
62
- }));
63
- },
64
- menuItems: function (close) {
65
- var closeDropdown = function () {
48
+ menuTrigger: toggleDropdown => /*#__PURE__*/React__default["default"].createElement(ui_IconButton, {
49
+ className: "sendbird-message-item-reaction-menu__trigger",
50
+ ref: triggerRef,
51
+ width: "32px",
52
+ height: "32px",
53
+ onClick: () => {
54
+ toggleDropdown();
55
+ setSupposedHover(true);
56
+ },
57
+ onBlur: () => {
58
+ setSupposedHover(false);
59
+ }
60
+ }, /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
61
+ className: "sendbird-message-item-reaction-menu__trigger__icon",
62
+ type: ui_Icon.IconTypes.EMOJI_MORE,
63
+ fillColor: ui_Icon.IconColors.CONTENT_INVERSE,
64
+ width: "24px",
65
+ height: "24px"
66
+ })),
67
+ menuItems: close => {
68
+ const closeDropdown = () => {
66
69
  close();
67
70
  setSupposedHover(false);
68
71
  };
69
-
70
72
  return /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu.EmojiListItems, {
71
73
  parentRef: triggerRef,
72
74
  parentContainRef: containerRef,
73
75
  closeDropdown: closeDropdown,
74
76
  spaceFromTrigger: spaceFromTrigger
75
- }, index.getEmojiListAll(emojiContainer).map(function (emoji) {
76
- var _a, _b, _c;
77
-
78
- var isReacted = (_c = (_b = (_a = message === null || message === void 0 ? void 0 : message.reactions) === null || _a === void 0 ? void 0 : _a.filter(function (reaction) {
79
- return reaction.key === emoji.key;
80
- })[0]) === null || _b === void 0 ? void 0 : _b.userIds) === null || _c === void 0 ? void 0 : _c.some(function (reactorId) {
81
- return reactorId === userId;
82
- });
77
+ }, index.getEmojiListAll(emojiContainer).map(emoji => {
78
+ var _message$reactions, _message$reactions$fi, _message$reactions$fi2;
79
+ const isReacted = message === null || message === void 0 ? void 0 : (_message$reactions = message.reactions) === null || _message$reactions === void 0 ? void 0 : (_message$reactions$fi = _message$reactions.filter(reaction => reaction.key === emoji.key)[0]) === null || _message$reactions$fi === void 0 ? void 0 : (_message$reactions$fi2 = _message$reactions$fi.userIds) === null || _message$reactions$fi2 === void 0 ? void 0 : _message$reactions$fi2.some(reactorId => reactorId === userId);
83
80
  return /*#__PURE__*/React__default["default"].createElement(ui_ReactionButton, {
84
81
  key: emoji.key,
85
82
  width: "36px",
86
83
  height: "36px",
87
84
  selected: isReacted,
88
- onClick: function () {
85
+ onClick: () => {
89
86
  closeDropdown();
90
87
  toggleReaction(message, emoji.key, isReacted);
91
- }
88
+ },
89
+ dataSbId: `ui_emoji_reactions_menu_${emoji.key}`
92
90
  }, /*#__PURE__*/React__default["default"].createElement(ui_ImageRenderer, {
93
91
  url: emoji.url,
94
92
  width: "28px",
95
93
  height: "28px",
96
- placeHolder: function (style) {
97
- return /*#__PURE__*/React__default["default"].createElement("div", {
98
- style: style
99
- }, /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
100
- type: ui_Icon.IconTypes.QUESTION,
101
- fillColor: ui_Icon.IconColors.ON_BACKGROUND_3,
102
- width: "28px",
103
- height: "28px"
104
- }));
105
- }
94
+ placeHolder: style => /*#__PURE__*/React__default["default"].createElement("div", {
95
+ style: style
96
+ }, /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
97
+ type: ui_Icon.IconTypes.QUESTION,
98
+ fillColor: ui_Icon.IconColors.ON_BACKGROUND_3,
99
+ width: "28px",
100
+ height: "28px"
101
+ }))
106
102
  }));
107
103
  }));
108
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MessageItemReactionMenu.js","sources":["../../../src/ui/MessageItemReactionMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useRef } from 'react';\nimport type { FileMessage, Reaction, UserMessage } from '@sendbird/chat/message';\nimport type { Emoji, EmojiContainer } from '@sendbird/chat';\n\nimport ContextMenu, { EmojiListItems } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport ReactionButton from '../ReactionButton';\nimport { getClassName, getEmojiListAll, isPendingMessage, isFailedMessage } from '../../utils';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n userId: string;\n spaceFromTrigger?: Record<string, unknown>;\n emojiContainer?: EmojiContainer;\n toggleReaction?: (message: UserMessage | FileMessage, reactionKey: string, isReacted: boolean) => void;\n setSupposedHover?: (bool: boolean) => void;\n}\n\nexport default function MessageItemReactionMenu({\n className,\n message,\n userId,\n spaceFromTrigger = {},\n emojiContainer,\n toggleReaction,\n setSupposedHover,\n}: Props): ReactElement {\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n if(isPendingMessage(message) || isFailedMessage(message)) {\n return null;\n }\n\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-reaction-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-reaction-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-reaction-menu__trigger__icon\"\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <EmojiListItems\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={spaceFromTrigger}\n >\n {getEmojiListAll(emojiContainer).map((emoji: Emoji): ReactElement => {\n const isReacted: boolean = message?.reactions?.\n filter((reaction: Reaction) => reaction.key === emoji.key)[0]?.userIds?.\n some((reactorId: string) => reactorId === userId);\n return (\n <ReactionButton\n key={emoji.key}\n width=\"36px\"\n height=\"36px\"\n selected={isReacted}\n onClick={() => {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n <ImageRenderer\n url={emoji.url}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style) => (\n <div style={style}>\n <Icon\n type={IconTypes.QUESTION}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n );\n })}\n </EmojiListItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemReactionMenu","_a","className","message","userId","_b","spaceFromTrigger","emojiContainer","toggleReaction","setSupposedHover","triggerRef","useRef","containerRef","isPendingMessage","isFailedMessage","React","getClassName","ContextMenu","toggleDropdown","IconButton","Icon","IconTypes","EMOJI_MORE","IconColors","CONTENT_INVERSE","close","closeDropdown","EmojiListItems","getEmojiListAll","map","emoji","isReacted","_c","reactions","filter","reaction","key","userIds","some","reactorId","ReactionButton","ImageRenderer","url","style","QUESTION","ON_BACKGROUND_3"],"mappings":"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"}
1
+ {"version":3,"file":"MessageItemReactionMenu.js","sources":["../../../src/ui/MessageItemReactionMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useRef } from 'react';\nimport type { FileMessage, Reaction, UserMessage } from '@sendbird/chat/message';\nimport type { Emoji, EmojiContainer } from '@sendbird/chat';\n\nimport ContextMenu, { EmojiListItems } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport ReactionButton from '../ReactionButton';\nimport { getClassName, getEmojiListAll, isPendingMessage, isFailedMessage } from '../../utils';\nimport { SpaceFromTriggerType } from '../../types';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n userId: string;\n spaceFromTrigger?: SpaceFromTriggerType;\n emojiContainer?: EmojiContainer;\n toggleReaction?: (message: UserMessage | FileMessage, reactionKey: string, isReacted: boolean) => void;\n setSupposedHover?: (bool: boolean) => void;\n}\n\nexport default function MessageItemReactionMenu({\n className,\n message,\n userId,\n spaceFromTrigger = { x: 0, y: 0 },\n emojiContainer,\n toggleReaction,\n setSupposedHover,\n}: Props): ReactElement {\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n if (isPendingMessage(message) || isFailedMessage(message)) {\n return null;\n }\n\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-reaction-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-reaction-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-reaction-menu__trigger__icon\"\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <EmojiListItems\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={spaceFromTrigger}\n >\n {getEmojiListAll(emojiContainer).map((emoji: Emoji): ReactElement => {\n const isReacted: boolean = message?.reactions\n ?.filter((reaction: Reaction) => reaction.key === emoji.key)[0]?.userIds\n ?.some((reactorId: string) => reactorId === userId);\n return (\n <ReactionButton\n key={emoji.key}\n width=\"36px\"\n height=\"36px\"\n selected={isReacted}\n onClick={() => {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n dataSbId={`ui_emoji_reactions_menu_${emoji.key}`}\n >\n <ImageRenderer\n url={emoji.url}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style) => (\n <div style={style}>\n <Icon\n type={IconTypes.QUESTION}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n );\n })}\n </EmojiListItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemReactionMenu","_ref","className","message","userId","spaceFromTrigger","x","y","emojiContainer","toggleReaction","setSupposedHover","triggerRef","useRef","containerRef","isPendingMessage","isFailedMessage","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","EMOJI_MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","closeDropdown","EmojiListItems","parentRef","parentContainRef","getEmojiListAll","map","emoji","_message$reactions","_message$reactions$fi","_message$reactions$fi2","isReacted","reactions","filter","reaction","key","userIds","some","reactorId","ReactionButton","selected","dataSbId","ImageRenderer","url","placeHolder","style","QUESTION","ON_BACKGROUND_3"],"mappings":"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"}
@@ -1,59 +1,58 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('../tslib.es6-b8ba50ef.js');
4
3
  var React = require('react');
5
4
  var ui_Avatar = require('./Avatar.js');
6
5
  var ui_Icon = require('./Icon.js');
7
- var ui_Label = require('../index-5d5497c2.js');
8
- var LocalizationContext = require('../LocalizationContext-bddc5c2b.js');
9
- var index$1 = require('../index-8de8f28a.js');
10
- var index = require('../index-abbc8024.js');
11
- var index$2 = require('../index-40e4653a.js');
6
+ var ui_Label = require('../index-6cb0d040.js');
7
+ var LocalizationContext = require('../LocalizationContext-0e429c3d.js');
8
+ var index$1 = require('../index-869e9a94.js');
9
+ var index = require('../index-8affdde5.js');
10
+ var index$2 = require('../index-5231fde8.js');
12
11
  require('./ImageRenderer.js');
13
- require('../uuid-2475ef6c.js');
12
+ require('../uuid-12b01f73.js');
14
13
  require('prop-types');
15
- require('../stringSet-3e6167ef.js');
16
- require('../index-d14a43c4.js');
17
- require('../index-343cd84a.js');
14
+ require('../stringSet-106da549.js');
15
+ require('../index-016f7106.js');
16
+ require('../index-7d125728.js');
17
+ require('../_rollupPluginBabelHelpers-c89f311a.js');
18
+ require('../utils/message/getOutgoingMessageState.js');
18
19
 
19
20
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
21
 
21
22
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
23
 
23
- function getCreatedAt(_a) {
24
- var createdAt = _a.createdAt,
25
- locale = _a.locale,
26
- stringSet = _a.stringSet;
27
- var optionalParam = locale ? {
28
- locale: locale
24
+ function getCreatedAt(_ref) {
25
+ let {
26
+ createdAt,
27
+ locale,
28
+ stringSet
29
+ } = _ref;
30
+ const optionalParam = locale ? {
31
+ locale
29
32
  } : null;
30
-
31
33
  if (!createdAt) {
32
34
  return '';
33
35
  }
34
-
35
36
  if (index.isToday(createdAt)) {
36
37
  return index$1.format(createdAt, 'p', optionalParam);
37
38
  }
38
-
39
39
  if (index.isYesterday(createdAt)) {
40
40
  return (stringSet === null || stringSet === void 0 ? void 0 : stringSet.MESSAGE_STATUS__YESTERDAY) || 'Yesterday';
41
41
  }
42
-
43
- if (index$2.isThisYear(createdAt)) {
42
+ if (index.isThisYear(createdAt)) {
44
43
  return index$1.format(createdAt, 'MMM d', optionalParam);
45
44
  }
46
-
47
45
  return index$1.format(createdAt, 'yyyy/M/d', optionalParam);
48
46
  }
49
47
  function getIconOfFileType(message) {
50
- var url = message.url;
51
- var fileMessageUrl = url;
52
- var fileExtension = fileMessageUrl.match(/\.([^.]*?)(?=\?|#|$)/)[1];
53
-
48
+ const {
49
+ url
50
+ } = message;
51
+ const fileMessageUrl = url;
52
+ const fileExtension = fileMessageUrl.match(/\.([^.]*?)(?=\?|#|$)/)[1];
54
53
  if (/(jpg|jpeg|png)$/i.test(fileExtension)) {
55
54
  return ui_Icon.IconTypes.PHOTO;
56
- } else if (/mp4$/i.test(fileExtension)) {
55
+ } else if (/mp4$/i.test(fileExtension) || index$2.isVoiceMessage(message)) {
57
56
  return ui_Icon.IconTypes.PLAY;
58
57
  } else if (/mp3/i.test(fileExtension)) {
59
58
  return ui_Icon.IconTypes.FILE_AUDIO;
@@ -65,26 +64,32 @@ function getIconOfFileType(message) {
65
64
  }
66
65
 
67
66
  function MessageSearchFileItem(props) {
68
- var className = props.className,
69
- message = props.message,
70
- selected = props.selected,
71
- onClick = props.onClick;
72
- var createdAt = message.createdAt,
73
- url = message.url,
74
- name = message.name;
75
- var fileMessageUrl = url; // @ts-ignore
76
-
77
- var sender = message.sender || message._sender;
78
- var profileUrl = sender.profileUrl,
79
- nickname = sender.nickname;
80
-
81
- var _a = LocalizationContext.useLocalization(),
82
- stringSet = _a.stringSet,
83
- dateLocale = _a.dateLocale;
84
-
67
+ const {
68
+ className,
69
+ message,
70
+ selected,
71
+ onClick
72
+ } = props;
73
+ const {
74
+ createdAt,
75
+ url,
76
+ name
77
+ } = message;
78
+ // @ts-ignore
79
+ const sender = message.sender || message._sender;
80
+ const {
81
+ profileUrl,
82
+ nickname
83
+ } = sender;
84
+ const {
85
+ stringSet,
86
+ dateLocale
87
+ } = LocalizationContext.useLocalization();
88
+ const isVoiceMsg = index$2.isVoiceMessage(message);
89
+ const prettyFilename = isVoiceMsg ? stringSet.VOICE_MESSAGE : name || url;
85
90
  return /*#__PURE__*/React__default["default"].createElement("div", {
86
- className: tslib_es6.__spreadArray(tslib_es6.__spreadArray([], Array.isArray(className) ? className : [className], true), ['sendbird-message-search-file-item', selected ? 'sendbird-message-search-file-item--selected' : ''], false).join(' '),
87
- onClick: function (e) {
91
+ className: [...(Array.isArray(className) ? className : [className]), 'sendbird-message-search-file-item', selected ? 'sendbird-message-search-file-item--selected' : ''].join(' '),
92
+ onClick: e => {
88
93
  e.stopPropagation();
89
94
  onClick(message);
90
95
  }
@@ -104,8 +109,8 @@ function MessageSearchFileItem(props) {
104
109
  color: ui_Label.LabelColors.ONBACKGROUND_1
105
110
  }, nickname || stringSet.NO_NAME), /*#__PURE__*/React__default["default"].createElement("div", {
106
111
  className: "sendbird-message-search-file-item__right__content"
107
- }, /*#__PURE__*/React__default["default"].createElement("div", {
108
- className: "sendbird-message-search-file-item__right__content__type-icon"
112
+ }, !isVoiceMsg && /*#__PURE__*/React__default["default"].createElement("div", {
113
+ className: 'sendbird-message-search-file-item__right__content__type-icon'
109
114
  }, /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
110
115
  type: getIconOfFileType(message),
111
116
  fillColor: ui_Icon.IconColors.PRIMARY,
@@ -115,14 +120,14 @@ function MessageSearchFileItem(props) {
115
120
  className: "sendbird-message-search-file-item__right__content__url",
116
121
  type: ui_Label.LabelTypography.BODY_2,
117
122
  color: ui_Label.LabelColors.ONBACKGROUND_1
118
- }, name || fileMessageUrl))), /*#__PURE__*/React__default["default"].createElement(ui_Label.Label, {
123
+ }, prettyFilename))), /*#__PURE__*/React__default["default"].createElement(ui_Label.Label, {
119
124
  className: "sendbird-message-search-file-item__message-created-at",
120
125
  type: ui_Label.LabelTypography.CAPTION_3,
121
126
  color: ui_Label.LabelColors.ONBACKGROUND_2
122
127
  }, getCreatedAt({
123
- createdAt: createdAt,
128
+ createdAt,
124
129
  locale: dateLocale,
125
- stringSet: stringSet
130
+ stringSet
126
131
  })), /*#__PURE__*/React__default["default"].createElement("div", {
127
132
  className: "sendbird-message-search-file-item__right-footer"
128
133
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"MessageSearchFileItem.js","sources":["../../../src/ui/MessageSearchFileItem/utils.ts","../../../src/ui/MessageSearchFileItem/index.tsx"],"sourcesContent":["import type { FileMessage } from '@sendbird/chat/message';\nimport type { Locale } from 'date-fns';\nimport format from 'date-fns/format';\nimport isToday from 'date-fns/isToday';\nimport isThisYear from 'date-fns/isThisYear';\nimport isYesterday from 'date-fns/isYesterday';\nimport { IconTypes } from '../Icon';\n\nexport interface GetCreatedAtProps {\n createdAt: number;\n locale?: Locale;\n stringSet?: Record<string, string>;\n}\n\nexport function getCreatedAt({ createdAt, locale, stringSet }: GetCreatedAtProps): string {\n const optionalParam = locale ? { locale } : null;\n if (!createdAt) {\n return '';\n }\n if (isToday(createdAt)) {\n return format(createdAt, 'p', optionalParam);\n }\n if (isYesterday(createdAt)) {\n return stringSet?.MESSAGE_STATUS__YESTERDAY || 'Yesterday';\n }\n if (isThisYear(createdAt)) {\n return format(createdAt, 'MMM d', optionalParam);\n }\n return format(createdAt, 'yyyy/M/d', optionalParam);\n}\n\nexport function getIconOfFileType(message: FileMessage): string {\n const { url } = message;\n const fileMessageUrl = url;\n const fileExtension = (fileMessageUrl.match(/\\.([^.]*?)(?=\\?|#|$)/))[1];\n\n if (/(jpg|jpeg|png)$/i.test(fileExtension)) {\n return IconTypes.PHOTO;\n } else if (/mp4$/i.test(fileExtension)) {\n return IconTypes.PLAY;\n } else if (/mp3/i.test(fileExtension)) {\n return IconTypes.FILE_AUDIO;\n } else if (/gif/i.test(fileExtension)) {\n return IconTypes.GIF;\n } else {\n return IconTypes.FILE_DOCUMENT;\n }\n}\n\nexport function truncate(fullText: string, textLimit: number): string {\n if (fullText.length <= textLimit) return fullText;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = textLimit - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullText.substr(0, frontChars) + separator + fullText.substr(fullText.length - backChars);\n}\n","import './index.scss';\nimport React, { ReactElement } from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport { getCreatedAt, getIconOfFileType } from './utils';\n\ninterface Props {\n className?: string | Array<string>;\n message: FileMessage;\n selected?: boolean;\n onClick?: (message: FileMessage) => void;\n}\n\nexport default function MessageSearchFileItem(props: Props): ReactElement {\n const {\n className,\n message,\n selected,\n onClick,\n } = props;\n const { createdAt, url, name } = message;\n const fileMessageUrl = url;\n // @ts-ignore\n const sender = message.sender || message._sender;\n const { profileUrl, nickname } = sender;\n const { stringSet, dateLocale } = useLocalization();\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-message-search-file-item',\n selected ? 'sendbird-message-search-file-item--selected' : '',\n ].join(' ')}\n onClick={(e) => {\n e.stopPropagation();\n onClick(message);\n }}\n >\n <div className=\"sendbird-message-search-file-item__left\">\n <Avatar\n className=\"sendbird-message-search-file-item__left__sender-avatar\"\n src={profileUrl}\n alt=\"profile image\"\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n <div className=\"sendbird-message-search-file-item__right\">\n <Label\n className=\"sendbird-message-search-file-item__right__sender-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {nickname || stringSet.NO_NAME}\n </Label>\n <div className=\"sendbird-message-search-file-item__right__content\">\n <div className=\"sendbird-message-search-file-item__right__content__type-icon\">\n <Icon\n type={getIconOfFileType(message)}\n fillColor={IconColors.PRIMARY}\n width=\"18px\"\n height=\"18px\"\n />\n </div>\n <Label\n className=\"sendbird-message-search-file-item__right__content__url\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {name || fileMessageUrl}\n </Label>\n </div>\n </div>\n <Label\n className=\"sendbird-message-search-file-item__message-created-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getCreatedAt({ createdAt, locale: dateLocale, stringSet})}\n </Label>\n <div className=\"sendbird-message-search-file-item__right-footer\" />\n </div>\n );\n}\n"],"names":["getCreatedAt","_a","createdAt","locale","stringSet","optionalParam","isToday","format","isYesterday","MESSAGE_STATUS__YESTERDAY","isThisYear","getIconOfFileType","message","url","fileMessageUrl","fileExtension","match","test","IconTypes","PHOTO","PLAY","FILE_AUDIO","GIF","FILE_DOCUMENT","MessageSearchFileItem","props","className","selected","onClick","name","sender","_sender","profileUrl","nickname","useLocalization","dateLocale","React","__spreadArray","Array","isArray","join","e","stopPropagation","Avatar","Label","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","NO_NAME","Icon","IconColors","PRIMARY","BODY_2","CAPTION_3","ONBACKGROUND_2"],"mappings":"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"}
1
+ {"version":3,"file":"MessageSearchFileItem.js","sources":["../../../src/ui/MessageSearchFileItem/utils.ts","../../../src/ui/MessageSearchFileItem/index.tsx"],"sourcesContent":["import type { FileMessage } from '@sendbird/chat/message';\nimport type { Locale } from 'date-fns';\nimport format from 'date-fns/format';\nimport isToday from 'date-fns/isToday';\nimport isThisYear from 'date-fns/isThisYear';\nimport isYesterday from 'date-fns/isYesterday';\nimport { IconTypes } from '../Icon';\nimport { isVoiceMessage } from '../../utils';\n\nexport interface GetCreatedAtProps {\n createdAt: number;\n locale?: Locale;\n stringSet?: Record<string, string>;\n}\n\nexport function getCreatedAt({ createdAt, locale, stringSet }: GetCreatedAtProps): string {\n const optionalParam = locale ? { locale } : null;\n if (!createdAt) {\n return '';\n }\n if (isToday(createdAt)) {\n return format(createdAt, 'p', optionalParam);\n }\n if (isYesterday(createdAt)) {\n return stringSet?.MESSAGE_STATUS__YESTERDAY || 'Yesterday';\n }\n if (isThisYear(createdAt)) {\n return format(createdAt, 'MMM d', optionalParam);\n }\n return format(createdAt, 'yyyy/M/d', optionalParam);\n}\n\nexport function getIconOfFileType(message: FileMessage): string {\n const { url } = message;\n const fileMessageUrl = url;\n const fileExtension = (fileMessageUrl.match(/\\.([^.]*?)(?=\\?|#|$)/))[1];\n\n if (/(jpg|jpeg|png)$/i.test(fileExtension)) {\n return IconTypes.PHOTO;\n } else if (/mp4$/i.test(fileExtension) || isVoiceMessage(message)) {\n return IconTypes.PLAY;\n } else if (/mp3/i.test(fileExtension)) {\n return IconTypes.FILE_AUDIO;\n } else if (/gif/i.test(fileExtension)) {\n return IconTypes.GIF;\n } else {\n return IconTypes.FILE_DOCUMENT;\n }\n}\n\nexport function truncate(fullText: string, textLimit: number): string {\n if (fullText.length <= textLimit) return fullText;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = textLimit - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullText.substr(0, frontChars) + separator + fullText.substr(fullText.length - backChars);\n}\n","import './index.scss';\nimport React, { ReactElement } from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport { getCreatedAt, getIconOfFileType } from './utils';\nimport { isVoiceMessage } from '../../utils';\n\ninterface Props {\n className?: string | Array<string>;\n message: FileMessage;\n selected?: boolean;\n onClick?: (message: FileMessage) => void;\n}\n\nexport default function MessageSearchFileItem(props: Props): ReactElement {\n const {\n className,\n message,\n selected,\n onClick,\n } = props;\n const { createdAt, url, name } = message;\n // @ts-ignore\n const sender = message.sender || message._sender;\n const { profileUrl, nickname } = sender;\n const { stringSet, dateLocale } = useLocalization();\n const isVoiceMsg = isVoiceMessage(message);\n const prettyFilename = isVoiceMsg ? stringSet.VOICE_MESSAGE : (name || url);\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-message-search-file-item',\n selected ? 'sendbird-message-search-file-item--selected' : '',\n ].join(' ')}\n onClick={(e) => {\n e.stopPropagation();\n onClick(message);\n }}\n >\n <div className=\"sendbird-message-search-file-item__left\">\n <Avatar\n className=\"sendbird-message-search-file-item__left__sender-avatar\"\n src={profileUrl}\n alt=\"profile image\"\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n <div className=\"sendbird-message-search-file-item__right\">\n <Label\n className=\"sendbird-message-search-file-item__right__sender-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {nickname || stringSet.NO_NAME}\n </Label>\n <div className=\"sendbird-message-search-file-item__right__content\">\n {!isVoiceMsg && (\n <div className={'sendbird-message-search-file-item__right__content__type-icon'}>\n <Icon\n type={getIconOfFileType(message)}\n fillColor={IconColors.PRIMARY}\n width=\"18px\"\n height=\"18px\"\n />\n </div>\n )}\n <Label\n className=\"sendbird-message-search-file-item__right__content__url\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {prettyFilename}\n </Label>\n </div>\n </div>\n <Label\n className=\"sendbird-message-search-file-item__message-created-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getCreatedAt({ createdAt, locale: dateLocale, stringSet })}\n </Label>\n <div className=\"sendbird-message-search-file-item__right-footer\" />\n </div>\n );\n}\n"],"names":["getCreatedAt","_ref","createdAt","locale","stringSet","optionalParam","isToday","format","isYesterday","MESSAGE_STATUS__YESTERDAY","isThisYear","getIconOfFileType","message","url","fileMessageUrl","fileExtension","match","test","IconTypes","PHOTO","isVoiceMessage","PLAY","FILE_AUDIO","GIF","FILE_DOCUMENT","MessageSearchFileItem","props","className","selected","onClick","name","sender","_sender","profileUrl","nickname","dateLocale","useLocalization","isVoiceMsg","prettyFilename","VOICE_MESSAGE","React","createElement","Array","isArray","join","e","stopPropagation","Avatar","src","alt","width","height","Label","type","LabelTypography","SUBTITLE_2","color","LabelColors","ONBACKGROUND_1","NO_NAME","Icon","fillColor","IconColors","PRIMARY","BODY_2","CAPTION_3","ONBACKGROUND_2"],"mappings":"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"}