@sendbird/uikit-react 3.3.7 → 3.4.0-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 (572) hide show
  1. package/App.js +60 -34
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +150 -0
  4. package/Channel/components/ChannelHeader.js +20 -18
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +48 -29
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +15 -14
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +4 -4
  11. package/Channel/components/Message.js +33 -24
  12. package/Channel/components/Message.js.map +1 -1
  13. package/Channel/components/MessageInput.js +62 -20
  14. package/Channel/components/MessageInput.js.map +1 -1
  15. package/Channel/components/MessageList.js +36 -27
  16. package/Channel/components/MessageList.js.map +1 -1
  17. package/Channel/components/RemoveMessageModal.js +21 -17
  18. package/Channel/components/RemoveMessageModal.js.map +1 -1
  19. package/Channel/components/SuggestedMentionList.js +17 -16
  20. package/Channel/components/SuggestedMentionList.js.map +1 -1
  21. package/Channel/components/TypingIndicator.js +15 -14
  22. package/Channel/components/TypingIndicator.js.map +1 -1
  23. package/Channel/components/UnreadCount.js +4 -4
  24. package/Channel/context.js +14 -13
  25. package/Channel/context.js.map +1 -1
  26. package/Channel.js +43 -28
  27. package/Channel.js.map +1 -1
  28. package/ChannelList/components/AddChannel.js +15 -15
  29. package/ChannelList/components/ChannelListHeader.js +7 -7
  30. package/ChannelList/components/ChannelListUI.js +29 -28
  31. package/ChannelList/components/ChannelListUI.js.map +1 -1
  32. package/ChannelList/components/ChannelPreview.js +26 -25
  33. package/ChannelList/components/ChannelPreview.js.map +1 -1
  34. package/ChannelList/components/ChannelPreviewAction.js +14 -14
  35. package/ChannelList/context.js +8 -8
  36. package/ChannelList.js +29 -28
  37. package/ChannelList.js.map +1 -1
  38. package/{ChannelListProvider-eb4708a3.js → ChannelListProvider-3c78429f.js} +8 -8
  39. package/{ChannelListProvider-eb4708a3.js.map → ChannelListProvider-3c78429f.js.map} +1 -1
  40. package/{ChannelProvider-1e540c0e.js → ChannelProvider-1d70b8a0.js} +88 -13
  41. package/ChannelProvider-1d70b8a0.js.map +1 -0
  42. package/ChannelSettings/components/ChannelProfile.js +12 -12
  43. package/ChannelSettings/components/ChannelSettingsUI.js +18 -18
  44. package/ChannelSettings/components/EditDetailsModal.js +12 -12
  45. package/ChannelSettings/components/LeaveChannel.js +12 -12
  46. package/ChannelSettings/components/ModerationPanel.js +15 -15
  47. package/ChannelSettings/components/UserListItem.js +11 -11
  48. package/ChannelSettings/components/UserPanel.js +18 -15
  49. package/ChannelSettings/components/UserPanel.js.map +1 -1
  50. package/ChannelSettings/context.js +3 -3
  51. package/ChannelSettings.js +18 -18
  52. package/CreateChannel/components/CreateChannelUI.js +14 -14
  53. package/CreateChannel/components/InviteUsers.js +14 -14
  54. package/CreateChannel/components/SelectChannelType.js +11 -11
  55. package/CreateChannel/context.js +4 -4
  56. package/CreateChannel.js +14 -14
  57. package/{CreateChannelProvider-ed2e3cb4.js → CreateChannelProvider-946fb371.js} +1 -1
  58. package/{CreateChannelProvider-ed2e3cb4.js.map → CreateChannelProvider-946fb371.js.map} +1 -1
  59. package/CreateOpenChannel/components/CreateOpenChannelUI.js +10 -10
  60. package/CreateOpenChannel/context.js +1 -1
  61. package/CreateOpenChannel.js +10 -10
  62. package/EditUserProfile/components/EditUserProfileUI.js +13 -13
  63. package/EditUserProfile.js +13 -13
  64. package/{LocalizationContext-4c2faa9a.js → LocalizationContext-539093a9.js} +3 -3
  65. package/{LocalizationContext-4c2faa9a.js.map → LocalizationContext-539093a9.js.map} +1 -1
  66. package/{MediaQueryContext-97a21b7e.js → MediaQueryContext-79c8ad08.js} +1 -1
  67. package/{MediaQueryContext-97a21b7e.js.map → MediaQueryContext-79c8ad08.js.map} +1 -1
  68. package/{MemberList-6483a7db.js → MemberList-1350e670.js} +10 -7
  69. package/MemberList-1350e670.js.map +1 -0
  70. package/MessageSearch/components/MessageSearchUI.js +13 -11
  71. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  72. package/MessageSearch/context.js +2 -2
  73. package/MessageSearch.js +13 -11
  74. package/MessageSearch.js.map +1 -1
  75. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  76. package/OpenChannel/components/OpenChannelHeader.js +13 -13
  77. package/OpenChannel/components/OpenChannelInput.js +16 -15
  78. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  79. package/OpenChannel/components/OpenChannelMessage.js +22 -22
  80. package/OpenChannel/components/OpenChannelMessageList.js +24 -24
  81. package/OpenChannel/components/OpenChannelUI.js +24 -24
  82. package/OpenChannel/context.js +9 -9
  83. package/OpenChannel.js +24 -24
  84. package/OpenChannelList/components/OpenChannelListUI.js +13 -13
  85. package/OpenChannelList/components/OpenChannelPreview.js +4 -4
  86. package/OpenChannelList/context.js +4 -4
  87. package/OpenChannelList.js +13 -13
  88. package/{OpenChannelListProvider-95808e48.js → OpenChannelListProvider-64e2ca27.js} +3 -3
  89. package/{OpenChannelListProvider-95808e48.js.map → OpenChannelListProvider-64e2ca27.js.map} +1 -1
  90. package/{OpenChannelProvider-e3137432.js → OpenChannelProvider-5a54a791.js} +7 -7
  91. package/{OpenChannelProvider-e3137432.js.map → OpenChannelProvider-5a54a791.js.map} +1 -1
  92. package/OpenChannelSettings/components/EditDetailsModal.js +13 -13
  93. package/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
  94. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
  95. package/OpenChannelSettings/components/OperatorUI.js +17 -17
  96. package/OpenChannelSettings/components/ParticipantUI.js +15 -15
  97. package/OpenChannelSettings/context.js +3 -3
  98. package/OpenChannelSettings.js +18 -18
  99. package/README.md +8 -0
  100. package/{RemoveMessageModal-0baf3553.js → RemoveMessageModal-cd536405.js} +3 -3
  101. package/{RemoveMessageModal-0baf3553.js.map → RemoveMessageModal-cd536405.js.map} +1 -1
  102. package/SendbirdProvider.js +29 -11
  103. package/SendbirdProvider.js.map +1 -1
  104. package/Thread/components/ParentMessageInfo.js +32 -22
  105. package/Thread/components/ParentMessageInfo.js.map +1 -1
  106. package/Thread/components/ParentMessageInfoItem.js +33 -16
  107. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  108. package/Thread/components/ThreadHeader.js +6 -6
  109. package/Thread/components/ThreadList.js +33 -24
  110. package/Thread/components/ThreadList.js.map +1 -1
  111. package/Thread/components/ThreadListItem.js +40 -25
  112. package/Thread/components/ThreadListItem.js.map +1 -1
  113. package/Thread/components/ThreadMessageInput.js +71 -21
  114. package/Thread/components/ThreadMessageInput.js.map +1 -1
  115. package/Thread/components/ThreadUI.js +49 -31
  116. package/Thread/components/ThreadUI.js.map +1 -1
  117. package/Thread/context.js +9 -8
  118. package/Thread/context.js.map +1 -1
  119. package/Thread.js +47 -29
  120. package/Thread.js.map +1 -1
  121. package/{ThreadProvider-a1413f01.js → ThreadProvider-9f8652df.js} +91 -11
  122. package/ThreadProvider-9f8652df.js.map +1 -0
  123. package/{UserProfileContext-e5d90f15.js → UserProfileContext-bd8525b7.js} +1 -1
  124. package/{UserProfileContext-e5d90f15.js.map → UserProfileContext-bd8525b7.js.map} +1 -1
  125. package/VoiceMessageInputWrapper-b149ff89.js +173 -0
  126. package/VoiceMessageInputWrapper-b149ff89.js.map +1 -0
  127. package/VoicePlayer/context.js +5 -0
  128. package/VoicePlayer/context.js.map +1 -0
  129. package/VoicePlayer/useVoicePlayer.js +87 -0
  130. package/VoicePlayer/useVoicePlayer.js.map +1 -0
  131. package/VoiceRecorder/context.js +243 -0
  132. package/VoiceRecorder/context.js.map +1 -0
  133. package/VoiceRecorder/useVoiceRecorder.js +117 -0
  134. package/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  135. package/{_rollupPluginBabelHelpers-b45d3824.js → _rollupPluginBabelHelpers-09618dc3.js} +1 -1
  136. package/_rollupPluginBabelHelpers-09618dc3.js.map +1 -0
  137. package/{actionTypes-c69daac1.js → actionTypes-0dd0c34b.js} +1 -1
  138. package/{actionTypes-c69daac1.js.map → actionTypes-0dd0c34b.js.map} +1 -1
  139. package/cjs/App.js +60 -34
  140. package/cjs/App.js.map +1 -1
  141. package/cjs/Channel/components/ChannelHeader.js +20 -18
  142. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  143. package/cjs/Channel/components/ChannelUI.js +48 -29
  144. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  145. package/cjs/Channel/components/FileViewer.js +15 -14
  146. package/cjs/Channel/components/FileViewer.js.map +1 -1
  147. package/cjs/Channel/components/FrozenNotification.js +4 -4
  148. package/cjs/Channel/components/Message.js +33 -24
  149. package/cjs/Channel/components/Message.js.map +1 -1
  150. package/cjs/Channel/components/MessageInput.js +62 -20
  151. package/cjs/Channel/components/MessageInput.js.map +1 -1
  152. package/cjs/Channel/components/MessageList.js +36 -27
  153. package/cjs/Channel/components/MessageList.js.map +1 -1
  154. package/cjs/Channel/components/RemoveMessageModal.js +21 -17
  155. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  156. package/cjs/Channel/components/SuggestedMentionList.js +17 -16
  157. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  158. package/cjs/Channel/components/TypingIndicator.js +15 -14
  159. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  160. package/cjs/Channel/components/UnreadCount.js +4 -4
  161. package/cjs/Channel/context.js +14 -13
  162. package/cjs/Channel/context.js.map +1 -1
  163. package/cjs/Channel.js +43 -28
  164. package/cjs/Channel.js.map +1 -1
  165. package/cjs/ChannelList/components/AddChannel.js +15 -15
  166. package/cjs/ChannelList/components/ChannelListHeader.js +7 -7
  167. package/cjs/ChannelList/components/ChannelListUI.js +29 -28
  168. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  169. package/cjs/ChannelList/components/ChannelPreview.js +26 -25
  170. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  171. package/cjs/ChannelList/components/ChannelPreviewAction.js +14 -14
  172. package/cjs/ChannelList/context.js +8 -8
  173. package/cjs/ChannelList.js +29 -28
  174. package/cjs/ChannelList.js.map +1 -1
  175. package/cjs/{ChannelListProvider-94df9f01.js → ChannelListProvider-7df03e2a.js} +8 -8
  176. package/cjs/{ChannelListProvider-94df9f01.js.map → ChannelListProvider-7df03e2a.js.map} +1 -1
  177. package/cjs/{ChannelProvider-3fbf7c5e.js → ChannelProvider-56b10dd6.js} +87 -12
  178. package/cjs/ChannelProvider-56b10dd6.js.map +1 -0
  179. package/cjs/ChannelSettings/components/ChannelProfile.js +12 -12
  180. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -18
  181. package/cjs/ChannelSettings/components/EditDetailsModal.js +12 -12
  182. package/cjs/ChannelSettings/components/LeaveChannel.js +12 -12
  183. package/cjs/ChannelSettings/components/ModerationPanel.js +15 -15
  184. package/cjs/ChannelSettings/components/UserListItem.js +11 -11
  185. package/cjs/ChannelSettings/components/UserPanel.js +18 -15
  186. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  187. package/cjs/ChannelSettings/context.js +3 -3
  188. package/cjs/ChannelSettings.js +18 -18
  189. package/cjs/CreateChannel/components/CreateChannelUI.js +14 -14
  190. package/cjs/CreateChannel/components/InviteUsers.js +14 -14
  191. package/cjs/CreateChannel/components/SelectChannelType.js +11 -11
  192. package/cjs/CreateChannel/context.js +4 -4
  193. package/cjs/CreateChannel.js +14 -14
  194. package/cjs/{CreateChannelProvider-70422add.js → CreateChannelProvider-359f35d1.js} +1 -1
  195. package/cjs/{CreateChannelProvider-70422add.js.map → CreateChannelProvider-359f35d1.js.map} +1 -1
  196. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +10 -10
  197. package/cjs/CreateOpenChannel/context.js +1 -1
  198. package/cjs/CreateOpenChannel.js +10 -10
  199. package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
  200. package/cjs/EditUserProfile.js +13 -13
  201. package/cjs/{LocalizationContext-a0f833e9.js → LocalizationContext-7d2c13ee.js} +3 -3
  202. package/cjs/{LocalizationContext-a0f833e9.js.map → LocalizationContext-7d2c13ee.js.map} +1 -1
  203. package/cjs/{MediaQueryContext-770ae8bc.js → MediaQueryContext-36855cf6.js} +1 -1
  204. package/cjs/{MediaQueryContext-770ae8bc.js.map → MediaQueryContext-36855cf6.js.map} +1 -1
  205. package/cjs/{MemberList-4a0910dd.js → MemberList-cf4488bc.js} +10 -7
  206. package/cjs/MemberList-cf4488bc.js.map +1 -0
  207. package/cjs/MessageSearch/components/MessageSearchUI.js +13 -11
  208. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  209. package/cjs/MessageSearch/context.js +2 -2
  210. package/cjs/MessageSearch.js +13 -11
  211. package/cjs/MessageSearch.js.map +1 -1
  212. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  213. package/cjs/OpenChannel/components/OpenChannelHeader.js +13 -13
  214. package/cjs/OpenChannel/components/OpenChannelInput.js +16 -15
  215. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  216. package/cjs/OpenChannel/components/OpenChannelMessage.js +22 -22
  217. package/cjs/OpenChannel/components/OpenChannelMessageList.js +24 -24
  218. package/cjs/OpenChannel/components/OpenChannelUI.js +24 -24
  219. package/cjs/OpenChannel/context.js +9 -9
  220. package/cjs/OpenChannel.js +24 -24
  221. package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
  222. package/cjs/OpenChannelList/components/OpenChannelPreview.js +4 -4
  223. package/cjs/OpenChannelList/context.js +4 -4
  224. package/cjs/OpenChannelList.js +13 -13
  225. package/cjs/{OpenChannelListProvider-e97c8ed9.js → OpenChannelListProvider-d0e494e8.js} +3 -3
  226. package/cjs/{OpenChannelListProvider-e97c8ed9.js.map → OpenChannelListProvider-d0e494e8.js.map} +1 -1
  227. package/cjs/{OpenChannelProvider-9b453ac0.js → OpenChannelProvider-84d45a52.js} +7 -7
  228. package/cjs/{OpenChannelProvider-9b453ac0.js.map → OpenChannelProvider-84d45a52.js.map} +1 -1
  229. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +13 -13
  230. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
  231. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
  232. package/cjs/OpenChannelSettings/components/OperatorUI.js +17 -17
  233. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
  234. package/cjs/OpenChannelSettings/context.js +3 -3
  235. package/cjs/OpenChannelSettings.js +18 -18
  236. package/cjs/{RemoveMessageModal-7bde69be.js → RemoveMessageModal-44018509.js} +3 -3
  237. package/cjs/{RemoveMessageModal-7bde69be.js.map → RemoveMessageModal-44018509.js.map} +1 -1
  238. package/cjs/SendbirdProvider.js +29 -11
  239. package/cjs/SendbirdProvider.js.map +1 -1
  240. package/cjs/Thread/components/ParentMessageInfo.js +34 -24
  241. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  242. package/cjs/Thread/components/ParentMessageInfoItem.js +33 -16
  243. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  244. package/cjs/Thread/components/ThreadHeader.js +6 -6
  245. package/cjs/Thread/components/ThreadList.js +33 -24
  246. package/cjs/Thread/components/ThreadList.js.map +1 -1
  247. package/cjs/Thread/components/ThreadListItem.js +41 -26
  248. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  249. package/cjs/Thread/components/ThreadMessageInput.js +73 -23
  250. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  251. package/cjs/Thread/components/ThreadUI.js +49 -31
  252. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  253. package/cjs/Thread/context.js +9 -8
  254. package/cjs/Thread/context.js.map +1 -1
  255. package/cjs/Thread.js +47 -29
  256. package/cjs/Thread.js.map +1 -1
  257. package/cjs/{ThreadProvider-71441c16.js → ThreadProvider-e8591a61.js} +90 -10
  258. package/cjs/ThreadProvider-e8591a61.js.map +1 -0
  259. package/cjs/{UserProfileContext-74e6409b.js → UserProfileContext-89b8a98d.js} +1 -1
  260. package/cjs/{UserProfileContext-74e6409b.js.map → UserProfileContext-89b8a98d.js.map} +1 -1
  261. package/cjs/VoiceMessageInputWrapper-6d309e8c.js +179 -0
  262. package/cjs/VoiceMessageInputWrapper-6d309e8c.js.map +1 -0
  263. package/cjs/VoicePlayer/context.js +14 -0
  264. package/cjs/VoicePlayer/context.js.map +1 -0
  265. package/cjs/VoicePlayer/useVoicePlayer.js +91 -0
  266. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -0
  267. package/cjs/VoiceRecorder/context.js +253 -0
  268. package/cjs/VoiceRecorder/context.js.map +1 -0
  269. package/cjs/VoiceRecorder/useVoiceRecorder.js +122 -0
  270. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  271. package/cjs/{_rollupPluginBabelHelpers-25763ef8.js → _rollupPluginBabelHelpers-9807f0cb.js} +1 -1
  272. package/cjs/_rollupPluginBabelHelpers-9807f0cb.js.map +1 -0
  273. package/cjs/{actionTypes-85a652e4.js → actionTypes-64f969d0.js} +1 -1
  274. package/cjs/{actionTypes-85a652e4.js.map → actionTypes-64f969d0.js.map} +1 -1
  275. package/cjs/{color-51fd9a0c.js → color-ae15b40e.js} +1 -1
  276. package/cjs/{color-51fd9a0c.js.map → color-ae15b40e.js.map} +1 -1
  277. package/cjs/{compareIds-44844f10.js → compareIds-88a3abee.js} +1 -1
  278. package/cjs/{compareIds-44844f10.js.map → compareIds-88a3abee.js.map} +1 -1
  279. package/cjs/{const-4761421a.js → const-6d993a66.js} +1 -1
  280. package/cjs/{const-4761421a.js.map → const-6d993a66.js.map} +1 -1
  281. package/cjs/{const-618dd4f4.js → const-98ae036e.js} +1 -1
  282. package/cjs/{const-618dd4f4.js.map → const-98ae036e.js.map} +1 -1
  283. package/cjs/consts-7142bdfe.js +36 -0
  284. package/cjs/consts-7142bdfe.js.map +1 -0
  285. package/cjs/{context-4b1de73e.js → context-9f945182.js} +2 -2
  286. package/cjs/{context-4b1de73e.js.map → context-9f945182.js.map} +1 -1
  287. package/cjs/dist/index.css +413 -16
  288. package/cjs/dist/index.css.map +1 -1
  289. package/cjs/{index-32b39be6.js → index-1f2ac00b.js} +5 -5
  290. package/cjs/{index-32b39be6.js.map → index-1f2ac00b.js.map} +1 -1
  291. package/cjs/{index-4dc29990.js → index-31135e46.js} +1 -1
  292. package/cjs/{index-4dc29990.js.map → index-31135e46.js.map} +1 -1
  293. package/cjs/{index-9f6a474c.js → index-318ca5bb.js} +2 -2
  294. package/cjs/{index-9f6a474c.js.map → index-318ca5bb.js.map} +1 -1
  295. package/cjs/{index-0e76934f.js → index-45c199d5.js} +8 -8
  296. package/cjs/index-45c199d5.js.map +1 -0
  297. package/cjs/{index-bfe8bdde.js → index-6691da2c.js} +49 -3
  298. package/cjs/index-6691da2c.js.map +1 -0
  299. package/cjs/{index-97532335.js → index-80ec94b9.js} +2 -2
  300. package/cjs/{index-97532335.js.map → index-80ec94b9.js.map} +1 -1
  301. package/cjs/{index-2c095d94.js → index-86b55059.js} +2 -2
  302. package/cjs/{index-2c095d94.js.map → index-86b55059.js.map} +1 -1
  303. package/cjs/{index-c4738d8b.js → index-9d2d5d23.js} +3 -3
  304. package/cjs/{index-c4738d8b.js.map → index-9d2d5d23.js.map} +1 -1
  305. package/cjs/{index-756baf20.js → index-9f074bb0.js} +7 -7
  306. package/cjs/{index-756baf20.js.map → index-9f074bb0.js.map} +1 -1
  307. package/cjs/{index-4d6f2a4e.js → index-a34a53d3.js} +4 -4
  308. package/cjs/{index-4d6f2a4e.js.map → index-a34a53d3.js.map} +1 -1
  309. package/cjs/{index-67134275.js → index-c34f34a2.js} +2 -2
  310. package/cjs/{index-67134275.js.map → index-c34f34a2.js.map} +1 -1
  311. package/cjs/index-e0971532.js +280 -0
  312. package/cjs/index-e0971532.js.map +1 -0
  313. package/cjs/index-fa531baa.js +175 -0
  314. package/cjs/index-fa531baa.js.map +1 -0
  315. package/cjs/{index-7d4e7ad9.js → index-fb42d34c.js} +1 -1
  316. package/cjs/{index-7d4e7ad9.js.map → index-fb42d34c.js.map} +1 -1
  317. package/cjs/index.js +51 -39
  318. package/cjs/index.js.map +1 -1
  319. package/cjs/lame.all.js +14498 -0
  320. package/cjs/lame.all.js.map +1 -0
  321. package/cjs/sendbirdSelectors.js +2 -2
  322. package/cjs/{stringSet-87e51d08.js → stringSet-d4071e23.js} +5 -1
  323. package/cjs/stringSet-d4071e23.js.map +1 -0
  324. package/cjs/{topics-d9091126.js → topics-7108f68f.js} +1 -1
  325. package/cjs/{topics-d9091126.js.map → topics-7108f68f.js.map} +1 -1
  326. package/cjs/{tslib.es6-0b4c49f8.js → tslib.es6-23b4ef32.js} +1 -1
  327. package/cjs/{tslib.es6-0b4c49f8.js.map → tslib.es6-23b4ef32.js.map} +1 -1
  328. package/cjs/types-8f7bbb00.js +11 -0
  329. package/cjs/types-8f7bbb00.js.map +1 -0
  330. package/cjs/ui/Accordion.js +3 -3
  331. package/cjs/ui/AccordionGroup.js +2 -2
  332. package/cjs/ui/AdminMessage.js +3 -3
  333. package/cjs/ui/Avatar.js +2 -2
  334. package/cjs/ui/Badge.js +5 -5
  335. package/cjs/ui/BottomSheet.js +1 -1
  336. package/cjs/ui/Button.js +3 -3
  337. package/cjs/ui/ChannelAvatar.js +3 -3
  338. package/cjs/ui/ConnectionStatus.js +4 -4
  339. package/cjs/ui/ContextMenu.js +5 -5
  340. package/cjs/ui/DateSeparator.js +4 -4
  341. package/cjs/ui/EmojiReactions.js +7 -7
  342. package/cjs/ui/FileMessageItemBody.js +6 -6
  343. package/cjs/ui/FileViewer.js +8 -8
  344. package/cjs/ui/Icon.js +354 -314
  345. package/cjs/ui/Icon.js.map +1 -1
  346. package/cjs/ui/IconButton.js +1 -1
  347. package/cjs/ui/ImageRenderer.js +1 -1
  348. package/cjs/ui/Input.js +2 -2
  349. package/cjs/ui/Label.js +2 -2
  350. package/cjs/ui/LinkLabel.js +2 -2
  351. package/cjs/ui/Loader.js +1 -1
  352. package/cjs/ui/MentionLabel.js +11 -11
  353. package/cjs/ui/MessageContent.js +35 -20
  354. package/cjs/ui/MessageContent.js.map +1 -1
  355. package/cjs/ui/MessageInput.js +35 -16
  356. package/cjs/ui/MessageInput.js.map +1 -1
  357. package/cjs/ui/MessageItemMenu.js +9 -8
  358. package/cjs/ui/MessageItemMenu.js.map +1 -1
  359. package/cjs/ui/MessageItemReactionMenu.js +5 -5
  360. package/cjs/ui/MessageSearchFileItem.js +17 -14
  361. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  362. package/cjs/ui/MessageSearchItem.js +9 -9
  363. package/cjs/ui/MessageStatus.js +10 -10
  364. package/cjs/ui/Modal.js +7 -7
  365. package/cjs/ui/OGMessageItemBody.js +36 -26
  366. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  367. package/cjs/ui/OpenChannelAdminMessage.js +3 -3
  368. package/cjs/ui/OpenChannelAvatar.js +6 -6
  369. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  370. package/cjs/ui/OpenchannelFileMessage.js +16 -16
  371. package/cjs/ui/OpenchannelOGMessage.js +16 -16
  372. package/cjs/ui/OpenchannelThumbnailMessage.js +15 -15
  373. package/cjs/ui/OpenchannelUserMessage.js +16 -16
  374. package/cjs/ui/PlaceHolder.js +6 -6
  375. package/cjs/ui/PlaybackTime.js +36 -0
  376. package/cjs/ui/PlaybackTime.js.map +1 -0
  377. package/cjs/ui/ProgressBar.js +41 -0
  378. package/cjs/ui/ProgressBar.js.map +1 -0
  379. package/cjs/ui/QuoteMessage.js +14 -8
  380. package/cjs/ui/QuoteMessage.js.map +1 -1
  381. package/cjs/ui/QuoteMessageInput.js +12 -11
  382. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  383. package/cjs/ui/ReactionBadge.js +3 -3
  384. package/cjs/ui/ReactionButton.js +1 -1
  385. package/cjs/ui/SortByRow.js +2 -2
  386. package/cjs/ui/TextButton.js +2 -2
  387. package/cjs/ui/TextMessageItemBody.js +11 -11
  388. package/cjs/ui/ThreadReplies.js +6 -6
  389. package/cjs/ui/ThumbnailMessageItemBody.js +2 -2
  390. package/cjs/ui/Tooltip.js +3 -3
  391. package/cjs/ui/TooltipWrapper.js +1 -1
  392. package/cjs/ui/UnknownMessageItemBody.js +6 -6
  393. package/cjs/ui/UserListItem.js +11 -11
  394. package/cjs/ui/UserProfile.js +10 -10
  395. package/cjs/ui/VoiceMessageItemBody.js +119 -0
  396. package/cjs/ui/VoiceMessageItemBody.js.map +1 -0
  397. package/cjs/ui/VoiceMessgeInput.js +23 -0
  398. package/cjs/ui/VoiceMessgeInput.js.map +1 -0
  399. package/cjs/ui/Word.js +11 -11
  400. package/cjs/{useLongPress-ff6353a1.js → useLongPress-62a89444.js} +3 -3
  401. package/cjs/{useLongPress-ff6353a1.js.map → useLongPress-62a89444.js.map} +1 -1
  402. package/cjs/useSendbirdStateContext.js +1 -1
  403. package/cjs/utils/message/isVoiceMessage.js +10 -0
  404. package/cjs/utils/message/isVoiceMessage.js.map +1 -0
  405. package/cjs/{utils-aa1597cc.js → utils-178ccede.js} +1 -1
  406. package/cjs/{utils-aa1597cc.js.map → utils-178ccede.js.map} +1 -1
  407. package/cjs/{utils-edb40a10.js → utils-41fef560.js} +2 -2
  408. package/cjs/{utils-edb40a10.js.map → utils-41fef560.js.map} +1 -1
  409. package/cjs/{utils-c948ddfe.js → utils-7bec6eaa.js} +1 -1
  410. package/cjs/{utils-c948ddfe.js.map → utils-7bec6eaa.js.map} +1 -1
  411. package/cjs/{utils-72ab488f.js → utils-b691a058.js} +1 -1
  412. package/cjs/{utils-72ab488f.js.map → utils-b691a058.js.map} +1 -1
  413. package/cjs/{uuid-0b5f4e5e.js → uuid-42040a5c.js} +1 -1
  414. package/cjs/{uuid-0b5f4e5e.js.map → uuid-42040a5c.js.map} +1 -1
  415. package/cjs/withSendbird.js +1 -1
  416. package/{color-1b42e49d.js → color-f2370c85.js} +1 -1
  417. package/{color-1b42e49d.js.map → color-f2370c85.js.map} +1 -1
  418. package/{compareIds-df760ae2.js → compareIds-a4557492.js} +1 -1
  419. package/{compareIds-df760ae2.js.map → compareIds-a4557492.js.map} +1 -1
  420. package/{const-c269fd32.js → const-593595f5.js} +1 -1
  421. package/{const-c269fd32.js.map → const-593595f5.js.map} +1 -1
  422. package/{const-11ae0dd9.js → const-ce447fcf.js} +1 -1
  423. package/{const-11ae0dd9.js.map → const-ce447fcf.js.map} +1 -1
  424. package/consts-d2d25dac.js +23 -0
  425. package/consts-d2d25dac.js.map +1 -0
  426. package/{context-2c35a852.js → context-95839b09.js} +2 -2
  427. package/{context-2c35a852.js.map → context-95839b09.js.map} +1 -1
  428. package/dist/index.css +413 -16
  429. package/dist/index.css.map +1 -1
  430. package/{index-6a8be188.js → index-2aaa784a.js} +7 -7
  431. package/{index-6a8be188.js.map → index-2aaa784a.js.map} +1 -1
  432. package/{index-e2994193.js → index-4a977e7d.js} +2 -2
  433. package/{index-e2994193.js.map → index-4a977e7d.js.map} +1 -1
  434. package/{index-6491c190.js → index-4b51e7af.js} +5 -5
  435. package/{index-6491c190.js.map → index-4b51e7af.js.map} +1 -1
  436. package/{index-30726ee1.js → index-4c6a2064.js} +2 -2
  437. package/{index-30726ee1.js.map → index-4c6a2064.js.map} +1 -1
  438. package/index-60d3992b.js +271 -0
  439. package/index-60d3992b.js.map +1 -0
  440. package/{index-8c38f9d0.js → index-620331eb.js} +2 -2
  441. package/{index-8c38f9d0.js.map → index-620331eb.js.map} +1 -1
  442. package/index-7b5efb26.js +168 -0
  443. package/index-7b5efb26.js.map +1 -0
  444. package/{index-a53d78b6.js → index-999fdb64.js} +1 -1
  445. package/{index-a53d78b6.js.map → index-999fdb64.js.map} +1 -1
  446. package/{index-1f0b91f3.js → index-9c2d0ccd.js} +2 -2
  447. package/{index-1f0b91f3.js.map → index-9c2d0ccd.js.map} +1 -1
  448. package/{index-fd5a03a3.js → index-b8e990b4.js} +1 -1
  449. package/{index-fd5a03a3.js.map → index-b8e990b4.js.map} +1 -1
  450. package/{index-425e5f17.js → index-bbab31f0.js} +48 -4
  451. package/index-bbab31f0.js.map +1 -0
  452. package/{index-aa4edbe2.js → index-daccde5e.js} +8 -8
  453. package/index-daccde5e.js.map +1 -0
  454. package/{index-6d541758.js → index-ed1f765b.js} +3 -3
  455. package/{index-6d541758.js.map → index-ed1f765b.js.map} +1 -1
  456. package/{index-aecdd02c.js → index-eefaf935.js} +4 -4
  457. package/{index-aecdd02c.js.map → index-eefaf935.js.map} +1 -1
  458. package/index.d.ts +16 -1
  459. package/index.js +51 -39
  460. package/index.js.map +1 -1
  461. package/lame.all.js +14492 -0
  462. package/lame.all.js.map +1 -0
  463. package/package.json +1 -1
  464. package/sendbirdSelectors.js +2 -2
  465. package/{stringSet-c2443946.js → stringSet-f9763488.js} +5 -1
  466. package/stringSet-f9763488.js.map +1 -0
  467. package/{topics-0ba43ee8.js → topics-1ec669f0.js} +1 -1
  468. package/{topics-0ba43ee8.js.map → topics-1ec669f0.js.map} +1 -1
  469. package/{tslib.es6-13412863.js → tslib.es6-fc4a2658.js} +1 -1
  470. package/{tslib.es6-13412863.js.map → tslib.es6-fc4a2658.js.map} +1 -1
  471. package/types-e86f9fca.js +9 -0
  472. package/types-e86f9fca.js.map +1 -0
  473. package/ui/Accordion.js +3 -3
  474. package/ui/AccordionGroup.js +2 -2
  475. package/ui/AdminMessage.js +3 -3
  476. package/ui/Avatar.js +2 -2
  477. package/ui/Badge.js +5 -5
  478. package/ui/BottomSheet.js +1 -1
  479. package/ui/Button.js +3 -3
  480. package/ui/ChannelAvatar.js +3 -3
  481. package/ui/ConnectionStatus.js +4 -4
  482. package/ui/ContextMenu.js +5 -5
  483. package/ui/DateSeparator.js +4 -4
  484. package/ui/EmojiReactions.js +7 -7
  485. package/ui/FileMessageItemBody.js +6 -6
  486. package/ui/FileViewer.js +8 -8
  487. package/ui/Icon.js +341 -299
  488. package/ui/Icon.js.map +1 -1
  489. package/ui/IconButton.js +1 -1
  490. package/ui/ImageRenderer.js +1 -1
  491. package/ui/Input.js +2 -2
  492. package/ui/Label.js +2 -2
  493. package/ui/LinkLabel.js +2 -2
  494. package/ui/Loader.js +1 -1
  495. package/ui/MentionLabel.js +11 -11
  496. package/ui/MessageContent.js +35 -20
  497. package/ui/MessageContent.js.map +1 -1
  498. package/ui/MessageInput.js +35 -16
  499. package/ui/MessageInput.js.map +1 -1
  500. package/ui/MessageItemMenu.js +9 -8
  501. package/ui/MessageItemMenu.js.map +1 -1
  502. package/ui/MessageItemReactionMenu.js +5 -5
  503. package/ui/MessageSearchFileItem.js +17 -14
  504. package/ui/MessageSearchFileItem.js.map +1 -1
  505. package/ui/MessageSearchItem.js +9 -9
  506. package/ui/MessageStatus.js +10 -10
  507. package/ui/Modal.js +7 -7
  508. package/ui/OGMessageItemBody.js +37 -27
  509. package/ui/OGMessageItemBody.js.map +1 -1
  510. package/ui/OpenChannelAdminMessage.js +3 -3
  511. package/ui/OpenChannelAvatar.js +6 -6
  512. package/ui/OpenchannelConversationHeader.js +6 -6
  513. package/ui/OpenchannelFileMessage.js +16 -16
  514. package/ui/OpenchannelOGMessage.js +16 -16
  515. package/ui/OpenchannelThumbnailMessage.js +15 -15
  516. package/ui/OpenchannelUserMessage.js +16 -16
  517. package/ui/PlaceHolder.js +6 -6
  518. package/ui/PlaybackTime.js +27 -0
  519. package/ui/PlaybackTime.js.map +1 -0
  520. package/ui/ProgressBar.js +31 -0
  521. package/ui/ProgressBar.js.map +1 -0
  522. package/ui/QuoteMessage.js +14 -8
  523. package/ui/QuoteMessage.js.map +1 -1
  524. package/ui/QuoteMessageInput.js +12 -11
  525. package/ui/QuoteMessageInput.js.map +1 -1
  526. package/ui/ReactionBadge.js +3 -3
  527. package/ui/ReactionButton.js +1 -1
  528. package/ui/SortByRow.js +2 -2
  529. package/ui/TextButton.js +2 -2
  530. package/ui/TextMessageItemBody.js +11 -11
  531. package/ui/ThreadReplies.js +6 -6
  532. package/ui/ThumbnailMessageItemBody.js +2 -2
  533. package/ui/Tooltip.js +3 -3
  534. package/ui/TooltipWrapper.js +1 -1
  535. package/ui/UnknownMessageItemBody.js +6 -6
  536. package/ui/UserListItem.js +11 -11
  537. package/ui/UserProfile.js +10 -10
  538. package/ui/VoiceMessageItemBody.js +110 -0
  539. package/ui/VoiceMessageItemBody.js.map +1 -0
  540. package/ui/VoiceMessgeInput.js +15 -0
  541. package/ui/VoiceMessgeInput.js.map +1 -0
  542. package/ui/Word.js +11 -11
  543. package/{useLongPress-fbe83e54.js → useLongPress-6fc8312a.js} +3 -3
  544. package/{useLongPress-fbe83e54.js.map → useLongPress-6fc8312a.js.map} +1 -1
  545. package/useSendbirdStateContext.js +1 -1
  546. package/utils/message/isVoiceMessage.js +7 -0
  547. package/utils/message/isVoiceMessage.js.map +1 -0
  548. package/{utils-87d19647.js → utils-2570c397.js} +1 -1
  549. package/{utils-87d19647.js.map → utils-2570c397.js.map} +1 -1
  550. package/{utils-dd13f89e.js → utils-6c7dd397.js} +1 -1
  551. package/{utils-dd13f89e.js.map → utils-6c7dd397.js.map} +1 -1
  552. package/{utils-9c95a786.js → utils-8c242c8c.js} +2 -2
  553. package/{utils-9c95a786.js.map → utils-8c242c8c.js.map} +1 -1
  554. package/{utils-87dce5dd.js → utils-c1d219fa.js} +1 -1
  555. package/{utils-87dce5dd.js.map → utils-c1d219fa.js.map} +1 -1
  556. package/{uuid-7a5e68ed.js → uuid-6ca64623.js} +1 -1
  557. package/{uuid-7a5e68ed.js.map → uuid-6ca64623.js.map} +1 -1
  558. package/withSendbird.js +1 -1
  559. package/ChannelProvider-1e540c0e.js.map +0 -1
  560. package/MemberList-6483a7db.js.map +0 -1
  561. package/ThreadProvider-a1413f01.js.map +0 -1
  562. package/_rollupPluginBabelHelpers-b45d3824.js.map +0 -1
  563. package/cjs/ChannelProvider-3fbf7c5e.js.map +0 -1
  564. package/cjs/MemberList-4a0910dd.js.map +0 -1
  565. package/cjs/ThreadProvider-71441c16.js.map +0 -1
  566. package/cjs/_rollupPluginBabelHelpers-25763ef8.js.map +0 -1
  567. package/cjs/index-0e76934f.js.map +0 -1
  568. package/cjs/index-bfe8bdde.js.map +0 -1
  569. package/cjs/stringSet-87e51d08.js.map +0 -1
  570. package/index-425e5f17.js.map +0 -1
  571. package/index-aa4edbe2.js.map +0 -1
  572. package/stringSet-c2443946.js.map +0 -1
@@ -0,0 +1,280 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var tslib_es6 = require('./tslib.es6-23b4ef32.js');
5
+ var consts = require('./consts-7142bdfe.js');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
+
11
+ var INITIALIZE_AUDIO_UNIT = 'INITIALIZE_AUDIO_UNIT';
12
+ var SET_CURRENT_PLAYER = 'SET_CURRENT_PLAYER';
13
+ var ON_VOICE_PLAYER_PLAY = 'ON_VOICE_PLAYER_PLAY';
14
+ var ON_VOICE_PLAYER_PAUSE = 'ON_VOICE_PLAYER_PAUSE';
15
+ var ON_CURRENT_TIME_UPDATE = 'ON_CURRENT_TIME_UPDATE';
16
+
17
+ var VoicePlayerStatus = {
18
+ IDLE: 'IDLE',
19
+ PREPARING: 'PREPARING',
20
+ PLAYING: 'PLAYING',
21
+ PAUSED: 'PAUSED',
22
+ COMPLETED: 'COMPLETED'
23
+ };
24
+ var AudioUnitDefaultValue = function () {
25
+ return {
26
+ audioFile: null,
27
+ playbackTime: 0,
28
+ duration: 1000,
29
+ playingStatus: VoicePlayerStatus.IDLE
30
+ };
31
+ };
32
+ var voicePlayerInitialState = {
33
+ currentPlayer: null,
34
+ currentGroupKey: '',
35
+ audioStorage: {}
36
+ };
37
+
38
+ function voicePlayerReducer(state, action) {
39
+ var _a, _b, _c, _d;
40
+
41
+ var _e, _f, _g, _h;
42
+
43
+ switch (action.type) {
44
+ case INITIALIZE_AUDIO_UNIT:
45
+ {
46
+ var groupKey = action.payload.groupKey;
47
+ var audioUnit = ((_e = state.audioStorage) === null || _e === void 0 ? void 0 : _e[groupKey]) ? state.audioStorage[groupKey] : AudioUnitDefaultValue();
48
+ audioUnit.playingStatus = VoicePlayerStatus.PREPARING;
49
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
50
+ audioStorage: tslib_es6.__assign(tslib_es6.__assign({}, state.audioStorage), (_a = {}, _a[groupKey] = audioUnit, _a))
51
+ });
52
+ }
53
+
54
+ case SET_CURRENT_PLAYER:
55
+ {
56
+ var _j = action.payload,
57
+ audioPlayer = _j.audioPlayer,
58
+ groupKey = _j.groupKey;
59
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
60
+ currentPlayer: audioPlayer,
61
+ currentGroupKey: groupKey
62
+ });
63
+ }
64
+
65
+ case ON_VOICE_PLAYER_PLAY:
66
+ {
67
+ var _k = action.payload,
68
+ groupKey = _k.groupKey,
69
+ audioFile = _k.audioFile;
70
+ var audioUnit = ((_f = state.audioStorage) === null || _f === void 0 ? void 0 : _f[groupKey]) ? state.audioStorage[groupKey] : AudioUnitDefaultValue();
71
+ audioUnit.audioFile = audioFile;
72
+ audioUnit.playingStatus = VoicePlayerStatus.PLAYING;
73
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
74
+ audioStorage: tslib_es6.__assign(tslib_es6.__assign({}, state.audioStorage), (_b = {}, _b[groupKey] = audioUnit, _b))
75
+ });
76
+ }
77
+
78
+ case ON_VOICE_PLAYER_PAUSE:
79
+ {
80
+ var groupKey = action.payload.groupKey;
81
+ var audioUnit = ((_g = state.audioStorage) === null || _g === void 0 ? void 0 : _g[groupKey]) ? state.audioStorage[groupKey] : AudioUnitDefaultValue();
82
+ audioUnit.playingStatus = VoicePlayerStatus.PAUSED;
83
+ var _l = state.currentPlayer,
84
+ currentTime = _l.currentTime,
85
+ duration = _l.duration;
86
+
87
+ if (audioUnit.playbackTime === audioUnit.duration) {
88
+ audioUnit.playbackTime = 0;
89
+ } else if (currentTime > 0 && duration > 0) {
90
+ audioUnit.playbackTime = currentTime;
91
+ audioUnit.duration = duration;
92
+ }
93
+
94
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
95
+ audioStorage: tslib_es6.__assign(tslib_es6.__assign({}, state.audioStorage), (_c = {}, _c[groupKey] = audioUnit, _c))
96
+ });
97
+ }
98
+
99
+ case ON_CURRENT_TIME_UPDATE:
100
+ {
101
+ var groupKey = action.payload.groupKey;
102
+ var _m = state.currentPlayer,
103
+ currentTime = _m.currentTime,
104
+ duration = _m.duration;
105
+ var audioUnit = ((_h = state.audioStorage) === null || _h === void 0 ? void 0 : _h[groupKey]) ? state.audioStorage[groupKey] : AudioUnitDefaultValue();
106
+
107
+ if (currentTime > 0 && duration > 0) {
108
+ audioUnit.playbackTime = currentTime;
109
+ audioUnit.duration = duration;
110
+ }
111
+
112
+ return tslib_es6.__assign(tslib_es6.__assign({}, state), {
113
+ audioStorage: tslib_es6.__assign(tslib_es6.__assign({}, state.audioStorage), (_d = {}, _d[groupKey] = audioUnit, _d))
114
+ });
115
+ }
116
+
117
+ default:
118
+ return state;
119
+ }
120
+ }
121
+
122
+ var noop = function () {};
123
+
124
+ var VoicePlayerStoreDefaultValue = {
125
+ currentGroupKey: '',
126
+ currentPlayer: null,
127
+ audioStorage: {}
128
+ };
129
+ var VoicePlayerContext = /*#__PURE__*/React.createContext({
130
+ play: noop,
131
+ pause: noop,
132
+ stop: noop,
133
+ voicePlayerStore: VoicePlayerStoreDefaultValue
134
+ });
135
+ var VoicePlayerProvider = function (_a) {
136
+ var children = _a.children;
137
+
138
+ var _b = React.useReducer(voicePlayerReducer, voicePlayerInitialState),
139
+ voicePlayerStore = _b[0],
140
+ voicePlayerDispatcher = _b[1];
141
+
142
+ var currentGroupKey = voicePlayerStore.currentGroupKey,
143
+ currentPlayer = voicePlayerStore.currentPlayer,
144
+ audioStorage = voicePlayerStore.audioStorage;
145
+
146
+ var stop = function (text) {
147
+ if (text === void 0) {
148
+ text = '';
149
+ }
150
+
151
+ if (currentGroupKey.includes(text)) {
152
+ pause(currentGroupKey);
153
+ }
154
+ };
155
+
156
+ var pause = function (groupKey) {
157
+ if (currentGroupKey === groupKey && currentPlayer !== null) {
158
+ currentPlayer === null || currentPlayer === void 0 ? void 0 : currentPlayer.pause();
159
+ }
160
+ };
161
+
162
+ var play = function (_a) {
163
+ var groupKey = _a.groupKey,
164
+ _b = _a.audioFile,
165
+ audioFile = _b === void 0 ? null : _b,
166
+ _c = _a.audioFileUrl,
167
+ audioFileUrl = _c === void 0 ? '' : _c;
168
+
169
+ if (groupKey !== currentGroupKey) {
170
+ pause(currentGroupKey);
171
+ } // Clear the previous AudioPlayer element
172
+
173
+
174
+ var voicePlayerRoot = document.getElementById(consts.VOICE_PLAYER_ROOT_ID);
175
+ var voicePlayerAudioElement = document.getElementById(consts.VOICE_PLAYER_AUDIO_ID);
176
+
177
+ if (voicePlayerAudioElement) {
178
+ voicePlayerRoot.removeChild(voicePlayerAudioElement);
179
+ }
180
+
181
+ new Promise(function (resolve) {
182
+ var _a;
183
+
184
+ if (audioFile) {
185
+ resolve(audioFile);
186
+ }
187
+
188
+ if ((_a = audioStorage === null || audioStorage === void 0 ? void 0 : audioStorage[groupKey]) === null || _a === void 0 ? void 0 : _a.audioFile) {
189
+ resolve(audioStorage[groupKey].audioFile);
190
+ }
191
+
192
+ voicePlayerDispatcher({
193
+ type: INITIALIZE_AUDIO_UNIT,
194
+ payload: {
195
+ groupKey: groupKey
196
+ }
197
+ });
198
+ fetch(audioFileUrl).then(function (res) {
199
+ return res.blob();
200
+ }).then(function (blob) {
201
+ var audioFile = new File([blob], consts.VOICE_MESSAGE_FILE_NAME, {
202
+ lastModified: new Date().getTime(),
203
+ type: consts.VOICE_MESSAGE_MIME_TYPE
204
+ });
205
+ resolve(audioFile);
206
+ });
207
+ }).then(function (audioFile) {
208
+ var _a;
209
+
210
+ var currentAudioUnit = audioStorage[groupKey] || AudioUnitDefaultValue();
211
+ var audioPlayer = new Audio((_a = URL === null || URL === void 0 ? void 0 : URL.createObjectURL) === null || _a === void 0 ? void 0 : _a.call(URL, audioFile));
212
+ audioPlayer.id = consts.VOICE_PLAYER_AUDIO_ID;
213
+ audioPlayer.currentTime = currentAudioUnit.playbackTime;
214
+ audioPlayer.volume = 1;
215
+ audioPlayer.loop = false;
216
+
217
+ audioPlayer.onplaying = function () {
218
+ voicePlayerDispatcher({
219
+ type: ON_VOICE_PLAYER_PLAY,
220
+ payload: {
221
+ groupKey: groupKey,
222
+ audioFile: audioFile
223
+ }
224
+ });
225
+ };
226
+
227
+ audioPlayer.onpause = function () {
228
+ voicePlayerDispatcher({
229
+ type: ON_VOICE_PLAYER_PAUSE,
230
+ payload: {
231
+ groupKey: groupKey
232
+ }
233
+ });
234
+ };
235
+
236
+ audioPlayer.ontimeupdate = function () {
237
+ voicePlayerDispatcher({
238
+ type: ON_CURRENT_TIME_UPDATE,
239
+ payload: {
240
+ groupKey: groupKey
241
+ }
242
+ });
243
+ };
244
+
245
+ audioPlayer === null || audioPlayer === void 0 ? void 0 : audioPlayer.play();
246
+ var voicePlayerRoot = document.getElementById(consts.VOICE_PLAYER_ROOT_ID);
247
+ voicePlayerRoot.appendChild(audioPlayer);
248
+ voicePlayerDispatcher({
249
+ type: SET_CURRENT_PLAYER,
250
+ payload: {
251
+ groupKey: groupKey,
252
+ audioPlayer: audioPlayer
253
+ }
254
+ });
255
+ });
256
+ };
257
+
258
+ return /*#__PURE__*/React__default["default"].createElement(VoicePlayerContext.Provider, {
259
+ value: {
260
+ play: play,
261
+ pause: pause,
262
+ stop: stop,
263
+ voicePlayerStore: voicePlayerStore
264
+ }
265
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
266
+ id: consts.VOICE_PLAYER_ROOT_ID,
267
+ style: {
268
+ display: 'none'
269
+ }
270
+ }), children);
271
+ };
272
+ var useVoicePlayerContext = function () {
273
+ return React.useContext(VoicePlayerContext);
274
+ };
275
+
276
+ exports.AudioUnitDefaultValue = AudioUnitDefaultValue;
277
+ exports.VoicePlayerProvider = VoicePlayerProvider;
278
+ exports.VoicePlayerStatus = VoicePlayerStatus;
279
+ exports.useVoicePlayerContext = useVoicePlayerContext;
280
+ //# sourceMappingURL=index-e0971532.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-e0971532.js","sources":["../../src/hooks/VoicePlayer/dux/actionTypes.ts","../../src/hooks/VoicePlayer/dux/initialState.ts","../../src/hooks/VoicePlayer/dux/reducer.ts","../../src/hooks/VoicePlayer/index.tsx"],"sourcesContent":["export const actionTypes = {\n INITIALIZE_AUDIO_UNIT: 'INITIALIZE_AUDIO_UNIT',\n SET_CURRENT_PLAYER: 'SET_CURRENT_PLAYER',\n ON_VOICE_PLAYER_PLAY: 'ON_VOICE_PLAYER_PLAY',\n ON_VOICE_PLAYER_PAUSE: 'ON_VOICE_PLAYER_PAUSE',\n ON_CURRENT_TIME_UPDATE: 'ON_CURRENT_TIME_UPDATE',\n} as const;\n\ntype ObjectValues<T> = T[keyof T];\nexport type VoicePlayerActionType = ObjectValues<typeof actionTypes>;\n\nexport const INITIALIZE_AUDIO_UNIT: VoicePlayerActionType = 'INITIALIZE_AUDIO_UNIT';\nexport const SET_CURRENT_PLAYER: VoicePlayerActionType = 'SET_CURRENT_PLAYER';\nexport const ON_VOICE_PLAYER_PLAY: VoicePlayerActionType = 'ON_VOICE_PLAYER_PLAY';\nexport const ON_VOICE_PLAYER_PAUSE: VoicePlayerActionType = 'ON_VOICE_PLAYER_PAUSE';\nexport const ON_CURRENT_TIME_UPDATE: VoicePlayerActionType = 'ON_CURRENT_TIME_UPDATE';\n","import { GroupKey } from '../utils';\n\nexport const VoicePlayerStatus = {\n IDLE: 'IDLE',\n PREPARING: 'PREPARING',\n PLAYING: 'PLAYING',\n PAUSED: 'PAUSED',\n COMPLETED: 'COMPLETED',\n} as const;\nexport type VoicePlayerStatus = typeof VoicePlayerStatus[keyof typeof VoicePlayerStatus];\n\nexport type AudioStorageUnit = {\n playingStatus: VoicePlayerStatus;\n audioFile: null | File;\n playbackTime: number;\n duration: number;\n}\nexport const AudioUnitDefaultValue = (): AudioStorageUnit => ({\n audioFile: null,\n playbackTime: 0,\n duration: 1000,\n playingStatus: VoicePlayerStatus.IDLE,\n});\n\nexport interface VoicePlayerInitialState {\n currentPlayer: null | HTMLAudioElement;\n currentGroupKey: string;\n audioStorage: Record<GroupKey, AudioStorageUnit>;\n}\n\nexport const voicePlayerInitialState: VoicePlayerInitialState = {\n currentPlayer: null,\n currentGroupKey: '',\n audioStorage: {},\n};\n","import {\n INITIALIZE_AUDIO_UNIT,\n ON_CURRENT_TIME_UPDATE,\n ON_VOICE_PLAYER_PAUSE,\n ON_VOICE_PLAYER_PLAY,\n SET_CURRENT_PLAYER,\n} from \"./actionTypes\";\nimport {\n AudioStorageUnit,\n AudioUnitDefaultValue,\n VoicePlayerInitialState,\n VoicePlayerStatus,\n} from \"./initialState\";\n\ntype InitializeAudioUnitPayload = { groupKey: string };\ntype SetCurrentPlayerPayload = { audioPlayer: HTMLAudioElement, groupKey: string };\ntype OnVoicePlayerPlayPayload = { groupKey: string, audioFile: File };\ntype OnVoicePlayerPausePayload = { groupKey: string };\ntype OnCurrentTimeUpdatePayload = { groupKey: string };\ntype PayloadType = (\n InitializeAudioUnitPayload\n | SetCurrentPlayerPayload\n | OnVoicePlayerPlayPayload\n | OnVoicePlayerPausePayload\n | OnCurrentTimeUpdatePayload\n);\ntype ActionType = {\n type: string;\n payload: PayloadType;\n}\n\nexport default function voicePlayerReducer(\n state: VoicePlayerInitialState,\n action: ActionType,\n): VoicePlayerInitialState {\n switch (action.type) {\n case INITIALIZE_AUDIO_UNIT: {\n const { groupKey } = action.payload as InitializeAudioUnitPayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.playingStatus = VoicePlayerStatus.PREPARING;\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case SET_CURRENT_PLAYER: {\n const { audioPlayer, groupKey } = action.payload as SetCurrentPlayerPayload;\n return {\n ...state,\n currentPlayer: audioPlayer,\n currentGroupKey: groupKey,\n };\n }\n case ON_VOICE_PLAYER_PLAY: {\n const { groupKey, audioFile } = action.payload as OnVoicePlayerPlayPayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.audioFile = audioFile;\n audioUnit.playingStatus = VoicePlayerStatus.PLAYING;\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case ON_VOICE_PLAYER_PAUSE: {\n const { groupKey } = action.payload as OnVoicePlayerPausePayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.playingStatus = VoicePlayerStatus.PAUSED;\n const { currentTime, duration } = state.currentPlayer as HTMLAudioElement;\n if (audioUnit.playbackTime === audioUnit.duration) {\n audioUnit.playbackTime = 0;\n } else if (currentTime > 0 && duration > 0) {\n audioUnit.playbackTime = currentTime;\n audioUnit.duration = duration;\n }\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case ON_CURRENT_TIME_UPDATE: {\n const { groupKey } = action.payload as OnCurrentTimeUpdatePayload;\n const { currentTime, duration } = state.currentPlayer as HTMLAudioElement;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n if (currentTime > 0 && duration > 0) {\n audioUnit.playbackTime = currentTime;\n audioUnit.duration = duration;\n }\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n default:\n return state;\n }\n}\n","import React, { createContext, useContext, useReducer } from 'react';\nimport voicePlayerReducer from './dux/reducer';\nimport {\n AudioStorageUnit,\n AudioUnitDefaultValue,\n VoicePlayerInitialState,\n voicePlayerInitialState,\n} from './dux/initialState';\nimport {\n INITIALIZE_AUDIO_UNIT,\n ON_CURRENT_TIME_UPDATE,\n ON_VOICE_PLAYER_PAUSE,\n ON_VOICE_PLAYER_PLAY,\n SET_CURRENT_PLAYER,\n} from './dux/actionTypes';\nimport {\n VOICE_MESSAGE_FILE_NAME,\n VOICE_MESSAGE_MIME_TYPE,\n VOICE_PLAYER_AUDIO_ID,\n VOICE_PLAYER_ROOT_ID,\n} from '../../utils/consts';\n\n// VoicePlayerProvider interface\nexport interface VoicePlayerProps {\n children: React.ReactElement;\n}\nexport interface VoicePlayerPlayProps {\n groupKey: string;\n audioFile?: File;\n audioFileUrl?: string;\n}\nexport interface VoicePlayerContext {\n play: (props: VoicePlayerPlayProps) => void;\n pause: (groupKey?: string) => void;\n stop: (text?: string) => void;\n voicePlayerStore: VoicePlayerInitialState;\n}\n\nconst noop = () => {/* noop */ };\nconst VoicePlayerStoreDefaultValue = {\n currentGroupKey: '',\n currentPlayer: null,\n audioStorage: {},\n};\n\nconst VoicePlayerContext = createContext<VoicePlayerContext>({\n play: noop,\n pause: noop,\n stop: noop,\n voicePlayerStore: VoicePlayerStoreDefaultValue,\n});\n\nexport const VoicePlayerProvider = ({\n children,\n}: VoicePlayerProps): React.ReactElement => {\n const [voicePlayerStore, voicePlayerDispatcher] = useReducer(voicePlayerReducer, voicePlayerInitialState);\n const {\n currentGroupKey,\n currentPlayer,\n audioStorage,\n } = voicePlayerStore;\n\n const stop = (text = '') => {\n if (currentGroupKey.includes(text)) {\n pause(currentGroupKey);\n }\n };\n\n const pause = (groupKey: string) => {\n if (currentGroupKey === groupKey && currentPlayer !== null) {\n currentPlayer?.pause();\n }\n };\n\n const play = ({\n groupKey,\n audioFile = null,\n audioFileUrl = '',\n }: VoicePlayerPlayProps): void => {\n if (groupKey !== currentGroupKey) {\n pause(currentGroupKey);\n }\n\n // Clear the previous AudioPlayer element\n const voicePlayerRoot = document.getElementById(VOICE_PLAYER_ROOT_ID);\n const voicePlayerAudioElement = document.getElementById(VOICE_PLAYER_AUDIO_ID);\n if (voicePlayerAudioElement) {\n voicePlayerRoot.removeChild(voicePlayerAudioElement);\n }\n\n new Promise((resolve) => {\n if (audioFile) {\n resolve(audioFile);\n }\n if (audioStorage?.[groupKey]?.audioFile) {\n resolve(audioStorage[groupKey].audioFile)\n }\n voicePlayerDispatcher({\n type: INITIALIZE_AUDIO_UNIT,\n payload: {\n groupKey,\n },\n });\n fetch(audioFileUrl)\n .then((res) => res.blob())\n .then((blob) => {\n const audioFile = new File([blob], VOICE_MESSAGE_FILE_NAME, {\n lastModified: new Date().getTime(),\n type: VOICE_MESSAGE_MIME_TYPE,\n });\n resolve(audioFile);\n });\n }).then((audioFile: File) => {\n const currentAudioUnit = audioStorage[groupKey] || AudioUnitDefaultValue() as AudioStorageUnit;\n const audioPlayer = new Audio(URL?.createObjectURL?.(audioFile));\n audioPlayer.id = VOICE_PLAYER_AUDIO_ID;\n audioPlayer.currentTime = currentAudioUnit.playbackTime;\n audioPlayer.volume = 1;\n audioPlayer.loop = false;\n audioPlayer.onplaying = () => {\n voicePlayerDispatcher({\n type: ON_VOICE_PLAYER_PLAY,\n payload: {\n groupKey,\n audioFile,\n },\n });\n };\n audioPlayer.onpause = () => {\n voicePlayerDispatcher({\n type: ON_VOICE_PLAYER_PAUSE,\n payload: {\n groupKey,\n },\n });\n };\n audioPlayer.ontimeupdate = () => {\n voicePlayerDispatcher({\n type: ON_CURRENT_TIME_UPDATE,\n payload: {\n groupKey,\n },\n });\n };\n audioPlayer?.play();\n const voicePlayerRoot = document.getElementById(VOICE_PLAYER_ROOT_ID);\n voicePlayerRoot.appendChild(audioPlayer);\n voicePlayerDispatcher({\n type: SET_CURRENT_PLAYER,\n payload: {\n groupKey,\n audioPlayer,\n },\n });\n })\n };\n\n return (\n <VoicePlayerContext.Provider value={{\n play,\n pause,\n stop,\n voicePlayerStore,\n }}>\n <div id={VOICE_PLAYER_ROOT_ID} style={{ display: 'none' }} />\n {children}\n </VoicePlayerContext.Provider>\n );\n};\n\nexport const useVoicePlayerContext = (): VoicePlayerContext => useContext(VoicePlayerContext);\n"],"names":["INITIALIZE_AUDIO_UNIT","SET_CURRENT_PLAYER","ON_VOICE_PLAYER_PLAY","ON_VOICE_PLAYER_PAUSE","ON_CURRENT_TIME_UPDATE","VoicePlayerStatus","IDLE","PREPARING","PLAYING","PAUSED","COMPLETED","AudioUnitDefaultValue","audioFile","playbackTime","duration","playingStatus","voicePlayerInitialState","currentPlayer","currentGroupKey","audioStorage","voicePlayerReducer","state","action","type","groupKey","payload","audioUnit","_e","__assign","_a","_j","audioPlayer","_k","_f","_b","_g","_l","currentTime","_c","_m","_h","_d","noop","VoicePlayerStoreDefaultValue","VoicePlayerContext","createContext","play","pause","stop","voicePlayerStore","VoicePlayerProvider","children","useReducer","voicePlayerDispatcher","text","includes","audioFileUrl","voicePlayerRoot","document","getElementById","VOICE_PLAYER_ROOT_ID","voicePlayerAudioElement","VOICE_PLAYER_AUDIO_ID","removeChild","Promise","resolve","fetch","then","res","blob","File","VOICE_MESSAGE_FILE_NAME","lastModified","Date","getTime","VOICE_MESSAGE_MIME_TYPE","currentAudioUnit","Audio","URL","createObjectURL","id","volume","loop","onplaying","onpause","ontimeupdate","appendChild","React","display","useVoicePlayerContext","useContext"],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var ui_PlaybackTime = require('./ui/PlaybackTime.js');
5
+ var ui_ProgressBar = require('./ui/ProgressBar.js');
6
+ var ui_TextButton = require('./ui/TextButton.js');
7
+ var ui_Icon = require('./ui/Icon.js');
8
+ var ui_Label = require('./index-86b55059.js');
9
+ var LocalizationContext = require('./LocalizationContext-7d2c13ee.js');
10
+ var consts = require('./consts-7142bdfe.js');
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
+
16
+ var VoiceMessageInputStatus = {
17
+ READY_TO_RECORD: 'READY_TO_RECORD',
18
+ RECORDING: 'RECORDING',
19
+ READY_TO_PLAY: 'READY_TO_PLAY',
20
+ PLAYING: 'PLAYING'
21
+ };
22
+
23
+ var ControlerIcon = function (_a) {
24
+ var inputState = _a.inputState;
25
+
26
+ switch (inputState) {
27
+ case VoiceMessageInputStatus.READY_TO_RECORD:
28
+ {
29
+ return /*#__PURE__*/React__default["default"].createElement("div", {
30
+ className: "sendbird-controler-icon record-icon"
31
+ });
32
+ }
33
+
34
+ case VoiceMessageInputStatus.RECORDING:
35
+ {
36
+ return /*#__PURE__*/React__default["default"].createElement("div", {
37
+ className: "sendbird-controler-icon stop-icon"
38
+ });
39
+ }
40
+
41
+ case VoiceMessageInputStatus.READY_TO_PLAY:
42
+ {
43
+ return /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
44
+ className: "sendbird-controler-icon play-icon",
45
+ width: "20px",
46
+ height: "20px",
47
+ type: ui_Icon.IconTypes.PLAY,
48
+ fillColor: ui_Icon.IconColors.ON_BACKGROUND_1
49
+ });
50
+ }
51
+
52
+ case VoiceMessageInputStatus.PLAYING:
53
+ {
54
+ return /*#__PURE__*/React__default["default"].createElement("div", {
55
+ className: "sendbird-controler-icon pause-icon"
56
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
57
+ className: "sendbird-controler-icon pause-icon-inner"
58
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
59
+ className: "sendbird-controler-icon pause-icon-inner"
60
+ }));
61
+ }
62
+
63
+ default:
64
+ return null;
65
+ }
66
+ };
67
+
68
+ var VoiceMessageInput = function (_a) {
69
+ var _b = _a.minRecordTime,
70
+ minRecordTime = _b === void 0 ? consts.VOICE_RECORDER_DEFAULT_MIN : _b,
71
+ maximumValue = _a.maximumValue,
72
+ _c = _a.currentValue,
73
+ currentValue = _c === void 0 ? 0 : _c,
74
+ currentType = _a.currentType,
75
+ onCancelClick = _a.onCancelClick,
76
+ onControlClick = _a.onControlClick,
77
+ onSubmitClick = _a.onSubmitClick,
78
+ renderCancelButton = _a.renderCancelButton,
79
+ renderControlButton = _a.renderControlButton,
80
+ renderSubmitButton = _a.renderSubmitButton;
81
+
82
+ var _d = React.useState(0),
83
+ lastClickTime = _d[0],
84
+ setLastClickTime = _d[1];
85
+
86
+ var isReadyToRecord = React.useMemo(function () {
87
+ return currentType === VoiceMessageInputStatus.READY_TO_RECORD;
88
+ }, [currentType]);
89
+ var isRecording = React.useMemo(function () {
90
+ return currentType === VoiceMessageInputStatus.RECORDING;
91
+ }, [currentType]);
92
+ var isSendButtonDisabled = React.useMemo(function () {
93
+ return (isRecording || isReadyToRecord) && minRecordTime > currentValue;
94
+ }, [isRecording, minRecordTime, currentValue]);
95
+ var isPlayMode = React.useMemo(function () {
96
+ return currentType === VoiceMessageInputStatus.READY_TO_PLAY || currentType === VoiceMessageInputStatus.PLAYING;
97
+ }, [currentType]);
98
+ var stringSet = LocalizationContext.useLocalization().stringSet;
99
+
100
+ var handleOnCancelClick = function () {
101
+ var currentTime = Date.now();
102
+
103
+ if (currentTime - lastClickTime > consts.VOICE_RECORDER_CLICK_BUFFER_TIME) {
104
+ onCancelClick();
105
+ setLastClickTime(currentTime);
106
+ }
107
+ };
108
+
109
+ var handleOnControlClick = React.useCallback(function () {
110
+ var currentTime = Date.now();
111
+ console.log(currentTime - lastClickTime, consts.VOICE_RECORDER_CLICK_BUFFER_TIME);
112
+
113
+ if (currentTime - lastClickTime > consts.VOICE_RECORDER_CLICK_BUFFER_TIME) {
114
+ onControlClick(currentType);
115
+ setLastClickTime(currentTime);
116
+ }
117
+ }, [currentType]);
118
+
119
+ var handleOnSubmitClick = function () {
120
+ var currentTime = Date.now();
121
+
122
+ if (currentTime - lastClickTime > consts.VOICE_RECORDER_CLICK_BUFFER_TIME) {
123
+ if (!isSendButtonDisabled) {
124
+ onSubmitClick();
125
+ }
126
+
127
+ setLastClickTime(currentTime);
128
+ }
129
+ };
130
+
131
+ return /*#__PURE__*/React__default["default"].createElement("div", {
132
+ className: "sendbird-voice-message-input"
133
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
134
+ className: "sendbird-voice-message-input__indicator"
135
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
136
+ className: "sendbird-voice-message-input__indicator__progress-bar"
137
+ }, /*#__PURE__*/React__default["default"].createElement(ui_ProgressBar.ProgressBar, {
138
+ className: "sendbird-voice-message-input__indicator__progress-bar__bar",
139
+ disabled: isReadyToRecord,
140
+ maxSize: maximumValue,
141
+ currentSize: currentValue
142
+ })), isRecording ? /*#__PURE__*/React__default["default"].createElement("div", {
143
+ className: "sendbird-voice-message-input__indicator__on-rec"
144
+ }) : null, /*#__PURE__*/React__default["default"].createElement(ui_PlaybackTime.PlaybackTime, {
145
+ className: "sendbird-voice-message-input__indicator__playback-time",
146
+ time: isPlayMode ? maximumValue - currentValue : currentValue,
147
+ labelColor: isReadyToRecord ? ui_Label.LabelColors.ONBACKGROUND_4 : ui_Label.LabelColors.ONCONTENT_1
148
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
149
+ className: "sendbird-voice-message-input__controler"
150
+ }, (renderCancelButton === null || renderCancelButton === void 0 ? void 0 : renderCancelButton()) || /*#__PURE__*/React__default["default"].createElement(ui_TextButton, {
151
+ className: "sendbird-voice-message-input__controler__cancel",
152
+ onClick: handleOnCancelClick,
153
+ disableUnderline: true
154
+ }, /*#__PURE__*/React__default["default"].createElement(ui_Label.Label, {
155
+ type: ui_Label.LabelTypography.BUTTON_1,
156
+ color: ui_Label.LabelColors.PRIMARY
157
+ }, stringSet.BUTTON__CANCEL)), (renderControlButton === null || renderControlButton === void 0 ? void 0 : renderControlButton(currentType)) || /*#__PURE__*/React__default["default"].createElement("div", {
158
+ className: "sendbird-voice-message-input__controler__main",
159
+ onClick: handleOnControlClick
160
+ }, /*#__PURE__*/React__default["default"].createElement(ControlerIcon, {
161
+ inputState: currentType
162
+ })), (renderSubmitButton === null || renderSubmitButton === void 0 ? void 0 : renderSubmitButton()) || /*#__PURE__*/React__default["default"].createElement("div", {
163
+ className: "sendbird-voice-message-input__controler__submit ".concat(isSendButtonDisabled ? 'voice-message--disabled' : ''),
164
+ onClick: handleOnSubmitClick
165
+ }, /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
166
+ width: "19px",
167
+ height: "19px",
168
+ type: ui_Icon.IconTypes.SEND,
169
+ fillColor: isSendButtonDisabled ? ui_Icon.IconColors.ON_BACKGROUND_4 : ui_Icon.IconColors.CONTENT
170
+ }))));
171
+ };
172
+
173
+ exports.VoiceMessageInput = VoiceMessageInput;
174
+ exports.VoiceMessageInputStatus = VoiceMessageInputStatus;
175
+ //# sourceMappingURL=index-fa531baa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-fa531baa.js","sources":["../../src/ui/VoiceMessageInput/types.ts","../../src/ui/VoiceMessageInput/controlerIcons.tsx","../../src/ui/VoiceMessageInput/index.tsx"],"sourcesContent":["export const VoiceMessageInputStatus = {\n READY_TO_RECORD: 'READY_TO_RECORD',\n RECORDING: 'RECORDING',\n READY_TO_PLAY: 'READY_TO_PLAY',\n PLAYING: 'PLAYING',\n} as const;\nexport type VoiceMessageInputStatus = typeof VoiceMessageInputStatus[keyof typeof VoiceMessageInputStatus];\n","import React from 'react';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport { VoiceMessageInputStatus } from './types';\n\nexport interface ControlerIconProps {\n inputState?: VoiceMessageInputStatus;\n}\n\nexport const ControlerIcon = ({\n inputState\n}: ControlerIconProps): React.ReactElement => {\n switch (inputState) {\n case VoiceMessageInputStatus.READY_TO_RECORD: {\n return (\n <div className=\"sendbird-controler-icon record-icon\" />\n );\n }\n case VoiceMessageInputStatus.RECORDING: {\n return (\n <div className=\"sendbird-controler-icon stop-icon\" />\n );\n }\n case VoiceMessageInputStatus.READY_TO_PLAY: {\n return (\n <Icon\n className=\"sendbird-controler-icon play-icon\"\n width=\"20px\"\n height=\"20px\"\n type={IconTypes.PLAY}\n fillColor={IconColors.ON_BACKGROUND_1}\n />\n );\n }\n case VoiceMessageInputStatus.PLAYING: {\n return (\n <div className=\"sendbird-controler-icon pause-icon\">\n <div className=\"sendbird-controler-icon pause-icon-inner\"/>\n <div className=\"sendbird-controler-icon pause-icon-inner\"/>\n </div>\n );\n }\n default:\n return null;\n }\n};\n\nexport default ControlerIcon;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport './index.scss';\n\nimport PlaybackTime from '../PlaybackTime';\nimport ProgressBar from '../ProgressBar';\nimport TextButton from '../TextButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport ControlerIcon from './controlerIcons';\nimport { VOICE_RECORDER_CLICK_BUFFER_TIME, VOICE_RECORDER_DEFAULT_MIN } from '../../utils/consts';\nimport { VoiceMessageInputStatus } from './types';\n\nexport interface VoiceMessageInputProps {\n minRecordTime?: number;\n maximumValue: number;\n currentValue?: number;\n currentType: VoiceMessageInputStatus;\n onCancelClick?: () => void;\n onControlClick?: (type: VoiceMessageInputStatus) => void;\n onSubmitClick?: () => void;\n renderCancelButton?: () => React.ReactElement;\n renderControlButton?: (type: VoiceMessageInputStatus) => React.ReactElement;\n renderSubmitButton?: () => React.ReactElement;\n}\n\nexport const VoiceMessageInput = ({\n minRecordTime = VOICE_RECORDER_DEFAULT_MIN,\n maximumValue,\n currentValue = 0,\n currentType,\n onCancelClick,\n onControlClick,\n onSubmitClick,\n renderCancelButton,\n renderControlButton,\n renderSubmitButton,\n}: VoiceMessageInputProps): React.ReactElement => {\n const [lastClickTime, setLastClickTime] = useState<number>(0);\n const isReadyToRecord = useMemo(() => currentType === VoiceMessageInputStatus.READY_TO_RECORD, [currentType]);\n const isRecording = useMemo(() => currentType === VoiceMessageInputStatus.RECORDING, [currentType]);\n const isSendButtonDisabled = useMemo(() => (\n (isRecording || isReadyToRecord) && minRecordTime > currentValue\n ), [isRecording, minRecordTime, currentValue]);\n const isPlayMode = useMemo(() => {\n return (\n currentType === VoiceMessageInputStatus.READY_TO_PLAY\n || currentType === VoiceMessageInputStatus.PLAYING\n );\n }, [currentType]);\n const { stringSet } = useLocalization();\n\n const handleOnCancelClick = () => {\n const currentTime = Date.now();\n if (currentTime - lastClickTime > VOICE_RECORDER_CLICK_BUFFER_TIME) {\n onCancelClick();\n setLastClickTime(currentTime);\n }\n };\n const handleOnControlClick = useCallback(() => {\n const currentTime = Date.now();\n console.log(currentTime - lastClickTime, VOICE_RECORDER_CLICK_BUFFER_TIME)\n if (currentTime - lastClickTime > VOICE_RECORDER_CLICK_BUFFER_TIME) {\n onControlClick(currentType);\n setLastClickTime(currentTime);\n }\n }, [currentType]);\n const handleOnSubmitClick = () => {\n const currentTime = Date.now();\n if (currentTime - lastClickTime > VOICE_RECORDER_CLICK_BUFFER_TIME) {\n if (!isSendButtonDisabled) {\n onSubmitClick();\n }\n setLastClickTime(currentTime);\n }\n };\n\n return (\n <div className=\"sendbird-voice-message-input\">\n <div className=\"sendbird-voice-message-input__indicator\">\n <div className=\"sendbird-voice-message-input__indicator__progress-bar\">\n <ProgressBar\n className=\"sendbird-voice-message-input__indicator__progress-bar__bar\"\n disabled={isReadyToRecord}\n maxSize={maximumValue}\n currentSize={currentValue}\n />\n </div>\n {(isRecording) ? (<div className=\"sendbird-voice-message-input__indicator__on-rec\" />) : null}\n <PlaybackTime\n className=\"sendbird-voice-message-input__indicator__playback-time\"\n time={isPlayMode ? maximumValue - currentValue : currentValue}\n labelColor={isReadyToRecord ? LabelColors.ONBACKGROUND_4 : LabelColors.ONCONTENT_1}\n />\n </div>\n <div className=\"sendbird-voice-message-input__controler\">\n {\n renderCancelButton?.() || (\n <TextButton\n className=\"sendbird-voice-message-input__controler__cancel\"\n onClick={handleOnCancelClick}\n disableUnderline\n >\n <Label\n type={LabelTypography.BUTTON_1}\n color={LabelColors.PRIMARY}\n >\n {stringSet.BUTTON__CANCEL}\n </Label>\n </TextButton>\n )\n }\n {\n renderControlButton?.(currentType) || (\n <div\n className=\"sendbird-voice-message-input__controler__main\"\n onClick={handleOnControlClick}\n >\n <ControlerIcon inputState={currentType} />\n </div>\n )\n }\n {\n renderSubmitButton?.() || (\n <div\n className={`sendbird-voice-message-input__controler__submit ${isSendButtonDisabled ? 'voice-message--disabled' : ''}`}\n onClick={handleOnSubmitClick}\n >\n <Icon\n width=\"19px\"\n height=\"19px\"\n type={IconTypes.SEND}\n fillColor={isSendButtonDisabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT}\n />\n </div>\n )\n }\n </div>\n </div>\n );\n};\n"],"names":["VoiceMessageInputStatus","READY_TO_RECORD","RECORDING","READY_TO_PLAY","PLAYING","ControlerIcon","_a","inputState","React","Icon","IconTypes","PLAY","IconColors","ON_BACKGROUND_1","VoiceMessageInput","_b","minRecordTime","VOICE_RECORDER_DEFAULT_MIN","maximumValue","_c","currentValue","currentType","onCancelClick","onControlClick","onSubmitClick","renderCancelButton","renderControlButton","renderSubmitButton","_d","useState","lastClickTime","setLastClickTime","isReadyToRecord","useMemo","isRecording","isSendButtonDisabled","isPlayMode","stringSet","useLocalization","handleOnCancelClick","currentTime","Date","now","VOICE_RECORDER_CLICK_BUFFER_TIME","handleOnControlClick","useCallback","console","log","handleOnSubmitClick","ProgressBar","PlaybackTime","LabelColors","ONBACKGROUND_4","ONCONTENT_1","TextButton","Label","LabelTypography","BUTTON_1","PRIMARY","BUTTON__CANCEL","concat","SEND","ON_BACKGROUND_4","CONTENT"],"mappings":"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"}
@@ -6,4 +6,4 @@ require('react');
6
6
  const MODAL_ROOT = 'sendbird-modal-root';
7
7
 
8
8
  exports.MODAL_ROOT = MODAL_ROOT;
9
- //# sourceMappingURL=index-7d4e7ad9.js.map
9
+ //# sourceMappingURL=index-fb42d34c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-7d4e7ad9.js","sources":["../../src/hooks/useModal/ModalRoot/index.jsx"],"sourcesContent":["// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport default () => (\n <div id={MODAL_ROOT} className={MODAL_ROOT} />\n);\n"],"names":["MODAL_ROOT"],"mappings":";;;;AAAA;AAGO,MAAMA,UAAU,GAAG;;;;"}
1
+ {"version":3,"file":"index-fb42d34c.js","sources":["../../src/hooks/useModal/ModalRoot/index.jsx"],"sourcesContent":["// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport default () => (\n <div id={MODAL_ROOT} className={MODAL_ROOT} />\n);\n"],"names":["MODAL_ROOT"],"mappings":";;;;AAAA;AAGO,MAAMA,UAAU,GAAG;;;;"}