@sendbird/uikit-react 3.4.7 → 3.4.8-rc.1

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 (802) hide show
  1. package/App.js +46 -46
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +26 -0
  4. package/Channel/components/ChannelHeader.js +18 -22
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +43 -43
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +14 -17
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +4 -4
  11. package/Channel/components/FrozenNotification.js.map +1 -1
  12. package/Channel/components/Message.js +38 -38
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageInput.js +30 -33
  15. package/Channel/components/MessageInput.js.map +1 -1
  16. package/Channel/components/MessageList.js +51 -44
  17. package/Channel/components/MessageList.js.map +1 -1
  18. package/Channel/components/RemoveMessageModal.js +16 -20
  19. package/Channel/components/RemoveMessageModal.js.map +1 -1
  20. package/Channel/components/SuggestedMentionList.js +18 -24
  21. package/Channel/components/SuggestedMentionList.js.map +1 -1
  22. package/Channel/components/TypingIndicator.js +14 -20
  23. package/Channel/components/TypingIndicator.js.map +1 -1
  24. package/Channel/components/UnreadCount.js +4 -4
  25. package/Channel/components/UnreadCount.js.map +1 -1
  26. package/Channel/context.js +11 -19
  27. package/Channel/context.js.map +1 -1
  28. package/Channel.js +43 -43
  29. package/Channel.js.map +1 -1
  30. package/ChannelList/components/AddChannel.js +14 -14
  31. package/ChannelList/components/AddChannel.js.map +1 -1
  32. package/ChannelList/components/ChannelListHeader.js +8 -8
  33. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  34. package/ChannelList/components/ChannelListUI.js +29 -30
  35. package/ChannelList/components/ChannelListUI.js.map +1 -1
  36. package/ChannelList/components/ChannelPreview.js +25 -28
  37. package/ChannelList/components/ChannelPreview.js.map +1 -1
  38. package/ChannelList/components/ChannelPreviewAction.js +17 -15
  39. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  40. package/ChannelList/context.js +7 -7
  41. package/ChannelList.js +29 -30
  42. package/ChannelList.js.map +1 -1
  43. package/{ChannelListProvider-8be91a05.js → ChannelListProvider-e8ad86b6.js} +15 -19
  44. package/ChannelListProvider-e8ad86b6.js.map +1 -0
  45. package/{ChannelProvider-d643e6d9.js → ChannelProvider-6de56b36.js} +13 -97
  46. package/ChannelProvider-6de56b36.js.map +1 -0
  47. package/ChannelSettings/components/ChannelProfile.js +11 -11
  48. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  49. package/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  50. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  51. package/ChannelSettings/components/EditDetailsModal.js +11 -11
  52. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  53. package/ChannelSettings/components/LeaveChannel.js +11 -11
  54. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  55. package/ChannelSettings/components/ModerationPanel.js +14 -14
  56. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  57. package/ChannelSettings/components/UserListItem.js +10 -10
  58. package/ChannelSettings/components/UserListItem.js.map +1 -1
  59. package/ChannelSettings/components/UserPanel.js +13 -13
  60. package/ChannelSettings/components/UserPanel.js.map +1 -1
  61. package/ChannelSettings/context.js +3 -3
  62. package/ChannelSettings/context.js.map +1 -1
  63. package/ChannelSettings.js +18 -18
  64. package/ChannelSettings.js.map +1 -1
  65. package/CreateChannel/components/CreateChannelUI.js +13 -13
  66. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  67. package/CreateChannel/components/InviteUsers.js +14 -14
  68. package/CreateChannel/components/InviteUsers.js.map +1 -1
  69. package/CreateChannel/components/SelectChannelType.js +10 -10
  70. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  71. package/CreateChannel/context.js +4 -4
  72. package/CreateChannel.js +13 -13
  73. package/CreateChannel.js.map +1 -1
  74. package/{CreateChannelProvider-5674e81b.js → CreateChannelProvider-64578d2a.js} +1 -1
  75. package/{CreateChannelProvider-5674e81b.js.map → CreateChannelProvider-64578d2a.js.map} +1 -1
  76. package/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  77. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  78. package/CreateOpenChannel/context.js +1 -1
  79. package/CreateOpenChannel/context.js.map +1 -1
  80. package/CreateOpenChannel.js +9 -9
  81. package/CreateOpenChannel.js.map +1 -1
  82. package/EditUserProfile/components/EditUserProfileUI.js +12 -12
  83. package/EditUserProfile/context.js.map +1 -1
  84. package/EditUserProfile.js +12 -12
  85. package/EditUserProfile.js.map +1 -1
  86. package/{LocalizationContext-ad70364c.js → LocalizationContext-7ae12588.js} +3 -3
  87. package/{LocalizationContext-ad70364c.js.map → LocalizationContext-7ae12588.js.map} +1 -1
  88. package/{MediaQueryContext-4e555ef5.js → MediaQueryContext-05d4db73.js} +1 -1
  89. package/MediaQueryContext-05d4db73.js.map +1 -0
  90. package/{MemberList-24b818f8.js → MemberList-9634fee8.js} +5 -5
  91. package/MemberList-9634fee8.js.map +1 -0
  92. package/Message/context.js.map +1 -1
  93. package/MessageSearch/components/MessageSearchUI.js +11 -11
  94. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  95. package/MessageSearch/context.js +1 -1
  96. package/MessageSearch/context.js.map +1 -1
  97. package/MessageSearch.js +11 -11
  98. package/MessageSearch.js.map +1 -1
  99. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  100. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  101. package/OpenChannel/components/OpenChannelHeader.js +12 -12
  102. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  103. package/OpenChannel/components/OpenChannelInput.js +18 -18
  104. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  105. package/OpenChannel/components/OpenChannelMessage.js +27 -32
  106. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  107. package/OpenChannel/components/OpenChannelMessageList.js +31 -31
  108. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  109. package/OpenChannel/components/OpenChannelUI.js +31 -31
  110. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  111. package/OpenChannel/context.js +8 -8
  112. package/OpenChannel.js +31 -31
  113. package/OpenChannel.js.map +1 -1
  114. package/OpenChannelList/components/OpenChannelListUI.js +13 -13
  115. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  116. package/OpenChannelList/components/OpenChannelPreview.js +3 -3
  117. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  118. package/OpenChannelList/context.js +3 -3
  119. package/OpenChannelList.js +13 -13
  120. package/OpenChannelList.js.map +1 -1
  121. package/{OpenChannelListProvider-27822936.js → OpenChannelListProvider-f6a88782.js} +3 -3
  122. package/{OpenChannelListProvider-27822936.js.map → OpenChannelListProvider-f6a88782.js.map} +1 -1
  123. package/{OpenChannelProvider-5148963b.js → OpenChannelProvider-f1a4b4fa.js} +9 -7
  124. package/OpenChannelProvider-f1a4b4fa.js.map +1 -0
  125. package/OpenChannelSettings/components/EditDetailsModal.js +13 -13
  126. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  127. package/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  128. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  129. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  130. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  131. package/OpenChannelSettings/components/OperatorUI.js +16 -16
  132. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  133. package/OpenChannelSettings/components/ParticipantUI.js +14 -14
  134. package/OpenChannelSettings/context.js +3 -3
  135. package/OpenChannelSettings/context.js.map +1 -1
  136. package/OpenChannelSettings.js +17 -17
  137. package/OpenChannelSettings.js.map +1 -1
  138. package/README.md +28 -8
  139. package/{RemoveMessageModal-54d1b0a4.js → RemoveMessageModal-2b9bdeed.js} +3 -3
  140. package/{RemoveMessageModal-54d1b0a4.js.map → RemoveMessageModal-2b9bdeed.js.map} +1 -1
  141. package/SendbirdProvider.js +13 -13
  142. package/SendbirdProvider.js.map +1 -1
  143. package/Thread/components/ParentMessageInfo.js +32 -32
  144. package/Thread/components/ParentMessageInfo.js.map +1 -1
  145. package/Thread/components/ParentMessageInfoItem.js +18 -18
  146. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  147. package/Thread/components/ThreadHeader.js +6 -6
  148. package/Thread/components/ThreadHeader.js.map +1 -1
  149. package/Thread/components/ThreadList.js +35 -35
  150. package/Thread/components/ThreadList.js.map +1 -1
  151. package/Thread/components/ThreadListItem.js +34 -34
  152. package/Thread/components/ThreadListItem.js.map +1 -1
  153. package/Thread/components/ThreadMessageInput.js +28 -31
  154. package/Thread/components/ThreadMessageInput.js.map +1 -1
  155. package/Thread/components/ThreadUI.js +36 -36
  156. package/Thread/components/ThreadUI.js.map +1 -1
  157. package/Thread/context.js +8 -8
  158. package/Thread.js +36 -36
  159. package/Thread.js.map +1 -1
  160. package/{ThreadProvider-96a5e77e.js → ThreadProvider-5a216f9d.js} +7 -7
  161. package/ThreadProvider-5a216f9d.js.map +1 -0
  162. package/{UserProfileContext-b68f33fc.js → UserProfileContext-e8124c47.js} +1 -1
  163. package/{UserProfileContext-b68f33fc.js.map → UserProfileContext-e8124c47.js.map} +1 -1
  164. package/{VoiceMessageInputWrapper-07631f8d.js → VoiceMessageInputWrapper-ce56172a.js} +8 -8
  165. package/VoiceMessageInputWrapper-ce56172a.js.map +1 -0
  166. package/VoicePlayer/context.js +3 -3
  167. package/VoicePlayer/useVoicePlayer.js +6 -6
  168. package/VoicePlayer/useVoicePlayer.js.map +1 -1
  169. package/VoiceRecorder/context.js +6 -6
  170. package/VoiceRecorder/context.js.map +1 -1
  171. package/VoiceRecorder/useVoiceRecorder.js +3 -2
  172. package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  173. package/{WebAudioUtils-3fb13b51.js → WebAudioUtils-6229e96a.js} +1 -1
  174. package/{WebAudioUtils-3fb13b51.js.map → WebAudioUtils-6229e96a.js.map} +1 -1
  175. package/{_rollupPluginBabelHelpers-5d0c716a.js → _rollupPluginBabelHelpers-96062e23.js} +1 -1
  176. package/_rollupPluginBabelHelpers-96062e23.js.map +1 -0
  177. package/{actionTypes-b270327e.js → actionTypes-423a1fac.js} +1 -1
  178. package/{actionTypes-b270327e.js.map → actionTypes-423a1fac.js.map} +1 -1
  179. package/cjs/App.js +46 -46
  180. package/cjs/App.js.map +1 -1
  181. package/cjs/Channel/components/ChannelHeader.js +18 -22
  182. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  183. package/cjs/Channel/components/ChannelUI.js +43 -43
  184. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  185. package/cjs/Channel/components/FileViewer.js +14 -17
  186. package/cjs/Channel/components/FileViewer.js.map +1 -1
  187. package/cjs/Channel/components/FrozenNotification.js +4 -4
  188. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  189. package/cjs/Channel/components/Message.js +38 -38
  190. package/cjs/Channel/components/Message.js.map +1 -1
  191. package/cjs/Channel/components/MessageInput.js +30 -33
  192. package/cjs/Channel/components/MessageInput.js.map +1 -1
  193. package/cjs/Channel/components/MessageList.js +51 -44
  194. package/cjs/Channel/components/MessageList.js.map +1 -1
  195. package/cjs/Channel/components/RemoveMessageModal.js +16 -20
  196. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  197. package/cjs/Channel/components/SuggestedMentionList.js +18 -24
  198. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  199. package/cjs/Channel/components/TypingIndicator.js +14 -20
  200. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  201. package/cjs/Channel/components/UnreadCount.js +4 -4
  202. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  203. package/cjs/Channel/context.js +11 -19
  204. package/cjs/Channel/context.js.map +1 -1
  205. package/cjs/Channel.js +43 -43
  206. package/cjs/Channel.js.map +1 -1
  207. package/cjs/ChannelList/components/AddChannel.js +14 -14
  208. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  209. package/cjs/ChannelList/components/ChannelListHeader.js +8 -8
  210. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  211. package/cjs/ChannelList/components/ChannelListUI.js +29 -30
  212. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  213. package/cjs/ChannelList/components/ChannelPreview.js +25 -28
  214. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  215. package/cjs/ChannelList/components/ChannelPreviewAction.js +17 -15
  216. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  217. package/cjs/ChannelList/context.js +7 -7
  218. package/cjs/ChannelList.js +29 -30
  219. package/cjs/ChannelList.js.map +1 -1
  220. package/cjs/{ChannelListProvider-6b61a484.js → ChannelListProvider-2bcdc671.js} +15 -19
  221. package/cjs/ChannelListProvider-2bcdc671.js.map +1 -0
  222. package/cjs/{ChannelProvider-12a12f31.js → ChannelProvider-2a01302b.js} +12 -96
  223. package/cjs/ChannelProvider-2a01302b.js.map +1 -0
  224. package/cjs/ChannelSettings/components/ChannelProfile.js +11 -11
  225. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  226. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  227. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  228. package/cjs/ChannelSettings/components/EditDetailsModal.js +11 -11
  229. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  230. package/cjs/ChannelSettings/components/LeaveChannel.js +11 -11
  231. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  232. package/cjs/ChannelSettings/components/ModerationPanel.js +14 -14
  233. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  234. package/cjs/ChannelSettings/components/UserListItem.js +10 -10
  235. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  236. package/cjs/ChannelSettings/components/UserPanel.js +13 -13
  237. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  238. package/cjs/ChannelSettings/context.js +3 -3
  239. package/cjs/ChannelSettings/context.js.map +1 -1
  240. package/cjs/ChannelSettings.js +18 -18
  241. package/cjs/ChannelSettings.js.map +1 -1
  242. package/cjs/CreateChannel/components/CreateChannelUI.js +13 -13
  243. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  244. package/cjs/CreateChannel/components/InviteUsers.js +14 -14
  245. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  246. package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
  247. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  248. package/cjs/CreateChannel/context.js +4 -4
  249. package/cjs/CreateChannel.js +13 -13
  250. package/cjs/CreateChannel.js.map +1 -1
  251. package/cjs/{CreateChannelProvider-2beb2415.js → CreateChannelProvider-8f7d9505.js} +1 -1
  252. package/cjs/{CreateChannelProvider-2beb2415.js.map → CreateChannelProvider-8f7d9505.js.map} +1 -1
  253. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  254. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  255. package/cjs/CreateOpenChannel/context.js +1 -1
  256. package/cjs/CreateOpenChannel/context.js.map +1 -1
  257. package/cjs/CreateOpenChannel.js +9 -9
  258. package/cjs/CreateOpenChannel.js.map +1 -1
  259. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -12
  260. package/cjs/EditUserProfile/context.js.map +1 -1
  261. package/cjs/EditUserProfile.js +12 -12
  262. package/cjs/EditUserProfile.js.map +1 -1
  263. package/cjs/{LocalizationContext-30772f4a.js → LocalizationContext-975ffc10.js} +3 -3
  264. package/cjs/{LocalizationContext-30772f4a.js.map → LocalizationContext-975ffc10.js.map} +1 -1
  265. package/cjs/{MediaQueryContext-3b09499c.js → MediaQueryContext-302f1c4f.js} +1 -1
  266. package/cjs/MediaQueryContext-302f1c4f.js.map +1 -0
  267. package/cjs/{MemberList-f0c4e234.js → MemberList-0c0c303c.js} +5 -5
  268. package/cjs/MemberList-0c0c303c.js.map +1 -0
  269. package/cjs/Message/context.js.map +1 -1
  270. package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
  271. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  272. package/cjs/MessageSearch/context.js +1 -1
  273. package/cjs/MessageSearch/context.js.map +1 -1
  274. package/cjs/MessageSearch.js +11 -11
  275. package/cjs/MessageSearch.js.map +1 -1
  276. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  277. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  278. package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
  279. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  280. package/cjs/OpenChannel/components/OpenChannelInput.js +18 -18
  281. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  282. package/cjs/OpenChannel/components/OpenChannelMessage.js +27 -32
  283. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  284. package/cjs/OpenChannel/components/OpenChannelMessageList.js +31 -31
  285. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  286. package/cjs/OpenChannel/components/OpenChannelUI.js +31 -31
  287. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  288. package/cjs/OpenChannel/context.js +8 -8
  289. package/cjs/OpenChannel.js +31 -31
  290. package/cjs/OpenChannel.js.map +1 -1
  291. package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
  292. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  293. package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
  294. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  295. package/cjs/OpenChannelList/context.js +3 -3
  296. package/cjs/OpenChannelList.js +13 -13
  297. package/cjs/OpenChannelList.js.map +1 -1
  298. package/cjs/{OpenChannelListProvider-d48bd733.js → OpenChannelListProvider-ef3655ce.js} +3 -3
  299. package/cjs/{OpenChannelListProvider-d48bd733.js.map → OpenChannelListProvider-ef3655ce.js.map} +1 -1
  300. package/cjs/{OpenChannelProvider-56846c0c.js → OpenChannelProvider-c500275a.js} +9 -7
  301. package/cjs/OpenChannelProvider-c500275a.js.map +1 -0
  302. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +13 -13
  303. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  304. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  305. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  306. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  307. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  308. package/cjs/OpenChannelSettings/components/OperatorUI.js +16 -16
  309. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  310. package/cjs/OpenChannelSettings/components/ParticipantUI.js +14 -14
  311. package/cjs/OpenChannelSettings/context.js +3 -3
  312. package/cjs/OpenChannelSettings/context.js.map +1 -1
  313. package/cjs/OpenChannelSettings.js +17 -17
  314. package/cjs/OpenChannelSettings.js.map +1 -1
  315. package/cjs/{RemoveMessageModal-e0480b7c.js → RemoveMessageModal-f8277edf.js} +3 -3
  316. package/cjs/{RemoveMessageModal-e0480b7c.js.map → RemoveMessageModal-f8277edf.js.map} +1 -1
  317. package/cjs/SendbirdProvider.js +13 -13
  318. package/cjs/SendbirdProvider.js.map +1 -1
  319. package/cjs/Thread/components/ParentMessageInfo.js +32 -32
  320. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  321. package/cjs/Thread/components/ParentMessageInfoItem.js +18 -18
  322. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  323. package/cjs/Thread/components/ThreadHeader.js +6 -6
  324. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  325. package/cjs/Thread/components/ThreadList.js +35 -35
  326. package/cjs/Thread/components/ThreadList.js.map +1 -1
  327. package/cjs/Thread/components/ThreadListItem.js +34 -34
  328. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  329. package/cjs/Thread/components/ThreadMessageInput.js +28 -31
  330. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  331. package/cjs/Thread/components/ThreadUI.js +36 -36
  332. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  333. package/cjs/Thread/context.js +8 -8
  334. package/cjs/Thread.js +36 -36
  335. package/cjs/Thread.js.map +1 -1
  336. package/cjs/{ThreadProvider-1ebd5bc0.js → ThreadProvider-e8f49239.js} +7 -7
  337. package/cjs/ThreadProvider-e8f49239.js.map +1 -0
  338. package/cjs/{UserProfileContext-eb5a10d6.js → UserProfileContext-8b19c6c3.js} +1 -1
  339. package/cjs/{UserProfileContext-eb5a10d6.js.map → UserProfileContext-8b19c6c3.js.map} +1 -1
  340. package/cjs/{VoiceMessageInputWrapper-044427b2.js → VoiceMessageInputWrapper-5dfaba8f.js} +8 -8
  341. package/cjs/VoiceMessageInputWrapper-5dfaba8f.js.map +1 -0
  342. package/cjs/VoicePlayer/context.js +3 -3
  343. package/cjs/VoicePlayer/useVoicePlayer.js +6 -6
  344. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
  345. package/cjs/VoiceRecorder/context.js +6 -6
  346. package/cjs/VoiceRecorder/context.js.map +1 -1
  347. package/cjs/VoiceRecorder/useVoiceRecorder.js +3 -2
  348. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  349. package/cjs/{WebAudioUtils-57d7e366.js → WebAudioUtils-2bd92ed1.js} +1 -1
  350. package/cjs/{WebAudioUtils-57d7e366.js.map → WebAudioUtils-2bd92ed1.js.map} +1 -1
  351. package/cjs/{_rollupPluginBabelHelpers-4b6406c2.js → _rollupPluginBabelHelpers-596e2aef.js} +1 -1
  352. package/cjs/_rollupPluginBabelHelpers-596e2aef.js.map +1 -0
  353. package/cjs/{actionTypes-f66e00c2.js → actionTypes-29997777.js} +1 -1
  354. package/cjs/{actionTypes-f66e00c2.js.map → actionTypes-29997777.js.map} +1 -1
  355. package/cjs/{color-4904d01e.js → color-ac868fc0.js} +1 -1
  356. package/cjs/{color-4904d01e.js.map → color-ac868fc0.js.map} +1 -1
  357. package/cjs/{compareIds-de8d3b96.js → compareIds-3c9472b4.js} +2 -2
  358. package/cjs/compareIds-3c9472b4.js.map +1 -0
  359. package/cjs/{const-97ad0ae2.js → const-7b049118.js} +1 -1
  360. package/cjs/{const-97ad0ae2.js.map → const-7b049118.js.map} +1 -1
  361. package/cjs/{const-bba9510b.js → const-7d011d30.js} +1 -1
  362. package/cjs/{const-bba9510b.js.map → const-7d011d30.js.map} +1 -1
  363. package/cjs/{consts-6acebb51.js → consts-6cf0ec85.js} +1 -1
  364. package/cjs/{consts-6acebb51.js.map → consts-6cf0ec85.js.map} +1 -1
  365. package/cjs/{consts-cafff484.js → consts-9cbf147c.js} +1 -1
  366. package/cjs/{consts-cafff484.js.map → consts-9cbf147c.js.map} +1 -1
  367. package/cjs/{consts-a235ce0a.js → consts-d9ff7fec.js} +1 -1
  368. package/cjs/{consts-a235ce0a.js.map → consts-d9ff7fec.js.map} +1 -1
  369. package/cjs/{consts-cb169c09.js → consts-df222988.js} +1 -1
  370. package/cjs/{consts-cb169c09.js.map → consts-df222988.js.map} +1 -1
  371. package/cjs/{context-e6181d31.js → context-1d31dbec.js} +2 -2
  372. package/cjs/{context-e6181d31.js.map → context-1d31dbec.js.map} +1 -1
  373. package/cjs/dist/index.css +164 -163
  374. package/cjs/dist/index.css.map +1 -1
  375. package/cjs/{index-df637378.js → index-0b24e87b.js} +5 -5
  376. package/cjs/index-0b24e87b.js.map +1 -0
  377. package/cjs/{index-0514e373.js → index-0d2fba98.js} +7 -6
  378. package/cjs/index-0d2fba98.js.map +1 -0
  379. package/cjs/{index-43612435.js → index-1a324d07.js} +4 -4
  380. package/cjs/{index-43612435.js.map → index-1a324d07.js.map} +1 -1
  381. package/cjs/{index-34cc612a.js → index-263d9317.js} +5 -4
  382. package/cjs/index-263d9317.js.map +1 -0
  383. package/cjs/{index-d2bd7dc5.js → index-334b239a.js} +2 -2
  384. package/cjs/index-334b239a.js.map +1 -0
  385. package/cjs/{index-2a770f35.js → index-46b412dc.js} +37 -7
  386. package/cjs/index-46b412dc.js.map +1 -0
  387. package/cjs/{index-9f6f371b.js → index-50655872.js} +6 -6
  388. package/cjs/index-50655872.js.map +1 -0
  389. package/cjs/{index-4de6caed.js → index-551be60f.js} +16 -8
  390. package/cjs/index-551be60f.js.map +1 -0
  391. package/cjs/{index-986b886d.js → index-7ffe6f27.js} +12 -3
  392. package/cjs/index-7ffe6f27.js.map +1 -0
  393. package/cjs/{index-223d453c.js → index-8d2c0bda.js} +4 -2
  394. package/cjs/index-8d2c0bda.js.map +1 -0
  395. package/cjs/{index-b2886b93.js → index-8fc4c8ed.js} +12 -12
  396. package/cjs/index-8fc4c8ed.js.map +1 -0
  397. package/cjs/{index-ca85a10a.js → index-9dd778ed.js} +193 -56
  398. package/cjs/index-9dd778ed.js.map +1 -0
  399. package/cjs/{index-80b17a7f.js → index-bb91f996.js} +2 -2
  400. package/cjs/{index-80b17a7f.js.map → index-bb91f996.js.map} +1 -1
  401. package/cjs/{index-5fd03280.js → index-e36db682.js} +1 -1
  402. package/cjs/index-e36db682.js.map +1 -0
  403. package/cjs/{index-6d3fe482.js → index-f0938824.js} +30 -10
  404. package/cjs/index-f0938824.js.map +1 -0
  405. package/cjs/{index-2c8ca1d6.js → index-f4cf9eb5.js} +3 -3
  406. package/cjs/{index-2c8ca1d6.js.map → index-f4cf9eb5.js.map} +1 -1
  407. package/cjs/index.js +49 -49
  408. package/cjs/{index.module-f4ff21b1.js → index.module-2d344ee2.js} +1 -1
  409. package/cjs/{index.module-f4ff21b1.js.map → index.module-2d344ee2.js.map} +1 -1
  410. package/cjs/lame.all.js.map +1 -1
  411. package/cjs/sendbirdSelectors.js +3 -3
  412. package/cjs/sendbirdSelectors.js.map +1 -1
  413. package/cjs/{stringSet-2b481a03.js → stringSet-ac04b7c1.js} +1 -1
  414. package/cjs/{stringSet-2b481a03.js.map → stringSet-ac04b7c1.js.map} +1 -1
  415. package/cjs/{tokenize-07747f4c.js → tokenize-10b9c2ca.js} +27 -7
  416. package/cjs/tokenize-10b9c2ca.js.map +1 -0
  417. package/cjs/{topics-f9cf559a.js → topics-89c25bd7.js} +1 -1
  418. package/cjs/{topics-f9cf559a.js.map → topics-89c25bd7.js.map} +1 -1
  419. package/cjs/{types-3dcd9651.js → types-53455550.js} +1 -1
  420. package/cjs/types-53455550.js.map +1 -0
  421. package/cjs/ui/Accordion.js +2 -2
  422. package/cjs/ui/Accordion.js.map +1 -1
  423. package/cjs/ui/AccordionGroup.js +2 -2
  424. package/cjs/ui/AccordionGroup.js.map +1 -1
  425. package/cjs/ui/AdminMessage.js +2 -2
  426. package/cjs/ui/AdminMessage.js.map +1 -1
  427. package/cjs/ui/Avatar.js +1 -1
  428. package/cjs/ui/Avatar.js.map +1 -1
  429. package/cjs/ui/Badge.js +4 -4
  430. package/cjs/ui/Badge.js.map +1 -1
  431. package/cjs/ui/BottomSheet.js +1 -1
  432. package/cjs/ui/BottomSheet.js.map +1 -1
  433. package/cjs/ui/Button.js +2 -2
  434. package/cjs/ui/Button.js.map +1 -1
  435. package/cjs/ui/ChannelAvatar.js +2 -2
  436. package/cjs/ui/ChannelAvatar.js.map +1 -1
  437. package/cjs/ui/Checkbox.js.map +1 -1
  438. package/cjs/ui/ConnectionStatus.js +4 -4
  439. package/cjs/ui/ConnectionStatus.js.map +1 -1
  440. package/cjs/ui/ContextMenu.js +5 -5
  441. package/cjs/ui/ContextMenu.js.map +1 -1
  442. package/cjs/ui/DateSeparator.js +3 -3
  443. package/cjs/ui/DateSeparator.js.map +1 -1
  444. package/cjs/ui/EmojiReactions.js +7 -7
  445. package/cjs/ui/EmojiReactions.js.map +1 -1
  446. package/cjs/ui/FileMessageItemBody.js +6 -6
  447. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  448. package/cjs/ui/FileViewer.js +8 -8
  449. package/cjs/ui/FileViewer.js.map +1 -1
  450. package/cjs/ui/Icon.js +2 -0
  451. package/cjs/ui/Icon.js.map +1 -1
  452. package/cjs/ui/IconButton.js +1 -1
  453. package/cjs/ui/IconButton.js.map +1 -1
  454. package/cjs/ui/ImageRenderer.js.map +1 -1
  455. package/cjs/ui/Input.js +2 -2
  456. package/cjs/ui/Input.js.map +1 -1
  457. package/cjs/ui/Label.js +2 -2
  458. package/cjs/ui/LinkLabel.js +2 -2
  459. package/cjs/ui/LinkLabel.js.map +1 -1
  460. package/cjs/ui/Loader.js.map +1 -1
  461. package/cjs/ui/MentionLabel.js +10 -10
  462. package/cjs/ui/MentionLabel.js.map +1 -1
  463. package/cjs/ui/MentionUserLabel.js +1 -1
  464. package/cjs/ui/MentionUserLabel.js.map +1 -1
  465. package/cjs/ui/MessageContent.js +34 -34
  466. package/cjs/ui/MessageContent.js.map +1 -1
  467. package/cjs/ui/MessageInput.js +63 -37
  468. package/cjs/ui/MessageInput.js.map +1 -1
  469. package/cjs/ui/MessageItemMenu.js +8 -8
  470. package/cjs/ui/MessageItemMenu.js.map +1 -1
  471. package/cjs/ui/MessageItemReactionMenu.js +5 -5
  472. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  473. package/cjs/ui/MessageSearchFileItem.js +10 -10
  474. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  475. package/cjs/ui/MessageSearchItem.js +8 -8
  476. package/cjs/ui/MessageSearchItem.js.map +1 -1
  477. package/cjs/ui/MessageStatus.js +10 -10
  478. package/cjs/ui/Modal.js +7 -7
  479. package/cjs/ui/Modal.js.map +1 -1
  480. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  481. package/cjs/ui/OGMessageItemBody.js +14 -14
  482. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  483. package/cjs/ui/OpenChannelAdminMessage.js +2 -2
  484. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  485. package/cjs/ui/OpenChannelAvatar.js +5 -5
  486. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  487. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  488. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  489. package/cjs/ui/OpenchannelFileMessage.js +15 -15
  490. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  491. package/cjs/ui/OpenchannelOGMessage.js +18 -18
  492. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  493. package/cjs/ui/OpenchannelThumbnailMessage.js +16 -16
  494. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  495. package/cjs/ui/OpenchannelUserMessage.js +15 -15
  496. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  497. package/cjs/ui/PlaceHolder.js +5 -5
  498. package/cjs/ui/PlaybackTime.js +2 -2
  499. package/cjs/ui/PlaybackTime.js.map +1 -1
  500. package/cjs/ui/ProgressBar.js +1 -0
  501. package/cjs/ui/ProgressBar.js.map +1 -1
  502. package/cjs/ui/QuoteMessage.js +6 -6
  503. package/cjs/ui/QuoteMessage.js.map +1 -1
  504. package/cjs/ui/QuoteMessageInput.js +6 -6
  505. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  506. package/cjs/ui/ReactionBadge.js +2 -2
  507. package/cjs/ui/ReactionBadge.js.map +1 -1
  508. package/cjs/ui/ReactionButton.js.map +1 -1
  509. package/cjs/ui/SortByRow.js +1 -1
  510. package/cjs/ui/SortByRow.js.map +1 -1
  511. package/cjs/ui/TextButton.js +1 -1
  512. package/cjs/ui/TextButton.js.map +1 -1
  513. package/cjs/ui/TextMessageItemBody.js +15 -15
  514. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  515. package/cjs/ui/ThreadReplies.js +5 -5
  516. package/cjs/ui/ThreadReplies.js.map +1 -1
  517. package/cjs/ui/ThumbnailMessageItemBody.js +2 -2
  518. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  519. package/cjs/ui/Toggle.js +1 -1
  520. package/cjs/ui/Toggle.js.map +1 -1
  521. package/cjs/ui/Tooltip.js +2 -2
  522. package/cjs/ui/Tooltip.js.map +1 -1
  523. package/cjs/ui/TooltipWrapper.js.map +1 -1
  524. package/cjs/ui/UnknownMessageItemBody.js +6 -6
  525. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  526. package/cjs/ui/UserListItem.js +10 -10
  527. package/cjs/ui/UserListItem.js.map +1 -1
  528. package/cjs/ui/UserProfile.js +9 -9
  529. package/cjs/ui/UserProfile.js.map +1 -1
  530. package/cjs/ui/VoiceMessageItemBody.js +9 -9
  531. package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
  532. package/cjs/ui/VoiceMessgeInput.js +7 -7
  533. package/cjs/ui/Word.js +13 -13
  534. package/cjs/ui/Word.js.map +1 -1
  535. package/cjs/{useLongPress-ab63a990.js → useLongPress-472493f7.js} +3 -3
  536. package/cjs/useLongPress-472493f7.js.map +1 -0
  537. package/cjs/useSendbirdStateContext.js +1 -1
  538. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  539. package/cjs/utils/message/isVoiceMessage.js +2 -2
  540. package/cjs/{utils-1fd1fe8c.js → utils-40b8c201.js} +1 -1
  541. package/cjs/utils-40b8c201.js.map +1 -0
  542. package/cjs/{utils-7e52a10a.js → utils-76562fb5.js} +2 -2
  543. package/cjs/{utils-7e52a10a.js.map → utils-76562fb5.js.map} +1 -1
  544. package/cjs/{utils-f6f55335.js → utils-eadc245c.js} +1 -1
  545. package/cjs/{utils-f6f55335.js.map → utils-eadc245c.js.map} +1 -1
  546. package/cjs/{utils-f6c4e216.js → utils-fdce7855.js} +1 -1
  547. package/cjs/{utils-f6c4e216.js.map → utils-fdce7855.js.map} +1 -1
  548. package/cjs/{uuid-d0dd45eb.js → uuid-d5eb7040.js} +1 -1
  549. package/cjs/{uuid-d0dd45eb.js.map → uuid-d5eb7040.js.map} +1 -1
  550. package/cjs/withSendbird.js +1 -1
  551. package/cjs/withSendbird.js.map +1 -1
  552. package/{color-c30f00bf.js → color-d6b38e25.js} +1 -1
  553. package/{color-c30f00bf.js.map → color-d6b38e25.js.map} +1 -1
  554. package/{compareIds-90440dc5.js → compareIds-f38c2ef0.js} +2 -2
  555. package/compareIds-f38c2ef0.js.map +1 -0
  556. package/{const-5e916a50.js → const-051188d1.js} +1 -1
  557. package/{const-5e916a50.js.map → const-051188d1.js.map} +1 -1
  558. package/{const-582ca435.js → const-f6d56818.js} +1 -1
  559. package/{const-582ca435.js.map → const-f6d56818.js.map} +1 -1
  560. package/{consts-ee90b622.js → consts-04eece0c.js} +1 -1
  561. package/{consts-ee90b622.js.map → consts-04eece0c.js.map} +1 -1
  562. package/{consts-6e63357c.js → consts-a6286ca6.js} +1 -1
  563. package/{consts-6e63357c.js.map → consts-a6286ca6.js.map} +1 -1
  564. package/{consts-35dda142.js → consts-da8a20c9.js} +1 -1
  565. package/{consts-35dda142.js.map → consts-da8a20c9.js.map} +1 -1
  566. package/{consts-a7fe5f4a.js → consts-dd1513d3.js} +1 -1
  567. package/{consts-a7fe5f4a.js.map → consts-dd1513d3.js.map} +1 -1
  568. package/{context-8a77d287.js → context-0e43d2e6.js} +2 -2
  569. package/{context-8a77d287.js.map → context-0e43d2e6.js.map} +1 -1
  570. package/dist/index.css +164 -163
  571. package/dist/index.css.map +1 -1
  572. package/{index-2bcc4298.js → index-01ac0ba4.js} +7 -6
  573. package/index-01ac0ba4.js.map +1 -0
  574. package/{index-8f5c7f74.js → index-0533e5e9.js} +2 -2
  575. package/index-0533e5e9.js.map +1 -0
  576. package/{index-1e1cb669.js → index-06784b87.js} +1 -1
  577. package/index-06784b87.js.map +1 -0
  578. package/{index-8e3a9e8c.js → index-2857db82.js} +12 -12
  579. package/index-2857db82.js.map +1 -0
  580. package/{index-062a4eeb.js → index-3f4521c1.js} +2 -2
  581. package/{index-062a4eeb.js.map → index-3f4521c1.js.map} +1 -1
  582. package/{index-4d66cb77.js → index-46f6d854.js} +38 -8
  583. package/index-46f6d854.js.map +1 -0
  584. package/{index-303eca35.js → index-5807e969.js} +16 -8
  585. package/index-5807e969.js.map +1 -0
  586. package/{index-c50c6fa2.js → index-63631dc4.js} +5 -4
  587. package/index-63631dc4.js.map +1 -0
  588. package/{index-052724d9.js → index-64473ea3.js} +12 -3
  589. package/index-64473ea3.js.map +1 -0
  590. package/{index-4668028f.js → index-74a99dc5.js} +4 -2
  591. package/index-74a99dc5.js.map +1 -0
  592. package/{index-eebbce1c.js → index-7f172012.js} +5 -5
  593. package/index-7f172012.js.map +1 -0
  594. package/{index-794e37e5.js → index-82009149.js} +30 -10
  595. package/index-82009149.js.map +1 -0
  596. package/{index-8fea9d09.js → index-8abe5fb2.js} +3 -3
  597. package/{index-8fea9d09.js.map → index-8abe5fb2.js.map} +1 -1
  598. package/{index-365a1d88.js → index-f23e2550.js} +4 -4
  599. package/{index-365a1d88.js.map → index-f23e2550.js.map} +1 -1
  600. package/{index-0cc2c241.js → index-f78cd01e.js} +6 -6
  601. package/index-f78cd01e.js.map +1 -0
  602. package/{index-6908bdd4.js → index-feffd01d.js} +193 -56
  603. package/index-feffd01d.js.map +1 -0
  604. package/index.d.ts +15 -5
  605. package/index.js +49 -49
  606. package/{index.module-3d14ef05.js → index.module-6a96cbff.js} +1 -1
  607. package/{index.module-3d14ef05.js.map → index.module-6a96cbff.js.map} +1 -1
  608. package/lame.all.js.map +1 -1
  609. package/package.json +15 -13
  610. package/sendbirdSelectors.js +3 -3
  611. package/sendbirdSelectors.js.map +1 -1
  612. package/{stringSet-da68ecef.js → stringSet-6c589018.js} +1 -1
  613. package/{stringSet-da68ecef.js.map → stringSet-6c589018.js.map} +1 -1
  614. package/{tokenize-eeb42e72.js → tokenize-b7be6252.js} +27 -7
  615. package/tokenize-b7be6252.js.map +1 -0
  616. package/{topics-0354b385.js → topics-969deff5.js} +1 -1
  617. package/{topics-0354b385.js.map → topics-969deff5.js.map} +1 -1
  618. package/{types-12d853e9.js → types-230dc5c2.js} +1 -1
  619. package/types-230dc5c2.js.map +1 -0
  620. package/ui/Accordion.js +2 -2
  621. package/ui/Accordion.js.map +1 -1
  622. package/ui/AccordionGroup.js +2 -2
  623. package/ui/AccordionGroup.js.map +1 -1
  624. package/ui/AdminMessage.js +2 -2
  625. package/ui/AdminMessage.js.map +1 -1
  626. package/ui/Avatar.js +1 -1
  627. package/ui/Avatar.js.map +1 -1
  628. package/ui/Badge.js +4 -4
  629. package/ui/Badge.js.map +1 -1
  630. package/ui/BottomSheet.js +1 -1
  631. package/ui/BottomSheet.js.map +1 -1
  632. package/ui/Button.js +2 -2
  633. package/ui/Button.js.map +1 -1
  634. package/ui/ChannelAvatar.js +2 -2
  635. package/ui/ChannelAvatar.js.map +1 -1
  636. package/ui/Checkbox.js.map +1 -1
  637. package/ui/ConnectionStatus.js +4 -4
  638. package/ui/ConnectionStatus.js.map +1 -1
  639. package/ui/ContextMenu.js +5 -5
  640. package/ui/ContextMenu.js.map +1 -1
  641. package/ui/DateSeparator.js +3 -3
  642. package/ui/DateSeparator.js.map +1 -1
  643. package/ui/EmojiReactions.js +7 -7
  644. package/ui/EmojiReactions.js.map +1 -1
  645. package/ui/FileMessageItemBody.js +6 -6
  646. package/ui/FileMessageItemBody.js.map +1 -1
  647. package/ui/FileViewer.js +8 -8
  648. package/ui/FileViewer.js.map +1 -1
  649. package/ui/Icon.js +2 -0
  650. package/ui/Icon.js.map +1 -1
  651. package/ui/IconButton.js +1 -1
  652. package/ui/IconButton.js.map +1 -1
  653. package/ui/ImageRenderer.js.map +1 -1
  654. package/ui/Input.js +2 -2
  655. package/ui/Input.js.map +1 -1
  656. package/ui/Label.js +2 -2
  657. package/ui/LinkLabel.js +2 -2
  658. package/ui/LinkLabel.js.map +1 -1
  659. package/ui/Loader.js.map +1 -1
  660. package/ui/MentionLabel.js +10 -10
  661. package/ui/MentionLabel.js.map +1 -1
  662. package/ui/MentionUserLabel.js +1 -1
  663. package/ui/MentionUserLabel.js.map +1 -1
  664. package/ui/MessageContent.js +34 -34
  665. package/ui/MessageContent.js.map +1 -1
  666. package/ui/MessageInput.js +63 -37
  667. package/ui/MessageInput.js.map +1 -1
  668. package/ui/MessageItemMenu.js +8 -8
  669. package/ui/MessageItemMenu.js.map +1 -1
  670. package/ui/MessageItemReactionMenu.js +5 -5
  671. package/ui/MessageItemReactionMenu.js.map +1 -1
  672. package/ui/MessageSearchFileItem.js +10 -10
  673. package/ui/MessageSearchFileItem.js.map +1 -1
  674. package/ui/MessageSearchItem.js +8 -8
  675. package/ui/MessageSearchItem.js.map +1 -1
  676. package/ui/MessageStatus.js +10 -10
  677. package/ui/Modal.js +7 -7
  678. package/ui/Modal.js.map +1 -1
  679. package/ui/MutedAvatarOverlay.js.map +1 -1
  680. package/ui/OGMessageItemBody.js +14 -14
  681. package/ui/OGMessageItemBody.js.map +1 -1
  682. package/ui/OpenChannelAdminMessage.js +2 -2
  683. package/ui/OpenChannelAdminMessage.js.map +1 -1
  684. package/ui/OpenChannelAvatar.js +5 -5
  685. package/ui/OpenChannelAvatar.js.map +1 -1
  686. package/ui/OpenchannelConversationHeader.js +6 -6
  687. package/ui/OpenchannelConversationHeader.js.map +1 -1
  688. package/ui/OpenchannelFileMessage.js +15 -15
  689. package/ui/OpenchannelFileMessage.js.map +1 -1
  690. package/ui/OpenchannelOGMessage.js +18 -18
  691. package/ui/OpenchannelOGMessage.js.map +1 -1
  692. package/ui/OpenchannelThumbnailMessage.js +16 -16
  693. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  694. package/ui/OpenchannelUserMessage.js +15 -15
  695. package/ui/OpenchannelUserMessage.js.map +1 -1
  696. package/ui/PlaceHolder.js +5 -5
  697. package/ui/PlaybackTime.js +2 -2
  698. package/ui/PlaybackTime.js.map +1 -1
  699. package/ui/ProgressBar.js +1 -0
  700. package/ui/ProgressBar.js.map +1 -1
  701. package/ui/QuoteMessage.js +6 -6
  702. package/ui/QuoteMessage.js.map +1 -1
  703. package/ui/QuoteMessageInput.js +6 -6
  704. package/ui/QuoteMessageInput.js.map +1 -1
  705. package/ui/ReactionBadge.js +2 -2
  706. package/ui/ReactionBadge.js.map +1 -1
  707. package/ui/ReactionButton.js.map +1 -1
  708. package/ui/SortByRow.js +1 -1
  709. package/ui/SortByRow.js.map +1 -1
  710. package/ui/TextButton.js +1 -1
  711. package/ui/TextButton.js.map +1 -1
  712. package/ui/TextMessageItemBody.js +15 -15
  713. package/ui/TextMessageItemBody.js.map +1 -1
  714. package/ui/ThreadReplies.js +5 -5
  715. package/ui/ThreadReplies.js.map +1 -1
  716. package/ui/ThumbnailMessageItemBody.js +2 -2
  717. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  718. package/ui/Toggle.js +1 -1
  719. package/ui/Toggle.js.map +1 -1
  720. package/ui/Tooltip.js +2 -2
  721. package/ui/Tooltip.js.map +1 -1
  722. package/ui/TooltipWrapper.js.map +1 -1
  723. package/ui/UnknownMessageItemBody.js +6 -6
  724. package/ui/UnknownMessageItemBody.js.map +1 -1
  725. package/ui/UserListItem.js +10 -10
  726. package/ui/UserListItem.js.map +1 -1
  727. package/ui/UserProfile.js +9 -9
  728. package/ui/UserProfile.js.map +1 -1
  729. package/ui/VoiceMessageItemBody.js +9 -9
  730. package/ui/VoiceMessageItemBody.js.map +1 -1
  731. package/ui/VoiceMessgeInput.js +7 -7
  732. package/ui/Word.js +13 -13
  733. package/ui/Word.js.map +1 -1
  734. package/{useLongPress-a8d92cab.js → useLongPress-b678c2b7.js} +3 -3
  735. package/useLongPress-b678c2b7.js.map +1 -0
  736. package/useSendbirdStateContext.js +1 -1
  737. package/utils/message/getOutgoingMessageState.js.map +1 -1
  738. package/utils/message/isVoiceMessage.js +2 -2
  739. package/{utils-670974e1.js → utils-3245985d.js} +1 -1
  740. package/utils-3245985d.js.map +1 -0
  741. package/{utils-63790b1a.js → utils-c29e587a.js} +2 -2
  742. package/{utils-63790b1a.js.map → utils-c29e587a.js.map} +1 -1
  743. package/{utils-c9c2364c.js → utils-d8dfc953.js} +1 -1
  744. package/{utils-c9c2364c.js.map → utils-d8dfc953.js.map} +1 -1
  745. package/{utils-2b05a56b.js → utils-f57a5756.js} +1 -1
  746. package/{utils-2b05a56b.js.map → utils-f57a5756.js.map} +1 -1
  747. package/{uuid-5c7f30bd.js → uuid-abddae2d.js} +1 -1
  748. package/{uuid-5c7f30bd.js.map → uuid-abddae2d.js.map} +1 -1
  749. package/withSendbird.js +1 -1
  750. package/withSendbird.js.map +1 -1
  751. package/ChannelListProvider-8be91a05.js.map +0 -1
  752. package/ChannelProvider-d643e6d9.js.map +0 -1
  753. package/MediaQueryContext-4e555ef5.js.map +0 -1
  754. package/MemberList-24b818f8.js.map +0 -1
  755. package/OpenChannelProvider-5148963b.js.map +0 -1
  756. package/ThreadProvider-96a5e77e.js.map +0 -1
  757. package/VoiceMessageInputWrapper-07631f8d.js.map +0 -1
  758. package/_rollupPluginBabelHelpers-5d0c716a.js.map +0 -1
  759. package/cjs/ChannelListProvider-6b61a484.js.map +0 -1
  760. package/cjs/ChannelProvider-12a12f31.js.map +0 -1
  761. package/cjs/MediaQueryContext-3b09499c.js.map +0 -1
  762. package/cjs/MemberList-f0c4e234.js.map +0 -1
  763. package/cjs/OpenChannelProvider-56846c0c.js.map +0 -1
  764. package/cjs/ThreadProvider-1ebd5bc0.js.map +0 -1
  765. package/cjs/VoiceMessageInputWrapper-044427b2.js.map +0 -1
  766. package/cjs/_rollupPluginBabelHelpers-4b6406c2.js.map +0 -1
  767. package/cjs/compareIds-de8d3b96.js.map +0 -1
  768. package/cjs/index-0514e373.js.map +0 -1
  769. package/cjs/index-223d453c.js.map +0 -1
  770. package/cjs/index-2a770f35.js.map +0 -1
  771. package/cjs/index-34cc612a.js.map +0 -1
  772. package/cjs/index-4de6caed.js.map +0 -1
  773. package/cjs/index-5fd03280.js.map +0 -1
  774. package/cjs/index-6d3fe482.js.map +0 -1
  775. package/cjs/index-986b886d.js.map +0 -1
  776. package/cjs/index-9f6f371b.js.map +0 -1
  777. package/cjs/index-b2886b93.js.map +0 -1
  778. package/cjs/index-ca85a10a.js.map +0 -1
  779. package/cjs/index-d2bd7dc5.js.map +0 -1
  780. package/cjs/index-df637378.js.map +0 -1
  781. package/cjs/tokenize-07747f4c.js.map +0 -1
  782. package/cjs/types-3dcd9651.js.map +0 -1
  783. package/cjs/useLongPress-ab63a990.js.map +0 -1
  784. package/cjs/utils-1fd1fe8c.js.map +0 -1
  785. package/compareIds-90440dc5.js.map +0 -1
  786. package/index-052724d9.js.map +0 -1
  787. package/index-0cc2c241.js.map +0 -1
  788. package/index-1e1cb669.js.map +0 -1
  789. package/index-2bcc4298.js.map +0 -1
  790. package/index-303eca35.js.map +0 -1
  791. package/index-4668028f.js.map +0 -1
  792. package/index-4d66cb77.js.map +0 -1
  793. package/index-6908bdd4.js.map +0 -1
  794. package/index-794e37e5.js.map +0 -1
  795. package/index-8e3a9e8c.js.map +0 -1
  796. package/index-8f5c7f74.js.map +0 -1
  797. package/index-c50c6fa2.js.map +0 -1
  798. package/index-eebbce1c.js.map +0 -1
  799. package/tokenize-eeb42e72.js.map +0 -1
  800. package/types-12d853e9.js.map +0 -1
  801. package/useLongPress-a8d92cab.js.map +0 -1
  802. package/utils-670974e1.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../src/hooks/VoiceRecorder/index.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';\nimport {\n VOICE_MESSAGE_FILE_NAME,\n VOICE_MESSAGE_MIME_TYPE,\n VOICE_RECORDER_AUDIO_BITS,\n VOICE_RECORDER_MIME_TYPE,\n} from '../../utils/consts';\nimport useSendbirdStateContext from '../useSendbirdStateContext';\n\n// Input props of VoiceRecorder\nexport interface VoiceRecorderProps {\n children: React.ReactElement;\n}\n\nexport interface VoiceRecorderEventHandler {\n onRecordingStarted?: () => void;\n onRecordingEnded?: (props: null | File) => void;\n}\n\n// Output of VoiceRecorder\nexport interface VoiceRecorderContext {\n start: (eventHandler?: VoiceRecorderEventHandler) => void,\n stop: () => void,\n isRecordable: boolean;\n}\nconst noop = () => { /* noop */ };\nconst VoiceRecorderContext = createContext<VoiceRecorderContext>({\n start: noop,\n stop: noop,\n isRecordable: false,\n});\n\nexport const VoiceRecorderProvider = (props: VoiceRecorderProps): React.ReactElement => {\n const { children } = props;\n const { config } = useSendbirdStateContext();\n const { logger, isVoiceMessageEnabled } = config;\n const [mediaRecorder, setMediaRecorder] = useState<MediaRecorder>(null);\n const [isRecordable, setIsRecordable] = useState<boolean>(false);\n\n const [webAudioUtils, setWebAudioUtils] = useState(null);\n useEffect(() => {\n if (isVoiceMessageEnabled && !webAudioUtils) {\n import('./WebAudioUtils').then((data) => {\n setWebAudioUtils(data);\n })\n }\n }, []);\n\n const start = useCallback((eventHandler: VoiceRecorderEventHandler): void => {\n if (isVoiceMessageEnabled && !webAudioUtils) {\n logger.error('VoiceRecorder: Recording audio processor is being loaded.');\n return;\n }\n\n logger.info('VoiceRecorder: Start recording.');\n if (mediaRecorder) {\n stop();\n logger.info('VoiceRecorder: Previous mediaRecorder is stopped.');\n }\n navigator?.mediaDevices?.getUserMedia?.({ audio: true })\n .then((stream) => {\n logger.info('VoiceRecorder: Succeeded getting media stream.', stream);\n setIsRecordable(true);\n const mediaRecorder = new MediaRecorder(stream, {\n mimeType: VOICE_RECORDER_MIME_TYPE,\n audioBitsPerSecond: VOICE_RECORDER_AUDIO_BITS,\n });\n mediaRecorder.ondataavailable = (e) => { // when recording stops\n logger.info('VoiceRecorder: Succeeded getting an available data.', e.data);\n const audioFile = new File([e.data], VOICE_MESSAGE_FILE_NAME, {\n lastModified: new Date().getTime(),\n type: VOICE_MESSAGE_MIME_TYPE,\n });\n webAudioUtils?.downsampleToWav(audioFile, (buffer) => {\n const mp3Buffer = webAudioUtils?.encodeMp3(buffer);\n const mp3blob = new Blob(mp3Buffer, { type: VOICE_MESSAGE_MIME_TYPE });\n const convertedAudioFile = new File([mp3blob], VOICE_MESSAGE_FILE_NAME, {\n lastModified: new Date().getTime(),\n type: VOICE_MESSAGE_MIME_TYPE,\n });\n eventHandler?.onRecordingEnded(convertedAudioFile);\n logger.info('VoiceRecorder: Succeeded converting audio file.', convertedAudioFile);\n });\n stream?.getAudioTracks?.().forEach?.(track => track?.stop());\n setIsRecordable(false);\n };\n mediaRecorder?.start();\n setMediaRecorder(mediaRecorder);\n eventHandler?.onRecordingStarted();\n })\n .catch((err) => {\n logger.error('VoiceRecorder: Failed getting media stream.', err);\n setMediaRecorder(null);\n });\n }, [mediaRecorder, webAudioUtils]);\n\n const stop = useCallback((): void => {\n // Stop recording\n mediaRecorder?.stop();\n setMediaRecorder(null);\n setIsRecordable(false);\n logger.info('VoiceRecorder: Stop recording.');\n }, [mediaRecorder]);\n\n return (\n <VoiceRecorderContext.Provider value={{\n start,\n stop,\n isRecordable,\n }}>\n {children}\n </VoiceRecorderContext.Provider>\n )\n};\n\nexport const useVoiceRecorderContext = (): VoiceRecorderContext => useContext(VoiceRecorderContext);\n\nexport default {\n VoiceRecorderProvider,\n useVoiceRecorderContext,\n};\n"],"names":["noop","VoiceRecorderContext","createContext","start","stop","isRecordable","VoiceRecorderProvider","props","children","config","useSendbirdStateContext","logger","isVoiceMessageEnabled","mediaRecorder","setMediaRecorder","useState","setIsRecordable","webAudioUtils","setWebAudioUtils","useEffect","then","data","useCallback","eventHandler","_navigator","_navigator$mediaDevic","_navigator$mediaDevic2","error","info","navigator","mediaDevices","getUserMedia","call","audio","stream","MediaRecorder","mimeType","VOICE_RECORDER_MIME_TYPE","audioBitsPerSecond","VOICE_RECORDER_AUDIO_BITS","ondataavailable","e","_stream$getAudioTrack","_stream$getAudioTrack2","_stream$getAudioTrack3","audioFile","File","VOICE_MESSAGE_FILE_NAME","lastModified","Date","getTime","type","VOICE_MESSAGE_MIME_TYPE","downsampleToWav","buffer","mp3Buffer","encodeMp3","mp3blob","Blob","convertedAudioFile","onRecordingEnded","getAudioTracks","forEach","track","onRecordingStarted","catch","err","React","createElement","Provider","value","useVoiceRecorderContext","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sources":["../../src/hooks/VoiceRecorder/index.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';\nimport {\n VOICE_MESSAGE_FILE_NAME,\n VOICE_MESSAGE_MIME_TYPE,\n VOICE_RECORDER_AUDIO_BITS,\n VOICE_RECORDER_MIME_TYPE,\n} from '../../utils/consts';\nimport useSendbirdStateContext from '../useSendbirdStateContext';\n\n// Input props of VoiceRecorder\nexport interface VoiceRecorderProps {\n children: React.ReactElement;\n}\n\nexport interface VoiceRecorderEventHandler {\n onRecordingStarted?: () => void;\n onRecordingEnded?: (props: null | File) => void;\n}\n\n// Output of VoiceRecorder\nexport interface VoiceRecorderContext {\n start: (eventHandler?: VoiceRecorderEventHandler) => void,\n stop: () => void,\n isRecordable: boolean;\n}\nconst noop = () => { /* noop */ };\nconst Context = createContext<VoiceRecorderContext>({\n start: noop,\n stop: noop,\n isRecordable: false,\n});\n\nexport const VoiceRecorderProvider = (props: VoiceRecorderProps): React.ReactElement => {\n const { children } = props;\n const { config } = useSendbirdStateContext();\n const { logger, isVoiceMessageEnabled } = config;\n const [mediaRecorder, setMediaRecorder] = useState<MediaRecorder>(null);\n const [isRecordable, setIsRecordable] = useState<boolean>(false);\n\n const [webAudioUtils, setWebAudioUtils] = useState(null);\n useEffect(() => {\n if (isVoiceMessageEnabled && !webAudioUtils) {\n import('./WebAudioUtils').then((data) => {\n setWebAudioUtils(data);\n });\n }\n }, []);\n\n const start = useCallback((eventHandler: VoiceRecorderEventHandler): void => {\n if (isVoiceMessageEnabled && !webAudioUtils) {\n logger.error('VoiceRecorder: Recording audio processor is being loaded.');\n return;\n }\n\n logger.info('VoiceRecorder: Start recording.');\n if (mediaRecorder) {\n stop();\n logger.info('VoiceRecorder: Previous mediaRecorder is stopped.');\n }\n navigator?.mediaDevices?.getUserMedia?.({ audio: true })\n .then((stream) => {\n logger.info('VoiceRecorder: Succeeded getting media stream.', stream);\n setIsRecordable(true);\n const mediaRecorder = new MediaRecorder(stream, {\n mimeType: VOICE_RECORDER_MIME_TYPE,\n audioBitsPerSecond: VOICE_RECORDER_AUDIO_BITS,\n });\n mediaRecorder.ondataavailable = (e) => { // when recording stops\n logger.info('VoiceRecorder: Succeeded getting an available data.', e.data);\n const audioFile = new File([e.data], VOICE_MESSAGE_FILE_NAME, {\n lastModified: new Date().getTime(),\n type: VOICE_MESSAGE_MIME_TYPE,\n });\n webAudioUtils?.downsampleToWav(audioFile, (buffer) => {\n const mp3Buffer = webAudioUtils?.encodeMp3(buffer);\n const mp3blob = new Blob(mp3Buffer, { type: VOICE_MESSAGE_MIME_TYPE });\n const convertedAudioFile = new File([mp3blob], VOICE_MESSAGE_FILE_NAME, {\n lastModified: new Date().getTime(),\n type: VOICE_MESSAGE_MIME_TYPE,\n });\n eventHandler?.onRecordingEnded(convertedAudioFile);\n logger.info('VoiceRecorder: Succeeded converting audio file.', convertedAudioFile);\n });\n stream?.getAudioTracks?.().forEach?.(track => track?.stop());\n setIsRecordable(false);\n };\n mediaRecorder?.start();\n setMediaRecorder(mediaRecorder);\n eventHandler?.onRecordingStarted();\n })\n .catch((err) => {\n logger.error('VoiceRecorder: Failed getting media stream.', err);\n setMediaRecorder(null);\n });\n }, [mediaRecorder, webAudioUtils]);\n\n const stop = useCallback((): void => {\n // Stop recording\n mediaRecorder?.stop();\n setMediaRecorder(null);\n setIsRecordable(false);\n logger.info('VoiceRecorder: Stop recording.');\n }, [mediaRecorder]);\n\n return (\n <Context.Provider value={{\n start,\n stop,\n isRecordable,\n }}>\n {children}\n </Context.Provider>\n );\n};\n\nexport const useVoiceRecorderContext = (): VoiceRecorderContext => useContext(Context);\n\nexport default {\n VoiceRecorderProvider,\n useVoiceRecorderContext,\n};\n"],"names":["noop","Context","createContext","start","stop","isRecordable","VoiceRecorderProvider","props","children","config","useSendbirdStateContext","logger","isVoiceMessageEnabled","mediaRecorder","setMediaRecorder","useState","setIsRecordable","webAudioUtils","setWebAudioUtils","useEffect","then","data","useCallback","eventHandler","_navigator","_navigator$mediaDevic","_navigator$mediaDevic2","error","info","navigator","mediaDevices","getUserMedia","call","audio","stream","MediaRecorder","mimeType","VOICE_RECORDER_MIME_TYPE","audioBitsPerSecond","VOICE_RECORDER_AUDIO_BITS","ondataavailable","e","_stream$getAudioTrack","_stream$getAudioTrack2","_stream$getAudioTrack3","audioFile","File","VOICE_MESSAGE_FILE_NAME","lastModified","Date","getTime","type","VOICE_MESSAGE_MIME_TYPE","downsampleToWav","buffer","mp3Buffer","encodeMp3","mp3blob","Blob","convertedAudioFile","onRecordingEnded","getAudioTracks","forEach","track","onRecordingStarted","catch","err","React","createElement","Provider","value","useVoiceRecorderContext","useContext"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { useState, useEffect, useCallback } from 'react';
2
2
  import { useVoiceRecorderContext } from './context.js';
3
3
  import useSendbirdStateContext from '../useSendbirdStateContext.js';
4
- import '../consts-35dda142.js';
4
+ import '../consts-da8a20c9.js';
5
5
  import '../withSendbird.js';
6
- import '../_rollupPluginBabelHelpers-5d0c716a.js';
6
+ import '../_rollupPluginBabelHelpers-96062e23.js';
7
7
 
8
8
  // export interface UseVoiceRecorderProps extends VoiceRecorderEventHandler {
9
9
  // /**
@@ -11,6 +11,7 @@ import '../_rollupPluginBabelHelpers-5d0c716a.js';
11
11
  // * onRecordingEnded
12
12
  // */
13
13
  // }
14
+ /* eslint-disable no-redeclare */
14
15
  const VoiceRecorderStatus = {
15
16
  PREPARING: 'PREPARING',
16
17
  READY_TO_RECORD: 'READY_TO_RECORD',
@@ -1 +1 @@
1
- {"version":3,"file":"useVoiceRecorder.js","sources":["../../src/hooks/VoiceRecorder/useVoiceRecorder.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { VoiceRecorderEventHandler, useVoiceRecorderContext } from '.';\nimport useSendbirdStateContext from '../useSendbirdStateContext';\n\n// export interface UseVoiceRecorderProps extends VoiceRecorderEventHandler {\n// /**\n// * onRecordingStarted\n// * onRecordingEnded\n// */\n// }\nexport const VoiceRecorderStatus = {\n PREPARING: 'PREPARING',\n READY_TO_RECORD: 'READY_TO_RECORD',\n RECORDING: 'RECORDING',\n COMPLETED: 'COMPLETED',\n} as const;\nexport type VoiceRecorderStatus = typeof VoiceRecorderStatus[keyof typeof VoiceRecorderStatus];\nexport interface UseVoiceRecorderContext {\n start: () => void;\n stop: () => void;\n cancel: () => void;\n recordingLimit: number;\n recordingTime: number;\n recordedFile: File;\n recordingStatus: VoiceRecorderStatus;\n}\n\nconst noop = () => { /* noop */ };\n\nexport const useVoiceRecorder = ({\n onRecordingStarted = noop,\n onRecordingEnded = noop,\n}: VoiceRecorderEventHandler): UseVoiceRecorderContext => {\n const { config } = useSendbirdStateContext();\n const { voiceRecord } = config;\n const { maxRecordingTime } = voiceRecord;\n const voiceRecorder = useVoiceRecorderContext();\n const { isRecordable } = voiceRecorder;\n\n const [recordedFile, setRecordedFile] = useState<File>(null);\n const [recordingStatus, setRecordingStatus] = useState<VoiceRecorderStatus>(VoiceRecorderStatus.PREPARING);\n useEffect(() => {\n if (isRecordable && recordingStatus === VoiceRecorderStatus.PREPARING) {\n setRecordingStatus(VoiceRecorderStatus.READY_TO_RECORD);\n }\n }, [isRecordable]);\n\n const start = useCallback(() => {\n voiceRecorder?.start({\n onRecordingStarted: () => {\n setRecordingStatus(VoiceRecorderStatus.RECORDING);\n onRecordingStarted();\n startTimer();\n },\n onRecordingEnded: (audioFile) => {\n setRecordingStatus(VoiceRecorderStatus.COMPLETED);\n onRecordingEnded(audioFile);\n setRecordedFile(audioFile);\n stopTimer();\n },\n });\n }, [onRecordingStarted, onRecordingEnded]);\n const stop = useCallback(() => {\n voiceRecorder?.stop();\n stopTimer();\n }, [voiceRecorder]);\n const cancel = useCallback(() => {\n stop();\n setRecordedFile(null);\n }, [voiceRecorder]);\n\n // Timer\n const [recordingTime, setRecordingTime] = useState<number>(0);\n let timer: ReturnType<typeof setInterval> = null;\n function startTimer() {\n stopTimer();\n setRecordingTime(0);\n const interval = setInterval(() => {\n setRecordingTime(prevTime => {\n const newTime = prevTime + 100;\n if (newTime > maxRecordingTime) {\n stopTimer();\n }\n return newTime;\n });\n }, 100);\n timer = interval;\n }\n function stopTimer() {\n clearInterval(timer);\n timer = null;\n }\n useEffect(() => {\n if (recordingTime > maxRecordingTime) {\n stop();\n }\n }, [recordingTime, maxRecordingTime, stop]);\n\n return ({\n start,\n stop,\n cancel,\n recordingStatus,\n recordingTime,\n recordedFile,\n recordingLimit: maxRecordingTime,\n });\n};\n"],"names":["VoiceRecorderStatus","PREPARING","READY_TO_RECORD","RECORDING","COMPLETED","noop","useVoiceRecorder","_ref","onRecordingStarted","onRecordingEnded","config","useSendbirdStateContext","voiceRecord","maxRecordingTime","voiceRecorder","useVoiceRecorderContext","isRecordable","recordedFile","setRecordedFile","useState","recordingStatus","setRecordingStatus","useEffect","start","useCallback","startTimer","audioFile","stopTimer","stop","cancel","recordingTime","setRecordingTime","timer","interval","setInterval","prevTime","newTime","clearInterval","recordingLimit"],"mappings":"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"}
1
+ {"version":3,"file":"useVoiceRecorder.js","sources":["../../src/hooks/VoiceRecorder/useVoiceRecorder.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { VoiceRecorderEventHandler, useVoiceRecorderContext } from '.';\nimport useSendbirdStateContext from '../useSendbirdStateContext';\n\n// export interface UseVoiceRecorderProps extends VoiceRecorderEventHandler {\n// /**\n// * onRecordingStarted\n// * onRecordingEnded\n// */\n// }\n/* eslint-disable no-redeclare */\nexport const VoiceRecorderStatus = {\n PREPARING: 'PREPARING',\n READY_TO_RECORD: 'READY_TO_RECORD',\n RECORDING: 'RECORDING',\n COMPLETED: 'COMPLETED',\n} as const;\nexport type VoiceRecorderStatus = typeof VoiceRecorderStatus[keyof typeof VoiceRecorderStatus];\nexport interface UseVoiceRecorderContext {\n start: () => void;\n stop: () => void;\n cancel: () => void;\n recordingLimit: number;\n recordingTime: number;\n recordedFile: File;\n recordingStatus: VoiceRecorderStatus;\n}\n\nconst noop = () => { /* noop */ };\n\nexport const useVoiceRecorder = ({\n onRecordingStarted = noop,\n onRecordingEnded = noop,\n}: VoiceRecorderEventHandler): UseVoiceRecorderContext => {\n const { config } = useSendbirdStateContext();\n const { voiceRecord } = config;\n const { maxRecordingTime } = voiceRecord;\n const voiceRecorder = useVoiceRecorderContext();\n const { isRecordable } = voiceRecorder;\n\n const [recordedFile, setRecordedFile] = useState<File>(null);\n const [recordingStatus, setRecordingStatus] = useState<VoiceRecorderStatus>(VoiceRecorderStatus.PREPARING);\n useEffect(() => {\n if (isRecordable && recordingStatus === VoiceRecorderStatus.PREPARING) {\n setRecordingStatus(VoiceRecorderStatus.READY_TO_RECORD);\n }\n }, [isRecordable]);\n\n const start = useCallback(() => {\n voiceRecorder?.start({\n onRecordingStarted: () => {\n setRecordingStatus(VoiceRecorderStatus.RECORDING);\n onRecordingStarted();\n startTimer();\n },\n onRecordingEnded: (audioFile) => {\n setRecordingStatus(VoiceRecorderStatus.COMPLETED);\n onRecordingEnded(audioFile);\n setRecordedFile(audioFile);\n stopTimer();\n },\n });\n }, [onRecordingStarted, onRecordingEnded]);\n const stop = useCallback(() => {\n voiceRecorder?.stop();\n stopTimer();\n }, [voiceRecorder]);\n const cancel = useCallback(() => {\n stop();\n setRecordedFile(null);\n }, [voiceRecorder]);\n\n // Timer\n const [recordingTime, setRecordingTime] = useState<number>(0);\n let timer: ReturnType<typeof setInterval> = null;\n function startTimer() {\n stopTimer();\n setRecordingTime(0);\n const interval = setInterval(() => {\n setRecordingTime(prevTime => {\n const newTime = prevTime + 100;\n if (newTime > maxRecordingTime) {\n stopTimer();\n }\n return newTime;\n });\n }, 100);\n timer = interval;\n }\n function stopTimer() {\n clearInterval(timer);\n timer = null;\n }\n useEffect(() => {\n if (recordingTime > maxRecordingTime) {\n stop();\n }\n }, [recordingTime, maxRecordingTime, stop]);\n\n return ({\n start,\n stop,\n cancel,\n recordingStatus,\n recordingTime,\n recordedFile,\n recordingLimit: maxRecordingTime,\n });\n};\n"],"names":["VoiceRecorderStatus","PREPARING","READY_TO_RECORD","RECORDING","COMPLETED","noop","useVoiceRecorder","_ref","onRecordingStarted","onRecordingEnded","config","useSendbirdStateContext","voiceRecord","maxRecordingTime","voiceRecorder","useVoiceRecorderContext","isRecordable","recordedFile","setRecordedFile","useState","recordingStatus","setRecordingStatus","useEffect","start","useCallback","startTimer","audioFile","stopTimer","stop","cancel","recordingTime","setRecordingTime","timer","interval","setInterval","prevTime","newTime","clearInterval","recordingLimit"],"mappings":"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"}
@@ -120,4 +120,4 @@ function bufferToWav(abuffer, len) {
120
120
  }
121
121
 
122
122
  export { downsampleToWav, encodeMp3 };
123
- //# sourceMappingURL=WebAudioUtils-3fb13b51.js.map
123
+ //# sourceMappingURL=WebAudioUtils-6229e96a.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebAudioUtils-3fb13b51.js","sources":["../src/hooks/VoiceRecorder/WebAudioUtils.ts"],"sourcesContent":["// Thanks to https://codesandbox.io/s/media-recorder-api-downsampling-16k-mp3-encode-using-lame-js-forked-n1pblw\nimport { WavHeader, Mp3Encoder } from '../../_externals/lamejs/lame.all';\n\nfunction encodeMp3(arrayBuffer: ArrayBuffer): WavHeader {\n const wav = WavHeader.readHeader(new DataView(arrayBuffer));\n const dataView = new Int16Array(arrayBuffer, wav.dataOffset, wav.dataLen / 2);\n const mp3Encoder = new Mp3Encoder(wav.channels, wav.sampleRate, 128);\n const maxSamples = 1152;\n\n const samplesLeft = (wav.channels === 1) ? dataView : new Int16Array(wav.dataLen / (2 * wav.channels));\n const samplesRight = (wav.channels === 2) ? new Int16Array(wav.dataLen / (2 * wav.channels)) : undefined;\n\n if (wav.channels > 1) {\n for (let j = 0; j < samplesLeft.length; j++) {\n samplesLeft[j] = dataView[j * 2];\n samplesRight[j] = dataView[j * 2 + 1];\n }\n }\n\n const dataBuffer = [];\n let remaining = samplesLeft.length;\n for (let i = 0; remaining >= maxSamples; i += maxSamples) {\n const left = samplesLeft.subarray(i, i + maxSamples);\n let right;\n if (samplesRight) {\n right = samplesRight.subarray(i, i + maxSamples);\n }\n const mp3buf = mp3Encoder.encodeBuffer(left, right);\n dataBuffer.push(new Int8Array(mp3buf));\n remaining -= maxSamples;\n }\n\n const mp3Lastbuf = mp3Encoder.flush();\n dataBuffer.push(new Int8Array(mp3Lastbuf));\n return dataBuffer;\n}\n\n// Convert audioFile to arrayBuffer, because Mp3Encoder requires a parameter of ArrayBuffer type\nfunction downsampleToWav(file: File, callback: (buffer: ArrayBuffer) => void): void {\n // Browser compatibility\n // https://caniuse.com/?search=AudioContext\n const audioCtx = new AudioContext();\n const fileReader = new FileReader();\n fileReader.onload = function (ev) {\n // Decode audio\n audioCtx.decodeAudioData(ev.target.result as ArrayBuffer, (buffer) => {\n // this is where you down sample the audio, usually is 44100 samples per second\n const usingWebkit = !window.OfflineAudioContext;\n const offlineAudioCtx = new OfflineAudioContext(1, 16000 * buffer.duration, 16000);\n\n const soundSource = offlineAudioCtx.createBufferSource();\n soundSource.buffer = buffer;\n soundSource.connect(offlineAudioCtx.destination);\n\n const reader = new FileReader();\n reader.onload = function () {\n const renderCompleteHandler = (evt): void => {\n const renderedBuffer = usingWebkit ? evt.renderedBuffer : evt;\n const buffer = bufferToWav(renderedBuffer, renderedBuffer.length);\n if (callback) {\n callback(buffer);\n }\n };\n if (usingWebkit) {\n offlineAudioCtx.oncomplete = renderCompleteHandler;\n offlineAudioCtx.startRendering();\n } else {\n offlineAudioCtx\n .startRendering()\n .then(renderCompleteHandler)\n // eslint-disable-next-line no-console\n .catch((err) => console.warn(err));\n }\n };\n reader.readAsArrayBuffer(file);\n soundSource.start(0);\n });\n };\n fileReader.readAsArrayBuffer(file);\n}\n\nfunction bufferToWav(abuffer, len) {\n const numOfChan = abuffer.numberOfChannels;\n const length = len * numOfChan * 2 + 44;\n const buffer = new ArrayBuffer(length);\n const view = new DataView(buffer);\n const channels = [];\n let i = 0;\n let sample;\n let offset = 0;\n let pos = 0;\n\n // write WAVE header\n setUint32(0x46464952); // \"RIFF\"\n setUint32(length - 8); // file length - 8\n setUint32(0x45564157); // \"WAVE\"\n setUint32(0x20746d66); // \"fmt \" chunk\n setUint32(16); // length = 16\n setUint16(1); // PCM (uncompressed)\n setUint16(numOfChan);\n setUint32(abuffer.sampleRate);\n setUint32(abuffer.sampleRate * 2 * numOfChan); // avg. bytes/sec\n setUint16(numOfChan * 2); // block-align\n setUint16(16); // 16-bit (hardcoded in this demo)\n setUint32(0x61746164); // \"data\" - chunk\n setUint32(length - pos - 4); // chunk length\n // write interleaved data\n for (i = 0; i < abuffer.numberOfChannels; i++)\n channels.push(abuffer.getChannelData(i));\n\n while (pos < length) {\n for (i = 0; i < numOfChan; i++) {\n // interleave channels\n sample = Math.max(-1, Math.min(1, channels[i][offset])); // clamp\n sample = (0.5 + sample < 0 ? sample * 32768 : sample * 32767) | 0; // scale to 16-bit signed int\n view.setInt16(pos, sample, true); // write 16-bit sample\n pos += 2;\n }\n offset++; // next source sample\n }\n\n return buffer;\n\n function setUint16(data) {\n view.setUint16(pos, data, true);\n pos += 2;\n }\n\n function setUint32(data) {\n view.setUint32(pos, data, true);\n pos += 4;\n }\n}\n\nexport { downsampleToWav, encodeMp3 };\n"],"names":["encodeMp3","arrayBuffer","wav","WavHeader","readHeader","DataView","dataView","Int16Array","dataOffset","dataLen","mp3Encoder","Mp3Encoder","channels","sampleRate","maxSamples","samplesLeft","samplesRight","undefined","j","length","dataBuffer","remaining","i","left","subarray","right","mp3buf","encodeBuffer","push","Int8Array","mp3Lastbuf","flush","downsampleToWav","file","callback","audioCtx","AudioContext","fileReader","FileReader","onload","ev","decodeAudioData","target","result","buffer","usingWebkit","window","OfflineAudioContext","offlineAudioCtx","duration","soundSource","createBufferSource","connect","destination","reader","renderCompleteHandler","evt","renderedBuffer","bufferToWav","oncomplete","startRendering","then","catch","err","console","warn","readAsArrayBuffer","start","abuffer","len","numOfChan","numberOfChannels","ArrayBuffer","view","sample","offset","pos","setUint32","setUint16","getChannelData","Math","max","min","setInt16","data"],"mappings":"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"}
1
+ {"version":3,"file":"WebAudioUtils-6229e96a.js","sources":["../src/hooks/VoiceRecorder/WebAudioUtils.ts"],"sourcesContent":["// Thanks to https://codesandbox.io/s/media-recorder-api-downsampling-16k-mp3-encode-using-lame-js-forked-n1pblw\nimport { WavHeader, Mp3Encoder } from '../../_externals/lamejs/lame.all';\n\nfunction encodeMp3(arrayBuffer: ArrayBuffer): WavHeader {\n const wav = WavHeader.readHeader(new DataView(arrayBuffer));\n const dataView = new Int16Array(arrayBuffer, wav.dataOffset, wav.dataLen / 2);\n const mp3Encoder = new Mp3Encoder(wav.channels, wav.sampleRate, 128);\n const maxSamples = 1152;\n\n const samplesLeft = (wav.channels === 1) ? dataView : new Int16Array(wav.dataLen / (2 * wav.channels));\n const samplesRight = (wav.channels === 2) ? new Int16Array(wav.dataLen / (2 * wav.channels)) : undefined;\n\n if (wav.channels > 1) {\n for (let j = 0; j < samplesLeft.length; j++) {\n samplesLeft[j] = dataView[j * 2];\n samplesRight[j] = dataView[j * 2 + 1];\n }\n }\n\n const dataBuffer = [];\n let remaining = samplesLeft.length;\n for (let i = 0; remaining >= maxSamples; i += maxSamples) {\n const left = samplesLeft.subarray(i, i + maxSamples);\n let right;\n if (samplesRight) {\n right = samplesRight.subarray(i, i + maxSamples);\n }\n const mp3buf = mp3Encoder.encodeBuffer(left, right);\n dataBuffer.push(new Int8Array(mp3buf));\n remaining -= maxSamples;\n }\n\n const mp3Lastbuf = mp3Encoder.flush();\n dataBuffer.push(new Int8Array(mp3Lastbuf));\n return dataBuffer;\n}\n\n// Convert audioFile to arrayBuffer, because Mp3Encoder requires a parameter of ArrayBuffer type\nfunction downsampleToWav(file: File, callback: (buffer: ArrayBuffer) => void): void {\n // Browser compatibility\n // https://caniuse.com/?search=AudioContext\n const audioCtx = new AudioContext();\n const fileReader = new FileReader();\n fileReader.onload = function (ev) {\n // Decode audio\n audioCtx.decodeAudioData(ev.target.result as ArrayBuffer, (buffer) => {\n // this is where you down sample the audio, usually is 44100 samples per second\n const usingWebkit = !window.OfflineAudioContext;\n const offlineAudioCtx = new OfflineAudioContext(1, 16000 * buffer.duration, 16000);\n\n const soundSource = offlineAudioCtx.createBufferSource();\n soundSource.buffer = buffer;\n soundSource.connect(offlineAudioCtx.destination);\n\n const reader = new FileReader();\n reader.onload = function () {\n const renderCompleteHandler = (evt): void => {\n const renderedBuffer = usingWebkit ? evt.renderedBuffer : evt;\n const buffer = bufferToWav(renderedBuffer, renderedBuffer.length);\n if (callback) {\n callback(buffer);\n }\n };\n if (usingWebkit) {\n offlineAudioCtx.oncomplete = renderCompleteHandler;\n offlineAudioCtx.startRendering();\n } else {\n offlineAudioCtx\n .startRendering()\n .then(renderCompleteHandler)\n // eslint-disable-next-line no-console\n .catch((err) => console.warn(err));\n }\n };\n reader.readAsArrayBuffer(file);\n soundSource.start(0);\n });\n };\n fileReader.readAsArrayBuffer(file);\n}\n\nfunction bufferToWav(abuffer, len) {\n const numOfChan = abuffer.numberOfChannels;\n const length = len * numOfChan * 2 + 44;\n const buffer = new ArrayBuffer(length);\n const view = new DataView(buffer);\n const channels = [];\n let i = 0;\n let sample;\n let offset = 0;\n let pos = 0;\n\n // write WAVE header\n setUint32(0x46464952); // \"RIFF\"\n setUint32(length - 8); // file length - 8\n setUint32(0x45564157); // \"WAVE\"\n setUint32(0x20746d66); // \"fmt \" chunk\n setUint32(16); // length = 16\n setUint16(1); // PCM (uncompressed)\n setUint16(numOfChan);\n setUint32(abuffer.sampleRate);\n setUint32(abuffer.sampleRate * 2 * numOfChan); // avg. bytes/sec\n setUint16(numOfChan * 2); // block-align\n setUint16(16); // 16-bit (hardcoded in this demo)\n setUint32(0x61746164); // \"data\" - chunk\n setUint32(length - pos - 4); // chunk length\n // write interleaved data\n for (i = 0; i < abuffer.numberOfChannels; i++)\n channels.push(abuffer.getChannelData(i));\n\n while (pos < length) {\n for (i = 0; i < numOfChan; i++) {\n // interleave channels\n sample = Math.max(-1, Math.min(1, channels[i][offset])); // clamp\n sample = (0.5 + sample < 0 ? sample * 32768 : sample * 32767) | 0; // scale to 16-bit signed int\n view.setInt16(pos, sample, true); // write 16-bit sample\n pos += 2;\n }\n offset++; // next source sample\n }\n\n return buffer;\n\n function setUint16(data) {\n view.setUint16(pos, data, true);\n pos += 2;\n }\n\n function setUint32(data) {\n view.setUint32(pos, data, true);\n pos += 4;\n }\n}\n\nexport { downsampleToWav, encodeMp3 };\n"],"names":["encodeMp3","arrayBuffer","wav","WavHeader","readHeader","DataView","dataView","Int16Array","dataOffset","dataLen","mp3Encoder","Mp3Encoder","channels","sampleRate","maxSamples","samplesLeft","samplesRight","undefined","j","length","dataBuffer","remaining","i","left","subarray","right","mp3buf","encodeBuffer","push","Int8Array","mp3Lastbuf","flush","downsampleToWav","file","callback","audioCtx","AudioContext","fileReader","FileReader","onload","ev","decodeAudioData","target","result","buffer","usingWebkit","window","OfflineAudioContext","offlineAudioCtx","duration","soundSource","createBufferSource","connect","destination","reader","renderCompleteHandler","evt","renderedBuffer","bufferToWav","oncomplete","startRendering","then","catch","err","console","warn","readAsArrayBuffer","start","abuffer","len","numOfChan","numberOfChannels","ArrayBuffer","view","sample","offset","pos","setUint32","setUint16","getChannelData","Math","max","min","setInt16","data"],"mappings":"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"}
@@ -63,4 +63,4 @@ function _toPropertyKey(arg) {
63
63
  }
64
64
 
65
65
  export { _objectSpread2 as _, _defineProperty as a, _extends as b };
66
- //# sourceMappingURL=_rollupPluginBabelHelpers-5d0c716a.js.map
66
+ //# sourceMappingURL=_rollupPluginBabelHelpers-96062e23.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_rollupPluginBabelHelpers-96062e23.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -5,4 +5,4 @@ const USER_ACTIONS = {
5
5
  };
6
6
 
7
7
  export { USER_ACTIONS as U };
8
- //# sourceMappingURL=actionTypes-b270327e.js.map
8
+ //# sourceMappingURL=actionTypes-423a1fac.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionTypes-b270327e.js","sources":["../src/lib/dux/user/actionTypes.ts"],"sourcesContent":["import { User } from '@sendbird/chat';\nimport { CreateAction } from '../../../utils/typeHelpers/reducers/CreateAction';\n\nexport const USER_ACTIONS = {\n INIT_USER: 'INIT_USER',\n RESET_USER: 'RESET_USER',\n UPDATE_USER_INFO: 'UPDATE_USER_INFO',\n} as const;\n\ntype USER_PAYLOAD_TYPES = {\n [USER_ACTIONS.INIT_USER]: User,\n [USER_ACTIONS.RESET_USER]: null,\n [USER_ACTIONS.UPDATE_USER_INFO]: User,\n};\n\nexport type UserActionTypes = CreateAction<USER_PAYLOAD_TYPES>;\n"],"names":["USER_ACTIONS","INIT_USER","RESET_USER","UPDATE_USER_INFO"],"mappings":"AAGO,MAAMA,YAAY,GAAG;AAC1BC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,gBAAgB,EAAE,kBAAA;AACpB;;;;"}
1
+ {"version":3,"file":"actionTypes-423a1fac.js","sources":["../src/lib/dux/user/actionTypes.ts"],"sourcesContent":["import { User } from '@sendbird/chat';\nimport { CreateAction } from '../../../utils/typeHelpers/reducers/CreateAction';\n\nexport const USER_ACTIONS = {\n INIT_USER: 'INIT_USER',\n RESET_USER: 'RESET_USER',\n UPDATE_USER_INFO: 'UPDATE_USER_INFO',\n} as const;\n\ntype USER_PAYLOAD_TYPES = {\n [USER_ACTIONS.INIT_USER]: User,\n [USER_ACTIONS.RESET_USER]: null,\n [USER_ACTIONS.UPDATE_USER_INFO]: User,\n};\n\nexport type UserActionTypes = CreateAction<USER_PAYLOAD_TYPES>;\n"],"names":["USER_ACTIONS","INIT_USER","RESET_USER","UPDATE_USER_INFO"],"mappings":"AAGO,MAAMA,YAAY,GAAG;AAC1BC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,gBAAgB,EAAE,kBAAA;AACpB;;;;"}
package/cjs/App.js CHANGED
@@ -3,7 +3,7 @@
3
3
  var React = require('react');
4
4
  var PropTypes = require('prop-types');
5
5
  var SendbirdProvider = require('./SendbirdProvider.js');
6
- var MediaQueryContext = require('./MediaQueryContext-3b09499c.js');
6
+ var MediaQueryContext = require('./MediaQueryContext-302f1c4f.js');
7
7
  var ChannelList = require('./ChannelList.js');
8
8
  var Channel = require('./Channel.js');
9
9
  var ChannelSettings = require('./ChannelSettings.js');
@@ -11,29 +11,29 @@ var MessageSearch = require('./MessageSearch.js');
11
11
  var Thread = require('./Thread.js');
12
12
  var groupChannel = require('@sendbird/chat/groupChannel');
13
13
  var useSendbirdStateContext = require('./useSendbirdStateContext.js');
14
- var uuid = require('./uuid-d0dd45eb.js');
15
- var consts = require('./consts-cafff484.js');
16
- require('./_rollupPluginBabelHelpers-4b6406c2.js');
14
+ var uuid = require('./uuid-d5eb7040.js');
15
+ var consts = require('./consts-9cbf147c.js');
16
+ require('./_rollupPluginBabelHelpers-596e2aef.js');
17
17
  require('./withSendbird.js');
18
18
  require('css-vars-ponyfill');
19
- require('./index.module-f4ff21b1.js');
20
- require('./actionTypes-f66e00c2.js');
19
+ require('./index.module-2d344ee2.js');
20
+ require('./actionTypes-29997777.js');
21
21
  require('@sendbird/chat');
22
22
  require('@sendbird/chat/openChannel');
23
- require('./index-4de6caed.js');
23
+ require('./index-551be60f.js');
24
24
  require('./utils/message/getOutgoingMessageState.js');
25
- require('./index-b2886b93.js');
25
+ require('./index-8fc4c8ed.js');
26
26
  require('./VoiceRecorder/context.js');
27
- require('./LocalizationContext-30772f4a.js');
28
- require('./stringSet-2b481a03.js');
29
- require('./index-6d3fe482.js');
30
- require('./ChannelListProvider-6b61a484.js');
31
- require('./topics-f9cf559a.js');
32
- require('./utils-f6f55335.js');
33
- require('./UserProfileContext-eb5a10d6.js');
27
+ require('./LocalizationContext-975ffc10.js');
28
+ require('./stringSet-ac04b7c1.js');
29
+ require('./index-f0938824.js');
30
+ require('./ChannelListProvider-2bcdc671.js');
31
+ require('./topics-89c25bd7.js');
32
+ require('./utils-eadc245c.js');
33
+ require('./UserProfileContext-8b19c6c3.js');
34
34
  require('./ChannelList/components/ChannelListUI.js');
35
35
  require('./ChannelList/components/ChannelListHeader.js');
36
- require('./index-80b17a7f.js');
36
+ require('./index-bb91f996.js');
37
37
  require('./ui/Avatar.js');
38
38
  require('./ui/ImageRenderer.js');
39
39
  require('./ui/Icon.js');
@@ -41,12 +41,12 @@ require('./ChannelList/components/AddChannel.js');
41
41
  require('./ui/IconButton.js');
42
42
  require('./CreateChannel.js');
43
43
  require('./CreateChannel/components/CreateChannelUI.js');
44
- require('./CreateChannelProvider-2beb2415.js');
44
+ require('./CreateChannelProvider-8f7d9505.js');
45
45
  require('./sendbirdSelectors.js');
46
46
  require('./CreateChannel/components/InviteUsers.js');
47
47
  require('./ui/Modal.js');
48
48
  require('react-dom');
49
- require('./index-5fd03280.js');
49
+ require('./index-e36db682.js');
50
50
  require('./ui/Button.js');
51
51
  require('./ui/UserListItem.js');
52
52
  require('./ui/MutedAvatarOverlay.js');
@@ -57,56 +57,56 @@ require('./ui/SortByRow.js');
57
57
  require('./CreateChannel/components/SelectChannelType.js');
58
58
  require('./ChannelList/components/ChannelPreview.js');
59
59
  require('./ui/ChannelAvatar.js');
60
- require('./utils-1fd1fe8c.js');
60
+ require('./utils-40b8c201.js');
61
61
  require('./ui/Badge.js');
62
- require('./index-0514e373.js');
63
- require('./index-ca85a10a.js');
62
+ require('./index-0d2fba98.js');
63
+ require('./index-9dd778ed.js');
64
64
  require('./ui/Loader.js');
65
- require('./index-986b886d.js');
66
- require('./index-223d453c.js');
65
+ require('./index-7ffe6f27.js');
66
+ require('./index-8d2c0bda.js');
67
67
  require('./ui/MentionUserLabel.js');
68
- require('./consts-cb169c09.js');
68
+ require('./consts-df222988.js');
69
69
  require('./ui/TextButton.js');
70
- require('./color-4904d01e.js');
70
+ require('./color-ac868fc0.js');
71
71
  require('./Channel/components/TypingIndicator.js');
72
- require('./ChannelProvider-12a12f31.js');
73
- require('./compareIds-de8d3b96.js');
74
- require('./const-bba9510b.js');
72
+ require('./ChannelProvider-2a01302b.js');
73
+ require('./compareIds-3c9472b4.js');
74
+ require('./const-7d011d30.js');
75
75
  require('@sendbird/chat/message');
76
- require('./ui/ReactionButton.js');
77
- require('./useLongPress-ab63a990.js');
76
+ require('./useLongPress-472493f7.js');
78
77
  require('./ChannelList/components/ChannelPreviewAction.js');
79
78
  require('./EditUserProfile.js');
80
- require('./index-df637378.js');
79
+ require('./index-0b24e87b.js');
81
80
  require('./ui/Input.js');
82
- require('./index-2c8ca1d6.js');
81
+ require('./index-f4cf9eb5.js');
83
82
  require('./Channel/components/ChannelUI.js');
84
83
  require('./ui/ConnectionStatus.js');
85
84
  require('./Channel/components/ChannelHeader.js');
86
- require('./utils-7e52a10a.js');
85
+ require('./utils-76562fb5.js');
87
86
  require('./Channel/components/MessageList.js');
88
87
  require('./Channel/components/Message.js');
89
88
  require('./Channel/components/SuggestedMentionList.js');
90
- require('./const-97ad0ae2.js');
91
- require('./ThreadProvider-1ebd5bc0.js');
89
+ require('./const-7b049118.js');
90
+ require('./ThreadProvider-e8f49239.js');
92
91
  require('./Thread/context/types.js');
93
92
  require('./ui/DateSeparator.js');
94
93
  require('./ui/MessageInput.js');
95
94
  require('dompurify');
96
- require('./consts-a235ce0a.js');
97
- require('./consts-6acebb51.js');
98
- require('./tokenize-07747f4c.js');
95
+ require('./consts-d9ff7fec.js');
96
+ require('./consts-6cf0ec85.js');
97
+ require('./tokenize-10b9c2ca.js');
99
98
  require('./ui/MessageContent.js');
100
99
  require('./ui/MessageItemMenu.js');
101
- require('./types-3dcd9651.js');
100
+ require('./types-53455550.js');
102
101
  require('./ui/MessageItemReactionMenu.js');
102
+ require('./ui/ReactionButton.js');
103
103
  require('./ui/EmojiReactions.js');
104
104
  require('./ui/Tooltip.js');
105
105
  require('./ui/TooltipWrapper.js');
106
106
  require('./ui/ReactionBadge.js');
107
107
  require('./ui/AdminMessage.js');
108
108
  require('./ui/TextMessageItemBody.js');
109
- require('./index-43612435.js');
109
+ require('./index-1a324d07.js');
110
110
  require('./Message/context.js');
111
111
  require('./ui/MentionLabel.js');
112
112
  require('./ui/LinkLabel.js');
@@ -123,14 +123,14 @@ require('./VoicePlayer/useVoicePlayer.js');
123
123
  require('./ui/PlaybackTime.js');
124
124
  require('./Channel/components/FileViewer.js');
125
125
  require('./Channel/components/RemoveMessageModal.js');
126
- require('./index-2a770f35.js');
126
+ require('./index-46b412dc.js');
127
127
  require('./Channel/components/UnreadCount.js');
128
128
  require('./Channel/components/FrozenNotification.js');
129
129
  require('./Channel/components/MessageInput.js');
130
130
  require('./ui/QuoteMessageInput.js');
131
- require('./VoiceMessageInputWrapper-044427b2.js');
131
+ require('./VoiceMessageInputWrapper-5dfaba8f.js');
132
132
  require('./VoiceRecorder/useVoiceRecorder.js');
133
- require('./index-34cc612a.js');
133
+ require('./index-263d9317.js');
134
134
  require('./ChannelSettings/components/ChannelSettingsUI.js');
135
135
  require('./ChannelSettings/context.js');
136
136
  require('./ChannelSettings/components/ChannelProfile.js');
@@ -138,10 +138,10 @@ require('./ChannelSettings/components/EditDetailsModal.js');
138
138
  require('./ChannelSettings/components/ModerationPanel.js');
139
139
  require('./ui/Accordion.js');
140
140
  require('./ui/AccordionGroup.js');
141
- require('./context-e6181d31.js');
141
+ require('./context-1d31dbec.js');
142
142
  require('./ui/Toggle.js');
143
143
  require('./ChannelSettings/components/UserListItem.js');
144
- require('./MemberList-f0c4e234.js');
144
+ require('./MemberList-0c0c303c.js');
145
145
  require('./ChannelSettings/components/LeaveChannel.js');
146
146
  require('./ChannelSettings/components/UserPanel.js');
147
147
  require('./MessageSearch/components/MessageSearchUI.js');
@@ -150,7 +150,7 @@ require('./ui/MessageSearchItem.js');
150
150
  require('./ui/MessageSearchFileItem.js');
151
151
  require('./Thread/components/ThreadUI.js');
152
152
  require('./Thread/components/ParentMessageInfo.js');
153
- require('./RemoveMessageModal-e0480b7c.js');
153
+ require('./RemoveMessageModal-f8277edf.js');
154
154
  require('./Thread/components/ParentMessageInfoItem.js');
155
155
  require('./ui/FileViewer.js');
156
156
  require('./Thread/components/ThreadHeader.js');
package/cjs/App.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sources":["../../src/modules/App/DesktopLayout.tsx","../../src/modules/App/MobileLayout.tsx","../../src/modules/App/AppLayout.tsx","../../src/modules/App/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport type { DesktopLayoutProps } from './types';\n\nimport ChannelList from '../ChannelList';\nimport Channel from '../Channel';\nimport ChannelSettings from '../ChannelSettings';\nimport MessageSearchPannel from '../MessageSearch';\nimport Thread from '../Thread';\n\nexport const DesktopLayout: React.FC<DesktopLayoutProps> = (\n props: DesktopLayoutProps,\n) => {\n const {\n isReactionEnabled,\n replyType,\n isMessageGroupingEnabled,\n allowProfileEdit,\n showSearchIcon,\n onProfileEditSuccess,\n disableAutoSelect,\n currentChannel,\n setCurrentChannel,\n showSettings,\n setShowSettings,\n showSearch,\n setShowSearch,\n highlightedMessage,\n setHighlightedMessage,\n startingPoint,\n setStartingPoint,\n showThread,\n setShowThread,\n threadTargetMessage,\n setThreadTargetMessage,\n } = props;\n const [animatedMessageId, setAnimatedMessageId] = useState(null);\n return (\n <div className=\"sendbird-app__wrap\">\n <div className=\"sendbird-app__channellist-wrap\">\n <ChannelList\n allowProfileEdit={allowProfileEdit}\n activeChannelUrl={currentChannel?.url}\n onProfileEditSuccess={onProfileEditSuccess}\n disableAutoSelect={disableAutoSelect}\n onChannelSelect={(channel) => {\n setStartingPoint(null);\n setHighlightedMessage(null);\n if (channel) {\n setCurrentChannel(channel);\n } else {\n setCurrentChannel(null);\n }\n }}\n />\n </div>\n <div\n className={`\n ${showSettings ? 'sendbird-app__conversation--settings-open' : ''}\n ${showSearch ? 'sendbird-app__conversation--search-open' : ''}\n sendbird-app__conversation-wrap\n `}\n >\n <Channel\n channelUrl={currentChannel?.url || ''}\n onChatHeaderActionClick={() => {\n setShowSearch(false);\n setShowThread(false);\n setShowSettings(!showSettings);\n }}\n onSearchClick={() => {\n setShowSettings(false);\n setShowThread(false);\n setShowSearch(!showSearch);\n }}\n onReplyInThread={({ message }) => { // parent message\n setShowSettings(false);\n setShowSearch(false);\n if (replyType === 'THREAD') {\n setThreadTargetMessage(message);\n setShowThread(true);\n }\n }}\n onQuoteMessageClick={({ message }) => { // thread message\n setShowSettings(false);\n setShowSearch(false);\n if (replyType === 'THREAD') {\n setThreadTargetMessage(message);\n setShowThread(true);\n }\n }}\n onMessageAnimated={() => {\n setAnimatedMessageId(null);\n }}\n onMessageHighlighted={() => {\n setHighlightedMessage(null);\n }}\n showSearchIcon={showSearchIcon}\n startingPoint={startingPoint}\n animatedMessage={animatedMessageId}\n highlightedMessage={highlightedMessage}\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n isMessageGroupingEnabled={isMessageGroupingEnabled}\n />\n </div>\n {showSettings && (\n <div className=\"sendbird-app__settingspanel-wrap\">\n <ChannelSettings\n className=\"sendbird-channel-settings\"\n channelUrl={currentChannel?.url || ''}\n onCloseClick={() => {\n setShowSettings(false);\n }}\n />\n </div>\n )}\n {showSearch && (\n <div className=\"sendbird-app__searchpanel-wrap\">\n <MessageSearchPannel\n channelUrl={currentChannel?.url || ''}\n onResultClick={(message) => {\n if (message.messageId === highlightedMessage) {\n setHighlightedMessage(null);\n setTimeout(() => {\n setHighlightedMessage(message.messageId);\n });\n } else {\n setStartingPoint(message.createdAt);\n setHighlightedMessage(message.messageId);\n }\n }}\n onCloseClick={() => {\n setShowSearch(false);\n }}\n />\n </div>\n )}\n {showThread && (\n <Thread\n className=\"sendbird-app__thread\"\n channelUrl={currentChannel?.url || ''}\n message={threadTargetMessage}\n onHeaderActionClick={() => {\n setShowThread(false);\n }}\n onMoveToParentMessage={({ message, channel }) => {\n if (channel?.url !== currentChannel?.url) {\n setCurrentChannel(channel);\n }\n if (message?.messageId !== animatedMessageId) {\n setStartingPoint(message?.createdAt);\n }\n setTimeout(() => {\n setAnimatedMessageId(message?.messageId);\n }, 500);\n }}\n />\n )}\n </div>\n )\n};\n","import './mobile.scss';\n\nimport React, { useState, useEffect } from 'react';\nimport type { BaseMessage } from '@sendbird/chat/message';\nimport type { SendbirdGroupChat } from '@sendbird/chat/groupChannel';\nimport { GroupChannelHandler } from '@sendbird/chat/groupChannel';\n\nimport type { MobileLayoutProps } from './types';\n\nimport ChannelList from '../ChannelList';\nimport Channel from '../Channel';\nimport ChannelSettings from '../ChannelSettings';\nimport MessageSearch from '../MessageSearch';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\nimport uuidv4 from '../../utils/uuid';\n\nenum PANELS {\n CHANNEL_LIST = 'CHANNEL_LIST',\n CHANNEL = 'CHANNEL',\n CHANNEL_SETTINGS = 'CHANNEL_SETTINGS',\n MESSAGE_SEARCH = 'MESSAGE_SEARCH',\n}\n\nexport const MobileLayout: React.FC<MobileLayoutProps> = (\n props: MobileLayoutProps,\n) => {\n const {\n replyType,\n isMessageGroupingEnabled,\n allowProfileEdit,\n isReactionEnabled,\n showSearchIcon,\n onProfileEditSuccess,\n currentChannel,\n setCurrentChannel,\n highlightedMessage,\n setHighlightedMessage,\n startingPoint,\n setStartingPoint,\n } = props;\n const [panel, setPanel] = useState(PANELS?.CHANNEL_LIST);\n\n const store = useSendbirdStateContext();\n const sdk = store?.stores?.sdkStore?.sdk as SendbirdGroupChat;\n const userId = store?.config?.userId;\n\n const goToMessage = (message?: BaseMessage | null) => {\n setStartingPoint(message?.createdAt);\n setTimeout(() => {\n setHighlightedMessage(message?.messageId);\n });\n };\n\n useEffect(() => {\n if (panel !== PANELS?.CHANNEL) {\n goToMessage();\n }\n }, [panel]);\n\n useEffect(() => {\n const handlerId = uuidv4();\n if (sdk?.groupChannel?.addGroupChannelHandler) {\n const handler = new GroupChannelHandler({\n onUserBanned: (groupChannel, user) => {\n if (groupChannel.url === currentChannel?.url && user?.userId === userId) {\n setPanel(PANELS.CHANNEL_LIST);\n }\n },\n onChannelDeleted: (channelUrl) => {\n if (channelUrl === currentChannel?.url) {\n setPanel(PANELS.CHANNEL_LIST);\n }\n },\n onUserLeft: (groupChannel, user) => {\n if (groupChannel.url === currentChannel?.url && user?.userId === userId) {\n setPanel(PANELS.CHANNEL_LIST);\n }\n },\n });\n sdk?.groupChannel?.addGroupChannelHandler(handlerId, handler)\n }\n return () => {\n sdk?.groupChannel?.removeGroupChannelHandler?.(handlerId);\n }\n }, [sdk]);\n\n return (\n <div>\n {\n panel === PANELS?.CHANNEL_LIST && (\n <div className='sb_mobile__panelwrap'>\n <ChannelList\n onProfileEditSuccess={onProfileEditSuccess}\n onChannelSelect={(channel) => {\n setCurrentChannel(channel);\n setPanel(PANELS.CHANNEL);\n }}\n allowProfileEdit={allowProfileEdit}\n // this condition must be true for mobile\n disableAutoSelect\n />\n </div>\n )\n }\n {\n panel === PANELS?.CHANNEL && (\n <div className='sb_mobile__panelwrap'>\n <Channel\n replyType={replyType}\n channelUrl={currentChannel?.url || ''}\n onSearchClick={() => {\n setPanel(PANELS.MESSAGE_SEARCH);\n }}\n onBackClick={() => {\n setPanel(PANELS.CHANNEL_LIST);\n }}\n isReactionEnabled={isReactionEnabled}\n showSearchIcon={showSearchIcon}\n isMessageGroupingEnabled={isMessageGroupingEnabled}\n startingPoint={startingPoint}\n highlightedMessage={highlightedMessage}\n onChatHeaderActionClick={() => {\n setPanel(PANELS.CHANNEL_SETTINGS);\n }}\n />\n </div>\n )\n }\n {\n panel === PANELS?.CHANNEL_SETTINGS && (\n <div className='sb_mobile__panelwrap'>\n <ChannelSettings\n channelUrl={currentChannel?.url || ''}\n onCloseClick={() => {\n setPanel(PANELS.CHANNEL);\n }}\n onLeaveChannel={() => {\n setPanel(PANELS.CHANNEL_LIST);\n }}\n />\n </div>\n )\n }\n {\n panel === PANELS?.MESSAGE_SEARCH && (\n <div className='sb_mobile__panelwrap'>\n <MessageSearch\n channelUrl={currentChannel?.url || ''}\n onCloseClick={() => {\n setPanel(PANELS.CHANNEL);\n }}\n onResultClick={(message) => {\n setPanel(PANELS.CHANNEL);\n goToMessage(message);\n }}\n />\n </div>\n )\n }\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\n\nimport type { AppLayoutProps } from './types';\n\nimport { useMediaQueryContext } from '../../lib/MediaQueryContext';\nimport { DesktopLayout } from './DesktopLayout';\nimport { MobileLayout } from './MobileLayout';\n\nexport const AppLayout: React.FC<AppLayoutProps> = (\n props: AppLayoutProps,\n) => {\n const {\n isReactionEnabled,\n replyType,\n isMessageGroupingEnabled,\n allowProfileEdit,\n showSearchIcon,\n onProfileEditSuccess,\n disableAutoSelect,\n currentChannel,\n setCurrentChannel,\n } = props;\n const [showThread, setShowThread] = useState(false);\n const [threadTargetMessage, setThreadTargetMessage] = useState<UserMessage | FileMessage>(null);\n const [showSettings, setShowSettings] = useState(false);\n const [showSearch, setShowSearch] = useState(false);\n const [highlightedMessage, setHighlightedMessage] = useState<number>(null);\n const [startingPoint, setStartingPoint] = useState<number>(null);\n const { isMobile } = useMediaQueryContext();\n return (\n <>\n {\n isMobile\n ? (\n <MobileLayout\n replyType={replyType}\n isMessageGroupingEnabled={isMessageGroupingEnabled}\n allowProfileEdit={allowProfileEdit}\n isReactionEnabled={isReactionEnabled}\n showSearchIcon={showSearchIcon}\n onProfileEditSuccess={onProfileEditSuccess}\n currentChannel={currentChannel}\n setCurrentChannel={setCurrentChannel}\n highlightedMessage={highlightedMessage}\n setHighlightedMessage={setHighlightedMessage}\n startingPoint={startingPoint}\n setStartingPoint={setStartingPoint}\n />\n )\n : (\n <DesktopLayout\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n isMessageGroupingEnabled={isMessageGroupingEnabled}\n allowProfileEdit={allowProfileEdit}\n showSearchIcon={showSearchIcon}\n onProfileEditSuccess={onProfileEditSuccess}\n disableAutoSelect={disableAutoSelect}\n currentChannel={currentChannel}\n setCurrentChannel={setCurrentChannel}\n showThread={showThread}\n setShowThread={setShowThread}\n threadTargetMessage={threadTargetMessage}\n setThreadTargetMessage={setThreadTargetMessage}\n showSettings={showSettings}\n setShowSettings={setShowSettings}\n showSearch={showSearch}\n setShowSearch={setShowSearch}\n highlightedMessage={highlightedMessage}\n setHighlightedMessage={setHighlightedMessage}\n startingPoint={startingPoint}\n setStartingPoint={setStartingPoint}\n />\n )\n }\n </>\n )\n}\n","/**\n * This is a drop in Chat solution\n * Can also be used as an example for creating\n * default chat apps\n */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Sendbird from '../../lib/Sendbird';\n\nimport { AppLayout } from './AppLayout';\n\nimport './index.scss';\nimport { VOICE_RECORDER_DEFAULT_MAX, VOICE_RECORDER_DEFAULT_MIN } from '../../utils/consts';\n\nexport default function App(props) {\n const {\n appId,\n userId,\n accessToken,\n customApiHost,\n customWebSocketHost,\n mediaQueryBreakPoint,\n theme,\n userListQuery,\n nickname,\n profileUrl,\n dateLocale,\n config = {},\n isReactionEnabled,\n isMentionEnabled,\n isVoiceMessageEnabled,\n voiceRecord,\n replyType,\n isMessageGroupingEnabled,\n colorSet,\n stringSet,\n allowProfileEdit,\n disableUserProfile,\n disableMarkAsDelivered,\n renderUserProfile,\n showSearchIcon,\n onProfileEditSuccess,\n imageCompression,\n disableAutoSelect,\n isTypingIndicatorEnabledOnChannelList,\n isMessageReceiptStatusEnabledOnChannelList,\n } = props;\n const [currentChannel, setCurrentChannel] = useState(null);\n return (\n <Sendbird\n stringSet={stringSet}\n appId={appId}\n userId={userId}\n accessToken={accessToken}\n customApiHost={customApiHost}\n customWebSocketHost={customWebSocketHost}\n mediaQueryBreakPoint={mediaQueryBreakPoint}\n theme={theme}\n nickname={nickname}\n profileUrl={profileUrl}\n dateLocale={dateLocale}\n userListQuery={userListQuery}\n config={config}\n colorSet={colorSet}\n disableUserProfile={disableUserProfile}\n disableMarkAsDelivered={disableMarkAsDelivered}\n renderUserProfile={renderUserProfile}\n imageCompression={imageCompression}\n isReactionEnabled={isReactionEnabled}\n isMentionEnabled={isMentionEnabled}\n isVoiceMessageEnabled={isVoiceMessageEnabled}\n voiceRecord={voiceRecord}\n onUserProfileMessage={(channel) => {\n setCurrentChannel(channel);\n }}\n isTypingIndicatorEnabledOnChannelList={isTypingIndicatorEnabledOnChannelList}\n isMessageReceiptStatusEnabledOnChannelList={isMessageReceiptStatusEnabledOnChannelList}\n replyType={replyType}\n >\n <AppLayout\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n isMessageGroupingEnabled={isMessageGroupingEnabled}\n allowProfileEdit={allowProfileEdit}\n showSearchIcon={showSearchIcon}\n onProfileEditSuccess={onProfileEditSuccess}\n disableAutoSelect={disableAutoSelect}\n currentChannel={currentChannel}\n setCurrentChannel={setCurrentChannel}\n />\n </Sendbird>\n );\n}\n\nApp.propTypes = {\n appId: PropTypes.string.isRequired,\n userId: PropTypes.string.isRequired,\n accessToken: PropTypes.string,\n customApiHost: PropTypes.string,\n customWebSocketHost: PropTypes.string,\n theme: PropTypes.string,\n userListQuery: PropTypes.func,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n mediaQueryBreakPoint: PropTypes.string,\n allowProfileEdit: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n disableMarkAsDelivered: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n onProfileEditSuccess: PropTypes.func,\n dateLocale: PropTypes.shape({}),\n config: PropTypes.shape({\n // None Error Warning Info 'All/Debug'\n logLevel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isREMUnitEnabled: PropTypes.bool,\n }),\n isReactionEnabled: PropTypes.bool,\n replyType: PropTypes.oneOf(['NONE', 'QUOTE_REPLY', 'THREAD']),\n showSearchIcon: PropTypes.bool,\n isMessageGroupingEnabled: PropTypes.bool,\n stringSet: PropTypes.objectOf(PropTypes.string),\n colorSet: PropTypes.objectOf(PropTypes.string),\n imageCompression: PropTypes.shape({\n compressionRate: PropTypes.number,\n resizingWidth: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n resizingHeight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n }),\n disableAutoSelect: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n voiceRecord: PropTypes.shape({\n maxRecordingTime: PropTypes.number,\n minRecordingTime: PropTypes.number,\n }),\n isTypingIndicatorEnabledOnChannelList: PropTypes.bool,\n isMessageReceiptStatusEnabledOnChannelList: PropTypes.bool,\n};\n\nApp.defaultProps = {\n accessToken: '',\n customApiHost: '',\n customWebSocketHost: '',\n theme: 'light',\n nickname: '',\n profileUrl: '',\n userListQuery: null,\n mediaQueryBreakPoint: null,\n dateLocale: null,\n allowProfileEdit: false,\n onProfileEditSuccess: null,\n disableUserProfile: false,\n disableMarkAsDelivered: false,\n showSearchIcon: false,\n renderUserProfile: null,\n config: {},\n isReactionEnabled: true,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n voiceRecord: {\n maxRecordingTime: VOICE_RECORDER_DEFAULT_MAX,\n minRecordingTime: VOICE_RECORDER_DEFAULT_MIN,\n },\n replyType: 'NONE',\n isMessageGroupingEnabled: true,\n stringSet: null,\n colorSet: null,\n imageCompression: {},\n disableAutoSelect: false,\n isTypingIndicatorEnabledOnChannelList: false,\n isMessageReceiptStatusEnabledOnChannelList: false,\n};\n"],"names":["DesktopLayout","props","isReactionEnabled","replyType","isMessageGroupingEnabled","allowProfileEdit","showSearchIcon","onProfileEditSuccess","disableAutoSelect","currentChannel","setCurrentChannel","showSettings","setShowSettings","showSearch","setShowSearch","highlightedMessage","setHighlightedMessage","startingPoint","setStartingPoint","showThread","setShowThread","threadTargetMessage","setThreadTargetMessage","animatedMessageId","setAnimatedMessageId","useState","React","createElement","className","ChannelList","activeChannelUrl","url","onChannelSelect","channel","Channel","channelUrl","onChatHeaderActionClick","onSearchClick","onReplyInThread","_ref","message","onQuoteMessageClick","_ref2","onMessageAnimated","onMessageHighlighted","animatedMessage","ChannelSettings","onCloseClick","MessageSearchPannel","onResultClick","messageId","setTimeout","createdAt","Thread","onHeaderActionClick","onMoveToParentMessage","_ref3","PANELS","MobileLayout","_store$stores","_store$stores$sdkStor","_store$config","panel","setPanel","CHANNEL_LIST","store","useSendbirdStateContext","sdk","stores","sdkStore","userId","config","goToMessage","useEffect","CHANNEL","_sdk$groupChannel","handlerId","uuidv4","groupChannel","addGroupChannelHandler","_sdk$groupChannel2","handler","GroupChannelHandler","onUserBanned","user","onChannelDeleted","onUserLeft","_sdk$groupChannel3","_sdk$groupChannel3$re","removeGroupChannelHandler","call","MESSAGE_SEARCH","onBackClick","CHANNEL_SETTINGS","onLeaveChannel","MessageSearch","AppLayout","isMobile","useMediaQueryContext","Fragment","App","appId","accessToken","customApiHost","customWebSocketHost","mediaQueryBreakPoint","theme","userListQuery","nickname","profileUrl","dateLocale","isMentionEnabled","isVoiceMessageEnabled","voiceRecord","colorSet","stringSet","disableUserProfile","disableMarkAsDelivered","renderUserProfile","imageCompression","isTypingIndicatorEnabledOnChannelList","isMessageReceiptStatusEnabledOnChannelList","Sendbird","onUserProfileMessage","propTypes","PropTypes","string","isRequired","func","bool","shape","logLevel","oneOfType","arrayOf","isREMUnitEnabled","oneOf","objectOf","compressionRate","number","resizingWidth","resizingHeight","maxRecordingTime","minRecordingTime","defaultProps","VOICE_RECORDER_DEFAULT_MAX","VOICE_RECORDER_DEFAULT_MIN"],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sources":["../../src/modules/App/DesktopLayout.tsx","../../src/modules/App/MobileLayout.tsx","../../src/modules/App/AppLayout.tsx","../../src/modules/App/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport type { DesktopLayoutProps } from './types';\n\nimport ChannelList from '../ChannelList';\nimport Channel from '../Channel';\nimport ChannelSettings from '../ChannelSettings';\nimport MessageSearchPannel from '../MessageSearch';\nimport Thread from '../Thread';\n\nexport const DesktopLayout: React.FC<DesktopLayoutProps> = (\n props: DesktopLayoutProps,\n) => {\n const {\n isReactionEnabled,\n replyType,\n isMessageGroupingEnabled,\n allowProfileEdit,\n showSearchIcon,\n onProfileEditSuccess,\n disableAutoSelect,\n currentChannel,\n setCurrentChannel,\n showSettings,\n setShowSettings,\n showSearch,\n setShowSearch,\n highlightedMessage,\n setHighlightedMessage,\n startingPoint,\n setStartingPoint,\n showThread,\n setShowThread,\n threadTargetMessage,\n setThreadTargetMessage,\n } = props;\n const [animatedMessageId, setAnimatedMessageId] = useState(null);\n return (\n <div className=\"sendbird-app__wrap\">\n <div className=\"sendbird-app__channellist-wrap\">\n <ChannelList\n allowProfileEdit={allowProfileEdit}\n activeChannelUrl={currentChannel?.url}\n onProfileEditSuccess={onProfileEditSuccess}\n disableAutoSelect={disableAutoSelect}\n onChannelSelect={(channel) => {\n setStartingPoint(null);\n setHighlightedMessage(null);\n if (channel) {\n setCurrentChannel(channel);\n } else {\n setCurrentChannel(null);\n }\n }}\n />\n </div>\n <div\n className={`\n ${showSettings ? 'sendbird-app__conversation--settings-open' : ''}\n ${showSearch ? 'sendbird-app__conversation--search-open' : ''}\n sendbird-app__conversation-wrap\n `}\n >\n <Channel\n channelUrl={currentChannel?.url || ''}\n onChatHeaderActionClick={() => {\n setShowSearch(false);\n setShowThread(false);\n setShowSettings(!showSettings);\n }}\n onSearchClick={() => {\n setShowSettings(false);\n setShowThread(false);\n setShowSearch(!showSearch);\n }}\n onReplyInThread={({ message }) => { // parent message\n setShowSettings(false);\n setShowSearch(false);\n if (replyType === 'THREAD') {\n setThreadTargetMessage(message);\n setShowThread(true);\n }\n }}\n onQuoteMessageClick={({ message }) => { // thread message\n setShowSettings(false);\n setShowSearch(false);\n if (replyType === 'THREAD') {\n setThreadTargetMessage(message);\n setShowThread(true);\n }\n }}\n onMessageAnimated={() => {\n setAnimatedMessageId(null);\n }}\n onMessageHighlighted={() => {\n setHighlightedMessage(null);\n }}\n showSearchIcon={showSearchIcon}\n startingPoint={startingPoint}\n animatedMessage={animatedMessageId}\n highlightedMessage={highlightedMessage}\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n isMessageGroupingEnabled={isMessageGroupingEnabled}\n />\n </div>\n {showSettings && (\n <div className=\"sendbird-app__settingspanel-wrap\">\n <ChannelSettings\n className=\"sendbird-channel-settings\"\n channelUrl={currentChannel?.url || ''}\n onCloseClick={() => {\n setShowSettings(false);\n }}\n />\n </div>\n )}\n {showSearch && (\n <div className=\"sendbird-app__searchpanel-wrap\">\n <MessageSearchPannel\n channelUrl={currentChannel?.url || ''}\n onResultClick={(message) => {\n if (message.messageId === highlightedMessage) {\n setHighlightedMessage(null);\n setTimeout(() => {\n setHighlightedMessage(message.messageId);\n });\n } else {\n setStartingPoint(message.createdAt);\n setHighlightedMessage(message.messageId);\n }\n }}\n onCloseClick={() => {\n setShowSearch(false);\n }}\n />\n </div>\n )}\n {showThread && (\n <Thread\n className=\"sendbird-app__thread\"\n channelUrl={currentChannel?.url || ''}\n message={threadTargetMessage}\n onHeaderActionClick={() => {\n setShowThread(false);\n }}\n onMoveToParentMessage={({ message, channel }) => {\n if (channel?.url !== currentChannel?.url) {\n setCurrentChannel(channel);\n }\n if (message?.messageId !== animatedMessageId) {\n setStartingPoint(message?.createdAt);\n }\n setTimeout(() => {\n setAnimatedMessageId(message?.messageId);\n }, 500);\n }}\n />\n )}\n </div>\n );\n};\n","import './mobile.scss';\n\nimport React, { useState, useEffect } from 'react';\nimport type { BaseMessage } from '@sendbird/chat/message';\nimport type { SendbirdGroupChat } from '@sendbird/chat/groupChannel';\nimport { GroupChannelHandler } from '@sendbird/chat/groupChannel';\n\nimport type { MobileLayoutProps } from './types';\n\nimport ChannelList from '../ChannelList';\nimport Channel from '../Channel';\nimport ChannelSettings from '../ChannelSettings';\nimport MessageSearch from '../MessageSearch';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\nimport uuidv4 from '../../utils/uuid';\n\nenum PANELS {\n CHANNEL_LIST = 'CHANNEL_LIST',\n CHANNEL = 'CHANNEL',\n CHANNEL_SETTINGS = 'CHANNEL_SETTINGS',\n MESSAGE_SEARCH = 'MESSAGE_SEARCH',\n}\n\nexport const MobileLayout: React.FC<MobileLayoutProps> = (\n props: MobileLayoutProps,\n) => {\n const {\n replyType,\n isMessageGroupingEnabled,\n allowProfileEdit,\n isReactionEnabled,\n showSearchIcon,\n onProfileEditSuccess,\n currentChannel,\n setCurrentChannel,\n highlightedMessage,\n setHighlightedMessage,\n startingPoint,\n setStartingPoint,\n } = props;\n const [panel, setPanel] = useState(PANELS?.CHANNEL_LIST);\n\n const store = useSendbirdStateContext();\n const sdk = store?.stores?.sdkStore?.sdk as SendbirdGroupChat;\n const userId = store?.config?.userId;\n\n const goToMessage = (message?: BaseMessage | null) => {\n setStartingPoint(message?.createdAt);\n setTimeout(() => {\n setHighlightedMessage(message?.messageId);\n });\n };\n\n useEffect(() => {\n if (panel !== PANELS?.CHANNEL) {\n goToMessage();\n }\n }, [panel]);\n\n useEffect(() => {\n const handlerId = uuidv4();\n if (sdk?.groupChannel?.addGroupChannelHandler) {\n const handler = new GroupChannelHandler({\n onUserBanned: (groupChannel, user) => {\n if (groupChannel.url === currentChannel?.url && user?.userId === userId) {\n setPanel(PANELS.CHANNEL_LIST);\n }\n },\n onChannelDeleted: (channelUrl) => {\n if (channelUrl === currentChannel?.url) {\n setPanel(PANELS.CHANNEL_LIST);\n }\n },\n onUserLeft: (groupChannel, user) => {\n if (groupChannel.url === currentChannel?.url && user?.userId === userId) {\n setPanel(PANELS.CHANNEL_LIST);\n }\n },\n });\n sdk?.groupChannel?.addGroupChannelHandler(handlerId, handler);\n }\n return () => {\n sdk?.groupChannel?.removeGroupChannelHandler?.(handlerId);\n };\n }, [sdk]);\n\n return (\n <div>\n {\n panel === PANELS?.CHANNEL_LIST && (\n <div className='sb_mobile__panelwrap'>\n <ChannelList\n onProfileEditSuccess={onProfileEditSuccess}\n onChannelSelect={(channel) => {\n setCurrentChannel(channel);\n setPanel(PANELS.CHANNEL);\n }}\n allowProfileEdit={allowProfileEdit}\n // this condition must be true for mobile\n disableAutoSelect\n />\n </div>\n )\n }\n {\n panel === PANELS?.CHANNEL && (\n <div className='sb_mobile__panelwrap'>\n <Channel\n replyType={replyType}\n channelUrl={currentChannel?.url || ''}\n onSearchClick={() => {\n setPanel(PANELS.MESSAGE_SEARCH);\n }}\n onBackClick={() => {\n setPanel(PANELS.CHANNEL_LIST);\n }}\n isReactionEnabled={isReactionEnabled}\n showSearchIcon={showSearchIcon}\n isMessageGroupingEnabled={isMessageGroupingEnabled}\n startingPoint={startingPoint}\n highlightedMessage={highlightedMessage}\n onChatHeaderActionClick={() => {\n setPanel(PANELS.CHANNEL_SETTINGS);\n }}\n />\n </div>\n )\n }\n {\n panel === PANELS?.CHANNEL_SETTINGS && (\n <div className='sb_mobile__panelwrap'>\n <ChannelSettings\n channelUrl={currentChannel?.url || ''}\n onCloseClick={() => {\n setPanel(PANELS.CHANNEL);\n }}\n onLeaveChannel={() => {\n setPanel(PANELS.CHANNEL_LIST);\n }}\n />\n </div>\n )\n }\n {\n panel === PANELS?.MESSAGE_SEARCH && (\n <div className='sb_mobile__panelwrap'>\n <MessageSearch\n channelUrl={currentChannel?.url || ''}\n onCloseClick={() => {\n setPanel(PANELS.CHANNEL);\n }}\n onResultClick={(message) => {\n setPanel(PANELS.CHANNEL);\n goToMessage(message);\n }}\n />\n </div>\n )\n }\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\n\nimport type { AppLayoutProps } from './types';\n\nimport { useMediaQueryContext } from '../../lib/MediaQueryContext';\nimport { DesktopLayout } from './DesktopLayout';\nimport { MobileLayout } from './MobileLayout';\n\nexport const AppLayout: React.FC<AppLayoutProps> = (\n props: AppLayoutProps,\n) => {\n const {\n isReactionEnabled,\n replyType,\n isMessageGroupingEnabled,\n allowProfileEdit,\n showSearchIcon,\n onProfileEditSuccess,\n disableAutoSelect,\n currentChannel,\n setCurrentChannel,\n } = props;\n const [showThread, setShowThread] = useState(false);\n const [threadTargetMessage, setThreadTargetMessage] = useState<UserMessage | FileMessage>(null);\n const [showSettings, setShowSettings] = useState(false);\n const [showSearch, setShowSearch] = useState(false);\n const [highlightedMessage, setHighlightedMessage] = useState<number>(null);\n const [startingPoint, setStartingPoint] = useState<number>(null);\n const { isMobile } = useMediaQueryContext();\n return (\n <>\n {\n isMobile\n ? (\n <MobileLayout\n replyType={replyType}\n isMessageGroupingEnabled={isMessageGroupingEnabled}\n allowProfileEdit={allowProfileEdit}\n isReactionEnabled={isReactionEnabled}\n showSearchIcon={showSearchIcon}\n onProfileEditSuccess={onProfileEditSuccess}\n currentChannel={currentChannel}\n setCurrentChannel={setCurrentChannel}\n highlightedMessage={highlightedMessage}\n setHighlightedMessage={setHighlightedMessage}\n startingPoint={startingPoint}\n setStartingPoint={setStartingPoint}\n />\n )\n : (\n <DesktopLayout\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n isMessageGroupingEnabled={isMessageGroupingEnabled}\n allowProfileEdit={allowProfileEdit}\n showSearchIcon={showSearchIcon}\n onProfileEditSuccess={onProfileEditSuccess}\n disableAutoSelect={disableAutoSelect}\n currentChannel={currentChannel}\n setCurrentChannel={setCurrentChannel}\n showThread={showThread}\n setShowThread={setShowThread}\n threadTargetMessage={threadTargetMessage}\n setThreadTargetMessage={setThreadTargetMessage}\n showSettings={showSettings}\n setShowSettings={setShowSettings}\n showSearch={showSearch}\n setShowSearch={setShowSearch}\n highlightedMessage={highlightedMessage}\n setHighlightedMessage={setHighlightedMessage}\n startingPoint={startingPoint}\n setStartingPoint={setStartingPoint}\n />\n )\n }\n </>\n );\n};\n","/**\n * This is a drop in Chat solution\n * Can also be used as an example for creating\n * default chat apps\n */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Sendbird from '../../lib/Sendbird';\n\nimport { AppLayout } from './AppLayout';\n\nimport './index.scss';\nimport { VOICE_RECORDER_DEFAULT_MAX, VOICE_RECORDER_DEFAULT_MIN } from '../../utils/consts';\n\nexport default function App(props) {\n const {\n appId,\n userId,\n accessToken,\n customApiHost,\n customWebSocketHost,\n mediaQueryBreakPoint,\n theme,\n userListQuery,\n nickname,\n profileUrl,\n dateLocale,\n config = {},\n isReactionEnabled,\n isMentionEnabled,\n isVoiceMessageEnabled,\n voiceRecord,\n replyType,\n isMessageGroupingEnabled,\n colorSet,\n stringSet,\n allowProfileEdit,\n disableUserProfile,\n disableMarkAsDelivered,\n renderUserProfile,\n showSearchIcon,\n onProfileEditSuccess,\n imageCompression,\n disableAutoSelect,\n isTypingIndicatorEnabledOnChannelList,\n isMessageReceiptStatusEnabledOnChannelList,\n } = props;\n const [currentChannel, setCurrentChannel] = useState(null);\n return (\n <Sendbird\n stringSet={stringSet}\n appId={appId}\n userId={userId}\n accessToken={accessToken}\n customApiHost={customApiHost}\n customWebSocketHost={customWebSocketHost}\n mediaQueryBreakPoint={mediaQueryBreakPoint}\n theme={theme}\n nickname={nickname}\n profileUrl={profileUrl}\n dateLocale={dateLocale}\n userListQuery={userListQuery}\n config={config}\n colorSet={colorSet}\n disableUserProfile={disableUserProfile}\n disableMarkAsDelivered={disableMarkAsDelivered}\n renderUserProfile={renderUserProfile}\n imageCompression={imageCompression}\n isReactionEnabled={isReactionEnabled}\n isMentionEnabled={isMentionEnabled}\n isVoiceMessageEnabled={isVoiceMessageEnabled}\n voiceRecord={voiceRecord}\n onUserProfileMessage={(channel) => {\n setCurrentChannel(channel);\n }}\n isTypingIndicatorEnabledOnChannelList={isTypingIndicatorEnabledOnChannelList}\n isMessageReceiptStatusEnabledOnChannelList={isMessageReceiptStatusEnabledOnChannelList}\n replyType={replyType}\n >\n <AppLayout\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n isMessageGroupingEnabled={isMessageGroupingEnabled}\n allowProfileEdit={allowProfileEdit}\n showSearchIcon={showSearchIcon}\n onProfileEditSuccess={onProfileEditSuccess}\n disableAutoSelect={disableAutoSelect}\n currentChannel={currentChannel}\n setCurrentChannel={setCurrentChannel}\n />\n </Sendbird>\n );\n}\n\nApp.propTypes = {\n appId: PropTypes.string.isRequired,\n userId: PropTypes.string.isRequired,\n accessToken: PropTypes.string,\n customApiHost: PropTypes.string,\n customWebSocketHost: PropTypes.string,\n theme: PropTypes.string,\n userListQuery: PropTypes.func,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n mediaQueryBreakPoint: PropTypes.string,\n allowProfileEdit: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n disableMarkAsDelivered: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n onProfileEditSuccess: PropTypes.func,\n dateLocale: PropTypes.shape({}),\n config: PropTypes.shape({\n // None Error Warning Info 'All/Debug'\n logLevel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isREMUnitEnabled: PropTypes.bool,\n }),\n isReactionEnabled: PropTypes.bool,\n replyType: PropTypes.oneOf(['NONE', 'QUOTE_REPLY', 'THREAD']),\n showSearchIcon: PropTypes.bool,\n isMessageGroupingEnabled: PropTypes.bool,\n stringSet: PropTypes.objectOf(PropTypes.string),\n colorSet: PropTypes.objectOf(PropTypes.string),\n imageCompression: PropTypes.shape({\n compressionRate: PropTypes.number,\n resizingWidth: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n resizingHeight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n }),\n disableAutoSelect: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n voiceRecord: PropTypes.shape({\n maxRecordingTime: PropTypes.number,\n minRecordingTime: PropTypes.number,\n }),\n isTypingIndicatorEnabledOnChannelList: PropTypes.bool,\n isMessageReceiptStatusEnabledOnChannelList: PropTypes.bool,\n};\n\nApp.defaultProps = {\n accessToken: '',\n customApiHost: '',\n customWebSocketHost: '',\n theme: 'light',\n nickname: '',\n profileUrl: '',\n userListQuery: null,\n mediaQueryBreakPoint: null,\n dateLocale: null,\n allowProfileEdit: false,\n onProfileEditSuccess: null,\n disableUserProfile: false,\n disableMarkAsDelivered: false,\n showSearchIcon: false,\n renderUserProfile: null,\n config: {},\n isReactionEnabled: true,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n voiceRecord: {\n maxRecordingTime: VOICE_RECORDER_DEFAULT_MAX,\n minRecordingTime: VOICE_RECORDER_DEFAULT_MIN,\n },\n replyType: 'NONE',\n isMessageGroupingEnabled: true,\n stringSet: null,\n colorSet: null,\n imageCompression: {},\n disableAutoSelect: false,\n isTypingIndicatorEnabledOnChannelList: false,\n isMessageReceiptStatusEnabledOnChannelList: false,\n};\n"],"names":["DesktopLayout","props","isReactionEnabled","replyType","isMessageGroupingEnabled","allowProfileEdit","showSearchIcon","onProfileEditSuccess","disableAutoSelect","currentChannel","setCurrentChannel","showSettings","setShowSettings","showSearch","setShowSearch","highlightedMessage","setHighlightedMessage","startingPoint","setStartingPoint","showThread","setShowThread","threadTargetMessage","setThreadTargetMessage","animatedMessageId","setAnimatedMessageId","useState","React","createElement","className","ChannelList","activeChannelUrl","url","onChannelSelect","channel","Channel","channelUrl","onChatHeaderActionClick","onSearchClick","onReplyInThread","_ref","message","onQuoteMessageClick","_ref2","onMessageAnimated","onMessageHighlighted","animatedMessage","ChannelSettings","onCloseClick","MessageSearchPannel","onResultClick","messageId","setTimeout","createdAt","Thread","onHeaderActionClick","onMoveToParentMessage","_ref3","PANELS","MobileLayout","_store$stores","_store$stores$sdkStor","_store$config","panel","setPanel","CHANNEL_LIST","store","useSendbirdStateContext","sdk","stores","sdkStore","userId","config","goToMessage","useEffect","CHANNEL","_sdk$groupChannel","handlerId","uuidv4","groupChannel","addGroupChannelHandler","_sdk$groupChannel2","handler","GroupChannelHandler","onUserBanned","user","onChannelDeleted","onUserLeft","_sdk$groupChannel3","_sdk$groupChannel3$re","removeGroupChannelHandler","call","MESSAGE_SEARCH","onBackClick","CHANNEL_SETTINGS","onLeaveChannel","MessageSearch","AppLayout","isMobile","useMediaQueryContext","Fragment","App","appId","accessToken","customApiHost","customWebSocketHost","mediaQueryBreakPoint","theme","userListQuery","nickname","profileUrl","dateLocale","isMentionEnabled","isVoiceMessageEnabled","voiceRecord","colorSet","stringSet","disableUserProfile","disableMarkAsDelivered","renderUserProfile","imageCompression","isTypingIndicatorEnabledOnChannelList","isMessageReceiptStatusEnabledOnChannelList","Sendbird","onUserProfileMessage","propTypes","PropTypes","string","isRequired","func","bool","shape","logLevel","oneOfType","arrayOf","isREMUnitEnabled","oneOf","objectOf","compressionRate","number","resizingWidth","resizingHeight","maxRecordingTime","minRecordingTime","defaultProps","VOICE_RECORDER_DEFAULT_MAX","VOICE_RECORDER_DEFAULT_MIN"],"mappings":"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"}