@sendbird/uikit-react 3.4.6 → 3.4.7-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (888) hide show
  1. package/App.js +177 -172
  2. package/App.js.map +1 -1
  3. package/Channel/components/ChannelHeader.js +44 -39
  4. package/Channel/components/ChannelHeader.js.map +1 -1
  5. package/Channel/components/ChannelUI.js +63 -61
  6. package/Channel/components/ChannelUI.js.map +1 -1
  7. package/Channel/components/FileViewer.js +52 -46
  8. package/Channel/components/FileViewer.js.map +1 -1
  9. package/Channel/components/FrozenNotification.js +12 -9
  10. package/Channel/components/FrozenNotification.js.map +1 -1
  11. package/Channel/components/Message.js +165 -183
  12. package/Channel/components/Message.js.map +1 -1
  13. package/Channel/components/MessageInput.js +106 -113
  14. package/Channel/components/MessageInput.js.map +1 -1
  15. package/Channel/components/MessageList.js +128 -130
  16. package/Channel/components/MessageList.js.map +1 -1
  17. package/Channel/components/RemoveMessageModal.js +32 -28
  18. package/Channel/components/RemoveMessageModal.js.map +1 -1
  19. package/Channel/components/SuggestedMentionList.js +134 -153
  20. package/Channel/components/SuggestedMentionList.js.map +1 -1
  21. package/Channel/components/TypingIndicator.js +43 -42
  22. package/Channel/components/TypingIndicator.js.map +1 -1
  23. package/Channel/components/UnreadCount.js +18 -16
  24. package/Channel/components/UnreadCount.js.map +1 -1
  25. package/Channel/context.js +13 -14
  26. package/Channel/context.js.map +1 -1
  27. package/Channel.js +39 -40
  28. package/Channel.js.map +1 -1
  29. package/ChannelList/components/AddChannel.js +27 -29
  30. package/ChannelList/components/AddChannel.js.map +1 -1
  31. package/ChannelList/components/ChannelListHeader.js +30 -21
  32. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  33. package/ChannelList/components/ChannelListUI.js +91 -98
  34. package/ChannelList/components/ChannelListUI.js.map +1 -1
  35. package/ChannelList/components/ChannelPreview.js +70 -73
  36. package/ChannelList/components/ChannelPreview.js.map +1 -1
  37. package/ChannelList/components/ChannelPreviewAction.js +30 -30
  38. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  39. package/ChannelList/context.js +7 -8
  40. package/ChannelList/context.js.map +1 -1
  41. package/ChannelList.js +30 -31
  42. package/ChannelList.js.map +1 -1
  43. package/{ChannelListProvider-a2f2ee4a.js → ChannelListProvider-0aff7f22.js} +160 -156
  44. package/ChannelListProvider-0aff7f22.js.map +1 -0
  45. package/{ChannelProvider-bb459e82.js → ChannelProvider-be9f80f1.js} +429 -412
  46. package/ChannelProvider-be9f80f1.js.map +1 -0
  47. package/ChannelSettings/components/ChannelProfile.js +33 -37
  48. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  49. package/ChannelSettings/components/ChannelSettingsUI.js +45 -40
  50. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  51. package/ChannelSettings/components/EditDetailsModal.js +47 -48
  52. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  53. package/ChannelSettings/components/LeaveChannel.js +38 -35
  54. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  55. package/ChannelSettings/components/ModerationPanel.js +511 -556
  56. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  57. package/ChannelSettings/components/UserListItem.js +69 -69
  58. package/ChannelSettings/components/UserListItem.js.map +1 -1
  59. package/ChannelSettings/components/UserPanel.js +25 -27
  60. package/ChannelSettings/components/UserPanel.js.map +1 -1
  61. package/ChannelSettings/context.js +53 -49
  62. package/ChannelSettings/context.js.map +1 -1
  63. package/ChannelSettings.js +19 -18
  64. package/ChannelSettings.js.map +1 -1
  65. package/CreateChannel/components/CreateChannelUI.js +24 -21
  66. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  67. package/CreateChannel/components/InviteUsers.js +92 -93
  68. package/CreateChannel/components/InviteUsers.js.map +1 -1
  69. package/CreateChannel/components/SelectChannelType.js +41 -35
  70. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  71. package/CreateChannel/context.js +4 -4
  72. package/CreateChannel.js +22 -20
  73. package/CreateChannel.js.map +1 -1
  74. package/CreateChannelProvider-fc4f109b.js +44 -0
  75. package/CreateChannelProvider-fc4f109b.js.map +1 -0
  76. package/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -34
  77. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  78. package/CreateOpenChannel/context.js +33 -28
  79. package/CreateOpenChannel/context.js.map +1 -1
  80. package/CreateOpenChannel.js +18 -16
  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 +18 -16
  85. package/EditUserProfile.js.map +1 -1
  86. package/LocalizationContext-2b2fd3bc.js +20 -0
  87. package/{LocalizationContext-3d8c0b24.js.map → LocalizationContext-2b2fd3bc.js.map} +1 -1
  88. package/MediaQueryContext-c423a854.js +82 -0
  89. package/MediaQueryContext-c423a854.js.map +1 -0
  90. package/MemberList-6524c45a.js +395 -0
  91. package/MemberList-6524c45a.js.map +1 -0
  92. package/Message/context.js +11 -10
  93. package/Message/context.js.map +1 -1
  94. package/MessageSearch/components/MessageSearchUI.js +59 -54
  95. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  96. package/MessageSearch/context.js +176 -165
  97. package/MessageSearch/context.js.map +1 -1
  98. package/MessageSearch.js +45 -47
  99. package/MessageSearch.js.map +1 -1
  100. package/OpenChannel/components/FrozenChannelNotification.js +8 -6
  101. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  102. package/OpenChannel/components/OpenChannelHeader.js +27 -22
  103. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  104. package/OpenChannel/components/OpenChannelInput.js +32 -28
  105. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  106. package/OpenChannel/components/OpenChannelMessage.js +171 -172
  107. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  108. package/OpenChannel/components/OpenChannelMessageList.js +60 -65
  109. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  110. package/OpenChannel/components/OpenChannelUI.js +50 -48
  111. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  112. package/OpenChannel/context.js +8 -8
  113. package/OpenChannel.js +32 -33
  114. package/OpenChannel.js.map +1 -1
  115. package/OpenChannelList/components/OpenChannelListUI.js +58 -59
  116. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  117. package/OpenChannelList/components/OpenChannelPreview.js +21 -22
  118. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  119. package/OpenChannelList/context.js +3 -3
  120. package/OpenChannelList.js +24 -23
  121. package/OpenChannelList.js.map +1 -1
  122. package/{OpenChannelListProvider-f9ec8658.js → OpenChannelListProvider-bf1dc8a8.js} +177 -155
  123. package/OpenChannelListProvider-bf1dc8a8.js.map +1 -0
  124. package/OpenChannelProvider-7bcdec3e.js +1883 -0
  125. package/{cjs/OpenChannelProvider-850b9cd0.js.map → OpenChannelProvider-7bcdec3e.js.map} +1 -1
  126. package/OpenChannelSettings/components/EditDetailsModal.js +46 -46
  127. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  128. package/OpenChannelSettings/components/OpenChannelProfile.js +26 -26
  129. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  130. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -36
  131. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  132. package/OpenChannelSettings/components/OperatorUI.js +508 -533
  133. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  134. package/OpenChannelSettings/components/ParticipantUI.js +15 -15
  135. package/OpenChannelSettings/context.js +54 -56
  136. package/OpenChannelSettings/context.js.map +1 -1
  137. package/OpenChannelSettings.js +19 -19
  138. package/OpenChannelSettings.js.map +1 -1
  139. package/RemoveMessageModal-21a59002.js +36 -0
  140. package/RemoveMessageModal-21a59002.js.map +1 -0
  141. package/SendbirdProvider.js +546 -405
  142. package/SendbirdProvider.js.map +1 -1
  143. package/Thread/components/ParentMessageInfo.js +157 -170
  144. package/Thread/components/ParentMessageInfo.js.map +1 -1
  145. package/Thread/components/ParentMessageInfoItem.js +68 -62
  146. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  147. package/Thread/components/ThreadHeader.js +22 -22
  148. package/Thread/components/ThreadHeader.js.map +1 -1
  149. package/Thread/components/ThreadList.js +82 -77
  150. package/Thread/components/ThreadList.js.map +1 -1
  151. package/Thread/components/ThreadListItem.js +208 -219
  152. package/Thread/components/ThreadListItem.js.map +1 -1
  153. package/Thread/components/ThreadMessageInput.js +103 -105
  154. package/Thread/components/ThreadMessageInput.js.map +1 -1
  155. package/Thread/components/ThreadUI.js +130 -116
  156. package/Thread/components/ThreadUI.js.map +1 -1
  157. package/Thread/context/types.js +9 -9
  158. package/Thread/context/types.js.map +1 -1
  159. package/Thread/context.js +8 -8
  160. package/Thread.js +55 -55
  161. package/Thread.js.map +1 -1
  162. package/ThreadProvider-8625c19c.js +1692 -0
  163. package/ThreadProvider-8625c19c.js.map +1 -0
  164. package/{UserProfileContext-41938ddc.js → UserProfileContext-7ed35692.js} +1 -1
  165. package/{UserProfileContext-41938ddc.js.map → UserProfileContext-7ed35692.js.map} +1 -1
  166. package/{VoiceMessageInputWrapper-0cd90994.js → VoiceMessageInputWrapper-6d3a3790.js} +60 -59
  167. package/VoiceMessageInputWrapper-6d3a3790.js.map +1 -0
  168. package/VoicePlayer/context.js +3 -3
  169. package/VoicePlayer/useVoicePlayer.js +38 -43
  170. package/VoicePlayer/useVoicePlayer.js.map +1 -1
  171. package/VoiceRecorder/context.js +46 -45
  172. package/VoiceRecorder/context.js.map +1 -1
  173. package/VoiceRecorder/useVoiceRecorder.js +43 -40
  174. package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  175. package/{WebAudioUtils-682aa6c0.js → WebAudioUtils-8a211e92.js} +37 -37
  176. package/{WebAudioUtils-682aa6c0.js.map → WebAudioUtils-8a211e92.js.map} +1 -1
  177. package/{_rollupPluginBabelHelpers-79f64283.js → _rollupPluginBabelHelpers-e78a810d.js} +2 -2
  178. package/_rollupPluginBabelHelpers-e78a810d.js.map +1 -0
  179. package/{actionTypes-52102db0.js → actionTypes-8f622e32.js} +2 -2
  180. package/{actionTypes-52102db0.js.map → actionTypes-8f622e32.js.map} +1 -1
  181. package/cjs/App.js +177 -172
  182. package/cjs/App.js.map +1 -1
  183. package/cjs/Channel/components/ChannelHeader.js +44 -39
  184. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  185. package/cjs/Channel/components/ChannelUI.js +63 -61
  186. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  187. package/cjs/Channel/components/FileViewer.js +52 -46
  188. package/cjs/Channel/components/FileViewer.js.map +1 -1
  189. package/cjs/Channel/components/FrozenNotification.js +12 -9
  190. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  191. package/cjs/Channel/components/Message.js +165 -183
  192. package/cjs/Channel/components/Message.js.map +1 -1
  193. package/cjs/Channel/components/MessageInput.js +106 -113
  194. package/cjs/Channel/components/MessageInput.js.map +1 -1
  195. package/cjs/Channel/components/MessageList.js +128 -130
  196. package/cjs/Channel/components/MessageList.js.map +1 -1
  197. package/cjs/Channel/components/RemoveMessageModal.js +32 -28
  198. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  199. package/cjs/Channel/components/SuggestedMentionList.js +134 -153
  200. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  201. package/cjs/Channel/components/TypingIndicator.js +43 -42
  202. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  203. package/cjs/Channel/components/UnreadCount.js +18 -16
  204. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  205. package/cjs/Channel/context.js +14 -18
  206. package/cjs/Channel/context.js.map +1 -1
  207. package/cjs/Channel.js +39 -40
  208. package/cjs/Channel.js.map +1 -1
  209. package/cjs/ChannelList/components/AddChannel.js +27 -29
  210. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  211. package/cjs/ChannelList/components/ChannelListHeader.js +30 -21
  212. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  213. package/cjs/ChannelList/components/ChannelListUI.js +91 -98
  214. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  215. package/cjs/ChannelList/components/ChannelPreview.js +70 -73
  216. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  217. package/cjs/ChannelList/components/ChannelPreviewAction.js +30 -30
  218. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  219. package/cjs/ChannelList/context.js +7 -8
  220. package/cjs/ChannelList/context.js.map +1 -1
  221. package/cjs/ChannelList.js +30 -31
  222. package/cjs/ChannelList.js.map +1 -1
  223. package/cjs/{ChannelListProvider-b0a363e0.js → ChannelListProvider-2ff89970.js} +160 -156
  224. package/cjs/ChannelListProvider-2ff89970.js.map +1 -0
  225. package/cjs/{ChannelProvider-cf5867c2.js → ChannelProvider-ecfe2f2a.js} +430 -412
  226. package/cjs/ChannelProvider-ecfe2f2a.js.map +1 -0
  227. package/cjs/ChannelSettings/components/ChannelProfile.js +33 -37
  228. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  229. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +45 -40
  230. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  231. package/cjs/ChannelSettings/components/EditDetailsModal.js +47 -48
  232. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  233. package/cjs/ChannelSettings/components/LeaveChannel.js +38 -35
  234. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  235. package/cjs/ChannelSettings/components/ModerationPanel.js +511 -556
  236. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  237. package/cjs/ChannelSettings/components/UserListItem.js +69 -69
  238. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  239. package/cjs/ChannelSettings/components/UserPanel.js +25 -27
  240. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  241. package/cjs/ChannelSettings/context.js +53 -49
  242. package/cjs/ChannelSettings/context.js.map +1 -1
  243. package/cjs/ChannelSettings.js +19 -18
  244. package/cjs/ChannelSettings.js.map +1 -1
  245. package/cjs/CreateChannel/components/CreateChannelUI.js +24 -21
  246. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  247. package/cjs/CreateChannel/components/InviteUsers.js +92 -93
  248. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  249. package/cjs/CreateChannel/components/SelectChannelType.js +41 -35
  250. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  251. package/cjs/CreateChannel/context.js +4 -4
  252. package/cjs/CreateChannel.js +22 -20
  253. package/cjs/CreateChannel.js.map +1 -1
  254. package/cjs/CreateChannelProvider-21dc2e99.js +52 -0
  255. package/cjs/CreateChannelProvider-21dc2e99.js.map +1 -0
  256. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -34
  257. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  258. package/cjs/CreateOpenChannel/context.js +33 -28
  259. package/cjs/CreateOpenChannel/context.js.map +1 -1
  260. package/cjs/CreateOpenChannel.js +18 -16
  261. package/cjs/CreateOpenChannel.js.map +1 -1
  262. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -12
  263. package/cjs/EditUserProfile/context.js.map +1 -1
  264. package/cjs/EditUserProfile.js +18 -16
  265. package/cjs/EditUserProfile.js.map +1 -1
  266. package/cjs/{LocalizationContext-498cb747.js → LocalizationContext-08499fd8.js} +9 -9
  267. package/cjs/{LocalizationContext-498cb747.js.map → LocalizationContext-08499fd8.js.map} +1 -1
  268. package/cjs/MediaQueryContext-8a0d2426.js +89 -0
  269. package/cjs/MediaQueryContext-8a0d2426.js.map +1 -0
  270. package/cjs/MemberList-4b19299f.js +401 -0
  271. package/cjs/MemberList-4b19299f.js.map +1 -0
  272. package/cjs/Message/context.js +11 -10
  273. package/cjs/Message/context.js.map +1 -1
  274. package/cjs/MessageSearch/components/MessageSearchUI.js +59 -54
  275. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  276. package/cjs/MessageSearch/context.js +176 -165
  277. package/cjs/MessageSearch/context.js.map +1 -1
  278. package/cjs/MessageSearch.js +45 -47
  279. package/cjs/MessageSearch.js.map +1 -1
  280. package/cjs/OpenChannel/components/FrozenChannelNotification.js +8 -6
  281. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  282. package/cjs/OpenChannel/components/OpenChannelHeader.js +27 -22
  283. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  284. package/cjs/OpenChannel/components/OpenChannelInput.js +32 -28
  285. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  286. package/cjs/OpenChannel/components/OpenChannelMessage.js +171 -172
  287. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  288. package/cjs/OpenChannel/components/OpenChannelMessageList.js +60 -65
  289. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  290. package/cjs/OpenChannel/components/OpenChannelUI.js +50 -48
  291. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  292. package/cjs/OpenChannel/context.js +8 -8
  293. package/cjs/OpenChannel.js +32 -33
  294. package/cjs/OpenChannel.js.map +1 -1
  295. package/cjs/OpenChannelList/components/OpenChannelListUI.js +58 -59
  296. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  297. package/cjs/OpenChannelList/components/OpenChannelPreview.js +21 -22
  298. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  299. package/cjs/OpenChannelList/context.js +3 -3
  300. package/cjs/OpenChannelList.js +24 -23
  301. package/cjs/OpenChannelList.js.map +1 -1
  302. package/cjs/OpenChannelListProvider-522d97e6.js +439 -0
  303. package/cjs/OpenChannelListProvider-522d97e6.js.map +1 -0
  304. package/cjs/OpenChannelProvider-76871cb6.js +1892 -0
  305. package/cjs/OpenChannelProvider-76871cb6.js.map +1 -0
  306. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +46 -46
  307. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  308. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +26 -26
  309. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  310. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -36
  311. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  312. package/cjs/OpenChannelSettings/components/OperatorUI.js +508 -533
  313. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  314. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
  315. package/cjs/OpenChannelSettings/context.js +54 -56
  316. package/cjs/OpenChannelSettings/context.js.map +1 -1
  317. package/cjs/OpenChannelSettings.js +19 -19
  318. package/cjs/OpenChannelSettings.js.map +1 -1
  319. package/cjs/{RemoveMessageModal-457b1535.js → RemoveMessageModal-347cd72d.js} +19 -13
  320. package/cjs/RemoveMessageModal-347cd72d.js.map +1 -0
  321. package/cjs/SendbirdProvider.js +546 -405
  322. package/cjs/SendbirdProvider.js.map +1 -1
  323. package/cjs/Thread/components/ParentMessageInfo.js +157 -170
  324. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  325. package/cjs/Thread/components/ParentMessageInfoItem.js +68 -62
  326. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  327. package/cjs/Thread/components/ThreadHeader.js +22 -22
  328. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  329. package/cjs/Thread/components/ThreadList.js +82 -77
  330. package/cjs/Thread/components/ThreadList.js.map +1 -1
  331. package/cjs/Thread/components/ThreadListItem.js +208 -219
  332. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  333. package/cjs/Thread/components/ThreadMessageInput.js +103 -105
  334. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  335. package/cjs/Thread/components/ThreadUI.js +130 -116
  336. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  337. package/cjs/Thread/context/types.js +13 -9
  338. package/cjs/Thread/context/types.js.map +1 -1
  339. package/cjs/Thread/context.js +8 -8
  340. package/cjs/Thread.js +55 -55
  341. package/cjs/Thread.js.map +1 -1
  342. package/cjs/ThreadProvider-0c1a5256.js +1701 -0
  343. package/cjs/ThreadProvider-0c1a5256.js.map +1 -0
  344. package/cjs/{UserProfileContext-617420c9.js → UserProfileContext-0c0de7c0.js} +1 -1
  345. package/cjs/{UserProfileContext-617420c9.js.map → UserProfileContext-0c0de7c0.js.map} +1 -1
  346. package/cjs/{VoiceMessageInputWrapper-43c29f38.js → VoiceMessageInputWrapper-082e20ef.js} +60 -59
  347. package/cjs/VoiceMessageInputWrapper-082e20ef.js.map +1 -0
  348. package/cjs/VoicePlayer/context.js +3 -3
  349. package/cjs/VoicePlayer/useVoicePlayer.js +38 -43
  350. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
  351. package/cjs/VoiceRecorder/context.js +46 -45
  352. package/cjs/VoiceRecorder/context.js.map +1 -1
  353. package/cjs/VoiceRecorder/useVoiceRecorder.js +43 -40
  354. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  355. package/cjs/{WebAudioUtils-2b845cd2.js → WebAudioUtils-07a1cb3f.js} +37 -37
  356. package/cjs/{WebAudioUtils-2b845cd2.js.map → WebAudioUtils-07a1cb3f.js.map} +1 -1
  357. package/cjs/{_rollupPluginBabelHelpers-c2313dcd.js → _rollupPluginBabelHelpers-c04a5857.js} +2 -1
  358. package/cjs/_rollupPluginBabelHelpers-c04a5857.js.map +1 -0
  359. package/cjs/{actionTypes-0e0d2d59.js → actionTypes-1fec1d92.js} +2 -2
  360. package/cjs/{actionTypes-0e0d2d59.js.map → actionTypes-1fec1d92.js.map} +1 -1
  361. package/cjs/{color-7f7508e6.js → color-73cf0755.js} +13 -12
  362. package/cjs/color-73cf0755.js.map +1 -0
  363. package/cjs/{compareIds-27f7912f.js → compareIds-9741d79f.js} +1 -1
  364. package/cjs/{compareIds-27f7912f.js.map → compareIds-9741d79f.js.map} +1 -1
  365. package/cjs/const-04d1e702.js +20 -0
  366. package/cjs/const-04d1e702.js.map +1 -0
  367. package/cjs/{const-61fc7be6.js → const-df48e9ae.js} +4 -4
  368. package/cjs/{const-61fc7be6.js.map → const-df48e9ae.js.map} +1 -1
  369. package/cjs/consts-37ac8b76.js +6 -0
  370. package/cjs/{consts-46fa3a3a.js.map → consts-37ac8b76.js.map} +1 -1
  371. package/cjs/consts-b1c40dd7.js +6 -0
  372. package/cjs/{consts-ad849467.js.map → consts-b1c40dd7.js.map} +1 -1
  373. package/cjs/{consts-8605e767.js → consts-d8eecba2.js} +18 -14
  374. package/cjs/{consts-8605e767.js.map → consts-d8eecba2.js.map} +1 -1
  375. package/cjs/consts-e3066f66.js +6 -0
  376. package/cjs/consts-e3066f66.js.map +1 -0
  377. package/cjs/{context-a4af6955.js → context-df6e529e.js} +6 -5
  378. package/cjs/{context-a4af6955.js.map → context-df6e529e.js.map} +1 -1
  379. package/cjs/dist/index.css +160 -56
  380. package/cjs/dist/index.css.map +1 -1
  381. package/cjs/handlers/OpenChannelHandler.js.map +1 -1
  382. package/cjs/handlers/SessionHandler.js.map +1 -1
  383. package/cjs/{index-ac1b0ab9.js → index-0adf371c.js} +2 -4
  384. package/cjs/index-0adf371c.js.map +1 -0
  385. package/cjs/index-2519fb5c.js +361 -0
  386. package/cjs/index-2519fb5c.js.map +1 -0
  387. package/cjs/{index-67f813a3.js → index-3522ce47.js} +1 -1
  388. package/cjs/{index-67f813a3.js.map → index-3522ce47.js.map} +1 -1
  389. package/cjs/{index-ead97d9a.js → index-557a458d.js} +37 -39
  390. package/cjs/{index-ead97d9a.js.map → index-557a458d.js.map} +1 -1
  391. package/cjs/{index-71173fef.js → index-5fe8ddbd.js} +56 -193
  392. package/cjs/index-5fe8ddbd.js.map +1 -0
  393. package/cjs/index-6c62c727.js +292 -0
  394. package/cjs/{index-cd680348.js.map → index-6c62c727.js.map} +1 -1
  395. package/cjs/{index-3626dfeb.js → index-6d27f25a.js} +22 -15
  396. package/cjs/index-6d27f25a.js.map +1 -0
  397. package/cjs/index-71e1cad7.js +197 -0
  398. package/cjs/index-71e1cad7.js.map +1 -0
  399. package/cjs/index-8a8e9dec.js +57 -0
  400. package/cjs/index-8a8e9dec.js.map +1 -0
  401. package/cjs/index-99e85757.js +563 -0
  402. package/cjs/index-99e85757.js.map +1 -0
  403. package/cjs/{index-a4887600.js → index-9b05d200.js} +3 -12
  404. package/cjs/index-9b05d200.js.map +1 -0
  405. package/cjs/{index-b8a20afd.js → index-9c5f3445.js} +2 -2
  406. package/cjs/{index-b8a20afd.js.map → index-9c5f3445.js.map} +1 -1
  407. package/cjs/{index-0dff9958.js → index-b0a95ca6.js} +37 -27
  408. package/cjs/index-b0a95ca6.js.map +1 -0
  409. package/cjs/{index-8b5a13fe.js → index-b5fedf01.js} +50 -50
  410. package/cjs/index-b5fedf01.js.map +1 -0
  411. package/cjs/{index-8b6bb1ee.js → index-d817af55.js} +10 -30
  412. package/cjs/index-d817af55.js.map +1 -0
  413. package/cjs/{index-983f9d7a.js → index-e18a9a18.js} +17 -17
  414. package/cjs/{index-983f9d7a.js.map → index-e18a9a18.js.map} +1 -1
  415. package/cjs/index.js +51 -51
  416. package/cjs/{index.module-cf39e3b9.js → index.module-984504c9.js} +1 -1
  417. package/cjs/{index.module-cf39e3b9.js.map → index.module-984504c9.js.map} +1 -1
  418. package/cjs/lame.all.js.map +1 -1
  419. package/cjs/sendbirdSelectors.js +319 -371
  420. package/cjs/sendbirdSelectors.js.map +1 -1
  421. package/cjs/{stringSet-061fe0c1.js → stringSet-43ba803e.js} +2 -2
  422. package/cjs/stringSet-43ba803e.js.map +1 -0
  423. package/cjs/tokenize-c466a4e9.js +140 -0
  424. package/cjs/tokenize-c466a4e9.js.map +1 -0
  425. package/cjs/{topics-c8adbede.js → topics-ab421aa9.js} +2 -2
  426. package/cjs/{topics-c8adbede.js.map → topics-ab421aa9.js.map} +1 -1
  427. package/cjs/types-e0752815.js +17 -0
  428. package/cjs/{types-beecfca4.js.map → types-e0752815.js.map} +1 -1
  429. package/cjs/ui/Accordion.js +19 -18
  430. package/cjs/ui/Accordion.js.map +1 -1
  431. package/cjs/ui/AccordionGroup.js +10 -11
  432. package/cjs/ui/AccordionGroup.js.map +1 -1
  433. package/cjs/ui/AdminMessage.js +10 -10
  434. package/cjs/ui/AdminMessage.js.map +1 -1
  435. package/cjs/ui/Avatar.js +55 -59
  436. package/cjs/ui/Avatar.js.map +1 -1
  437. package/cjs/ui/Badge.js +16 -15
  438. package/cjs/ui/Badge.js.map +1 -1
  439. package/cjs/ui/BottomSheet.js +14 -10
  440. package/cjs/ui/BottomSheet.js.map +1 -1
  441. package/cjs/ui/Button.js +20 -24
  442. package/cjs/ui/Button.js.map +1 -1
  443. package/cjs/ui/ChannelAvatar.js +38 -41
  444. package/cjs/ui/ChannelAvatar.js.map +1 -1
  445. package/cjs/ui/Checkbox.js +9 -10
  446. package/cjs/ui/Checkbox.js.map +1 -1
  447. package/cjs/ui/ConnectionStatus.js +7 -5
  448. package/cjs/ui/ConnectionStatus.js.map +1 -1
  449. package/cjs/ui/ContextMenu.js +139 -135
  450. package/cjs/ui/ContextMenu.js.map +1 -1
  451. package/cjs/ui/DateSeparator.js +12 -14
  452. package/cjs/ui/DateSeparator.js.map +1 -1
  453. package/cjs/ui/EmojiReactions.js +78 -86
  454. package/cjs/ui/EmojiReactions.js.map +1 -1
  455. package/cjs/ui/FileMessageItemBody.js +22 -22
  456. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  457. package/cjs/ui/FileViewer.js +36 -35
  458. package/cjs/ui/FileViewer.js.map +1 -1
  459. package/cjs/ui/Icon.js +16 -16
  460. package/cjs/ui/Icon.js.map +1 -1
  461. package/cjs/ui/IconButton.js +20 -28
  462. package/cjs/ui/IconButton.js.map +1 -1
  463. package/cjs/ui/ImageRenderer.js +33 -39
  464. package/cjs/ui/ImageRenderer.js.map +1 -1
  465. package/cjs/ui/Input.js +16 -14
  466. package/cjs/ui/Input.js.map +1 -1
  467. package/cjs/ui/Label.js +2 -2
  468. package/cjs/ui/LinkLabel.js +2 -2
  469. package/cjs/ui/LinkLabel.js.map +1 -1
  470. package/cjs/ui/Loader.js +10 -12
  471. package/cjs/ui/Loader.js.map +1 -1
  472. package/cjs/ui/MentionLabel.js +58 -61
  473. package/cjs/ui/MentionLabel.js.map +1 -1
  474. package/cjs/ui/MentionUserLabel.js +10 -10
  475. package/cjs/ui/MentionUserLabel.js.map +1 -1
  476. package/cjs/ui/MessageContent.js +273 -270
  477. package/cjs/ui/MessageContent.js.map +1 -1
  478. package/cjs/ui/MessageInput.js +87 -79
  479. package/cjs/ui/MessageInput.js.map +1 -1
  480. package/cjs/ui/MessageItemMenu.js +70 -72
  481. package/cjs/ui/MessageItemMenu.js.map +1 -1
  482. package/cjs/ui/MessageItemReactionMenu.js +50 -57
  483. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  484. package/cjs/ui/MessageSearchFileItem.js +49 -38
  485. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  486. package/cjs/ui/MessageSearchItem.js +40 -32
  487. package/cjs/ui/MessageSearchItem.js.map +1 -1
  488. package/cjs/ui/MessageStatus.js +10 -10
  489. package/cjs/ui/Modal.js +52 -45
  490. package/cjs/ui/Modal.js.map +1 -1
  491. package/cjs/ui/MutedAvatarOverlay.js +10 -10
  492. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  493. package/cjs/ui/OGMessageItemBody.js +48 -44
  494. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  495. package/cjs/ui/OpenChannelAdminMessage.js +8 -7
  496. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  497. package/cjs/ui/OpenChannelAvatar.js +18 -17
  498. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  499. package/cjs/ui/OpenchannelConversationHeader.js +17 -13
  500. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  501. package/cjs/ui/OpenchannelFileMessage.js +134 -140
  502. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  503. package/cjs/ui/OpenchannelOGMessage.js +177 -176
  504. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  505. package/cjs/ui/OpenchannelThumbnailMessage.js +209 -214
  506. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  507. package/cjs/ui/OpenchannelUserMessage.js +159 -164
  508. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  509. package/cjs/ui/PlaceHolder.js +5 -6
  510. package/cjs/ui/PlaceHolder.js.map +1 -1
  511. package/cjs/ui/PlaybackTime.js +15 -16
  512. package/cjs/ui/PlaybackTime.js.map +1 -1
  513. package/cjs/ui/ProgressBar.js +13 -15
  514. package/cjs/ui/ProgressBar.js.map +1 -1
  515. package/cjs/ui/QuoteMessage.js +42 -38
  516. package/cjs/ui/QuoteMessage.js.map +1 -1
  517. package/cjs/ui/QuoteMessageInput.js +27 -23
  518. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  519. package/cjs/ui/ReactionBadge.js +13 -17
  520. package/cjs/ui/ReactionBadge.js.map +1 -1
  521. package/cjs/ui/ReactionButton.js +15 -18
  522. package/cjs/ui/ReactionButton.js.map +1 -1
  523. package/cjs/ui/SortByRow.js +14 -14
  524. package/cjs/ui/SortByRow.js.map +1 -1
  525. package/cjs/ui/TextButton.js +13 -21
  526. package/cjs/ui/TextButton.js.map +1 -1
  527. package/cjs/ui/TextMessageItemBody.js +31 -31
  528. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  529. package/cjs/ui/ThreadReplies.js +25 -21
  530. package/cjs/ui/ThreadReplies.js.map +1 -1
  531. package/cjs/ui/ThumbnailMessageItemBody.js +32 -37
  532. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  533. package/cjs/ui/Toggle.js +202 -0
  534. package/cjs/ui/Toggle.js.map +1 -0
  535. package/cjs/ui/Tooltip.js +8 -9
  536. package/cjs/ui/Tooltip.js.map +1 -1
  537. package/cjs/ui/TooltipWrapper.js +17 -18
  538. package/cjs/ui/TooltipWrapper.js.map +1 -1
  539. package/cjs/ui/UnknownMessageItemBody.js +19 -18
  540. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  541. package/cjs/ui/UserListItem.js +72 -73
  542. package/cjs/ui/UserListItem.js.map +1 -1
  543. package/cjs/ui/UserProfile.js +30 -25
  544. package/cjs/ui/UserProfile.js.map +1 -1
  545. package/cjs/ui/VoiceMessageItemBody.js +37 -42
  546. package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
  547. package/cjs/ui/VoiceMessgeInput.js +7 -8
  548. package/cjs/ui/VoiceMessgeInput.js.map +1 -1
  549. package/cjs/ui/Word.js +26 -27
  550. package/cjs/ui/Word.js.map +1 -1
  551. package/cjs/useLongPress-f2bbf03b.js +83 -0
  552. package/cjs/{useLongPress-f3ee01a0.js.map → useLongPress-f2bbf03b.js.map} +1 -1
  553. package/cjs/useSendbirdStateContext.js +2 -2
  554. package/cjs/useSendbirdStateContext.js.map +1 -1
  555. package/cjs/utils/message/getOutgoingMessageState.js +16 -14
  556. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  557. package/cjs/utils/message/isVoiceMessage.js +3 -3
  558. package/cjs/utils/message/isVoiceMessage.js.map +1 -1
  559. package/cjs/{utils-1038446c.js → utils-3a1f644a.js} +1 -1
  560. package/cjs/{utils-1038446c.js.map → utils-3a1f644a.js.map} +1 -1
  561. package/cjs/utils-69786374.js +35 -0
  562. package/cjs/utils-69786374.js.map +1 -0
  563. package/cjs/{utils-98ac09d1.js → utils-790cba92.js} +3 -3
  564. package/cjs/{utils-98ac09d1.js.map → utils-790cba92.js.map} +1 -1
  565. package/cjs/utils-7d439ea8.js +31 -0
  566. package/cjs/utils-7d439ea8.js.map +1 -0
  567. package/cjs/uuid-b0cd103f.js +15 -0
  568. package/cjs/{uuid-1ffa3b79.js.map → uuid-b0cd103f.js.map} +1 -1
  569. package/cjs/withSendbird.js +15 -16
  570. package/cjs/withSendbird.js.map +1 -1
  571. package/{color-73049158.js → color-924d49b5.js} +5 -5
  572. package/{color-73049158.js.map → color-924d49b5.js.map} +1 -1
  573. package/{compareIds-88bffa50.js → compareIds-e3935a2b.js} +1 -1
  574. package/{compareIds-88bffa50.js.map → compareIds-e3935a2b.js.map} +1 -1
  575. package/{const-2919bc87.js → const-4e794221.js} +4 -4
  576. package/{const-2919bc87.js.map → const-4e794221.js.map} +1 -1
  577. package/const-e53d1cf9.js +13 -0
  578. package/const-e53d1cf9.js.map +1 -0
  579. package/consts-2839d903.js +4 -0
  580. package/consts-2839d903.js.map +1 -0
  581. package/consts-2e683d5c.js +27 -0
  582. package/{consts-966c9540.js.map → consts-2e683d5c.js.map} +1 -1
  583. package/consts-8592a5a4.js +4 -0
  584. package/{consts-0ea80430.js.map → consts-8592a5a4.js.map} +1 -1
  585. package/consts-c71f0821.js +4 -0
  586. package/consts-c71f0821.js.map +1 -0
  587. package/context-296280bd.js +13 -0
  588. package/{context-9baa8d25.js.map → context-296280bd.js.map} +1 -1
  589. package/dist/index.css +160 -56
  590. package/dist/index.css.map +1 -1
  591. package/handlers/OpenChannelHandler.js.map +1 -1
  592. package/handlers/SessionHandler.js.map +1 -1
  593. package/index-0bd30cba.js +354 -0
  594. package/index-0bd30cba.js.map +1 -0
  595. package/{index-d37f34a3.js → index-17dface3.js} +2 -4
  596. package/index-17dface3.js.map +1 -0
  597. package/index-234eacf5.js +51 -0
  598. package/index-234eacf5.js.map +1 -0
  599. package/index-2d5f1d16.js +283 -0
  600. package/{index-fd4fc9f0.js.map → index-2d5f1d16.js.map} +1 -1
  601. package/{index-aaa9b9f8.js → index-3e5fe0b6.js} +10 -30
  602. package/index-3e5fe0b6.js.map +1 -0
  603. package/{index-cce0e324.js → index-3f91b4e0.js} +2 -2
  604. package/{index-cce0e324.js.map → index-3f91b4e0.js.map} +1 -1
  605. package/{index-61a102d7.js → index-50693736.js} +37 -27
  606. package/index-50693736.js.map +1 -0
  607. package/{index-a9183365.js → index-7be852f6.js} +37 -39
  608. package/{index-a9183365.js.map → index-7be852f6.js.map} +1 -1
  609. package/index-8377af7f.js +520 -0
  610. package/index-8377af7f.js.map +1 -0
  611. package/{index-fa96d1c0.js → index-8d2b4d42.js} +50 -50
  612. package/index-8d2b4d42.js.map +1 -0
  613. package/{index-ad125f51.js → index-b72d256e.js} +1 -1
  614. package/{index-ad125f51.js.map → index-b72d256e.js.map} +1 -1
  615. package/{index-91355132.js → index-b7a74c9a.js} +17 -17
  616. package/{index-91355132.js.map → index-b7a74c9a.js.map} +1 -1
  617. package/index-c0c727fa.js +182 -0
  618. package/index-c0c727fa.js.map +1 -0
  619. package/{index-ac5ad4f9.js → index-c38bd595.js} +3 -12
  620. package/index-c38bd595.js.map +1 -0
  621. package/{index-9cead71b.js → index-e7e68510.js} +22 -15
  622. package/index-e7e68510.js.map +1 -0
  623. package/{index-95b46112.js → index-f17a1dcb.js} +56 -193
  624. package/index-f17a1dcb.js.map +1 -0
  625. package/index.d.ts +38 -8
  626. package/index.js +51 -51
  627. package/{index.module-e6530c0d.js → index.module-43d4fcba.js} +1 -1
  628. package/{index.module-e6530c0d.js.map → index.module-43d4fcba.js.map} +1 -1
  629. package/lame.all.js.map +1 -1
  630. package/package.json +21 -3
  631. package/sendbirdSelectors.js +319 -371
  632. package/sendbirdSelectors.js.map +1 -1
  633. package/{stringSet-9d579825.js → stringSet-167237e7.js} +2 -2
  634. package/stringSet-167237e7.js.map +1 -0
  635. package/tokenize-f4307b07.js +135 -0
  636. package/tokenize-f4307b07.js.map +1 -0
  637. package/{topics-f9301447.js → topics-e97c0e93.js} +2 -2
  638. package/{topics-f9301447.js.map → topics-e97c0e93.js.map} +1 -1
  639. package/types-224a6518.js +15 -0
  640. package/{types-d0a9adf8.js.map → types-224a6518.js.map} +1 -1
  641. package/ui/Accordion.js +19 -18
  642. package/ui/Accordion.js.map +1 -1
  643. package/ui/AccordionGroup.js +10 -11
  644. package/ui/AccordionGroup.js.map +1 -1
  645. package/ui/AdminMessage.js +10 -10
  646. package/ui/AdminMessage.js.map +1 -1
  647. package/ui/Avatar.js +55 -59
  648. package/ui/Avatar.js.map +1 -1
  649. package/ui/Badge.js +16 -15
  650. package/ui/Badge.js.map +1 -1
  651. package/ui/BottomSheet.js +14 -10
  652. package/ui/BottomSheet.js.map +1 -1
  653. package/ui/Button.js +20 -24
  654. package/ui/Button.js.map +1 -1
  655. package/ui/ChannelAvatar.js +38 -41
  656. package/ui/ChannelAvatar.js.map +1 -1
  657. package/ui/Checkbox.js +9 -10
  658. package/ui/Checkbox.js.map +1 -1
  659. package/ui/ConnectionStatus.js +7 -5
  660. package/ui/ConnectionStatus.js.map +1 -1
  661. package/ui/ContextMenu.js +139 -135
  662. package/ui/ContextMenu.js.map +1 -1
  663. package/ui/DateSeparator.js +12 -14
  664. package/ui/DateSeparator.js.map +1 -1
  665. package/ui/EmojiReactions.js +78 -86
  666. package/ui/EmojiReactions.js.map +1 -1
  667. package/ui/FileMessageItemBody.js +22 -22
  668. package/ui/FileMessageItemBody.js.map +1 -1
  669. package/ui/FileViewer.js +36 -35
  670. package/ui/FileViewer.js.map +1 -1
  671. package/ui/Icon.js +2 -2
  672. package/ui/Icon.js.map +1 -1
  673. package/ui/IconButton.js +20 -28
  674. package/ui/IconButton.js.map +1 -1
  675. package/ui/ImageRenderer.js +33 -39
  676. package/ui/ImageRenderer.js.map +1 -1
  677. package/ui/Input.js +16 -14
  678. package/ui/Input.js.map +1 -1
  679. package/ui/Label.js +2 -2
  680. package/ui/LinkLabel.js +2 -2
  681. package/ui/LinkLabel.js.map +1 -1
  682. package/ui/Loader.js +10 -12
  683. package/ui/Loader.js.map +1 -1
  684. package/ui/MentionLabel.js +58 -61
  685. package/ui/MentionLabel.js.map +1 -1
  686. package/ui/MentionUserLabel.js +10 -10
  687. package/ui/MentionUserLabel.js.map +1 -1
  688. package/ui/MessageContent.js +273 -270
  689. package/ui/MessageContent.js.map +1 -1
  690. package/ui/MessageInput.js +87 -79
  691. package/ui/MessageInput.js.map +1 -1
  692. package/ui/MessageItemMenu.js +70 -72
  693. package/ui/MessageItemMenu.js.map +1 -1
  694. package/ui/MessageItemReactionMenu.js +50 -57
  695. package/ui/MessageItemReactionMenu.js.map +1 -1
  696. package/ui/MessageSearchFileItem.js +49 -38
  697. package/ui/MessageSearchFileItem.js.map +1 -1
  698. package/ui/MessageSearchItem.js +40 -32
  699. package/ui/MessageSearchItem.js.map +1 -1
  700. package/ui/MessageStatus.js +10 -10
  701. package/ui/Modal.js +52 -45
  702. package/ui/Modal.js.map +1 -1
  703. package/ui/MutedAvatarOverlay.js +10 -10
  704. package/ui/MutedAvatarOverlay.js.map +1 -1
  705. package/ui/OGMessageItemBody.js +48 -44
  706. package/ui/OGMessageItemBody.js.map +1 -1
  707. package/ui/OpenChannelAdminMessage.js +8 -7
  708. package/ui/OpenChannelAdminMessage.js.map +1 -1
  709. package/ui/OpenChannelAvatar.js +18 -17
  710. package/ui/OpenChannelAvatar.js.map +1 -1
  711. package/ui/OpenchannelConversationHeader.js +17 -13
  712. package/ui/OpenchannelConversationHeader.js.map +1 -1
  713. package/ui/OpenchannelFileMessage.js +134 -140
  714. package/ui/OpenchannelFileMessage.js.map +1 -1
  715. package/ui/OpenchannelOGMessage.js +177 -176
  716. package/ui/OpenchannelOGMessage.js.map +1 -1
  717. package/ui/OpenchannelThumbnailMessage.js +209 -214
  718. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  719. package/ui/OpenchannelUserMessage.js +159 -164
  720. package/ui/OpenchannelUserMessage.js.map +1 -1
  721. package/ui/PlaceHolder.js +5 -6
  722. package/ui/PlaceHolder.js.map +1 -1
  723. package/ui/PlaybackTime.js +15 -16
  724. package/ui/PlaybackTime.js.map +1 -1
  725. package/ui/ProgressBar.js +13 -15
  726. package/ui/ProgressBar.js.map +1 -1
  727. package/ui/QuoteMessage.js +42 -38
  728. package/ui/QuoteMessage.js.map +1 -1
  729. package/ui/QuoteMessageInput.js +27 -23
  730. package/ui/QuoteMessageInput.js.map +1 -1
  731. package/ui/ReactionBadge.js +13 -17
  732. package/ui/ReactionBadge.js.map +1 -1
  733. package/ui/ReactionButton.js +15 -18
  734. package/ui/ReactionButton.js.map +1 -1
  735. package/ui/SortByRow.js +14 -14
  736. package/ui/SortByRow.js.map +1 -1
  737. package/ui/TextButton.js +13 -21
  738. package/ui/TextButton.js.map +1 -1
  739. package/ui/TextMessageItemBody.js +31 -31
  740. package/ui/TextMessageItemBody.js.map +1 -1
  741. package/ui/ThreadReplies.js +25 -21
  742. package/ui/ThreadReplies.js.map +1 -1
  743. package/ui/ThumbnailMessageItemBody.js +32 -37
  744. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  745. package/ui/Toggle.js +191 -0
  746. package/ui/Toggle.js.map +1 -0
  747. package/ui/Tooltip.js +8 -9
  748. package/ui/Tooltip.js.map +1 -1
  749. package/ui/TooltipWrapper.js +17 -18
  750. package/ui/TooltipWrapper.js.map +1 -1
  751. package/ui/UnknownMessageItemBody.js +19 -18
  752. package/ui/UnknownMessageItemBody.js.map +1 -1
  753. package/ui/UserListItem.js +72 -73
  754. package/ui/UserListItem.js.map +1 -1
  755. package/ui/UserProfile.js +30 -25
  756. package/ui/UserProfile.js.map +1 -1
  757. package/ui/VoiceMessageItemBody.js +37 -42
  758. package/ui/VoiceMessageItemBody.js.map +1 -1
  759. package/ui/VoiceMessgeInput.js +7 -8
  760. package/ui/VoiceMessgeInput.js.map +1 -1
  761. package/ui/Word.js +26 -27
  762. package/ui/Word.js.map +1 -1
  763. package/useLongPress-79c11c1d.js +81 -0
  764. package/{useLongPress-f119ff35.js.map → useLongPress-79c11c1d.js.map} +1 -1
  765. package/useSendbirdStateContext.js +2 -2
  766. package/useSendbirdStateContext.js.map +1 -1
  767. package/utils/message/getOutgoingMessageState.js +9 -8
  768. package/utils/message/getOutgoingMessageState.js.map +1 -1
  769. package/utils/message/isVoiceMessage.js +3 -3
  770. package/utils/message/isVoiceMessage.js.map +1 -1
  771. package/utils-17280d4a.js +31 -0
  772. package/utils-17280d4a.js.map +1 -0
  773. package/utils-232436fa.js +29 -0
  774. package/utils-232436fa.js.map +1 -0
  775. package/{utils-e53018f1.js → utils-e615a2c9.js} +3 -3
  776. package/{utils-e53018f1.js.map → utils-e615a2c9.js.map} +1 -1
  777. package/{utils-86d65b96.js → utils-f59aed5b.js} +1 -1
  778. package/{utils-86d65b96.js.map → utils-f59aed5b.js.map} +1 -1
  779. package/uuid-605fd2a4.js +13 -0
  780. package/{uuid-86cb48e0.js.map → uuid-605fd2a4.js.map} +1 -1
  781. package/withSendbird.js +15 -16
  782. package/withSendbird.js.map +1 -1
  783. package/ChannelListProvider-a2f2ee4a.js.map +0 -1
  784. package/ChannelProvider-bb459e82.js.map +0 -1
  785. package/CreateChannelProvider-a935d833.js +0 -48
  786. package/CreateChannelProvider-a935d833.js.map +0 -1
  787. package/LocalizationContext-3d8c0b24.js +0 -20
  788. package/MediaQueryContext-1348e37b.js +0 -80
  789. package/MediaQueryContext-1348e37b.js.map +0 -1
  790. package/MemberList-d8124d7e.js +0 -412
  791. package/MemberList-d8124d7e.js.map +0 -1
  792. package/OpenChannelListProvider-f9ec8658.js.map +0 -1
  793. package/OpenChannelProvider-36d0dd05.js +0 -1844
  794. package/OpenChannelProvider-36d0dd05.js.map +0 -1
  795. package/RemoveMessageModal-7852c71d.js +0 -30
  796. package/RemoveMessageModal-7852c71d.js.map +0 -1
  797. package/ThreadProvider-43c384e9.js +0 -1623
  798. package/ThreadProvider-43c384e9.js.map +0 -1
  799. package/VoiceMessageInputWrapper-0cd90994.js.map +0 -1
  800. package/_rollupPluginBabelHelpers-79f64283.js.map +0 -1
  801. package/cjs/ChannelListProvider-b0a363e0.js.map +0 -1
  802. package/cjs/ChannelProvider-cf5867c2.js.map +0 -1
  803. package/cjs/CreateChannelProvider-f82d812f.js +0 -55
  804. package/cjs/CreateChannelProvider-f82d812f.js.map +0 -1
  805. package/cjs/MediaQueryContext-b9c2ec1f.js +0 -87
  806. package/cjs/MediaQueryContext-b9c2ec1f.js.map +0 -1
  807. package/cjs/MemberList-13ba769f.js +0 -418
  808. package/cjs/MemberList-13ba769f.js.map +0 -1
  809. package/cjs/OpenChannelListProvider-02d6d44b.js +0 -416
  810. package/cjs/OpenChannelListProvider-02d6d44b.js.map +0 -1
  811. package/cjs/OpenChannelProvider-850b9cd0.js +0 -1853
  812. package/cjs/RemoveMessageModal-457b1535.js.map +0 -1
  813. package/cjs/ThreadProvider-37f2f0a3.js +0 -1632
  814. package/cjs/ThreadProvider-37f2f0a3.js.map +0 -1
  815. package/cjs/VoiceMessageInputWrapper-43c29f38.js.map +0 -1
  816. package/cjs/_rollupPluginBabelHelpers-c2313dcd.js.map +0 -1
  817. package/cjs/color-7f7508e6.js.map +0 -1
  818. package/cjs/const-e22c9d25.js +0 -19
  819. package/cjs/const-e22c9d25.js.map +0 -1
  820. package/cjs/consts-3764bd68.js +0 -6
  821. package/cjs/consts-3764bd68.js.map +0 -1
  822. package/cjs/consts-46fa3a3a.js +0 -6
  823. package/cjs/consts-ad849467.js +0 -6
  824. package/cjs/index-0b9ad941.js +0 -346
  825. package/cjs/index-0b9ad941.js.map +0 -1
  826. package/cjs/index-0dff9958.js.map +0 -1
  827. package/cjs/index-2ac1f908.js +0 -649
  828. package/cjs/index-2ac1f908.js.map +0 -1
  829. package/cjs/index-3626dfeb.js.map +0 -1
  830. package/cjs/index-71173fef.js.map +0 -1
  831. package/cjs/index-8b5a13fe.js.map +0 -1
  832. package/cjs/index-8b6bb1ee.js.map +0 -1
  833. package/cjs/index-a415176f.js +0 -192
  834. package/cjs/index-a415176f.js.map +0 -1
  835. package/cjs/index-a4887600.js.map +0 -1
  836. package/cjs/index-ac1b0ab9.js.map +0 -1
  837. package/cjs/index-cd680348.js +0 -271
  838. package/cjs/index-ddcf90b1.js +0 -59
  839. package/cjs/index-ddcf90b1.js.map +0 -1
  840. package/cjs/stringSet-061fe0c1.js.map +0 -1
  841. package/cjs/tokenize-7e34a56e.js +0 -141
  842. package/cjs/tokenize-7e34a56e.js.map +0 -1
  843. package/cjs/tslib.es6-8f4b0cfe.js +0 -97
  844. package/cjs/tslib.es6-8f4b0cfe.js.map +0 -1
  845. package/cjs/types-beecfca4.js +0 -11
  846. package/cjs/useLongPress-f3ee01a0.js +0 -100
  847. package/cjs/utils-3f3c2287.js +0 -27
  848. package/cjs/utils-3f3c2287.js.map +0 -1
  849. package/cjs/utils-6a97ff3a.js +0 -35
  850. package/cjs/utils-6a97ff3a.js.map +0 -1
  851. package/cjs/uuid-1ffa3b79.js +0 -17
  852. package/const-df1daff9.js +0 -13
  853. package/const-df1daff9.js.map +0 -1
  854. package/consts-0ea80430.js +0 -4
  855. package/consts-1861f891.js +0 -4
  856. package/consts-1861f891.js.map +0 -1
  857. package/consts-966c9540.js +0 -23
  858. package/consts-f4362414.js +0 -4
  859. package/consts-f4362414.js.map +0 -1
  860. package/context-9baa8d25.js +0 -12
  861. package/index-179bed8d.js +0 -177
  862. package/index-179bed8d.js.map +0 -1
  863. package/index-61a102d7.js.map +0 -1
  864. package/index-95b46112.js.map +0 -1
  865. package/index-9cead71b.js.map +0 -1
  866. package/index-aaa9b9f8.js.map +0 -1
  867. package/index-ac5ad4f9.js.map +0 -1
  868. package/index-c70af435.js +0 -53
  869. package/index-c70af435.js.map +0 -1
  870. package/index-d37f34a3.js.map +0 -1
  871. package/index-e378ca4e.js +0 -607
  872. package/index-e378ca4e.js.map +0 -1
  873. package/index-f0f9692b.js +0 -339
  874. package/index-f0f9692b.js.map +0 -1
  875. package/index-fa96d1c0.js.map +0 -1
  876. package/index-fd4fc9f0.js +0 -262
  877. package/stringSet-9d579825.js.map +0 -1
  878. package/tokenize-bd8e35b2.js +0 -136
  879. package/tokenize-bd8e35b2.js.map +0 -1
  880. package/tslib.es6-d6e50ec3.js +0 -92
  881. package/tslib.es6-d6e50ec3.js.map +0 -1
  882. package/types-d0a9adf8.js +0 -9
  883. package/useLongPress-f119ff35.js +0 -98
  884. package/utils-0c8334fa.js +0 -25
  885. package/utils-0c8334fa.js.map +0 -1
  886. package/utils-e659e765.js +0 -31
  887. package/utils-e659e765.js.map +0 -1
  888. package/uuid-86cb48e0.js +0 -15
@@ -3,66 +3,61 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var VoicePlayer_context = require('../index-cd680348.js');
7
- var consts = require('../consts-8605e767.js');
6
+ var VoicePlayer_context = require('../index-6c62c727.js');
7
+ var consts = require('../consts-d8eecba2.js');
8
8
  var VoiceRecorder_context = require('../VoiceRecorder/context.js');
9
- require('../tslib.es6-8f4b0cfe.js');
9
+ require('../_rollupPluginBabelHelpers-c04a5857.js');
10
10
  require('../useSendbirdStateContext.js');
11
11
  require('../withSendbird.js');
12
12
 
13
- var generateGroupKey = function (channelUrl, key) {
14
- if (channelUrl === void 0) {
15
- channelUrl = '';
16
- }
17
- if (key === void 0) {
18
- key = '';
19
- }
20
- return "".concat(channelUrl, "-").concat(key);
13
+ const generateGroupKey = function () {
14
+ let channelUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
15
+ let key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
16
+ return `${channelUrl}-${key}`;
21
17
  };
22
18
 
23
- var useVoicePlayer = function (_a) {
24
- var _b;
25
- var _c = _a.key,
26
- key = _c === void 0 ? '' : _c,
27
- _d = _a.channelUrl,
28
- channelUrl = _d === void 0 ? '' : _d,
29
- _e = _a.audioFile,
30
- audioFile = _e === void 0 ? null : _e,
31
- _f = _a.audioFileUrl,
32
- audioFileUrl = _f === void 0 ? '' : _f;
33
- var groupKey = React.useState(generateGroupKey(channelUrl, key))[0];
34
- var _g = VoicePlayer_context.useVoicePlayerContext(),
35
- play = _g.play,
36
- pause = _g.pause,
37
- stop = _g.stop,
38
- voicePlayerStore = _g.voicePlayerStore;
39
- var isRecordable = VoiceRecorder_context.useVoiceRecorderContext().isRecordable;
40
- var currentAudioUnit = ((_b = voicePlayerStore === null || voicePlayerStore === void 0 ? void 0 : voicePlayerStore.audioStorage) === null || _b === void 0 ? void 0 : _b[groupKey]) || VoicePlayer_context.AudioUnitDefaultValue();
41
- var playVoicePlayer = function () {
19
+ const useVoicePlayer = _ref => {
20
+ var _voicePlayerStore$aud;
21
+ let {
22
+ key = '',
23
+ channelUrl = '',
24
+ audioFile = null,
25
+ audioFileUrl = ''
26
+ } = _ref;
27
+ const [groupKey] = React.useState(generateGroupKey(channelUrl, key));
28
+ const {
29
+ play,
30
+ pause,
31
+ stop,
32
+ voicePlayerStore
33
+ } = VoicePlayer_context.useVoicePlayerContext();
34
+ const {
35
+ isRecordable
36
+ } = VoiceRecorder_context.useVoiceRecorderContext();
37
+ const currentAudioUnit = (voicePlayerStore === null || voicePlayerStore === void 0 ? void 0 : (_voicePlayerStore$aud = voicePlayerStore.audioStorage) === null || _voicePlayerStore$aud === void 0 ? void 0 : _voicePlayerStore$aud[groupKey]) || VoicePlayer_context.AudioUnitDefaultValue();
38
+ const playVoicePlayer = () => {
42
39
  if (!isRecordable) {
43
40
  play === null || play === void 0 ? void 0 : play({
44
- groupKey: groupKey,
45
- audioFile: audioFile,
46
- audioFileUrl: audioFileUrl
41
+ groupKey,
42
+ audioFile,
43
+ audioFileUrl
47
44
  });
48
45
  }
49
46
  };
50
- var pauseVoicePlayer = function () {
47
+ const pauseVoicePlayer = () => {
51
48
  pause === null || pause === void 0 ? void 0 : pause(groupKey);
52
49
  };
53
- var stopVoicePlayer = function (text) {
54
- if (text === void 0) {
55
- text = '';
56
- }
50
+ const stopVoicePlayer = function () {
51
+ let text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
57
52
  stop === null || stop === void 0 ? void 0 : stop(text);
58
53
  };
59
- React.useEffect(function () {
60
- return function () {
61
- var _a;
54
+ React.useEffect(() => {
55
+ return () => {
62
56
  if (audioFile || audioFileUrl) {
57
+ var _pause, _ref2;
63
58
  // Can't get the current AudioPlayer through the React hooks(useReducer or useState) in this scope
64
- var voiceAudioPlayerElement = document.getElementById(consts.VOICE_PLAYER_AUDIO_ID);
65
- (_a = voiceAudioPlayerElement === null || voiceAudioPlayerElement === void 0 ? void 0 : voiceAudioPlayerElement.pause) === null || _a === void 0 ? void 0 : _a.call(voiceAudioPlayerElement);
59
+ const voiceAudioPlayerElement = document.getElementById(consts.VOICE_PLAYER_AUDIO_ID);
60
+ voiceAudioPlayerElement === null || voiceAudioPlayerElement === void 0 ? void 0 : (_pause = (_ref2 = voiceAudioPlayerElement).pause) === null || _pause === void 0 ? void 0 : _pause.call(_ref2);
66
61
  }
67
62
  };
68
63
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"useVoicePlayer.js","sources":["../../../src/hooks/VoicePlayer/utils.ts","../../../src/hooks/VoicePlayer/useVoicePlayer.tsx"],"sourcesContent":["export type GroupKey = string;\nexport const generateGroupKey = (channelUrl = '', key = ''): GroupKey => (`${channelUrl}-${key}`);\n","import { useEffect, useState } from 'react';\nimport { useVoicePlayerContext } from '.';\nimport { VOICE_PLAYER_AUDIO_ID } from '../../utils/consts';\nimport { useVoiceRecorderContext } from '../VoiceRecorder';\n\nimport { AudioUnitDefaultValue, VoicePlayerStatus } from './dux/initialState';\nimport { generateGroupKey } from './utils';\n\nexport interface UseVoicePlayerProps {\n key: string;\n channelUrl: string;\n audioFile?: File;\n audioFileUrl?: string;\n}\n\nexport interface UseVoicePlayerContext {\n play: () => void;\n pause: () => void;\n stop: (text?: string) => void;\n playbackTime: number;\n duration: number;\n playingStatus: VoicePlayerStatus;\n}\n\nexport const useVoicePlayer = ({\n key = '',\n channelUrl = '',\n audioFile = null,\n audioFileUrl = '',\n}: UseVoicePlayerProps): UseVoicePlayerContext => {\n const [groupKey] = useState<string>(generateGroupKey(channelUrl, key));\n const {\n play,\n pause,\n stop,\n voicePlayerStore,\n } = useVoicePlayerContext();\n const { isRecordable } = useVoiceRecorderContext();\n const currentAudioUnit = voicePlayerStore?.audioStorage?.[groupKey] || AudioUnitDefaultValue();\n\n const playVoicePlayer = () => {\n if (!isRecordable) {\n play?.({\n groupKey,\n audioFile,\n audioFileUrl,\n });\n }\n };\n\n const pauseVoicePlayer = () => {\n pause?.(groupKey);\n };\n\n const stopVoicePlayer = (text = '') => {\n stop?.(text);\n };\n\n useEffect(() => {\n return () => {\n if (audioFile || audioFileUrl) {\n // Can't get the current AudioPlayer through the React hooks(useReducer or useState) in this scope\n const voiceAudioPlayerElement = document.getElementById(VOICE_PLAYER_AUDIO_ID);\n (voiceAudioPlayerElement as HTMLAudioElement)?.pause?.();\n }\n }\n }, []);\n\n return ({\n play: playVoicePlayer,\n pause: pauseVoicePlayer,\n stop: stopVoicePlayer,\n playbackTime: currentAudioUnit?.playbackTime * 1000,\n duration: currentAudioUnit?.duration * 1000,\n // the unit of playbackTime and duration should be millisecond\n playingStatus: currentAudioUnit?.playingStatus,\n });\n};\n"],"names":["generateGroupKey","channelUrl","key","concat","useVoicePlayer","_a","_c","_d","_e","audioFile","_f","audioFileUrl","groupKey","useState","_g","useVoicePlayerContext","play","pause","stop","voicePlayerStore","isRecordable","useVoiceRecorderContext","currentAudioUnit","_b","audioStorage","AudioUnitDefaultValue","playVoicePlayer","pauseVoicePlayer","stopVoicePlayer","text","useEffect","voiceAudioPlayerElement","document","getElementById","VOICE_PLAYER_AUDIO_ID","playbackTime","duration","playingStatus"],"mappings":"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"}
1
+ {"version":3,"file":"useVoicePlayer.js","sources":["../../../src/hooks/VoicePlayer/utils.ts","../../../src/hooks/VoicePlayer/useVoicePlayer.tsx"],"sourcesContent":["export type GroupKey = string;\nexport const generateGroupKey = (channelUrl = '', key = ''): GroupKey => (`${channelUrl}-${key}`);\n","import { useEffect, useState } from 'react';\nimport { useVoicePlayerContext } from '.';\nimport { VOICE_PLAYER_AUDIO_ID } from '../../utils/consts';\nimport { useVoiceRecorderContext } from '../VoiceRecorder';\n\nimport { AudioUnitDefaultValue, VoicePlayerStatus } from './dux/initialState';\nimport { generateGroupKey } from './utils';\n\nexport interface UseVoicePlayerProps {\n key: string;\n channelUrl: string;\n audioFile?: File;\n audioFileUrl?: string;\n}\n\nexport interface UseVoicePlayerContext {\n play: () => void;\n pause: () => void;\n stop: (text?: string) => void;\n playbackTime: number;\n duration: number;\n playingStatus: VoicePlayerStatus;\n}\n\nexport const useVoicePlayer = ({\n key = '',\n channelUrl = '',\n audioFile = null,\n audioFileUrl = '',\n}: UseVoicePlayerProps): UseVoicePlayerContext => {\n const [groupKey] = useState<string>(generateGroupKey(channelUrl, key));\n const {\n play,\n pause,\n stop,\n voicePlayerStore,\n } = useVoicePlayerContext();\n const { isRecordable } = useVoiceRecorderContext();\n const currentAudioUnit = voicePlayerStore?.audioStorage?.[groupKey] || AudioUnitDefaultValue();\n\n const playVoicePlayer = () => {\n if (!isRecordable) {\n play?.({\n groupKey,\n audioFile,\n audioFileUrl,\n });\n }\n };\n\n const pauseVoicePlayer = () => {\n pause?.(groupKey);\n };\n\n const stopVoicePlayer = (text = '') => {\n stop?.(text);\n };\n\n useEffect(() => {\n return () => {\n if (audioFile || audioFileUrl) {\n // Can't get the current AudioPlayer through the React hooks(useReducer or useState) in this scope\n const voiceAudioPlayerElement = document.getElementById(VOICE_PLAYER_AUDIO_ID);\n (voiceAudioPlayerElement as HTMLAudioElement)?.pause?.();\n }\n }\n }, []);\n\n return ({\n play: playVoicePlayer,\n pause: pauseVoicePlayer,\n stop: stopVoicePlayer,\n playbackTime: currentAudioUnit?.playbackTime * 1000,\n duration: currentAudioUnit?.duration * 1000,\n // the unit of playbackTime and duration should be millisecond\n playingStatus: currentAudioUnit?.playingStatus,\n });\n};\n"],"names":["generateGroupKey","channelUrl","arguments","length","undefined","key","useVoicePlayer","_ref","_voicePlayerStore$aud","audioFile","audioFileUrl","groupKey","useState","play","pause","stop","voicePlayerStore","useVoicePlayerContext","isRecordable","useVoiceRecorderContext","currentAudioUnit","audioStorage","AudioUnitDefaultValue","playVoicePlayer","pauseVoicePlayer","stopVoicePlayer","text","useEffect","_pause","_ref2","voiceAudioPlayerElement","document","getElementById","VOICE_PLAYER_AUDIO_ID","call","playbackTime","duration","playingStatus"],"mappings":"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"}
@@ -3,44 +3,48 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var consts = require('../consts-8605e767.js');
6
+ var consts = require('../consts-d8eecba2.js');
7
7
  var useSendbirdStateContext = require('../useSendbirdStateContext.js');
8
8
  require('../withSendbird.js');
9
- require('../tslib.es6-8f4b0cfe.js');
9
+ require('../_rollupPluginBabelHelpers-c04a5857.js');
10
10
 
11
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
12
 
13
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
14
 
15
- var noop = function () {};
16
- var VoiceRecorderContext = /*#__PURE__*/React.createContext({
15
+ // Input props of VoiceRecorder
16
+
17
+ // Output of VoiceRecorder
18
+
19
+ const noop = () => {/* noop */};
20
+ const VoiceRecorderContext = /*#__PURE__*/React.createContext({
17
21
  start: noop,
18
22
  stop: noop,
19
23
  isRecordable: false
20
24
  });
21
- var VoiceRecorderProvider = function (props) {
22
- var children = props.children;
23
- var config = useSendbirdStateContext().config;
24
- var logger = config.logger,
25
- isVoiceMessageEnabled = config.isVoiceMessageEnabled;
26
- var _a = React.useState(null),
27
- mediaRecorder = _a[0],
28
- setMediaRecorder = _a[1];
29
- var _b = React.useState(false),
30
- isRecordable = _b[0],
31
- setIsRecordable = _b[1];
32
- var _c = React.useState(null),
33
- webAudioUtils = _c[0],
34
- setWebAudioUtils = _c[1];
35
- React.useEffect(function () {
25
+ const VoiceRecorderProvider = props => {
26
+ const {
27
+ children
28
+ } = props;
29
+ const {
30
+ config
31
+ } = useSendbirdStateContext();
32
+ const {
33
+ logger,
34
+ isVoiceMessageEnabled
35
+ } = config;
36
+ const [mediaRecorder, setMediaRecorder] = React.useState(null);
37
+ const [isRecordable, setIsRecordable] = React.useState(false);
38
+ const [webAudioUtils, setWebAudioUtils] = React.useState(null);
39
+ React.useEffect(() => {
36
40
  if (isVoiceMessageEnabled && !webAudioUtils) {
37
- Promise.resolve().then(function () { return require('../WebAudioUtils-2b845cd2.js'); }).then(function (data) {
41
+ Promise.resolve().then(function () { return require('../WebAudioUtils-07a1cb3f.js'); }).then(data => {
38
42
  setWebAudioUtils(data);
39
43
  });
40
44
  }
41
45
  }, []);
42
- var start = React.useCallback(function (eventHandler) {
43
- var _a, _b;
46
+ const start = React.useCallback(eventHandler => {
47
+ var _navigator, _navigator$mediaDevic, _navigator$mediaDevic2;
44
48
  if (isVoiceMessageEnabled && !webAudioUtils) {
45
49
  logger.error('VoiceRecorder: Recording audio processor is being loaded.');
46
50
  return;
@@ -50,48 +54,47 @@ var VoiceRecorderProvider = function (props) {
50
54
  stop();
51
55
  logger.info('VoiceRecorder: Previous mediaRecorder is stopped.');
52
56
  }
53
- (_b = (_a = navigator === null || navigator === void 0 ? void 0 : navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.getUserMedia) === null || _b === void 0 ? void 0 : _b.call(_a, {
57
+ (_navigator = navigator) === null || _navigator === void 0 ? void 0 : (_navigator$mediaDevic = _navigator.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : (_navigator$mediaDevic2 = _navigator$mediaDevic.getUserMedia) === null || _navigator$mediaDevic2 === void 0 ? void 0 : _navigator$mediaDevic2.call(_navigator$mediaDevic, {
54
58
  audio: true
55
- }).then(function (stream) {
59
+ }).then(stream => {
56
60
  logger.info('VoiceRecorder: Succeeded getting media stream.', stream);
57
61
  setIsRecordable(true);
58
- var mediaRecorder = new MediaRecorder(stream, {
62
+ const mediaRecorder = new MediaRecorder(stream, {
59
63
  mimeType: consts.VOICE_RECORDER_MIME_TYPE,
60
64
  audioBitsPerSecond: consts.VOICE_RECORDER_AUDIO_BITS
61
65
  });
62
- mediaRecorder.ondataavailable = function (e) {
63
- var _a, _b, _c;
66
+ mediaRecorder.ondataavailable = e => {
67
+ var _stream$getAudioTrack, _stream$getAudioTrack2, _stream$getAudioTrack3;
68
+ // when recording stops
64
69
  logger.info('VoiceRecorder: Succeeded getting an available data.', e.data);
65
- var audioFile = new File([e.data], consts.VOICE_MESSAGE_FILE_NAME, {
70
+ const audioFile = new File([e.data], consts.VOICE_MESSAGE_FILE_NAME, {
66
71
  lastModified: new Date().getTime(),
67
72
  type: consts.VOICE_MESSAGE_MIME_TYPE
68
73
  });
69
- webAudioUtils === null || webAudioUtils === void 0 ? void 0 : webAudioUtils.downsampleToWav(audioFile, function (buffer) {
70
- var mp3Buffer = webAudioUtils === null || webAudioUtils === void 0 ? void 0 : webAudioUtils.encodeMp3(buffer);
71
- var mp3blob = new Blob(mp3Buffer, {
74
+ webAudioUtils === null || webAudioUtils === void 0 ? void 0 : webAudioUtils.downsampleToWav(audioFile, buffer => {
75
+ const mp3Buffer = webAudioUtils === null || webAudioUtils === void 0 ? void 0 : webAudioUtils.encodeMp3(buffer);
76
+ const mp3blob = new Blob(mp3Buffer, {
72
77
  type: consts.VOICE_MESSAGE_MIME_TYPE
73
78
  });
74
- var convertedAudioFile = new File([mp3blob], consts.VOICE_MESSAGE_FILE_NAME, {
79
+ const convertedAudioFile = new File([mp3blob], consts.VOICE_MESSAGE_FILE_NAME, {
75
80
  lastModified: new Date().getTime(),
76
81
  type: consts.VOICE_MESSAGE_MIME_TYPE
77
82
  });
78
83
  eventHandler === null || eventHandler === void 0 ? void 0 : eventHandler.onRecordingEnded(convertedAudioFile);
79
84
  logger.info('VoiceRecorder: Succeeded converting audio file.', convertedAudioFile);
80
85
  });
81
- (_c = (_a = stream === null || stream === void 0 ? void 0 : stream.getAudioTracks) === null || _a === void 0 ? void 0 : (_b = _a.call(stream)).forEach) === null || _c === void 0 ? void 0 : _c.call(_b, function (track) {
82
- return track === null || track === void 0 ? void 0 : track.stop();
83
- });
86
+ stream === null || stream === void 0 ? void 0 : (_stream$getAudioTrack = stream.getAudioTracks) === null || _stream$getAudioTrack === void 0 ? void 0 : (_stream$getAudioTrack2 = (_stream$getAudioTrack3 = _stream$getAudioTrack.call(stream)).forEach) === null || _stream$getAudioTrack2 === void 0 ? void 0 : _stream$getAudioTrack2.call(_stream$getAudioTrack3, track => track === null || track === void 0 ? void 0 : track.stop());
84
87
  setIsRecordable(false);
85
88
  };
86
89
  mediaRecorder === null || mediaRecorder === void 0 ? void 0 : mediaRecorder.start();
87
90
  setMediaRecorder(mediaRecorder);
88
91
  eventHandler === null || eventHandler === void 0 ? void 0 : eventHandler.onRecordingStarted();
89
- }).catch(function (err) {
92
+ }).catch(err => {
90
93
  logger.error('VoiceRecorder: Failed getting media stream.', err);
91
94
  setMediaRecorder(null);
92
95
  });
93
96
  }, [mediaRecorder, webAudioUtils]);
94
- var stop = React.useCallback(function () {
97
+ const stop = React.useCallback(() => {
95
98
  // Stop recording
96
99
  mediaRecorder === null || mediaRecorder === void 0 ? void 0 : mediaRecorder.stop();
97
100
  setMediaRecorder(null);
@@ -100,18 +103,16 @@ var VoiceRecorderProvider = function (props) {
100
103
  }, [mediaRecorder]);
101
104
  return /*#__PURE__*/React__default["default"].createElement(VoiceRecorderContext.Provider, {
102
105
  value: {
103
- start: start,
104
- stop: stop,
105
- isRecordable: isRecordable
106
+ start,
107
+ stop,
108
+ isRecordable
106
109
  }
107
110
  }, children);
108
111
  };
109
- var useVoiceRecorderContext = function () {
110
- return React.useContext(VoiceRecorderContext);
111
- };
112
+ const useVoiceRecorderContext = () => React.useContext(VoiceRecorderContext);
112
113
  var index = {
113
- VoiceRecorderProvider: VoiceRecorderProvider,
114
- useVoiceRecorderContext: useVoiceRecorderContext
114
+ VoiceRecorderProvider,
115
+ useVoiceRecorderContext
115
116
  };
116
117
 
117
118
  exports.VoiceRecorderProvider = VoiceRecorderProvider;
@@ -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","_a","useState","mediaRecorder","setMediaRecorder","_b","setIsRecordable","_c","webAudioUtils","setWebAudioUtils","useEffect","then","data","useCallback","eventHandler","error","info","navigator","mediaDevices","getUserMedia","audio","stream","MediaRecorder","mimeType","VOICE_RECORDER_MIME_TYPE","audioBitsPerSecond","VOICE_RECORDER_AUDIO_BITS","ondataavailable","e","audioFile","File","VOICE_MESSAGE_FILE_NAME","lastModified","Date","getTime","type","VOICE_MESSAGE_MIME_TYPE","downsampleToWav","buffer","mp3Buffer","encodeMp3","mp3blob","Blob","convertedAudioFile","onRecordingEnded","getAudioTracks","call","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 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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"}
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var VoiceRecorder_context = require('./context.js');
7
7
  var useSendbirdStateContext = require('../useSendbirdStateContext.js');
8
- require('../consts-8605e767.js');
8
+ require('../consts-d8eecba2.js');
9
9
  require('../withSendbird.js');
10
- require('../tslib.es6-8f4b0cfe.js');
10
+ require('../_rollupPluginBabelHelpers-c04a5857.js');
11
11
 
12
12
  // export interface UseVoiceRecorderProps extends VoiceRecorderEventHandler {
13
13
  // /**
@@ -15,42 +15,46 @@ require('../tslib.es6-8f4b0cfe.js');
15
15
  // * onRecordingEnded
16
16
  // */
17
17
  // }
18
- var VoiceRecorderStatus = {
18
+ const VoiceRecorderStatus = {
19
19
  PREPARING: 'PREPARING',
20
20
  READY_TO_RECORD: 'READY_TO_RECORD',
21
21
  RECORDING: 'RECORDING',
22
22
  COMPLETED: 'COMPLETED'
23
23
  };
24
- var noop = function () {};
25
- var useVoiceRecorder = function (_a) {
26
- var _b = _a.onRecordingStarted,
27
- onRecordingStarted = _b === void 0 ? noop : _b,
28
- _c = _a.onRecordingEnded,
29
- onRecordingEnded = _c === void 0 ? noop : _c;
30
- var config = useSendbirdStateContext().config;
31
- var voiceRecord = config.voiceRecord;
32
- var maxRecordingTime = voiceRecord.maxRecordingTime;
33
- var voiceRecorder = VoiceRecorder_context.useVoiceRecorderContext();
34
- var isRecordable = voiceRecorder.isRecordable;
35
- var _d = React.useState(null),
36
- recordedFile = _d[0],
37
- setRecordedFile = _d[1];
38
- var _e = React.useState(VoiceRecorderStatus.PREPARING),
39
- recordingStatus = _e[0],
40
- setRecordingStatus = _e[1];
41
- React.useEffect(function () {
24
+ const noop = () => {/* noop */};
25
+ const useVoiceRecorder = _ref => {
26
+ let {
27
+ onRecordingStarted = noop,
28
+ onRecordingEnded = noop
29
+ } = _ref;
30
+ const {
31
+ config
32
+ } = useSendbirdStateContext();
33
+ const {
34
+ voiceRecord
35
+ } = config;
36
+ const {
37
+ maxRecordingTime
38
+ } = voiceRecord;
39
+ const voiceRecorder = VoiceRecorder_context.useVoiceRecorderContext();
40
+ const {
41
+ isRecordable
42
+ } = voiceRecorder;
43
+ const [recordedFile, setRecordedFile] = React.useState(null);
44
+ const [recordingStatus, setRecordingStatus] = React.useState(VoiceRecorderStatus.PREPARING);
45
+ React.useEffect(() => {
42
46
  if (isRecordable && recordingStatus === VoiceRecorderStatus.PREPARING) {
43
47
  setRecordingStatus(VoiceRecorderStatus.READY_TO_RECORD);
44
48
  }
45
49
  }, [isRecordable]);
46
- var start = React.useCallback(function () {
50
+ const start = React.useCallback(() => {
47
51
  voiceRecorder === null || voiceRecorder === void 0 ? void 0 : voiceRecorder.start({
48
- onRecordingStarted: function () {
52
+ onRecordingStarted: () => {
49
53
  setRecordingStatus(VoiceRecorderStatus.RECORDING);
50
54
  onRecordingStarted();
51
55
  startTimer();
52
56
  },
53
- onRecordingEnded: function (audioFile) {
57
+ onRecordingEnded: audioFile => {
54
58
  setRecordingStatus(VoiceRecorderStatus.COMPLETED);
55
59
  onRecordingEnded(audioFile);
56
60
  setRecordedFile(audioFile);
@@ -58,25 +62,24 @@ var useVoiceRecorder = function (_a) {
58
62
  }
59
63
  });
60
64
  }, [onRecordingStarted, onRecordingEnded]);
61
- var stop = React.useCallback(function () {
65
+ const stop = React.useCallback(() => {
62
66
  voiceRecorder === null || voiceRecorder === void 0 ? void 0 : voiceRecorder.stop();
63
67
  stopTimer();
64
68
  }, [voiceRecorder]);
65
- var cancel = React.useCallback(function () {
69
+ const cancel = React.useCallback(() => {
66
70
  stop();
67
71
  setRecordedFile(null);
68
72
  }, [voiceRecorder]);
73
+
69
74
  // Timer
70
- var _f = React.useState(0),
71
- recordingTime = _f[0],
72
- setRecordingTime = _f[1];
73
- var timer = null;
75
+ const [recordingTime, setRecordingTime] = React.useState(0);
76
+ let timer = null;
74
77
  function startTimer() {
75
78
  stopTimer();
76
79
  setRecordingTime(0);
77
- var interval = setInterval(function () {
78
- setRecordingTime(function (prevTime) {
79
- var newTime = prevTime + 100;
80
+ const interval = setInterval(() => {
81
+ setRecordingTime(prevTime => {
82
+ const newTime = prevTime + 100;
80
83
  if (newTime > maxRecordingTime) {
81
84
  stopTimer();
82
85
  }
@@ -89,18 +92,18 @@ var useVoiceRecorder = function (_a) {
89
92
  clearInterval(timer);
90
93
  timer = null;
91
94
  }
92
- React.useEffect(function () {
95
+ React.useEffect(() => {
93
96
  if (recordingTime > maxRecordingTime) {
94
97
  stop();
95
98
  }
96
99
  }, [recordingTime, maxRecordingTime, stop]);
97
100
  return {
98
- start: start,
99
- stop: stop,
100
- cancel: cancel,
101
- recordingStatus: recordingStatus,
102
- recordingTime: recordingTime,
103
- recordedFile: recordedFile,
101
+ start,
102
+ stop,
103
+ cancel,
104
+ recordingStatus,
105
+ recordingTime,
106
+ recordedFile,
104
107
  recordingLimit: maxRecordingTime
105
108
  };
106
109
  };
@@ -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","_a","_b","onRecordingStarted","_c","onRecordingEnded","config","useSendbirdStateContext","voiceRecord","maxRecordingTime","voiceRecorder","useVoiceRecorderContext","isRecordable","_d","useState","recordedFile","setRecordedFile","_e","recordingStatus","setRecordingStatus","useEffect","start","useCallback","startTimer","audioFile","stopTimer","stop","cancel","_f","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// }\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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"}