stream-chat-react-native-core 5.28.1 → 5.29.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/lib/commonjs/components/Attachment/Attachment.js +2 -2
  2. package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/AudioAttachment.js +247 -115
  4. package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +30 -50
  6. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
  7. package/lib/commonjs/components/Attachment/VideoThumbnail.js +3 -3
  8. package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
  9. package/lib/commonjs/components/Channel/Channel.js +43 -1
  10. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  11. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +24 -0
  12. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  13. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +6 -6
  14. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  15. package/lib/commonjs/components/Message/Message.js +1 -1
  16. package/lib/commonjs/components/Message/Message.js.map +1 -1
  17. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +1 -1
  18. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  19. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +1 -1
  20. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  21. package/lib/commonjs/components/Message/hooks/useMessageActions.js +4 -2
  22. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
  23. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +55 -74
  24. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  25. package/lib/commonjs/components/MessageInput/InputButtons.js +1 -1
  26. package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
  27. package/lib/commonjs/components/MessageInput/MessageInput.js +250 -43
  28. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  29. package/lib/commonjs/components/MessageInput/SendButton.js +9 -7
  30. package/lib/commonjs/components/MessageInput/SendButton.js.map +1 -1
  31. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecorder.js +221 -0
  32. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecorder.js.map +1 -0
  33. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +121 -0
  34. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -0
  35. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js +68 -0
  36. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js.map +1 -0
  37. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.js +75 -0
  38. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.js.map +1 -0
  39. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.js +87 -0
  40. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.js.map +1 -0
  41. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.js +47 -0
  42. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.js.map +1 -0
  43. package/lib/commonjs/components/MessageInput/hooks/useAudioController.js +452 -0
  44. package/lib/commonjs/components/MessageInput/hooks/useAudioController.js.map +1 -0
  45. package/lib/commonjs/components/MessageInput/utils/audioSampling.js +91 -0
  46. package/lib/commonjs/components/MessageInput/utils/audioSampling.js.map +1 -0
  47. package/lib/commonjs/components/MessageInput/utils/normalizeAudioLevel.js +18 -0
  48. package/lib/commonjs/components/MessageInput/utils/normalizeAudioLevel.js.map +1 -0
  49. package/lib/commonjs/components/ProgressControl/ProgressControl.js +57 -40
  50. package/lib/commonjs/components/ProgressControl/ProgressControl.js.map +1 -1
  51. package/lib/commonjs/components/ProgressControl/WaveProgressBar.js +162 -0
  52. package/lib/commonjs/components/ProgressControl/WaveProgressBar.js.map +1 -0
  53. package/lib/commonjs/components/Reply/Reply.js +45 -20
  54. package/lib/commonjs/components/Reply/Reply.js.map +1 -1
  55. package/lib/commonjs/components/index.js +66 -0
  56. package/lib/commonjs/components/index.js.map +1 -1
  57. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +23 -12
  58. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  59. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +24 -0
  60. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  61. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +76 -28
  62. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  63. package/lib/commonjs/contexts/themeContext/utils/theme.js +62 -7
  64. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  65. package/lib/commonjs/i18n/en.json +3 -1
  66. package/lib/commonjs/i18n/es.json +64 -62
  67. package/lib/commonjs/i18n/fr.json +64 -62
  68. package/lib/commonjs/i18n/he.json +64 -62
  69. package/lib/commonjs/i18n/hi.json +64 -62
  70. package/lib/commonjs/i18n/it.json +64 -62
  71. package/lib/commonjs/i18n/ja.json +64 -62
  72. package/lib/commonjs/i18n/ko.json +64 -62
  73. package/lib/commonjs/i18n/nl.json +64 -62
  74. package/lib/commonjs/i18n/pt-BR.json +64 -62
  75. package/lib/commonjs/i18n/ru.json +64 -62
  76. package/lib/commonjs/i18n/tr.json +64 -62
  77. package/lib/commonjs/icons/ArrowLeft.js +27 -0
  78. package/lib/commonjs/icons/ArrowLeft.js.map +1 -0
  79. package/lib/commonjs/icons/ArrowUp.js +26 -0
  80. package/lib/commonjs/icons/ArrowUp.js.map +1 -0
  81. package/lib/commonjs/icons/Audio.js +24 -24
  82. package/lib/commonjs/icons/Audio.js.map +1 -1
  83. package/lib/commonjs/icons/CircleStop.js +27 -0
  84. package/lib/commonjs/icons/CircleStop.js.map +1 -0
  85. package/lib/commonjs/icons/Delete.js +17 -6
  86. package/lib/commonjs/icons/Delete.js.map +1 -1
  87. package/lib/commonjs/icons/Lock.js +30 -0
  88. package/lib/commonjs/icons/Lock.js.map +1 -0
  89. package/lib/commonjs/icons/Mic.js +30 -0
  90. package/lib/commonjs/icons/Mic.js.map +1 -0
  91. package/lib/commonjs/icons/Pause.js +15 -20
  92. package/lib/commonjs/icons/Pause.js.map +1 -1
  93. package/lib/commonjs/icons/Play.js +18 -10
  94. package/lib/commonjs/icons/Play.js.map +1 -1
  95. package/lib/commonjs/icons/SendCheck.js +30 -0
  96. package/lib/commonjs/icons/SendCheck.js.map +1 -0
  97. package/lib/commonjs/icons/SendRight.js +24 -6
  98. package/lib/commonjs/icons/SendRight.js.map +1 -1
  99. package/lib/commonjs/icons/SendUp.js +24 -6
  100. package/lib/commonjs/icons/SendUp.js.map +1 -1
  101. package/lib/commonjs/icons/Stop.js +19 -0
  102. package/lib/commonjs/icons/Stop.js.map +1 -0
  103. package/lib/commonjs/icons/index.js +77 -0
  104. package/lib/commonjs/icons/index.js.map +1 -1
  105. package/lib/commonjs/native.js +10 -1
  106. package/lib/commonjs/native.js.map +1 -1
  107. package/lib/commonjs/utils/getTrimmedAttachmentTitle.js +11 -0
  108. package/lib/commonjs/utils/getTrimmedAttachmentTitle.js.map +1 -0
  109. package/lib/commonjs/version.json +1 -1
  110. package/lib/module/components/Attachment/Attachment.js +2 -2
  111. package/lib/module/components/Attachment/Attachment.js.map +1 -1
  112. package/lib/module/components/Attachment/AudioAttachment.js +247 -115
  113. package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
  114. package/lib/module/components/Attachment/FileAttachmentGroup.js +30 -50
  115. package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
  116. package/lib/module/components/Attachment/VideoThumbnail.js +3 -3
  117. package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
  118. package/lib/module/components/Channel/Channel.js +43 -1
  119. package/lib/module/components/Channel/Channel.js.map +1 -1
  120. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +24 -0
  121. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  122. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +6 -6
  123. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  124. package/lib/module/components/Message/Message.js +1 -1
  125. package/lib/module/components/Message/Message.js.map +1 -1
  126. package/lib/module/components/Message/MessageSimple/MessageContent.js +1 -1
  127. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  128. package/lib/module/components/Message/MessageSimple/MessageSimple.js +1 -1
  129. package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  130. package/lib/module/components/Message/hooks/useMessageActions.js +4 -2
  131. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
  132. package/lib/module/components/MessageInput/FileUploadPreview.js +55 -74
  133. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  134. package/lib/module/components/MessageInput/InputButtons.js +1 -1
  135. package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
  136. package/lib/module/components/MessageInput/MessageInput.js +250 -43
  137. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  138. package/lib/module/components/MessageInput/SendButton.js +9 -7
  139. package/lib/module/components/MessageInput/SendButton.js.map +1 -1
  140. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecorder.js +221 -0
  141. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecorder.js.map +1 -0
  142. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +121 -0
  143. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -0
  144. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js +68 -0
  145. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js.map +1 -0
  146. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.js +75 -0
  147. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.js.map +1 -0
  148. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.js +87 -0
  149. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.js.map +1 -0
  150. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.js +47 -0
  151. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.js.map +1 -0
  152. package/lib/module/components/MessageInput/hooks/useAudioController.js +452 -0
  153. package/lib/module/components/MessageInput/hooks/useAudioController.js.map +1 -0
  154. package/lib/module/components/MessageInput/utils/audioSampling.js +91 -0
  155. package/lib/module/components/MessageInput/utils/audioSampling.js.map +1 -0
  156. package/lib/module/components/MessageInput/utils/normalizeAudioLevel.js +18 -0
  157. package/lib/module/components/MessageInput/utils/normalizeAudioLevel.js.map +1 -0
  158. package/lib/module/components/ProgressControl/ProgressControl.js +57 -40
  159. package/lib/module/components/ProgressControl/ProgressControl.js.map +1 -1
  160. package/lib/module/components/ProgressControl/WaveProgressBar.js +162 -0
  161. package/lib/module/components/ProgressControl/WaveProgressBar.js.map +1 -0
  162. package/lib/module/components/Reply/Reply.js +45 -20
  163. package/lib/module/components/Reply/Reply.js.map +1 -1
  164. package/lib/module/components/index.js +66 -0
  165. package/lib/module/components/index.js.map +1 -1
  166. package/lib/module/contexts/messageInputContext/MessageInputContext.js +23 -12
  167. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  168. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +24 -0
  169. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  170. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +76 -28
  171. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  172. package/lib/module/contexts/themeContext/utils/theme.js +62 -7
  173. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  174. package/lib/module/i18n/en.json +3 -1
  175. package/lib/module/i18n/es.json +64 -62
  176. package/lib/module/i18n/fr.json +64 -62
  177. package/lib/module/i18n/he.json +64 -62
  178. package/lib/module/i18n/hi.json +64 -62
  179. package/lib/module/i18n/it.json +64 -62
  180. package/lib/module/i18n/ja.json +64 -62
  181. package/lib/module/i18n/ko.json +64 -62
  182. package/lib/module/i18n/nl.json +64 -62
  183. package/lib/module/i18n/pt-BR.json +64 -62
  184. package/lib/module/i18n/ru.json +64 -62
  185. package/lib/module/i18n/tr.json +64 -62
  186. package/lib/module/icons/ArrowLeft.js +27 -0
  187. package/lib/module/icons/ArrowLeft.js.map +1 -0
  188. package/lib/module/icons/ArrowUp.js +26 -0
  189. package/lib/module/icons/ArrowUp.js.map +1 -0
  190. package/lib/module/icons/Audio.js +24 -24
  191. package/lib/module/icons/Audio.js.map +1 -1
  192. package/lib/module/icons/CircleStop.js +27 -0
  193. package/lib/module/icons/CircleStop.js.map +1 -0
  194. package/lib/module/icons/Delete.js +17 -6
  195. package/lib/module/icons/Delete.js.map +1 -1
  196. package/lib/module/icons/Lock.js +30 -0
  197. package/lib/module/icons/Lock.js.map +1 -0
  198. package/lib/module/icons/Mic.js +30 -0
  199. package/lib/module/icons/Mic.js.map +1 -0
  200. package/lib/module/icons/Pause.js +15 -20
  201. package/lib/module/icons/Pause.js.map +1 -1
  202. package/lib/module/icons/Play.js +18 -10
  203. package/lib/module/icons/Play.js.map +1 -1
  204. package/lib/module/icons/SendCheck.js +30 -0
  205. package/lib/module/icons/SendCheck.js.map +1 -0
  206. package/lib/module/icons/SendRight.js +24 -6
  207. package/lib/module/icons/SendRight.js.map +1 -1
  208. package/lib/module/icons/SendUp.js +24 -6
  209. package/lib/module/icons/SendUp.js.map +1 -1
  210. package/lib/module/icons/Stop.js +19 -0
  211. package/lib/module/icons/Stop.js.map +1 -0
  212. package/lib/module/icons/index.js +77 -0
  213. package/lib/module/icons/index.js.map +1 -1
  214. package/lib/module/native.js +10 -1
  215. package/lib/module/native.js.map +1 -1
  216. package/lib/module/utils/getTrimmedAttachmentTitle.js +11 -0
  217. package/lib/module/utils/getTrimmedAttachmentTitle.js.map +1 -0
  218. package/lib/module/version.json +1 -1
  219. package/lib/typescript/components/Attachment/Attachment.d.ts.map +1 -1
  220. package/lib/typescript/components/Attachment/AudioAttachment.d.ts +3 -8
  221. package/lib/typescript/components/Attachment/AudioAttachment.d.ts.map +1 -1
  222. package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts.map +1 -1
  223. package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
  224. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +15 -3
  225. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts.map +1 -1
  226. package/lib/typescript/components/ImageGallery/components/ImageGalleryVideoControl.d.ts.map +1 -1
  227. package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts.map +1 -1
  228. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts.map +1 -1
  229. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +1 -1
  230. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts.map +1 -1
  231. package/lib/typescript/components/MessageInput/InputButtons.d.ts.map +1 -1
  232. package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -1
  233. package/lib/typescript/components/MessageInput/MessageInput.d.ts.map +1 -1
  234. package/lib/typescript/components/MessageInput/SendButton.d.ts.map +1 -1
  235. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecorder.d.ts +51 -0
  236. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecorder.d.ts.map +1 -0
  237. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingButton.d.ts +43 -0
  238. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingButton.d.ts.map +1 -0
  239. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.d.ts +29 -0
  240. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.d.ts.map +1 -0
  241. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.d.ts +22 -0
  242. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.d.ts.map +1 -0
  243. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.d.ts +31 -0
  244. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.d.ts.map +1 -0
  245. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.d.ts +19 -0
  246. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.d.ts.map +1 -0
  247. package/lib/typescript/components/MessageInput/hooks/useAudioController.d.ts +28 -0
  248. package/lib/typescript/components/MessageInput/hooks/useAudioController.d.ts.map +1 -0
  249. package/lib/typescript/components/MessageInput/utils/audioSampling.d.ts +11 -0
  250. package/lib/typescript/components/MessageInput/utils/audioSampling.d.ts.map +1 -0
  251. package/lib/typescript/components/MessageInput/utils/normalizeAudioLevel.d.ts +5 -0
  252. package/lib/typescript/components/MessageInput/utils/normalizeAudioLevel.d.ts.map +1 -0
  253. package/lib/typescript/components/ProgressControl/ProgressControl.d.ts +2 -2
  254. package/lib/typescript/components/ProgressControl/ProgressControl.d.ts.map +1 -1
  255. package/lib/typescript/components/ProgressControl/WaveProgressBar.d.ts +11 -0
  256. package/lib/typescript/components/ProgressControl/WaveProgressBar.d.ts.map +1 -0
  257. package/lib/typescript/components/Reply/Reply.d.ts.map +1 -1
  258. package/lib/typescript/components/index.d.ts +6 -0
  259. package/lib/typescript/components/index.d.ts.map +1 -1
  260. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +70 -4
  261. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts.map +1 -1
  262. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
  263. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts.map +1 -1
  264. package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts.map +1 -1
  265. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +62 -7
  266. package/lib/typescript/contexts/themeContext/utils/theme.d.ts.map +1 -1
  267. package/lib/typescript/i18n/en.json +3 -1
  268. package/lib/typescript/i18n/es.json +64 -62
  269. package/lib/typescript/i18n/fr.json +64 -62
  270. package/lib/typescript/i18n/he.json +64 -62
  271. package/lib/typescript/i18n/hi.json +64 -62
  272. package/lib/typescript/i18n/it.json +64 -62
  273. package/lib/typescript/i18n/ja.json +64 -62
  274. package/lib/typescript/i18n/ko.json +64 -62
  275. package/lib/typescript/i18n/nl.json +64 -62
  276. package/lib/typescript/i18n/pt-BR.json +64 -62
  277. package/lib/typescript/i18n/ru.json +64 -62
  278. package/lib/typescript/i18n/tr.json +64 -62
  279. package/lib/typescript/icons/ArrowLeft.d.ts +8 -0
  280. package/lib/typescript/icons/ArrowLeft.d.ts.map +1 -0
  281. package/lib/typescript/icons/ArrowUp.d.ts +9 -0
  282. package/lib/typescript/icons/ArrowUp.d.ts.map +1 -0
  283. package/lib/typescript/icons/Audio.d.ts.map +1 -1
  284. package/lib/typescript/icons/CircleStop.d.ts +8 -0
  285. package/lib/typescript/icons/CircleStop.d.ts.map +1 -0
  286. package/lib/typescript/icons/Delete.d.ts +5 -1
  287. package/lib/typescript/icons/Delete.d.ts.map +1 -1
  288. package/lib/typescript/icons/Lock.d.ts +9 -0
  289. package/lib/typescript/icons/Lock.d.ts.map +1 -0
  290. package/lib/typescript/icons/Mic.d.ts +8 -0
  291. package/lib/typescript/icons/Mic.d.ts.map +1 -0
  292. package/lib/typescript/icons/Pause.d.ts +3 -1
  293. package/lib/typescript/icons/Pause.d.ts.map +1 -1
  294. package/lib/typescript/icons/Play.d.ts +3 -1
  295. package/lib/typescript/icons/Play.d.ts.map +1 -1
  296. package/lib/typescript/icons/SendCheck.d.ts +8 -0
  297. package/lib/typescript/icons/SendCheck.d.ts.map +1 -0
  298. package/lib/typescript/icons/SendRight.d.ts +5 -1
  299. package/lib/typescript/icons/SendRight.d.ts.map +1 -1
  300. package/lib/typescript/icons/SendUp.d.ts +5 -1
  301. package/lib/typescript/icons/SendUp.d.ts.map +1 -1
  302. package/lib/typescript/icons/Stop.d.ts +4 -0
  303. package/lib/typescript/icons/Stop.d.ts.map +1 -0
  304. package/lib/typescript/icons/index.d.ts +7 -0
  305. package/lib/typescript/icons/index.d.ts.map +1 -1
  306. package/lib/typescript/native.d.ts +49 -0
  307. package/lib/typescript/native.d.ts.map +1 -1
  308. package/lib/typescript/types/types.d.ts +6 -0
  309. package/lib/typescript/types/types.d.ts.map +1 -1
  310. package/lib/typescript/utils/Streami18n.d.ts +2 -0
  311. package/lib/typescript/utils/Streami18n.d.ts.map +1 -1
  312. package/lib/typescript/utils/getTrimmedAttachmentTitle.d.ts +2 -0
  313. package/lib/typescript/utils/getTrimmedAttachmentTitle.d.ts.map +1 -0
  314. package/package.json +1 -1
  315. package/src/components/Attachment/Attachment.tsx +7 -2
  316. package/src/components/Attachment/AudioAttachment.tsx +223 -119
  317. package/src/components/Attachment/FileAttachmentGroup.tsx +35 -55
  318. package/src/components/Attachment/VideoThumbnail.tsx +1 -1
  319. package/src/components/Channel/Channel.tsx +32 -0
  320. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +24 -0
  321. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +1 -1
  322. package/src/components/ImageGallery/__tests__/ImageGalleryVideoControl.test.tsx +2 -2
  323. package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +2 -7
  324. package/src/components/Message/Message.tsx +1 -1
  325. package/src/components/Message/MessageSimple/MessageContent.tsx +2 -1
  326. package/src/components/Message/MessageSimple/MessageSimple.tsx +2 -1
  327. package/src/components/Message/hooks/useMessageActions.tsx +2 -2
  328. package/src/components/MessageInput/FileUploadPreview.tsx +67 -98
  329. package/src/components/MessageInput/InputButtons.tsx +2 -1
  330. package/src/components/MessageInput/MessageInput.tsx +320 -49
  331. package/src/components/MessageInput/SendButton.tsx +7 -3
  332. package/src/components/MessageInput/__tests__/MessageInput.test.js +0 -1
  333. package/src/components/MessageInput/__tests__/__snapshots__/SendButton.test.js.snap +132 -48
  334. package/src/components/MessageInput/components/AudioRecorder/AudioRecorder.tsx +313 -0
  335. package/src/components/MessageInput/components/AudioRecorder/AudioRecordingButton.tsx +192 -0
  336. package/src/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.tsx +114 -0
  337. package/src/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.tsx +85 -0
  338. package/src/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.tsx +102 -0
  339. package/src/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.tsx +62 -0
  340. package/src/components/MessageInput/hooks/useAudioController.tsx +288 -0
  341. package/src/components/MessageInput/utils/audioSampling.ts +108 -0
  342. package/src/components/MessageInput/utils/normalizeAudioLevel.ts +20 -0
  343. package/src/components/ProgressControl/ProgressControl.tsx +69 -40
  344. package/src/components/ProgressControl/WaveProgressBar.tsx +180 -0
  345. package/src/components/Reply/Reply.tsx +89 -56
  346. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +38 -20
  347. package/src/components/index.ts +6 -0
  348. package/src/contexts/messageInputContext/MessageInputContext.tsx +95 -10
  349. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +25 -0
  350. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +80 -27
  351. package/src/contexts/themeContext/utils/theme.ts +111 -14
  352. package/src/i18n/en.json +3 -1
  353. package/src/i18n/es.json +64 -62
  354. package/src/i18n/fr.json +64 -62
  355. package/src/i18n/he.json +64 -62
  356. package/src/i18n/hi.json +64 -62
  357. package/src/i18n/it.json +64 -62
  358. package/src/i18n/ja.json +64 -62
  359. package/src/i18n/ko.json +64 -62
  360. package/src/i18n/nl.json +64 -62
  361. package/src/i18n/pt-BR.json +64 -62
  362. package/src/i18n/ru.json +64 -62
  363. package/src/i18n/tr.json +64 -62
  364. package/src/icons/ArrowLeft.tsx +18 -0
  365. package/src/icons/ArrowUp.tsx +19 -0
  366. package/src/icons/Audio.tsx +24 -24
  367. package/src/icons/CircleStop.tsx +18 -0
  368. package/src/icons/Delete.tsx +14 -8
  369. package/src/icons/Lock.tsx +22 -0
  370. package/src/icons/Mic.tsx +20 -0
  371. package/src/icons/Pause.tsx +12 -11
  372. package/src/icons/Play.tsx +9 -13
  373. package/src/icons/SendCheck.tsx +18 -0
  374. package/src/icons/SendRight.tsx +16 -7
  375. package/src/icons/SendUp.tsx +16 -7
  376. package/src/icons/Stop.tsx +12 -0
  377. package/src/icons/index.ts +7 -0
  378. package/src/native.ts +69 -0
  379. package/src/types/types.ts +6 -0
  380. package/src/utils/getTrimmedAttachmentTitle.ts +5 -0
  381. package/src/version.json +1 -1
@@ -0,0 +1,87 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.AudioRecordingPreview = void 0;
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _reactNative = require("react-native");
8
+ var _dayjs = _interopRequireDefault(require("dayjs"));
9
+ var _ThemeContext = require("../../../../contexts/themeContext/ThemeContext");
10
+ var _icons = require("../../../../icons");
11
+ var _WaveProgressBar = require("../../../ProgressControl/WaveProgressBar");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ var _this = this,
14
+ _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.tsx";
15
+ var AudioRecordingPreview = function AudioRecordingPreview(props) {
16
+ var onVoicePlayerPlayPause = props.onVoicePlayerPlayPause,
17
+ paused = props.paused,
18
+ position = props.position,
19
+ progress = props.progress,
20
+ waveformData = props.waveformData;
21
+ var _useTheme = (0, _ThemeContext.useTheme)(),
22
+ _useTheme$theme = _useTheme.theme,
23
+ _useTheme$theme$color = _useTheme$theme.colors,
24
+ accent_blue = _useTheme$theme$color.accent_blue,
25
+ grey_dark = _useTheme$theme$color.grey_dark,
26
+ _useTheme$theme$messa = _useTheme$theme.messageInput.audioRecordingPreview,
27
+ container = _useTheme$theme$messa.container,
28
+ currentTime = _useTheme$theme$messa.currentTime,
29
+ infoContainer = _useTheme$theme$messa.infoContainer,
30
+ pauseIcon = _useTheme$theme$messa.pauseIcon,
31
+ playIcon = _useTheme$theme$messa.playIcon,
32
+ progressBar = _useTheme$theme$messa.progressBar;
33
+ return (0, _jsxRuntime.jsxs)(_reactNative.View, {
34
+ style: [styles.container, container],
35
+ children: [(0, _jsxRuntime.jsxs)(_reactNative.View, {
36
+ style: [styles.infoContainer, infoContainer],
37
+ children: [(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
38
+ onPress: onVoicePlayerPlayPause,
39
+ children: paused ? (0, _jsxRuntime.jsx)(_icons.Play, Object.assign({
40
+ fill: accent_blue,
41
+ height: 32,
42
+ width: 32
43
+ }, playIcon)) : (0, _jsxRuntime.jsx)(_icons.Pause, Object.assign({
44
+ fill: accent_blue,
45
+ height: 32,
46
+ width: 32
47
+ }, pauseIcon))
48
+ }), (0, _jsxRuntime.jsx)(_reactNative.Text, {
49
+ style: [styles.currentTime, {
50
+ color: grey_dark
51
+ }, currentTime],
52
+ children: _dayjs["default"].duration(position).format('mm:ss')
53
+ })]
54
+ }), (0, _jsxRuntime.jsx)(_reactNative.View, {
55
+ style: [styles.progressBar, progressBar],
56
+ children: (0, _jsxRuntime.jsx)(_WaveProgressBar.WaveProgressBar, {
57
+ progress: progress,
58
+ waveformData: waveformData
59
+ })
60
+ })]
61
+ });
62
+ };
63
+ exports.AudioRecordingPreview = AudioRecordingPreview;
64
+ var styles = _reactNative.StyleSheet.create({
65
+ container: {
66
+ alignItems: 'center',
67
+ display: 'flex',
68
+ flexDirection: 'row',
69
+ paddingBottom: 8,
70
+ paddingTop: 4
71
+ },
72
+ currentTime: {
73
+ fontSize: 16,
74
+ marginLeft: 4
75
+ },
76
+ infoContainer: {
77
+ alignItems: 'center',
78
+ display: 'flex',
79
+ flex: 1,
80
+ flexDirection: 'row'
81
+ },
82
+ progressBar: {
83
+ flex: 3
84
+ }
85
+ });
86
+ AudioRecordingPreview.displayName = 'AudioRecordingPreview{messageInput}';
87
+ //# sourceMappingURL=AudioRecordingPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_dayjs","_ThemeContext","_icons","_WaveProgressBar","_jsxRuntime","_this","_jsxFileName","AudioRecordingPreview","props","onVoicePlayerPlayPause","paused","position","progress","waveformData","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","grey_dark","_useTheme$theme$messa","messageInput","audioRecordingPreview","container","currentTime","infoContainer","pauseIcon","playIcon","progressBar","jsxs","View","style","styles","children","jsx","Pressable","onPress","Play","Object","assign","fill","height","width","Pause","Text","color","dayjs","duration","format","WaveProgressBar","exports","StyleSheet","create","alignItems","display","flexDirection","paddingBottom","paddingTop","fontSize","marginLeft","flex","displayName"],"sourceRoot":"../../../../../../src","sources":["components/MessageInput/components/AudioRecorder/AudioRecordingPreview.tsx"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,gBAAA,GAAAL,OAAA;AAA2E,IAAAM,WAAA,GAAAN,OAAA;AAAA,IAAAO,KAAA;EAAAC,YAAA;AA4BpE,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,KAAiC,EAAK;EAC1E,IAAQC,sBAAsB,GAA+CD,KAAK,CAA1EC,sBAAsB;IAAEC,MAAM,GAAuCF,KAAK,CAAlDE,MAAM;IAAEC,QAAQ,GAA6BH,KAAK,CAA1CG,QAAQ;IAAEC,QAAQ,GAAmBJ,KAAK,CAAhCI,QAAQ;IAAEC,YAAY,GAAKL,KAAK,CAAtBK,YAAY;EAExE,IAAAC,SAAA,GAcI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CAbZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,MAAM;IAAIC,WAAW,GAAAF,qBAAA,CAAXE,WAAW;IAAEC,SAAS,GAAAH,qBAAA,CAATG,SAAS;IAAAC,qBAAA,GAAAN,eAAA,CAChCO,YAAY,CACVC,qBAAqB;IACnBC,SAAS,GAAAH,qBAAA,CAATG,SAAS;IACTC,WAAW,GAAAJ,qBAAA,CAAXI,WAAW;IACXC,aAAa,GAAAL,qBAAA,CAAbK,aAAa;IACbC,SAAS,GAAAN,qBAAA,CAATM,SAAS;IACTC,QAAQ,GAAAP,qBAAA,CAARO,QAAQ;IACRC,WAAW,GAAAR,qBAAA,CAAXQ,WAAW;EAMnB,OACE,IAAA1B,WAAA,CAAA2B,IAAA,EAAChC,YAAA,CAAAiC,IAAI;IAACC,KAAK,EAAE,CAACC,MAAM,CAACT,SAAS,EAAEA,SAAS,CAAE;IAAAU,QAAA,GACzC,IAAA/B,WAAA,CAAA2B,IAAA,EAAChC,YAAA,CAAAiC,IAAI;MAACC,KAAK,EAAE,CAACC,MAAM,CAACP,aAAa,EAAEA,aAAa,CAAE;MAAAQ,QAAA,GACjD,IAAA/B,WAAA,CAAAgC,GAAA,EAACrC,YAAA,CAAAsC,SAAS;QAACC,OAAO,EAAE7B,sBAAuB;QAAA0B,QAAA,EACxCzB,MAAM,GACL,IAAAN,WAAA,CAAAgC,GAAA,EAAClC,MAAA,CAAAqC,IAAI,EAAAC,MAAA,CAAAC,MAAA;UAACC,IAAI,EAAEtB,WAAY;UAACuB,MAAM,EAAE,EAAG;UAACC,KAAK,EAAE;QAAG,GAAKf,QAAQ,CAAG,CAAC,GAEhE,IAAAzB,WAAA,CAAAgC,GAAA,EAAClC,MAAA,CAAA2C,KAAK,EAAAL,MAAA,CAAAC,MAAA;UAACC,IAAI,EAAEtB,WAAY;UAACuB,MAAM,EAAE,EAAG;UAACC,KAAK,EAAE;QAAG,GAAKhB,SAAS,CAAG;MAClE,CACQ,CAAC,EAEZ,IAAAxB,WAAA,CAAAgC,GAAA,EAACrC,YAAA,CAAA+C,IAAI;QAACb,KAAK,EAAE,CAACC,MAAM,CAACR,WAAW,EAAE;UAAEqB,KAAK,EAAE1B;QAAU,CAAC,EAAEK,WAAW,CAAE;QAAAS,QAAA,EAClEa,iBAAK,CAACC,QAAQ,CAACtC,QAAQ,CAAC,CAACuC,MAAM,CAAC,OAAO;MAAC,CACrC,CAAC;IAAA,CACH,CAAC,EACP,IAAA9C,WAAA,CAAAgC,GAAA,EAACrC,YAAA,CAAAiC,IAAI;MAACC,KAAK,EAAE,CAACC,MAAM,CAACJ,WAAW,EAAEA,WAAW,CAAE;MAAAK,QAAA,EAE7C,IAAA/B,WAAA,CAAAgC,GAAA,EAACjC,gBAAA,CAAAgD,eAAe;QAACvC,QAAQ,EAAEA,QAAS;QAACC,YAAY,EAAEA;MAAa,CAAE;IAAC,CAC/D,CAAC;EAAA,CACH,CAAC;AAEX,CAAC;AAACuC,OAAA,CAAA7C,qBAAA,GAAAA,qBAAA;AAEF,IAAM2B,MAAM,GAAGmB,uBAAU,CAACC,MAAM,CAAC;EAC/B7B,SAAS,EAAE;IACT8B,UAAU,EAAE,QAAQ;IACpBC,OAAO,EAAE,MAAM;IACfC,aAAa,EAAE,KAAK;IACpBC,aAAa,EAAE,CAAC;IAChBC,UAAU,EAAE;EACd,CAAC;EACDjC,WAAW,EAAE;IACXkC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDlC,aAAa,EAAE;IACb4B,UAAU,EAAE,QAAQ;IACpBC,OAAO,EAAE,MAAM;IACfM,IAAI,EAAE,CAAC;IACPL,aAAa,EAAE;EACjB,CAAC;EACD3B,WAAW,EAAE;IACXgC,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEFvD,qBAAqB,CAACwD,WAAW,GAAG,qCAAqC","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.AudioRecordingWaveform = void 0;
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _reactNative = require("react-native");
8
+ var _ThemeContext = require("../../../../contexts/themeContext/ThemeContext");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ var _this = this,
11
+ _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.tsx";
12
+ var AudioRecordingWaveform = function AudioRecordingWaveform(props) {
13
+ var maxDataPointsDrawn = props.maxDataPointsDrawn,
14
+ waveformData = props.waveformData;
15
+ var _useTheme = (0, _ThemeContext.useTheme)(),
16
+ _useTheme$theme = _useTheme.theme,
17
+ grey_dark = _useTheme$theme.colors.grey_dark,
18
+ _useTheme$theme$messa = _useTheme$theme.messageInput.audioRecordingWaveform,
19
+ container = _useTheme$theme$messa.container,
20
+ waveformTheme = _useTheme$theme$messa.waveform;
21
+ return (0, _jsxRuntime.jsx)(_reactNative.View, {
22
+ style: [styles.container, container],
23
+ children: waveformData.slice(-maxDataPointsDrawn).map(function (waveform, index) {
24
+ return (0, _jsxRuntime.jsx)(_reactNative.View, {
25
+ style: [styles.waveform, {
26
+ backgroundColor: grey_dark,
27
+ height: waveform * 30 > 3 ? waveform * 30 : 3
28
+ }, waveformTheme]
29
+ }, index);
30
+ })
31
+ });
32
+ };
33
+ exports.AudioRecordingWaveform = AudioRecordingWaveform;
34
+ var styles = _reactNative.StyleSheet.create({
35
+ container: {
36
+ alignSelf: 'center',
37
+ flexDirection: 'row'
38
+ },
39
+ waveform: {
40
+ alignSelf: 'center',
41
+ borderRadius: 2,
42
+ marginHorizontal: 1,
43
+ width: 2
44
+ }
45
+ });
46
+ AudioRecordingWaveform.displayName = 'AudioRecordingWaveform{messageInput}';
47
+ //# sourceMappingURL=AudioRecordingWaveform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_jsxRuntime","_this","_jsxFileName","AudioRecordingWaveform","props","maxDataPointsDrawn","waveformData","_useTheme","useTheme","_useTheme$theme","theme","grey_dark","colors","_useTheme$theme$messa","messageInput","audioRecordingWaveform","container","waveformTheme","waveform","jsx","View","style","styles","children","slice","map","index","backgroundColor","height","exports","StyleSheet","create","alignSelf","flexDirection","borderRadius","marginHorizontal","width","displayName"],"sourceRoot":"../../../../../../src","sources":["components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.tsx"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AAA0E,IAAAG,WAAA,GAAAH,OAAA;AAAA,IAAAI,KAAA;EAAAC,YAAA;AAgBnE,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,KAAkC,EAAK;EAC5E,IAAQC,kBAAkB,GAAmBD,KAAK,CAA1CC,kBAAkB;IAAEC,YAAY,GAAKF,KAAK,CAAtBE,YAAY;EACxC,IAAAC,SAAA,GAOI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CANZG,KAAK;IACOC,SAAS,GAAAF,eAAA,CAAnBG,MAAM,CAAID,SAAS;IAAAE,qBAAA,GAAAJ,eAAA,CACnBK,YAAY,CACVC,sBAAsB;IAAIC,SAAS,GAAAH,qBAAA,CAATG,SAAS;IAAYC,aAAa,GAAAJ,qBAAA,CAAvBK,QAAQ;EAInD,OACE,IAAAlB,WAAA,CAAAmB,GAAA,EAACrB,YAAA,CAAAsB,IAAI;IAACC,KAAK,EAAE,CAACC,MAAM,CAACN,SAAS,EAAEA,SAAS,CAAE;IAAAO,QAAA,EACxCjB,YAAY,CAACkB,KAAK,CAAC,CAACnB,kBAAkB,CAAC,CAACoB,GAAG,CAAC,UAACP,QAAQ,EAAEQ,KAAK;MAAA,OAC3D,IAAA1B,WAAA,CAAAmB,GAAA,EAACrB,YAAA,CAAAsB,IAAI;QAEHC,KAAK,EAAE,CACLC,MAAM,CAACJ,QAAQ,EACf;UACES,eAAe,EAAEhB,SAAS;UAC1BiB,MAAM,EAAEV,QAAQ,GAAG,EAAE,GAAG,CAAC,GAAGA,QAAQ,GAAG,EAAE,GAAG;QAC9C,CAAC,EACDD,aAAa;MACb,GARGS,KASN,CAAC;IAAA,CACH;EAAC,CACE,CAAC;AAEX,CAAC;AAACG,OAAA,CAAA1B,sBAAA,GAAAA,sBAAA;AAEF,IAAMmB,MAAM,GAAGQ,uBAAU,CAACC,MAAM,CAAC;EAC/Bf,SAAS,EAAE;IACTgB,SAAS,EAAE,QAAQ;IACnBC,aAAa,EAAE;EACjB,CAAC;EACDf,QAAQ,EAAE;IACRc,SAAS,EAAE,QAAQ;IACnBE,YAAY,EAAE,CAAC;IACfC,gBAAgB,EAAE,CAAC;IACnBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEFjC,sBAAsB,CAACkC,WAAW,GAAG,sCAAsC","ignoreList":[]}
@@ -0,0 +1,452 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.useAudioController = void 0;
6
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
7
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
8
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = require("react");
11
+ var _reactNative = require("react-native");
12
+ var _MessageInputContext = require("../../../contexts/messageInputContext/MessageInputContext");
13
+ var _native = require("../../../native");
14
+ var _audioSampling = require("../utils/audioSampling");
15
+ var _normalizeAudioLevel = require("../utils/normalizeAudioLevel");
16
+ var useAudioController = function useAudioController() {
17
+ var _useState = (0, _react.useState)(false),
18
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
19
+ micLocked = _useState2[0],
20
+ setMicLocked = _useState2[1];
21
+ var _useState3 = (0, _react.useState)(true),
22
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
23
+ permissionsGranted = _useState4[0],
24
+ setPermissionsGranted = _useState4[1];
25
+ var _useState5 = (0, _react.useState)(true),
26
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
27
+ paused = _useState6[0],
28
+ setPaused = _useState6[1];
29
+ var _useState7 = (0, _react.useState)(0),
30
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
31
+ position = _useState8[0],
32
+ setPosition = _useState8[1];
33
+ var _useState9 = (0, _react.useState)(0),
34
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
35
+ progress = _useState10[0],
36
+ setProgress = _useState10[1];
37
+ var _useState11 = (0, _react.useState)([]),
38
+ _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
39
+ waveformData = _useState12[0],
40
+ setWaveformData = _useState12[1];
41
+ var _useState13 = (0, _react.useState)(false),
42
+ _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
43
+ isScheduledForSubmit = _useState14[0],
44
+ setIsScheduleForSubmit = _useState14[1];
45
+ var _useState15 = (0, _react.useState)(undefined),
46
+ _useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
47
+ recording = _useState16[0],
48
+ setRecording = _useState16[1];
49
+ var _useState17 = (0, _react.useState)(0),
50
+ _useState18 = (0, _slicedToArray2["default"])(_useState17, 2),
51
+ recordingDuration = _useState18[0],
52
+ setRecordingDuration = _useState18[1];
53
+ var _useState19 = (0, _react.useState)('idle'),
54
+ _useState20 = (0, _slicedToArray2["default"])(_useState19, 2),
55
+ recordingStatus = _useState20[0],
56
+ setRecordingStatus = _useState20[1];
57
+ var _useMessageInputConte = (0, _MessageInputContext.useMessageInputContext)(),
58
+ sendMessage = _useMessageInputConte.sendMessage,
59
+ uploadNewFile = _useMessageInputConte.uploadNewFile;
60
+ var soundRef = (0, _react.useRef)(null);
61
+ (0, _react.useEffect)(function () {
62
+ return function () {
63
+ stopVoicePlayer();
64
+ };
65
+ }, []);
66
+ (0, _react.useEffect)(function () {
67
+ if (isScheduledForSubmit) {
68
+ sendMessage();
69
+ setIsScheduleForSubmit(false);
70
+ }
71
+ }, [isScheduledForSubmit, sendMessage]);
72
+ var onVoicePlayerProgressHandler = function onVoicePlayerProgressHandler(currentPosition, playbackDuration) {
73
+ var currentProgress = currentPosition / playbackDuration;
74
+ if (currentProgress === 1) {
75
+ setPaused(true);
76
+ setProgress(0);
77
+ } else {
78
+ setProgress(currentProgress);
79
+ }
80
+ };
81
+ var onVoicePlayerPlaybackStatusUpdate = function onVoicePlayerPlaybackStatusUpdate(status) {
82
+ if (status.shouldPlay === undefined || status.shouldPlay === true) {
83
+ setPosition((status == null ? void 0 : status.currentPosition) || (status == null ? void 0 : status.positionMillis));
84
+ setRecordingDuration(status.duration || status.durationMillis);
85
+ if (status.didJustFinish) {
86
+ onVoicePlayerProgressHandler(status.durationMillis, status.durationMillis);
87
+ } else {
88
+ if (status.currentPosition && status.duration) onVoicePlayerProgressHandler(status.currentPosition, status.duration);else if (status.positionMillis && status.durationMillis) onVoicePlayerProgressHandler(status.positionMillis, status.durationMillis);
89
+ }
90
+ }
91
+ };
92
+ var onVoicePlayerPlayPause = function () {
93
+ var _ref = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
94
+ var _soundRef$current, _soundRef$current2;
95
+ return _regenerator["default"].wrap(function _callee$(_context) {
96
+ while (1) switch (_context.prev = _context.next) {
97
+ case 0:
98
+ if (!paused) {
99
+ _context.next = 14;
100
+ break;
101
+ }
102
+ if (!(progress === 0)) {
103
+ _context.next = 6;
104
+ break;
105
+ }
106
+ _context.next = 4;
107
+ return startVoicePlayer();
108
+ case 4:
109
+ _context.next = 12;
110
+ break;
111
+ case 6:
112
+ if (!_native.Audio.resumePlayer) {
113
+ _context.next = 9;
114
+ break;
115
+ }
116
+ _context.next = 9;
117
+ return _native.Audio.resumePlayer();
118
+ case 9:
119
+ if (!((_soundRef$current = soundRef.current) != null && _soundRef$current.playAsync)) {
120
+ _context.next = 12;
121
+ break;
122
+ }
123
+ _context.next = 12;
124
+ return soundRef.current.playAsync();
125
+ case 12:
126
+ _context.next = 20;
127
+ break;
128
+ case 14:
129
+ if (!_native.Audio.pausePlayer) {
130
+ _context.next = 17;
131
+ break;
132
+ }
133
+ _context.next = 17;
134
+ return _native.Audio.pausePlayer();
135
+ case 17:
136
+ if (!((_soundRef$current2 = soundRef.current) != null && _soundRef$current2.pauseAsync)) {
137
+ _context.next = 20;
138
+ break;
139
+ }
140
+ _context.next = 20;
141
+ return soundRef.current.pauseAsync();
142
+ case 20:
143
+ setPaused(!paused);
144
+ case 21:
145
+ case "end":
146
+ return _context.stop();
147
+ }
148
+ }, _callee);
149
+ }));
150
+ return function onVoicePlayerPlayPause() {
151
+ return _ref.apply(this, arguments);
152
+ };
153
+ }();
154
+ var startVoicePlayer = function () {
155
+ var _ref2 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2() {
156
+ var uri, _soundRef$current3;
157
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
158
+ while (1) switch (_context2.prev = _context2.next) {
159
+ case 0:
160
+ if (recording) {
161
+ _context2.next = 2;
162
+ break;
163
+ }
164
+ return _context2.abrupt("return");
165
+ case 2:
166
+ if (!_native.Audio.startPlayer) {
167
+ _context2.next = 5;
168
+ break;
169
+ }
170
+ _context2.next = 5;
171
+ return _native.Audio.startPlayer(recording, {}, onVoicePlayerPlaybackStatusUpdate);
172
+ case 5:
173
+ if (!(recording && typeof recording !== 'string')) {
174
+ _context2.next = 16;
175
+ break;
176
+ }
177
+ uri = recording.getURI();
178
+ if (!uri) {
179
+ _context2.next = 16;
180
+ break;
181
+ }
182
+ _context2.next = 10;
183
+ return _native.Sound.initializeSound({
184
+ uri: uri
185
+ }, {}, onVoicePlayerPlaybackStatusUpdate);
186
+ case 10:
187
+ soundRef.current = _context2.sent;
188
+ if (!((_soundRef$current3 = soundRef.current) != null && _soundRef$current3.playAsync && soundRef.current.setProgressUpdateIntervalAsync)) {
189
+ _context2.next = 16;
190
+ break;
191
+ }
192
+ _context2.next = 14;
193
+ return soundRef.current.playAsync();
194
+ case 14:
195
+ _context2.next = 16;
196
+ return soundRef.current.setProgressUpdateIntervalAsync(_reactNative.Platform.OS === 'android' ? 100 : 60);
197
+ case 16:
198
+ case "end":
199
+ return _context2.stop();
200
+ }
201
+ }, _callee2);
202
+ }));
203
+ return function startVoicePlayer() {
204
+ return _ref2.apply(this, arguments);
205
+ };
206
+ }();
207
+ var stopVoicePlayer = function () {
208
+ var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
209
+ var _soundRef$current4, _soundRef$current5, _soundRef$current6;
210
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
211
+ while (1) switch (_context3.prev = _context3.next) {
212
+ case 0:
213
+ if (!_native.Audio.stopPlayer) {
214
+ _context3.next = 3;
215
+ break;
216
+ }
217
+ _context3.next = 3;
218
+ return _native.Audio.stopPlayer();
219
+ case 3:
220
+ if (!(recording && typeof recording !== 'string')) {
221
+ _context3.next = 9;
222
+ break;
223
+ }
224
+ if (!((_soundRef$current4 = soundRef.current) != null && _soundRef$current4.stopAsync && (_soundRef$current5 = soundRef.current) != null && _soundRef$current5.unloadAsync)) {
225
+ _context3.next = 9;
226
+ break;
227
+ }
228
+ _context3.next = 7;
229
+ return soundRef.current.stopAsync();
230
+ case 7:
231
+ _context3.next = 9;
232
+ return (_soundRef$current6 = soundRef.current) == null ? void 0 : _soundRef$current6.unloadAsync();
233
+ case 9:
234
+ case "end":
235
+ return _context3.stop();
236
+ }
237
+ }, _callee3);
238
+ }));
239
+ return function stopVoicePlayer() {
240
+ return _ref3.apply(this, arguments);
241
+ };
242
+ }();
243
+ var onRecordingStatusUpdate = function onRecordingStatusUpdate(status) {
244
+ if (status.isDoneRecording === true) {
245
+ return;
246
+ }
247
+ setRecordingDuration((status == null ? void 0 : status.currentPosition) || status.durationMillis);
248
+ var lowerBound = _reactNative.Platform.OS === 'ios' || status.currentMetering ? -60 : -120;
249
+ var normalizedAudioLevel = (0, _normalizeAudioLevel.normalizeAudioLevel)(status.currentMetering || status.metering, lowerBound);
250
+ setWaveformData(function (prev) {
251
+ return [].concat((0, _toConsumableArray2["default"])(prev), [normalizedAudioLevel]);
252
+ });
253
+ };
254
+ var startVoiceRecording = function () {
255
+ var _ref4 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() {
256
+ var recordingInfo, accessGranted, _recording;
257
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
258
+ while (1) switch (_context4.prev = _context4.next) {
259
+ case 0:
260
+ setRecordingStatus('recording');
261
+ _context4.next = 3;
262
+ return _native.Audio.startRecording({
263
+ isMeteringEnabled: true
264
+ }, onRecordingStatusUpdate);
265
+ case 3:
266
+ recordingInfo = _context4.sent;
267
+ accessGranted = recordingInfo.accessGranted;
268
+ if (!accessGranted) {
269
+ _context4.next = 14;
270
+ break;
271
+ }
272
+ setPermissionsGranted(true);
273
+ _recording = recordingInfo.recording;
274
+ if (_recording && typeof _recording !== 'string') {
275
+ _recording.setProgressUpdateInterval(_reactNative.Platform.OS === 'android' ? 100 : 60);
276
+ }
277
+ setRecording(_recording);
278
+ _context4.next = 12;
279
+ return stopVoicePlayer();
280
+ case 12:
281
+ _context4.next = 17;
282
+ break;
283
+ case 14:
284
+ setPermissionsGranted(false);
285
+ resetState();
286
+ _reactNative.Alert.alert('Please allow Audio permissions in settings.');
287
+ case 17:
288
+ case "end":
289
+ return _context4.stop();
290
+ }
291
+ }, _callee4);
292
+ }));
293
+ return function startVoiceRecording() {
294
+ return _ref4.apply(this, arguments);
295
+ };
296
+ }();
297
+ var stopVoiceRecording = function () {
298
+ var _ref5 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5() {
299
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
300
+ while (1) switch (_context5.prev = _context5.next) {
301
+ case 0:
302
+ if (!recording) {
303
+ _context5.next = 10;
304
+ break;
305
+ }
306
+ if (!(typeof recording !== 'string')) {
307
+ _context5.next = 8;
308
+ break;
309
+ }
310
+ _context5.next = 4;
311
+ return recording.stopAndUnloadAsync();
312
+ case 4:
313
+ _context5.next = 6;
314
+ return _native.Audio.stopRecording();
315
+ case 6:
316
+ _context5.next = 10;
317
+ break;
318
+ case 8:
319
+ _context5.next = 10;
320
+ return _native.Audio.stopRecording();
321
+ case 10:
322
+ setRecordingStatus('stopped');
323
+ case 11:
324
+ case "end":
325
+ return _context5.stop();
326
+ }
327
+ }, _callee5);
328
+ }));
329
+ return function stopVoiceRecording() {
330
+ return _ref5.apply(this, arguments);
331
+ };
332
+ }();
333
+ var resetState = function resetState() {
334
+ setRecording(undefined);
335
+ setRecordingStatus('idle');
336
+ setMicLocked(false);
337
+ setWaveformData([]);
338
+ setPaused(true);
339
+ setPosition(0);
340
+ setProgress(0);
341
+ };
342
+ var deleteVoiceRecording = function () {
343
+ var _ref6 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6() {
344
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
345
+ while (1) switch (_context6.prev = _context6.next) {
346
+ case 0:
347
+ if (!(recordingStatus === 'recording')) {
348
+ _context6.next = 3;
349
+ break;
350
+ }
351
+ _context6.next = 3;
352
+ return stopVoiceRecording();
353
+ case 3:
354
+ if (paused) {
355
+ _context6.next = 6;
356
+ break;
357
+ }
358
+ _context6.next = 6;
359
+ return stopVoicePlayer();
360
+ case 6:
361
+ resetState();
362
+ (0, _native.triggerHaptic)('impactMedium');
363
+ case 8:
364
+ case "end":
365
+ return _context6.stop();
366
+ }
367
+ }, _callee6);
368
+ }));
369
+ return function deleteVoiceRecording() {
370
+ return _ref6.apply(this, arguments);
371
+ };
372
+ }();
373
+ var uploadVoiceRecording = function () {
374
+ var _ref7 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(multiSendEnabled) {
375
+ var durationInSeconds, resampledWaveformData, file;
376
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
377
+ while (1) switch (_context7.prev = _context7.next) {
378
+ case 0:
379
+ if (paused) {
380
+ _context7.next = 3;
381
+ break;
382
+ }
383
+ _context7.next = 3;
384
+ return stopVoicePlayer();
385
+ case 3:
386
+ if (!(recordingStatus === 'recording')) {
387
+ _context7.next = 6;
388
+ break;
389
+ }
390
+ _context7.next = 6;
391
+ return stopVoiceRecording();
392
+ case 6:
393
+ durationInSeconds = parseFloat((recordingDuration / 1000).toFixed(3));
394
+ resampledWaveformData = (0, _audioSampling.resampleWaveformData)(waveformData, 100);
395
+ file = {
396
+ duration: durationInSeconds,
397
+ mimeType: 'audio/aac',
398
+ name: "audio_recording_".concat(new Date().toISOString(), ".aac"),
399
+ type: 'voiceRecording',
400
+ uri: typeof recording !== 'string' ? recording == null ? void 0 : recording.getURI() : recording,
401
+ waveform_data: resampledWaveformData
402
+ };
403
+ if (!multiSendEnabled) {
404
+ _context7.next = 14;
405
+ break;
406
+ }
407
+ _context7.next = 12;
408
+ return uploadNewFile(file);
409
+ case 12:
410
+ _context7.next = 17;
411
+ break;
412
+ case 14:
413
+ _context7.next = 16;
414
+ return uploadNewFile(file);
415
+ case 16:
416
+ setIsScheduleForSubmit(true);
417
+ case 17:
418
+ resetState();
419
+ case 18:
420
+ case "end":
421
+ return _context7.stop();
422
+ }
423
+ }, _callee7);
424
+ }));
425
+ return function uploadVoiceRecording(_x) {
426
+ return _ref7.apply(this, arguments);
427
+ };
428
+ }();
429
+ return {
430
+ deleteVoiceRecording: deleteVoiceRecording,
431
+ micLocked: micLocked,
432
+ onVoicePlayerPlayPause: onVoicePlayerPlayPause,
433
+ paused: paused,
434
+ permissionsGranted: permissionsGranted,
435
+ position: position,
436
+ progress: progress,
437
+ recording: recording,
438
+ recordingDuration: recordingDuration,
439
+ recordingStatus: recordingStatus,
440
+ setMicLocked: setMicLocked,
441
+ setRecording: setRecording,
442
+ setRecordingDuration: setRecordingDuration,
443
+ setRecordingStatus: setRecordingStatus,
444
+ setWaveformData: setWaveformData,
445
+ startVoiceRecording: startVoiceRecording,
446
+ stopVoiceRecording: stopVoiceRecording,
447
+ uploadVoiceRecording: uploadVoiceRecording,
448
+ waveformData: waveformData
449
+ };
450
+ };
451
+ exports.useAudioController = useAudioController;
452
+ //# sourceMappingURL=useAudioController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_MessageInputContext","_native","_audioSampling","_normalizeAudioLevel","useAudioController","_useState","useState","_useState2","_slicedToArray2","micLocked","setMicLocked","_useState3","_useState4","permissionsGranted","setPermissionsGranted","_useState5","_useState6","paused","setPaused","_useState7","_useState8","position","setPosition","_useState9","_useState10","progress","setProgress","_useState11","_useState12","waveformData","setWaveformData","_useState13","_useState14","isScheduledForSubmit","setIsScheduleForSubmit","_useState15","undefined","_useState16","recording","setRecording","_useState17","_useState18","recordingDuration","setRecordingDuration","_useState19","_useState20","recordingStatus","setRecordingStatus","_useMessageInputConte","useMessageInputContext","sendMessage","uploadNewFile","soundRef","useRef","useEffect","stopVoicePlayer","onVoicePlayerProgressHandler","currentPosition","playbackDuration","currentProgress","onVoicePlayerPlaybackStatusUpdate","status","shouldPlay","positionMillis","duration","durationMillis","didJustFinish","onVoicePlayerPlayPause","_ref","_asyncToGenerator2","_regenerator","mark","_callee","_soundRef$current","_soundRef$current2","wrap","_callee$","_context","prev","next","startVoicePlayer","Audio","resumePlayer","current","playAsync","pausePlayer","pauseAsync","stop","apply","arguments","_ref2","_callee2","uri","_soundRef$current3","_callee2$","_context2","abrupt","startPlayer","getURI","Sound","initializeSound","sent","setProgressUpdateIntervalAsync","Platform","OS","_ref3","_callee3","_soundRef$current4","_soundRef$current5","_soundRef$current6","_callee3$","_context3","stopPlayer","stopAsync","unloadAsync","onRecordingStatusUpdate","isDoneRecording","lowerBound","currentMetering","normalizedAudioLevel","normalizeAudioLevel","metering","concat","_toConsumableArray2","startVoiceRecording","_ref4","_callee4","recordingInfo","accessGranted","_recording","_callee4$","_context4","startRecording","isMeteringEnabled","setProgressUpdateInterval","resetState","Alert","alert","stopVoiceRecording","_ref5","_callee5","_callee5$","_context5","stopAndUnloadAsync","stopRecording","deleteVoiceRecording","_ref6","_callee6","_callee6$","_context6","triggerHaptic","uploadVoiceRecording","_ref7","_callee7","multiSendEnabled","durationInSeconds","resampledWaveformData","file","_callee7$","_context7","parseFloat","toFixed","resampleWaveformData","mimeType","name","Date","toISOString","type","waveform_data","_x","exports"],"sourceRoot":"../../../../../src","sources":["components/MessageInput/hooks/useAudioController.tsx"],"mappings":"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","ignoreList":[]}