stream-chat-react-native-core 5.28.1-beta.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 +2 -0
  66. package/lib/commonjs/i18n/es.json +11 -9
  67. package/lib/commonjs/i18n/fr.json +11 -9
  68. package/lib/commonjs/i18n/he.json +11 -9
  69. package/lib/commonjs/i18n/hi.json +11 -9
  70. package/lib/commonjs/i18n/it.json +11 -9
  71. package/lib/commonjs/i18n/ja.json +11 -9
  72. package/lib/commonjs/i18n/ko.json +11 -9
  73. package/lib/commonjs/i18n/nl.json +11 -9
  74. package/lib/commonjs/i18n/pt-BR.json +11 -9
  75. package/lib/commonjs/i18n/ru.json +11 -9
  76. package/lib/commonjs/i18n/tr.json +11 -9
  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 +2 -0
  175. package/lib/module/i18n/es.json +11 -9
  176. package/lib/module/i18n/fr.json +11 -9
  177. package/lib/module/i18n/he.json +11 -9
  178. package/lib/module/i18n/hi.json +11 -9
  179. package/lib/module/i18n/it.json +11 -9
  180. package/lib/module/i18n/ja.json +11 -9
  181. package/lib/module/i18n/ko.json +11 -9
  182. package/lib/module/i18n/nl.json +11 -9
  183. package/lib/module/i18n/pt-BR.json +11 -9
  184. package/lib/module/i18n/ru.json +11 -9
  185. package/lib/module/i18n/tr.json +11 -9
  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 +2 -0
  268. package/lib/typescript/i18n/es.json +11 -9
  269. package/lib/typescript/i18n/fr.json +11 -9
  270. package/lib/typescript/i18n/he.json +11 -9
  271. package/lib/typescript/i18n/hi.json +11 -9
  272. package/lib/typescript/i18n/it.json +11 -9
  273. package/lib/typescript/i18n/ja.json +11 -9
  274. package/lib/typescript/i18n/ko.json +11 -9
  275. package/lib/typescript/i18n/nl.json +11 -9
  276. package/lib/typescript/i18n/pt-BR.json +11 -9
  277. package/lib/typescript/i18n/ru.json +11 -9
  278. package/lib/typescript/i18n/tr.json +11 -9
  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 +2 -0
  353. package/src/i18n/es.json +11 -9
  354. package/src/i18n/fr.json +11 -9
  355. package/src/i18n/he.json +11 -9
  356. package/src/i18n/hi.json +11 -9
  357. package/src/i18n/it.json +11 -9
  358. package/src/i18n/ja.json +11 -9
  359. package/src/i18n/ko.json +11 -9
  360. package/src/i18n/nl.json +11 -9
  361. package/src/i18n/pt-BR.json +11 -9
  362. package/src/i18n/ru.json +11 -9
  363. package/src/i18n/tr.json +11 -9
  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,180 @@
1
+ import React, { useEffect, useMemo, useState } from 'react';
2
+ import { Platform, Pressable, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';
3
+ import { PanGestureHandler } from 'react-native-gesture-handler';
4
+ import Animated, {
5
+ runOnJS,
6
+ useAnimatedGestureHandler,
7
+ useAnimatedStyle,
8
+ useSharedValue,
9
+ } from 'react-native-reanimated';
10
+
11
+ import { useTheme } from '../../contexts/themeContext/ThemeContext';
12
+ import { triggerHaptic } from '../../native';
13
+ import { resampleWaveformData } from '../MessageInput/utils/audioSampling';
14
+
15
+ export type WaveProgressBarProps = {
16
+ progress: number;
17
+ waveformData: number[];
18
+ amplitudesCount?: number;
19
+ filledColor?: string;
20
+ onPlayPause?: (status?: boolean) => void;
21
+ onProgressDrag?: (progress: number) => void;
22
+ };
23
+
24
+ const WAVEFORM_WIDTH = 2;
25
+
26
+ const ProgressControlThumb = ({ style }: { style?: StyleProp<ViewStyle> }) => {
27
+ const {
28
+ theme: {
29
+ colors: { black, grey_dark, static_white },
30
+ },
31
+ } = useTheme();
32
+ return (
33
+ <Pressable style={{ height: 40, justifyContent: 'center', width: 40 }}>
34
+ <View
35
+ style={[
36
+ styles.progressControlThumbStyle,
37
+ {
38
+ backgroundColor: static_white,
39
+ borderColor: grey_dark,
40
+ shadowColor: black,
41
+ },
42
+ style,
43
+ ]}
44
+ />
45
+ </Pressable>
46
+ );
47
+ };
48
+
49
+ export const WaveProgressBar = React.memo(
50
+ (props: WaveProgressBarProps) => {
51
+ const [endPosition, setEndPosition] = useState(0);
52
+ const [currentWaveformProgress, setCurrentWaveformProgress] = useState(0);
53
+ /* On Android, the seek doesn't work for AAC files, hence we disable progress drag for now */
54
+ const showProgressDrag = Platform.OS === 'ios';
55
+ const {
56
+ amplitudesCount = 70,
57
+ filledColor,
58
+ onPlayPause,
59
+ onProgressDrag,
60
+ progress,
61
+ waveformData,
62
+ } = props;
63
+ const {
64
+ theme: {
65
+ colors: { accent_blue, grey_dark },
66
+ waveProgressBar: { container, thumb, waveform: waveformTheme },
67
+ },
68
+ } = useTheme();
69
+ const state = useSharedValue(0);
70
+
71
+ useEffect(() => {
72
+ const stageProgress = Math.floor(
73
+ progress * (showProgressDrag ? amplitudesCount - 1 : amplitudesCount),
74
+ );
75
+ state.value = stageProgress * (WAVEFORM_WIDTH * 2);
76
+ setEndPosition(state.value);
77
+ setCurrentWaveformProgress(stageProgress);
78
+ }, [progress]);
79
+
80
+ const stringifiedWaveformData = waveformData.toString();
81
+
82
+ const resampledWaveformData = useMemo(
83
+ () => resampleWaveformData(waveformData, amplitudesCount),
84
+ [amplitudesCount, stringifiedWaveformData],
85
+ );
86
+
87
+ const thumbStyles = useAnimatedStyle(() => ({
88
+ position: 'absolute',
89
+ transform: [{ translateX: state.value }],
90
+ }));
91
+
92
+ const onGestureEvent = useAnimatedGestureHandler(
93
+ {
94
+ onActive: (event) => {
95
+ const stage = Math.floor((endPosition + event.translationX) / (WAVEFORM_WIDTH * 2));
96
+ runOnJS(setCurrentWaveformProgress)(stage);
97
+ state.value = stage * (WAVEFORM_WIDTH * 2);
98
+ if (state.value < 0) {
99
+ state.value = 0;
100
+ } else if (state.value > amplitudesCount * (WAVEFORM_WIDTH * 2)) {
101
+ state.value = (amplitudesCount - 1) * (WAVEFORM_WIDTH * 2);
102
+ } else {
103
+ runOnJS(triggerHaptic)('impactLight');
104
+ }
105
+ },
106
+ onFinish: () => {
107
+ const stage = Math.floor(state.value / (WAVEFORM_WIDTH * 2));
108
+ runOnJS(setEndPosition)(state.value);
109
+ if (onProgressDrag) runOnJS(onProgressDrag)(stage);
110
+ if (onPlayPause) runOnJS(onPlayPause)(false);
111
+ },
112
+ onStart: () => {
113
+ if (onPlayPause) runOnJS(onPlayPause)(true);
114
+ state.value = endPosition;
115
+ },
116
+ },
117
+ [amplitudesCount, endPosition],
118
+ );
119
+
120
+ return (
121
+ <View style={[styles.container, container]}>
122
+ {resampledWaveformData.map((waveform, index) => (
123
+ <View
124
+ key={index}
125
+ style={[
126
+ styles.waveform,
127
+ {
128
+ backgroundColor:
129
+ index < currentWaveformProgress ? filledColor || accent_blue : grey_dark,
130
+ height: waveform * 25 > 3 ? waveform * 25 : 3,
131
+ },
132
+ waveformTheme,
133
+ ]}
134
+ />
135
+ ))}
136
+ {showProgressDrag && onProgressDrag && (
137
+ <PanGestureHandler maxPointers={1} onGestureEvent={onGestureEvent}>
138
+ <Animated.View style={[thumbStyles, thumb]}>
139
+ <ProgressControlThumb />
140
+ </Animated.View>
141
+ </PanGestureHandler>
142
+ )}
143
+ </View>
144
+ );
145
+ },
146
+ (prevProps, nextProps) => {
147
+ if (prevProps.amplitudesCount !== nextProps.amplitudesCount) return false;
148
+ if (prevProps.progress !== nextProps.progress) return false;
149
+ else return true;
150
+ },
151
+ );
152
+
153
+ const styles = StyleSheet.create({
154
+ container: {
155
+ alignItems: 'center',
156
+ alignSelf: 'center',
157
+ flexDirection: 'row',
158
+ },
159
+ progressControlThumbStyle: {
160
+ borderRadius: 5,
161
+ borderWidth: 0.2,
162
+ elevation: 6,
163
+ height: 25,
164
+ shadowOffset: {
165
+ height: 3,
166
+ width: 0,
167
+ },
168
+ shadowOpacity: 0.27,
169
+ shadowRadius: 4.65,
170
+ width: WAVEFORM_WIDTH * 2,
171
+ },
172
+ waveform: {
173
+ alignSelf: 'center',
174
+ borderRadius: 2,
175
+ marginHorizontal: WAVEFORM_WIDTH / 2,
176
+ width: WAVEFORM_WIDTH,
177
+ },
178
+ });
179
+
180
+ WaveProgressBar.displayName = 'WaveProgressBar';
@@ -1,5 +1,8 @@
1
1
  import React, { useContext, useMemo, useState } from 'react';
2
- import { Image, ImageStyle, StyleSheet, View, ViewStyle } from 'react-native';
2
+
3
+ import { Image, ImageStyle, StyleSheet, Text, View, ViewStyle } from 'react-native';
4
+
5
+ import dayjs from 'dayjs';
3
6
 
4
7
  import merge from 'lodash/merge';
5
8
 
@@ -21,6 +24,7 @@ import {
21
24
  } from '../../contexts/translationContext/TranslationContext';
22
25
  import type { DefaultStreamChatGenerics } from '../../types/types';
23
26
  import { getResizedImageUrl } from '../../utils/getResizedImageUrl';
27
+ import { getTrimmedAttachmentTitle } from '../../utils/getTrimmedAttachmentTitle';
24
28
  import { hasOnlyEmojis } from '../../utils/utils';
25
29
 
26
30
  import { FileIcon as FileIconDefault } from '../Attachment/FileIcon';
@@ -51,7 +55,10 @@ const styles = StyleSheet.create({
51
55
  flexGrow: 1,
52
56
  flexShrink: 1,
53
57
  },
54
- text: { fontSize: 12 },
58
+ secondaryText: {
59
+ paddingHorizontal: 8,
60
+ },
61
+ text: { fontSize: 12, fontWeight: 'bold', overflow: 'hidden' },
55
62
  textContainer: { maxWidth: undefined, paddingHorizontal: 8 },
56
63
  videoThumbnailContainerStyle: {
57
64
  borderRadius: 8,
@@ -87,7 +94,11 @@ const getMessageType = <
87
94
  ) => {
88
95
  let messageType;
89
96
 
90
- const isLastAttachmentFile = lastAttachment.type === 'file' || lastAttachment.type === 'audio';
97
+ const isLastAttachmentFile = lastAttachment.type === 'file';
98
+
99
+ const isLastAttachmentAudio = lastAttachment.type === 'audio';
100
+
101
+ const isLastAttachmentVoiceRecording = lastAttachment.type === 'voiceRecording';
91
102
 
92
103
  const isLastAttachmentVideo = lastAttachment.type === 'video';
93
104
 
@@ -105,6 +116,10 @@ const getMessageType = <
105
116
  messageType = 'file';
106
117
  } else if (isLastAttachmentVideo) {
107
118
  messageType = 'video';
119
+ } else if (isLastAttachmentAudio) {
120
+ messageType = 'audio';
121
+ } else if (isLastAttachmentVoiceRecording) {
122
+ messageType = 'voiceRecording';
108
123
  } else if (isLastAttachmentImageOrGiphy) {
109
124
  if (isLastAttachmentImage) messageType = 'image';
110
125
  else messageType = undefined;
@@ -142,6 +157,7 @@ const ReplyWithContext = <
142
157
  imageAttachment,
143
158
  markdownStyles,
144
159
  messageContainer,
160
+ secondaryText,
145
161
  textContainer,
146
162
  videoThumbnail: {
147
163
  container: videoThumbnailContainerStyle,
@@ -163,11 +179,15 @@ const ReplyWithContext = <
163
179
  const lastAttachment = quotedMessage.attachments?.slice(-1)[0] as Attachment<StreamChatGenerics>;
164
180
  const messageType = lastAttachment && getMessageType(lastAttachment);
165
181
 
182
+ const trimmedLastAttachmentTitle = getTrimmedAttachmentTitle(lastAttachment?.title);
183
+
166
184
  const hasImage =
167
185
  !error &&
168
186
  lastAttachment &&
169
187
  messageType !== 'file' &&
170
188
  messageType !== 'video' &&
189
+ messageType !== 'audio' &&
190
+ messageType !== 'voiceRecording' &&
171
191
  (lastAttachment.image_url || lastAttachment.thumb_url || lastAttachment.og_scrape_url);
172
192
 
173
193
  const onlyEmojis = !lastAttachment && emojiOnlyText;
@@ -189,7 +209,7 @@ const ReplyWithContext = <
189
209
  ]}
190
210
  >
191
211
  {!error && lastAttachment ? (
192
- messageType === 'file' ? (
212
+ messageType === 'file' || messageType === 'voiceRecording' || messageType === 'audio' ? (
193
213
  <View
194
214
  style={[
195
215
  styles.fileAttachmentContainer,
@@ -228,60 +248,73 @@ const ReplyWithContext = <
228
248
  thumb_url={lastAttachment.thumb_url}
229
249
  />
230
250
  ) : null}
231
- <MessageTextContainer<StreamChatGenerics>
232
- markdownStyles={
233
- quotedMessage.type === 'deleted'
234
- ? merge({ em: { color: grey } }, deletedText)
235
- : { text: styles.text, ...markdownStyles }
236
- }
237
- message={{
238
- ...quotedMessage,
239
- text:
251
+ <View style={{ flexDirection: 'column' }}>
252
+ <MessageTextContainer<StreamChatGenerics>
253
+ markdownStyles={
240
254
  quotedMessage.type === 'deleted'
241
- ? `_${t('Message deleted')}_`
242
- : quotedMessage.text
243
- ? quotedMessage.text.length > 170
244
- ? `${quotedMessage.text.slice(0, 170)}...`
255
+ ? merge({ em: { color: grey } }, deletedText)
256
+ : { text: styles.text, ...markdownStyles }
257
+ }
258
+ message={{
259
+ ...quotedMessage,
260
+ text:
261
+ quotedMessage.type === 'deleted'
262
+ ? `_${t('Message deleted')}_`
245
263
  : quotedMessage.text
246
- : messageType === 'image'
247
- ? t('Photo')
248
- : messageType === 'video'
249
- ? t('Video')
250
- : messageType === 'file'
251
- ? lastAttachment?.title || ''
252
- : '',
253
- }}
254
- onlyEmojis={onlyEmojis}
255
- styles={{
256
- textContainer: [
257
- {
258
- marginRight:
259
- hasImage || messageType === 'video'
260
- ? Number(
261
- stylesProp.imageAttachment?.height ||
262
- imageAttachment.height ||
263
- styles.imageAttachment.height,
264
- ) +
265
- Number(
266
- stylesProp.imageAttachment?.marginLeft ||
267
- imageAttachment.marginLeft ||
268
- styles.imageAttachment.marginLeft,
269
- )
270
- : messageType === 'file'
271
- ? attachmentSize +
272
- Number(
273
- stylesProp.fileAttachmentContainer?.paddingLeft ||
274
- fileAttachmentContainer.paddingLeft ||
275
- styles.fileAttachmentContainer.paddingLeft,
276
- )
277
- : undefined,
278
- },
279
- styles.textContainer,
280
- textContainer,
281
- stylesProp.textContainer,
282
- ],
283
- }}
284
- />
264
+ ? quotedMessage.text.length > 170
265
+ ? `${quotedMessage.text.slice(0, 170)}...`
266
+ : quotedMessage.text
267
+ : messageType === 'image'
268
+ ? t('Photo')
269
+ : messageType === 'video'
270
+ ? t('Video')
271
+ : messageType === 'file' ||
272
+ messageType === 'audio' ||
273
+ messageType === 'voiceRecording'
274
+ ? trimmedLastAttachmentTitle || ''
275
+ : '',
276
+ }}
277
+ onlyEmojis={onlyEmojis}
278
+ styles={{
279
+ textContainer: [
280
+ {
281
+ marginRight:
282
+ hasImage || messageType === 'video'
283
+ ? Number(
284
+ stylesProp.imageAttachment?.height ||
285
+ imageAttachment.height ||
286
+ styles.imageAttachment.height,
287
+ ) +
288
+ Number(
289
+ stylesProp.imageAttachment?.marginLeft ||
290
+ imageAttachment.marginLeft ||
291
+ styles.imageAttachment.marginLeft,
292
+ )
293
+ : messageType === 'file' ||
294
+ messageType === 'audio' ||
295
+ messageType === 'voiceRecording'
296
+ ? attachmentSize +
297
+ Number(
298
+ stylesProp.fileAttachmentContainer?.paddingLeft ||
299
+ fileAttachmentContainer.paddingLeft ||
300
+ styles.fileAttachmentContainer.paddingLeft,
301
+ )
302
+ : undefined,
303
+ },
304
+ styles.textContainer,
305
+ textContainer,
306
+ stylesProp.textContainer,
307
+ ],
308
+ }}
309
+ />
310
+ {messageType === 'audio' || messageType === 'voiceRecording' ? (
311
+ <Text style={[styles.secondaryText, { color: grey }, secondaryText]}>
312
+ {lastAttachment.duration
313
+ ? dayjs.duration(lastAttachment.duration, 'second').format('mm:ss')
314
+ : ''}
315
+ </Text>
316
+ ) : null}
317
+ </View>
285
318
  </View>
286
319
  </View>
287
320
  );
@@ -1503,8 +1503,9 @@ exports[`Thread should match thread snapshot 1`] = `
1503
1503
  style={
1504
1504
  [
1505
1505
  {
1506
- "alignItems": "flex-end",
1506
+ "alignItems": "center",
1507
1507
  "flexDirection": "row",
1508
+ "justifyContent": "space-between",
1508
1509
  },
1509
1510
  {},
1510
1511
  ]
@@ -1515,8 +1516,6 @@ exports[`Thread should match thread snapshot 1`] = `
1515
1516
  [
1516
1517
  {
1517
1518
  "flexDirection": "row",
1518
- "paddingBottom": 10,
1519
- "paddingRight": 10,
1520
1519
  },
1521
1520
  {},
1522
1521
  ]
@@ -1526,7 +1525,7 @@ exports[`Thread should match thread snapshot 1`] = `
1526
1525
  style={
1527
1526
  [
1528
1527
  {
1529
- "paddingRight": 10,
1528
+ "paddingRight": 5,
1530
1529
  },
1531
1530
  {},
1532
1531
  ]
@@ -1729,6 +1728,7 @@ exports[`Thread should match thread snapshot 1`] = `
1729
1728
  "borderRadius": 20,
1730
1729
  "borderWidth": 1,
1731
1730
  "flex": 1,
1731
+ "marginHorizontal": 10,
1732
1732
  },
1733
1733
  {
1734
1734
  "borderColor": "#ECEBEB",
@@ -1790,10 +1790,7 @@ exports[`Thread should match thread snapshot 1`] = `
1790
1790
  <View
1791
1791
  style={
1792
1792
  [
1793
- {
1794
- "paddingBottom": 10,
1795
- "paddingLeft": 10,
1796
- },
1793
+ {},
1797
1794
  {},
1798
1795
  ]
1799
1796
  }
@@ -1837,14 +1834,14 @@ exports[`Thread should match thread snapshot 1`] = `
1837
1834
  >
1838
1835
  <RNSVGSvgView
1839
1836
  align="xMidYMid"
1840
- bbHeight={24}
1841
- bbWidth={24}
1837
+ bbHeight={32}
1838
+ bbWidth={32}
1839
+ fill="#DBDBDB"
1842
1840
  focusable={false}
1843
- height={24}
1841
+ height={32}
1844
1842
  meetOrSlice={0}
1845
1843
  minX={0}
1846
1844
  minY={0}
1847
- pathFill="#DBDBDB"
1848
1845
  style={
1849
1846
  [
1850
1847
  {
@@ -1853,29 +1850,50 @@ exports[`Thread should match thread snapshot 1`] = `
1853
1850
  },
1854
1851
  {
1855
1852
  "flex": 0,
1856
- "height": 24,
1857
- "width": 24,
1853
+ "height": 32,
1854
+ "width": 32,
1858
1855
  },
1859
1856
  ]
1860
1857
  }
1861
- vbHeight={24}
1862
- vbWidth={24}
1863
- width={24}
1858
+ vbHeight={32}
1859
+ vbWidth={32}
1860
+ width={32}
1864
1861
  >
1865
1862
  <RNSVGGroup
1866
1863
  fill={
1867
1864
  {
1868
- "payload": 4278190080,
1865
+ "payload": 4292598747,
1869
1866
  "type": 0,
1870
1867
  }
1871
1868
  }
1869
+ propList={
1870
+ [
1871
+ "fill",
1872
+ ]
1873
+ }
1872
1874
  >
1875
+ <RNSVGCircle
1876
+ cx={16}
1877
+ cy={16}
1878
+ fill={
1879
+ {
1880
+ "payload": 4292598747,
1881
+ "type": 0,
1882
+ }
1883
+ }
1884
+ propList={
1885
+ [
1886
+ "fill",
1887
+ ]
1888
+ }
1889
+ r={16}
1890
+ />
1873
1891
  <RNSVGPath
1874
1892
  clipRule={0}
1875
- d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12s4.48 10 10 10 10-4.48 10-10zM8 11h4V8l4 4-4 4v-3H8v-2z"
1893
+ d="M9.33398 14.6666H16.0007V9.33325L22.6673 15.9999L16.0007 22.6666V17.3333H9.33398V14.6666Z"
1876
1894
  fill={
1877
1895
  {
1878
- "payload": 4292598747,
1896
+ "payload": 4294967295,
1879
1897
  "type": 0,
1880
1898
  }
1881
1899
  }
@@ -114,6 +114,12 @@ export * from '../utils/removeReservedFields';
114
114
 
115
115
  export * from './MessageInput/AttachButton';
116
116
  export * from './MessageInput/CommandsButton';
117
+ export * from './MessageInput/components/AudioRecorder/AudioRecorder';
118
+ export * from './MessageInput/components/AudioRecorder/AudioRecordingButton';
119
+ export * from './MessageInput/components/AudioRecorder/AudioRecordingInProgress';
120
+ export * from './MessageInput/components/AudioRecorder/AudioRecordingLockIndicator';
121
+ export * from './MessageInput/components/AudioRecorder/AudioRecordingPreview';
122
+ export * from './MessageInput/components/AudioRecorder/AudioRecordingWaveform';
117
123
  export * from './MessageInput/CooldownTimer';
118
124
  export * from './MessageInput/FileUploadPreview';
119
125
  export * from './MessageInput/ImageUploadPreview';