@ethora/chat-component-rn 26.5.21 → 26.6.10

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 (352) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/README.md +3 -3
  3. package/index.js +1 -1
  4. package/lib/commonjs/components/MainComponents/ChatHeader.js +20 -8
  5. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  6. package/lib/commonjs/components/MainComponents/ChatWrapper.js +17 -0
  7. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  8. package/lib/commonjs/components/MainComponents/LanguageSelectorButton.js +62 -0
  9. package/lib/commonjs/components/MainComponents/LanguageSelectorButton.js.map +1 -0
  10. package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js +253 -0
  11. package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js.map +1 -0
  12. package/lib/commonjs/components/MainComponents/RoomList.js +23 -9
  13. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  14. package/lib/commonjs/components/MessageBubble/Message.js +72 -11
  15. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  16. package/lib/commonjs/components/MessageBubble/MessageTranslate.js +160 -0
  17. package/lib/commonjs/components/MessageBubble/MessageTranslate.js.map +1 -0
  18. package/lib/commonjs/components/MessageBubble/TranslatedMessageBody.js +59 -0
  19. package/lib/commonjs/components/MessageBubble/TranslatedMessageBody.js.map +1 -0
  20. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +3 -3
  21. package/lib/commonjs/components/UsersList/UsersList.js +3 -1
  22. package/lib/commonjs/components/UsersList/UsersList.js.map +1 -1
  23. package/lib/commonjs/components/VideoCalls/CallButtons.js +159 -0
  24. package/lib/commonjs/components/VideoCalls/CallButtons.js.map +1 -0
  25. package/lib/commonjs/components/VideoCalls/CallIcons.js +328 -0
  26. package/lib/commonjs/components/VideoCalls/CallIcons.js.map +1 -0
  27. package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js +550 -0
  28. package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js.map +1 -0
  29. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +636 -0
  30. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -0
  31. package/lib/commonjs/components/VideoCalls/livekitRuntime.js +91 -0
  32. package/lib/commonjs/components/VideoCalls/livekitRuntime.js.map +1 -0
  33. package/lib/commonjs/components/VideoCalls/useCallKeep.js +215 -0
  34. package/lib/commonjs/components/VideoCalls/useCallKeep.js.map +1 -0
  35. package/lib/commonjs/components/styled/AudioMessage.js +91 -33
  36. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  37. package/lib/commonjs/components/styled/RoomListComponents/index.js +13 -1
  38. package/lib/commonjs/components/styled/RoomListComponents/index.js.map +1 -1
  39. package/lib/commonjs/components/styled/SendInput.js +83 -49
  40. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  41. package/lib/commonjs/components/styled/StyledComponents.js +9 -4
  42. package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
  43. package/lib/commonjs/components/styled/StyledInputComponents/Composing.js +2 -0
  44. package/lib/commonjs/components/styled/StyledInputComponents/Composing.js.map +1 -1
  45. package/lib/commonjs/context/xmppProvider.js +10 -3
  46. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  47. package/lib/commonjs/helpers/callLogMessage.js +162 -0
  48. package/lib/commonjs/helpers/callLogMessage.js.map +1 -0
  49. package/lib/commonjs/helpers/callPush.js +61 -0
  50. package/lib/commonjs/helpers/callPush.js.map +1 -0
  51. package/lib/commonjs/helpers/constants/LANGUAGE_OPTIONS.js +24 -12
  52. package/lib/commonjs/helpers/constants/LANGUAGE_OPTIONS.js.map +1 -1
  53. package/lib/commonjs/helpers/createUserNameFromSetUser.js +51 -2
  54. package/lib/commonjs/helpers/createUserNameFromSetUser.js.map +1 -1
  55. package/lib/commonjs/helpers/getDataFromXml.js +19 -1
  56. package/lib/commonjs/helpers/getDataFromXml.js.map +1 -1
  57. package/lib/commonjs/helpers/incomingCallFromPush.js +74 -0
  58. package/lib/commonjs/helpers/incomingCallFromPush.js.map +1 -0
  59. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +13 -1
  60. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  61. package/lib/commonjs/helpers/isUnresolvedSenderId.js +32 -0
  62. package/lib/commonjs/helpers/isUnresolvedSenderId.js.map +1 -0
  63. package/lib/commonjs/hooks/useChatSettingState.js +2 -0
  64. package/lib/commonjs/hooks/useChatSettingState.js.map +1 -1
  65. package/lib/commonjs/hooks/useMessageTranslation.js +51 -0
  66. package/lib/commonjs/hooks/useMessageTranslation.js.map +1 -0
  67. package/lib/commonjs/hooks/usePushNotifications.js +13 -3
  68. package/lib/commonjs/hooks/usePushNotifications.js.map +1 -1
  69. package/lib/commonjs/hooks/useSendMessage.js +12 -2
  70. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  71. package/lib/commonjs/i18n/strings.js +1308 -0
  72. package/lib/commonjs/i18n/strings.js.map +1 -0
  73. package/lib/commonjs/i18n/useT.js +60 -0
  74. package/lib/commonjs/i18n/useT.js.map +1 -0
  75. package/lib/commonjs/main.js +44 -0
  76. package/lib/commonjs/main.js.map +1 -1
  77. package/lib/commonjs/networking/api-requests/push.api.js +34 -5
  78. package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
  79. package/lib/commonjs/networking/api-requests/rooms.api.js +108 -0
  80. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  81. package/lib/commonjs/networking/callTokenStanza.js +531 -0
  82. package/lib/commonjs/networking/callTokenStanza.js.map +1 -0
  83. package/lib/commonjs/networking/outboundQueue.js.map +1 -1
  84. package/lib/commonjs/networking/stanzaHandlers.js +75 -8
  85. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  86. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +47 -11
  87. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  88. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +2 -1
  89. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  90. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +42 -5
  91. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  92. package/lib/commonjs/networking/xmppClient.js +78 -16
  93. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  94. package/lib/commonjs/roomStore/callSlice.js +144 -0
  95. package/lib/commonjs/roomStore/callSlice.js.map +1 -0
  96. package/lib/commonjs/roomStore/chatSettingsSlice.js +8 -2
  97. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  98. package/lib/commonjs/roomStore/index.js +7 -1
  99. package/lib/commonjs/roomStore/index.js.map +1 -1
  100. package/lib/commonjs/roomStore/persistence.js +69 -5
  101. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  102. package/lib/commonjs/roomStore/roomsSlice.js +136 -6
  103. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  104. package/lib/commonjs/utils/translateModePolicy.js +33 -0
  105. package/lib/commonjs/utils/translateModePolicy.js.map +1 -0
  106. package/lib/module/components/MainComponents/ChatHeader.js +20 -8
  107. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  108. package/lib/module/components/MainComponents/ChatWrapper.js +17 -0
  109. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  110. package/lib/module/components/MainComponents/LanguageSelectorButton.js +57 -0
  111. package/lib/module/components/MainComponents/LanguageSelectorButton.js.map +1 -0
  112. package/lib/module/components/MainComponents/LanguageSelectorModal.js +246 -0
  113. package/lib/module/components/MainComponents/LanguageSelectorModal.js.map +1 -0
  114. package/lib/module/components/MainComponents/RoomList.js +23 -9
  115. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  116. package/lib/module/components/MessageBubble/Message.js +73 -12
  117. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  118. package/lib/module/components/MessageBubble/MessageTranslate.js +155 -0
  119. package/lib/module/components/MessageBubble/MessageTranslate.js.map +1 -0
  120. package/lib/module/components/MessageBubble/TranslatedMessageBody.js +53 -0
  121. package/lib/module/components/MessageBubble/TranslatedMessageBody.js.map +1 -0
  122. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +3 -3
  123. package/lib/module/components/UsersList/UsersList.js +3 -1
  124. package/lib/module/components/UsersList/UsersList.js.map +1 -1
  125. package/lib/module/components/VideoCalls/CallButtons.js +154 -0
  126. package/lib/module/components/VideoCalls/CallButtons.js.map +1 -0
  127. package/lib/module/components/VideoCalls/CallIcons.js +309 -0
  128. package/lib/module/components/VideoCalls/CallIcons.js.map +1 -0
  129. package/lib/module/components/VideoCalls/VideoCallOverlay.js +544 -0
  130. package/lib/module/components/VideoCalls/VideoCallOverlay.js.map +1 -0
  131. package/lib/module/components/VideoCalls/VideoCallSession.js +630 -0
  132. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -0
  133. package/lib/module/components/VideoCalls/livekitRuntime.js +83 -0
  134. package/lib/module/components/VideoCalls/livekitRuntime.js.map +1 -0
  135. package/lib/module/components/VideoCalls/useCallKeep.js +210 -0
  136. package/lib/module/components/VideoCalls/useCallKeep.js.map +1 -0
  137. package/lib/module/components/styled/AudioMessage.js +91 -33
  138. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  139. package/lib/module/components/styled/RoomListComponents/index.js +13 -1
  140. package/lib/module/components/styled/RoomListComponents/index.js.map +1 -1
  141. package/lib/module/components/styled/SendInput.js +83 -49
  142. package/lib/module/components/styled/SendInput.js.map +1 -1
  143. package/lib/module/components/styled/StyledComponents.js +9 -4
  144. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  145. package/lib/module/components/styled/StyledInputComponents/Composing.js +2 -0
  146. package/lib/module/components/styled/StyledInputComponents/Composing.js.map +1 -1
  147. package/lib/module/context/xmppProvider.js +11 -4
  148. package/lib/module/context/xmppProvider.js.map +1 -1
  149. package/lib/module/helpers/callLogMessage.js +152 -0
  150. package/lib/module/helpers/callLogMessage.js.map +1 -0
  151. package/lib/module/helpers/callPush.js +55 -0
  152. package/lib/module/helpers/callPush.js.map +1 -0
  153. package/lib/module/helpers/constants/LANGUAGE_OPTIONS.js +24 -12
  154. package/lib/module/helpers/constants/LANGUAGE_OPTIONS.js.map +1 -1
  155. package/lib/module/helpers/createUserNameFromSetUser.js +49 -1
  156. package/lib/module/helpers/createUserNameFromSetUser.js.map +1 -1
  157. package/lib/module/helpers/getDataFromXml.js +20 -1
  158. package/lib/module/helpers/getDataFromXml.js.map +1 -1
  159. package/lib/module/helpers/incomingCallFromPush.js +70 -0
  160. package/lib/module/helpers/incomingCallFromPush.js.map +1 -0
  161. package/lib/module/helpers/insertMessageWithDelimiter.js +13 -1
  162. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  163. package/lib/module/helpers/isUnresolvedSenderId.js +27 -0
  164. package/lib/module/helpers/isUnresolvedSenderId.js.map +1 -0
  165. package/lib/module/hooks/useChatSettingState.js +2 -0
  166. package/lib/module/hooks/useChatSettingState.js.map +1 -1
  167. package/lib/module/hooks/useMessageTranslation.js +46 -0
  168. package/lib/module/hooks/useMessageTranslation.js.map +1 -0
  169. package/lib/module/hooks/usePushNotifications.js +13 -3
  170. package/lib/module/hooks/usePushNotifications.js.map +1 -1
  171. package/lib/module/hooks/useSendMessage.js +12 -2
  172. package/lib/module/hooks/useSendMessage.js.map +1 -1
  173. package/lib/module/i18n/strings.js +1300 -0
  174. package/lib/module/i18n/strings.js.map +1 -0
  175. package/lib/module/i18n/useT.js +55 -0
  176. package/lib/module/i18n/useT.js.map +1 -0
  177. package/lib/module/main.js +7 -1
  178. package/lib/module/main.js.map +1 -1
  179. package/lib/module/networking/api-requests/push.api.js +35 -5
  180. package/lib/module/networking/api-requests/push.api.js.map +1 -1
  181. package/lib/module/networking/api-requests/rooms.api.js +109 -1
  182. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  183. package/lib/module/networking/callTokenStanza.js +526 -0
  184. package/lib/module/networking/callTokenStanza.js.map +1 -0
  185. package/lib/module/networking/outboundQueue.js.map +1 -1
  186. package/lib/module/networking/stanzaHandlers.js +76 -9
  187. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  188. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +48 -11
  189. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  190. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +1 -1
  191. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  192. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +43 -5
  193. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  194. package/lib/module/networking/xmppClient.js +78 -16
  195. package/lib/module/networking/xmppClient.js.map +1 -1
  196. package/lib/module/roomStore/callSlice.js +130 -0
  197. package/lib/module/roomStore/callSlice.js.map +1 -0
  198. package/lib/module/roomStore/chatSettingsSlice.js +6 -1
  199. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  200. package/lib/module/roomStore/index.js +6 -1
  201. package/lib/module/roomStore/index.js.map +1 -1
  202. package/lib/module/roomStore/persistence.js +69 -5
  203. package/lib/module/roomStore/persistence.js.map +1 -1
  204. package/lib/module/roomStore/roomsSlice.js +134 -5
  205. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  206. package/lib/module/utils/translateModePolicy.js +27 -0
  207. package/lib/module/utils/translateModePolicy.js.map +1 -0
  208. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  209. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  210. package/lib/typescript/components/MainComponents/LanguageSelectorButton.d.ts +12 -0
  211. package/lib/typescript/components/MainComponents/LanguageSelectorButton.d.ts.map +1 -0
  212. package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts +31 -0
  213. package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts.map +1 -0
  214. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  215. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  216. package/lib/typescript/components/MessageBubble/MessageTranslate.d.ts +44 -0
  217. package/lib/typescript/components/MessageBubble/MessageTranslate.d.ts.map +1 -0
  218. package/lib/typescript/components/MessageBubble/TranslatedMessageBody.d.ts +24 -0
  219. package/lib/typescript/components/MessageBubble/TranslatedMessageBody.d.ts.map +1 -0
  220. package/lib/typescript/components/UsersList/UsersList.d.ts.map +1 -1
  221. package/lib/typescript/components/VideoCalls/CallButtons.d.ts +16 -0
  222. package/lib/typescript/components/VideoCalls/CallButtons.d.ts.map +1 -0
  223. package/lib/typescript/components/VideoCalls/CallIcons.d.ts +30 -0
  224. package/lib/typescript/components/VideoCalls/CallIcons.d.ts.map +1 -0
  225. package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts +10 -0
  226. package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts.map +1 -0
  227. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts +38 -0
  228. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -0
  229. package/lib/typescript/components/VideoCalls/livekitRuntime.d.ts +52 -0
  230. package/lib/typescript/components/VideoCalls/livekitRuntime.d.ts.map +1 -0
  231. package/lib/typescript/components/VideoCalls/useCallKeep.d.ts +32 -0
  232. package/lib/typescript/components/VideoCalls/useCallKeep.d.ts.map +1 -0
  233. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  234. package/lib/typescript/components/styled/RoomListComponents/index.d.ts.map +1 -1
  235. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  236. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  237. package/lib/typescript/components/styled/StyledInputComponents/Composing.d.ts.map +1 -1
  238. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  239. package/lib/typescript/helpers/callLogMessage.d.ts +34 -0
  240. package/lib/typescript/helpers/callLogMessage.d.ts.map +1 -0
  241. package/lib/typescript/helpers/callPush.d.ts +23 -0
  242. package/lib/typescript/helpers/callPush.d.ts.map +1 -0
  243. package/lib/typescript/helpers/constants/LANGUAGE_OPTIONS.d.ts +14 -0
  244. package/lib/typescript/helpers/constants/LANGUAGE_OPTIONS.d.ts.map +1 -1
  245. package/lib/typescript/helpers/createUserNameFromSetUser.d.ts +33 -1
  246. package/lib/typescript/helpers/createUserNameFromSetUser.d.ts.map +1 -1
  247. package/lib/typescript/helpers/getDataFromXml.d.ts.map +1 -1
  248. package/lib/typescript/helpers/incomingCallFromPush.d.ts +14 -0
  249. package/lib/typescript/helpers/incomingCallFromPush.d.ts.map +1 -0
  250. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  251. package/lib/typescript/helpers/isUnresolvedSenderId.d.ts +2 -0
  252. package/lib/typescript/helpers/isUnresolvedSenderId.d.ts.map +1 -0
  253. package/lib/typescript/hooks/useChatSettingState.d.ts +2 -1
  254. package/lib/typescript/hooks/useChatSettingState.d.ts.map +1 -1
  255. package/lib/typescript/hooks/useMessageTranslation.d.ts +25 -0
  256. package/lib/typescript/hooks/useMessageTranslation.d.ts.map +1 -0
  257. package/lib/typescript/hooks/usePushNotifications.d.ts.map +1 -1
  258. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  259. package/lib/typescript/i18n/strings.d.ts +16 -0
  260. package/lib/typescript/i18n/strings.d.ts.map +1 -0
  261. package/lib/typescript/i18n/useT.d.ts +34 -0
  262. package/lib/typescript/i18n/useT.d.ts.map +1 -0
  263. package/lib/typescript/main.d.ts +6 -1
  264. package/lib/typescript/main.d.ts.map +1 -1
  265. package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
  266. package/lib/typescript/networking/api-requests/rooms.api.d.ts +3 -0
  267. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  268. package/lib/typescript/networking/callTokenStanza.d.ts +14 -0
  269. package/lib/typescript/networking/callTokenStanza.d.ts.map +1 -0
  270. package/lib/typescript/networking/outboundQueue.d.ts +1 -0
  271. package/lib/typescript/networking/outboundQueue.d.ts.map +1 -1
  272. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  273. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  274. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts +10 -0
  275. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  276. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts +16 -1
  277. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
  278. package/lib/typescript/networking/xmppClient.d.ts +1 -1
  279. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  280. package/lib/typescript/roomStore/callSlice.d.ts +39 -0
  281. package/lib/typescript/roomStore/callSlice.d.ts.map +1 -0
  282. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +10 -1
  283. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  284. package/lib/typescript/roomStore/index.d.ts +4 -0
  285. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  286. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  287. package/lib/typescript/roomStore/roomsSlice.d.ts +6 -1
  288. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  289. package/lib/typescript/types/models/language.model.d.ts +1 -1
  290. package/lib/typescript/types/models/language.model.d.ts.map +1 -1
  291. package/lib/typescript/types/models/message.model.d.ts +7 -0
  292. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  293. package/lib/typescript/types/types.d.ts +135 -1
  294. package/lib/typescript/types/types.d.ts.map +1 -1
  295. package/lib/typescript/utils/translateModePolicy.d.ts +20 -0
  296. package/lib/typescript/utils/translateModePolicy.d.ts.map +1 -0
  297. package/package.json +20 -4
  298. package/src/components/MainComponents/ChatHeader.tsx +30 -9
  299. package/src/components/MainComponents/ChatWrapper.tsx +15 -0
  300. package/src/components/MainComponents/LanguageSelectorButton.tsx +53 -0
  301. package/src/components/MainComponents/LanguageSelectorModal.tsx +276 -0
  302. package/src/components/MainComponents/RoomList.tsx +27 -9
  303. package/src/components/MessageBubble/Message.tsx +109 -17
  304. package/src/components/MessageBubble/MessageTranslate.tsx +182 -0
  305. package/src/components/MessageBubble/TranslatedMessageBody.tsx +59 -0
  306. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +3 -3
  307. package/src/components/UsersList/UsersList.tsx +3 -1
  308. package/src/components/VideoCalls/CallButtons.tsx +171 -0
  309. package/src/components/VideoCalls/CallIcons.tsx +246 -0
  310. package/src/components/VideoCalls/VideoCallOverlay.tsx +627 -0
  311. package/src/components/VideoCalls/VideoCallSession.tsx +675 -0
  312. package/src/components/VideoCalls/livekitRuntime.ts +100 -0
  313. package/src/components/VideoCalls/useCallKeep.ts +252 -0
  314. package/src/components/styled/AudioMessage.tsx +97 -37
  315. package/src/components/styled/RoomListComponents/index.tsx +15 -3
  316. package/src/components/styled/SendInput.tsx +94 -51
  317. package/src/components/styled/StyledComponents.ts +9 -6
  318. package/src/components/styled/StyledInputComponents/Composing.tsx +7 -1
  319. package/src/context/xmppProvider.tsx +14 -1
  320. package/src/helpers/callLogMessage.ts +174 -0
  321. package/src/helpers/callPush.ts +90 -0
  322. package/src/helpers/constants/LANGUAGE_OPTIONS.ts +20 -5
  323. package/src/helpers/createUserNameFromSetUser.ts +68 -2
  324. package/src/helpers/getDataFromXml.ts +40 -4
  325. package/src/helpers/incomingCallFromPush.ts +83 -0
  326. package/src/helpers/insertMessageWithDelimiter.ts +27 -9
  327. package/src/helpers/isUnresolvedSenderId.ts +25 -0
  328. package/src/hooks/useChatSettingState.tsx +4 -0
  329. package/src/hooks/useMessageTranslation.ts +70 -0
  330. package/src/hooks/usePushNotifications.ts +15 -3
  331. package/src/hooks/useSendMessage.tsx +15 -2
  332. package/src/i18n/strings.ts +1322 -0
  333. package/src/i18n/useT.ts +56 -0
  334. package/src/main.ts +18 -1
  335. package/src/networking/api-requests/push.api.ts +39 -8
  336. package/src/networking/api-requests/rooms.api.ts +109 -1
  337. package/src/networking/callTokenStanza.ts +636 -0
  338. package/src/networking/outboundQueue.ts +1 -0
  339. package/src/networking/stanzaHandlers.ts +74 -15
  340. package/src/networking/xmpp/handleStanzas.xmpp.ts +52 -11
  341. package/src/networking/xmpp/sendTextMessage.xmpp.ts +1 -1
  342. package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +41 -5
  343. package/src/networking/xmppClient.ts +97 -28
  344. package/src/roomStore/callSlice.ts +190 -0
  345. package/src/roomStore/chatSettingsSlice.ts +16 -0
  346. package/src/roomStore/index.ts +5 -0
  347. package/src/roomStore/persistence.ts +103 -3
  348. package/src/roomStore/roomsSlice.ts +149 -4
  349. package/src/types/models/language.model.ts +17 -1
  350. package/src/types/models/message.model.ts +9 -0
  351. package/src/types/types.ts +142 -2
  352. package/src/utils/translateModePolicy.ts +31 -0
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Optional-dependency bridge for the LiveKit React Native SDK.
5
+ *
6
+ * Calls are opt-in (`config.videoCalls.enabled`), and the LiveKit packages
7
+ * are NATIVE modules: they need a dev build, they cannot run in Expo Go,
8
+ * and they add camera/microphone entitlements to whatever app installs
9
+ * them. Most hosts embedding this chat SDK don't want calls at all, so
10
+ * `@livekit/react-native` and `@livekit/react-native-webrtc` are declared
11
+ * as OPTIONAL peer dependencies.
12
+ *
13
+ * That means a plain top-level `import ... from '@livekit/react-native'`
14
+ * is not allowed anywhere in the SDK: Metro resolves imports at bundle
15
+ * time, so a chat-only host would fail to build over a feature it never
16
+ * switched on. Everything call-related goes through `loadLiveKit()`, which
17
+ * requires the modules lazily at call time and returns null when they
18
+ * aren't installed. Callers surface that as a friendly config error rather
19
+ * than a redbox.
20
+ */
21
+
22
+ let cached;
23
+ export const isLiveKitAvailable = () => loadLiveKit() !== null;
24
+
25
+ /**
26
+ * Resolve the LiveKit runtime, or null when the optional native packages
27
+ * aren't installed in the host app. Result is memoised (including the
28
+ * failure) so a missing dependency doesn't re-throw on every render.
29
+ */
30
+ export const loadLiveKit = () => {
31
+ if (cached !== undefined) {
32
+ return cached;
33
+ }
34
+ try {
35
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
36
+ const rn = require('@livekit/react-native');
37
+ // `livekit-client` is a hard dependency of @livekit/react-native, so
38
+ // if the first require succeeded this one will too. Read the enums
39
+ // from it rather than from the RN wrapper: the wrapper re-exports a
40
+ // moving subset across versions, the core package does not.
41
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
42
+ const core = require('livekit-client');
43
+ cached = {
44
+ Room: core.Room,
45
+ RoomEvent: core.RoomEvent,
46
+ Track: core.Track,
47
+ ConnectionState: core.ConnectionState,
48
+ VideoTrack: rn.VideoTrack,
49
+ AudioSession: rn.AudioSession,
50
+ registerGlobals: rn.registerGlobals
51
+ };
52
+ } catch {
53
+ cached = null;
54
+ }
55
+ return cached;
56
+ };
57
+ let globalsRegistered = false;
58
+
59
+ /**
60
+ * `registerGlobals()` patches RTCPeerConnection / MediaStream / navigator
61
+ * .mediaDevices onto the JS global scope so livekit-client (written for
62
+ * browsers) works on React Native. It must run exactly once per JS
63
+ * context, before the first `new Room()`. Calling it repeatedly is
64
+ * harmless in current versions but has thrown in older ones, so guard it.
65
+ */
66
+ export const ensureLiveKitGlobals = runtime => {
67
+ if (globalsRegistered) {
68
+ return;
69
+ }
70
+ try {
71
+ runtime.registerGlobals?.();
72
+ } catch {
73
+ // Already registered by the host app (it may use LiveKit elsewhere).
74
+ }
75
+ globalsRegistered = true;
76
+ };
77
+
78
+ /** Reset memoised state. Test seam only. */
79
+ export const __resetLiveKitRuntimeForTests = () => {
80
+ cached = undefined;
81
+ globalsRegistered = false;
82
+ };
83
+ //# sourceMappingURL=livekitRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cached","isLiveKitAvailable","loadLiveKit","undefined","rn","require","core","Room","RoomEvent","Track","ConnectionState","VideoTrack","AudioSession","registerGlobals","globalsRegistered","ensureLiveKitGlobals","runtime","__resetLiveKitRuntimeForTests"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/livekitRuntime.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmBA,IAAIA,MAAyC;AAE7C,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAeC,WAAW,CAAC,CAAC,KAAK,IAAI;;AAEvE;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAAW,GAAGA,CAAA,KAA6B;EACtD,IAAIF,MAAM,KAAKG,SAAS,EAAE;IACxB,OAAOH,MAAM;EACf;EAEA,IAAI;IACF;IACA,MAAMI,EAAE,GAAGC,OAAO,CAAC,uBAAuB,CAAC;IAC3C;IACA;IACA;IACA;IACA;IACA,MAAMC,IAAI,GAAGD,OAAO,CAAC,gBAAgB,CAAC;IAEtCL,MAAM,GAAG;MACPO,IAAI,EAAED,IAAI,CAACC,IAAI;MACfC,SAAS,EAAEF,IAAI,CAACE,SAAS;MACzBC,KAAK,EAAEH,IAAI,CAACG,KAAK;MACjBC,eAAe,EAAEJ,IAAI,CAACI,eAAe;MACrCC,UAAU,EAAEP,EAAE,CAACO,UAAU;MACzBC,YAAY,EAAER,EAAE,CAACQ,YAAY;MAC7BC,eAAe,EAAET,EAAE,CAACS;IACtB,CAAC;EACH,CAAC,CAAC,MAAM;IACNb,MAAM,GAAG,IAAI;EACf;EAEA,OAAOA,MAAM;AACf,CAAC;AAED,IAAIc,iBAAiB,GAAG,KAAK;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAIC,OAAuB,IAAW;EACrE,IAAIF,iBAAiB,EAAE;IAAC;EAAO;EAC/B,IAAI;IACFE,OAAO,CAACH,eAAe,GAAG,CAAC;EAC7B,CAAC,CAAC,MAAM;IACN;EAAA;EAEFC,iBAAiB,GAAG,IAAI;AAC1B,CAAC;;AAED;AACA,OAAO,MAAMG,6BAA6B,GAAGA,CAAA,KAAY;EACvDjB,MAAM,GAAGG,SAAS;EAClBW,iBAAiB,GAAG,KAAK;AAC3B,CAAC","ignoreList":[]}
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useMemo, useRef } from 'react';
4
+ import { Platform } from 'react-native';
5
+ import { useDispatch, useSelector } from 'react-redux';
6
+ import { store } from '../../roomStore';
7
+ import { acceptIncomingCall, declineIncomingCall } from '../../roomStore/callSlice';
8
+ import { sendCallStateSignal } from '../../networking/callTokenStanza';
9
+
10
+ /**
11
+ * Native incoming-call UI (Android ConnectionService / iOS CallKit) via
12
+ * the optional `react-native-callkeep` package.
13
+ *
14
+ * Why optional: CallKeep pulls a telecom-framework dependency into the
15
+ * host app and, on iOS, is only half a solution without PushKit. It is
16
+ * loaded lazily exactly like the LiveKit packages, so hosts that don't
17
+ * install it get the plain in-app ring screen and nothing breaks.
18
+ *
19
+ * Platform reality, stated plainly:
20
+ * - Android: full value. A ConnectionService call shows the system
21
+ * incoming-call screen over the lock screen.
22
+ * - iOS: this only fires while the app is running. A CallKit screen from
23
+ * a killed app requires a VoIP push over PushKit, which needs a
24
+ * separate Apple VoIP certificate and a separate send path on the
25
+ * backend (not FCM). Until that exists, iOS falls back to the regular
26
+ * data push and the in-app ring screen.
27
+ */
28
+
29
+ let cachedCallKeep;
30
+ export const loadCallKeep = () => {
31
+ if (cachedCallKeep !== undefined) {
32
+ return cachedCallKeep;
33
+ }
34
+ try {
35
+ // The JS package being installed does NOT mean the native side is
36
+ // linked: a host can `npm i react-native-callkeep` and skip
37
+ // `pod install`, or (very common in this repo) node_modules can carry
38
+ // it over from another branch whose build did link it. In that state
39
+ // requiring the package builds a `new NativeEventEmitter(null)` at
40
+ // module scope, which throws an invariant that RN surfaces as an
41
+ // uncaught redbox on every render of the call overlay — the whole app
42
+ // becomes unusable over a feature the host never switched on.
43
+ // Probing NativeModules first keeps the optional dependency genuinely
44
+ // optional: no native module => behave exactly as if it isn't installed.
45
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
46
+ const {
47
+ NativeModules
48
+ } = require('react-native');
49
+ if (!NativeModules?.RNCallKeep) {
50
+ cachedCallKeep = null;
51
+ return cachedCallKeep;
52
+ }
53
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
54
+ const mod = require('react-native-callkeep');
55
+ cachedCallKeep = mod?.default || mod;
56
+ } catch {
57
+ cachedCallKeep = null;
58
+ }
59
+ return cachedCallKeep;
60
+ };
61
+
62
+ // CallKeep identifies calls by UUID. Our callIds aren't UUIDs, so derive a
63
+ // stable v4-shaped string from the callId: same call always maps to the
64
+ // same UUID, which is what endCall() needs to dismiss the right screen.
65
+ const toUuid = seed => {
66
+ let hash = 0x811c9dc5;
67
+ const bytes = [];
68
+ for (let i = 0; i < 32; i++) {
69
+ const ch = seed.charCodeAt(i % Math.max(1, seed.length)) + i;
70
+ hash ^= ch;
71
+ hash = Math.imul(hash, 0x01000193) >>> 0;
72
+ bytes.push(hash & 0xff);
73
+ }
74
+ const hex = bytes.map(b => b.toString(16).padStart(2, '0')).join('');
75
+ return [hex.slice(0, 8), hex.slice(8, 12), '4' + hex.slice(13, 16), (parseInt(hex[16], 16) & 0x3 | 0x8).toString(16) + hex.slice(17, 20), hex.slice(20, 32)].join('-');
76
+ };
77
+ export const useCallKeep = () => {
78
+ const dispatch = useDispatch();
79
+ const call = useSelector(state => state.call);
80
+ const callKeep = useMemo(() => loadCallKeep(), []);
81
+ const activeUuidRef = useRef(null);
82
+ const readyRef = useRef(false);
83
+
84
+ // One-time native setup.
85
+ useEffect(() => {
86
+ if (!callKeep) {
87
+ return;
88
+ }
89
+ let cancelled = false;
90
+ (async () => {
91
+ try {
92
+ await callKeep.setup({
93
+ ios: {
94
+ appName: 'Ethora',
95
+ supportsVideo: true
96
+ },
97
+ android: {
98
+ alertTitle: 'Permissions required',
99
+ alertDescription: 'This application needs to access your phone accounts to show incoming calls',
100
+ cancelButton: 'Cancel',
101
+ okButton: 'ok',
102
+ additionalPermissions: [],
103
+ foregroundService: {
104
+ channelId: 'com.ethora.chat.calls',
105
+ channelName: 'Incoming calls',
106
+ notificationTitle: 'Call in progress'
107
+ }
108
+ }
109
+ });
110
+ if (cancelled) {
111
+ return;
112
+ }
113
+ callKeep.setAvailable?.(true);
114
+ readyRef.current = true;
115
+ } catch {
116
+ // Host didn't grant phone-account permission, or the module isn't
117
+ // linked. The in-app ring screen still works, so stay quiet.
118
+ readyRef.current = false;
119
+ }
120
+ })();
121
+ return () => {
122
+ cancelled = true;
123
+ };
124
+ }, [callKeep]);
125
+
126
+ // Bridge native answer/end actions back into Redux.
127
+ useEffect(() => {
128
+ if (!callKeep) {
129
+ return;
130
+ }
131
+ const onAnswer = () => {
132
+ // The user answered from the system screen, which on Android may
133
+ // mean the app was not even in the foreground.
134
+ callKeep.backToForeground?.();
135
+ if (store.getState().call.direction === 'incoming') {
136
+ dispatch(acceptIncomingCall());
137
+ }
138
+ };
139
+ const onEnd = () => {
140
+ const snapshot = store.getState().call;
141
+ if (snapshot.phase === 'idle') {
142
+ return;
143
+ }
144
+ if (snapshot.direction === 'incoming' && snapshot.phase === 'ringing-incoming') {
145
+ sendCallStateSignal('declined');
146
+ dispatch(declineIncomingCall());
147
+ }
148
+ };
149
+ callKeep.addEventListener('answerCall', onAnswer);
150
+ callKeep.addEventListener('endCall', onEnd);
151
+ return () => {
152
+ callKeep.removeEventListener('answerCall');
153
+ callKeep.removeEventListener('endCall');
154
+ };
155
+ }, [callKeep, dispatch]);
156
+
157
+ // Show / dismiss the native screen as the call state changes.
158
+ useEffect(() => {
159
+ if (!callKeep || !readyRef.current) {
160
+ return;
161
+ }
162
+ const isRinging = call.direction === 'incoming' && call.phase === 'ringing-incoming';
163
+ if (isRinging && !activeUuidRef.current) {
164
+ const uuid = toUuid(call.callId || call.roomJid || String(Date.now()));
165
+ activeUuidRef.current = uuid;
166
+ try {
167
+ callKeep.displayIncomingCall(uuid, call.peerXmppUsername || call.roomName || 'Ethora', call.roomName || undefined, 'generic', call.kind === 'video');
168
+ } catch {
169
+ activeUuidRef.current = null;
170
+ }
171
+ return;
172
+ }
173
+
174
+ // Any exit from ringing (answered in-app, declined, peer cancelled)
175
+ // must tear the system screen down or it hangs around ringing.
176
+ if (!isRinging && activeUuidRef.current && call.phase !== 'connecting' && call.phase !== 'in-call') {
177
+ try {
178
+ callKeep.endCall(activeUuidRef.current);
179
+ } catch {
180
+ // Screen already gone.
181
+ }
182
+ activeUuidRef.current = null;
183
+ }
184
+ if (call.phase === 'idle' && activeUuidRef.current) {
185
+ try {
186
+ callKeep.endCall(activeUuidRef.current);
187
+ } catch {
188
+ // noop
189
+ }
190
+ activeUuidRef.current = null;
191
+ }
192
+ }, [callKeep, call.direction, call.phase, call.callId, call.roomJid, call.roomName, call.peerXmppUsername, call.kind]);
193
+
194
+ // Nothing to clean up on unmount beyond the active screen: this hook
195
+ // lives for the lifetime of the provider.
196
+ useEffect(() => () => {
197
+ if (callKeep && activeUuidRef.current) {
198
+ try {
199
+ callKeep.endCall(activeUuidRef.current);
200
+ } catch {
201
+ // noop
202
+ }
203
+ }
204
+ }, [callKeep]);
205
+
206
+ // iOS-only note kept as a runtime no-op so the import isn't unused when
207
+ // the platform check is tree-shaken in release builds.
208
+ void Platform.OS;
209
+ };
210
+ //# sourceMappingURL=useCallKeep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useMemo","useRef","Platform","useDispatch","useSelector","store","acceptIncomingCall","declineIncomingCall","sendCallStateSignal","cachedCallKeep","loadCallKeep","undefined","NativeModules","require","RNCallKeep","mod","default","toUuid","seed","hash","bytes","i","ch","charCodeAt","Math","max","length","imul","push","hex","map","b","toString","padStart","join","slice","parseInt","useCallKeep","dispatch","call","state","callKeep","activeUuidRef","readyRef","cancelled","setup","ios","appName","supportsVideo","android","alertTitle","alertDescription","cancelButton","okButton","additionalPermissions","foregroundService","channelId","channelName","notificationTitle","setAvailable","current","onAnswer","backToForeground","getState","direction","onEnd","snapshot","phase","addEventListener","removeEventListener","isRinging","uuid","callId","roomJid","String","Date","now","displayIncomingCall","peerXmppUsername","roomName","kind","endCall","OS"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/useCallKeep.ts"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import React, { useEffect, useRef, useState } from 'react';
4
4
  import { View, TouchableOpacity, Text, StyleSheet, ActivityIndicator, Platform } from 'react-native';
5
- import { Audio } from 'expo-av';
5
+ import { createAudioPlayer, setAudioModeAsync } from 'expo-audio';
6
6
  import * as FileSystem from 'expo-file-system/legacy';
7
7
  import { WebView } from 'react-native-webview';
8
8
  import { PauseIcon, PlayIcon } from '../../assets/icons';
@@ -124,11 +124,11 @@ const getContainerExtension = container => {
124
124
  }
125
125
  };
126
126
 
127
- // AVFoundation (expo-av) and the iOS WKWebView <audio> element cannot
127
+ // AVFoundation (expo-audio) and the iOS WKWebView <audio> element cannot
128
128
  // demux/decode WebM or Ogg Opus — only `AudioContext.decodeAudioData` can
129
129
  // on iOS. So on iOS those two containers go through the WebView decoder.
130
130
  // Everything else (mp3/m4a/aac/wav), and ALL of Android (ExoPlayer handles
131
- // Opus natively), plays straight through expo-av.
131
+ // Opus natively), plays straight through expo-audio.
132
132
  const requiresWebAudioDecode = container => Platform.OS === 'ios' && (container === 'webm' || container === 'ogg');
133
133
 
134
134
  // The WebView is used ONLY as a decoder, never as a player. Two iOS facts
@@ -140,7 +140,7 @@ const requiresWebAudioDecode = container => Platform.OS === 'ios' && (container
140
140
  // cannot supply, so both hang silently.
141
141
  // Therefore the page decodes Opus → PCM, re-encodes to a WAV blob, and ships
142
142
  // the bytes back to RN as base64. RN writes the WAV to cache and plays it
143
- // through expo-av (native, no gesture limits, real play/pause/seek).
143
+ // through expo-audio (native, no gesture limits, real play/pause/seek).
144
144
  const WEB_DECODER_HTML = `<!doctype html>
145
145
  <html>
146
146
  <head>
@@ -243,6 +243,10 @@ const AudioMessage = ({
243
243
  config
244
244
  } = useChatSettingState();
245
245
  const soundRef = useRef(null);
246
+ // expo-audio delivers progress through an event subscription instead of
247
+ // expo-av's `onPlaybackStatusUpdate` callback argument, so the handle has
248
+ // to be held and removed alongside the player itself.
249
+ const statusSubRef = useRef(null);
246
250
  const webViewRef = useRef(null);
247
251
  const preparedRef = useRef(null);
248
252
  const bridgeReadyRef = useRef(false);
@@ -263,6 +267,29 @@ const AudioMessage = ({
263
267
  loadingTimerRef.current = null;
264
268
  }
265
269
  };
270
+
271
+ // expo-audio players are native shared objects: they are NOT garbage
272
+ // collected with the component, so every one we create has to be
273
+ // explicitly `remove()`d (expo-av's `unloadAsync` equivalent) and its
274
+ // status subscription torn down first.
275
+ const releasePlayer = () => {
276
+ statusSubRef.current?.remove();
277
+ statusSubRef.current = null;
278
+ const player = soundRef.current;
279
+ soundRef.current = null;
280
+ if (player) {
281
+ try {
282
+ player.pause();
283
+ } catch {
284
+ /* already released */
285
+ }
286
+ try {
287
+ player.remove();
288
+ } catch {
289
+ /* already released */
290
+ }
291
+ }
292
+ };
266
293
  const fail = reason => {
267
294
  clearLoadingGuard();
268
295
  if (unmountedRef.current) {
@@ -285,7 +312,7 @@ const AudioMessage = ({
285
312
  };
286
313
 
287
314
  // Hard ceiling on the loading spinner — whatever stalls (a hung network
288
- // request, a WebView that never decodes, expo-av wedging on a bad file)
315
+ // request, a WebView that never decodes, a player that never loads)
289
316
  // the control resolves to an error state instead of spinning forever
290
317
  // (the customer-reported "stuck spinner").
291
318
  const armLoadingGuard = () => {
@@ -397,49 +424,72 @@ const AudioMessage = ({
397
424
  webViewRef.current.injectJavaScript(`window.__decodeAudio(${JSON.stringify(base64)}); true;`);
398
425
  }
399
426
  };
427
+
428
+ // expo-audio reports times in SECONDS (expo-av used milliseconds); the
429
+ // whole UI below is millisecond-based, so convert at this boundary and
430
+ // nowhere else.
400
431
  const onPlaybackStatusUpdate = status => {
401
432
  if (!status.isLoaded) {
402
- if (status.error) {
403
- logAudioDebug('playback status error', {
404
- src,
405
- error: status.error
406
- });
407
- }
408
433
  return;
409
434
  }
410
- setPosition(status.positionMillis);
411
- setDuration(status.durationMillis ?? 0);
412
- setIsPlaying(status.isPlaying);
435
+ setPosition(Math.max(0, status.currentTime * 1000));
436
+ setDuration(status.duration > 0 ? status.duration * 1000 : 0);
437
+ setIsPlaying(status.playing);
413
438
  if (status.didJustFinish) {
414
439
  didFinishRef.current = true;
415
440
  setIsPlaying(false);
416
441
  setPosition(0);
417
- void soundRef.current?.setStatusAsync({
418
- shouldPlay: false,
419
- positionMillis: 0
420
- });
442
+ const player = soundRef.current;
443
+ if (player) {
444
+ player.pause();
445
+ void player.seekTo(0);
446
+ }
421
447
  }
422
448
  };
423
449
  const startNativePlayback = async localUri => {
424
450
  try {
425
- await Audio.setAudioModeAsync({
426
- playsInSilentModeIOS: true
451
+ await setAudioModeAsync({
452
+ playsInSilentMode: true
427
453
  });
428
454
  } catch {
429
455
  /* non-fatal — still plays through the ringer channel */
430
456
  }
431
- const {
432
- sound
433
- } = await withTimeout(Audio.Sound.createAsync({
457
+ // expo-audio has no awaitable `createAsync`: the player is constructed
458
+ // synchronously and loads in the background, reporting `isLoaded` via
459
+ // the status event. Wait for that first loaded status (same 12s budget
460
+ // expo-av's createAsync had) so the spinner still resolves to either
461
+ // real playback or the error state, never to a silent dead button.
462
+ const player = createAudioPlayer({
434
463
  uri: localUri
435
464
  }, {
436
- shouldPlay: true
437
- }, onPlaybackStatusUpdate), 12000, 'audio_create_timeout');
465
+ updateInterval: 250
466
+ });
467
+ let settleLoaded = null;
468
+ const loaded = new Promise(resolve => {
469
+ settleLoaded = resolve;
470
+ });
471
+ const subscription = player.addListener('playbackStatusUpdate', status => {
472
+ if (status.isLoaded && settleLoaded) {
473
+ settleLoaded();
474
+ settleLoaded = null;
475
+ }
476
+ onPlaybackStatusUpdate(status);
477
+ });
478
+ try {
479
+ await withTimeout(loaded, 12000, 'audio_create_timeout');
480
+ } catch (error) {
481
+ subscription.remove();
482
+ player.remove();
483
+ throw error;
484
+ }
438
485
  if (unmountedRef.current) {
439
- void sound.unloadAsync();
486
+ subscription.remove();
487
+ player.remove();
440
488
  return;
441
489
  }
442
- soundRef.current = sound;
490
+ soundRef.current = player;
491
+ statusSubRef.current = subscription;
492
+ player.play();
443
493
  clearLoadingGuard();
444
494
  setIsLoading(false);
445
495
  setPlaybackError(false);
@@ -509,14 +559,21 @@ const AudioMessage = ({
509
559
  // decoded-WAV from the WebView path) → plain toggle.
510
560
  if (soundRef.current) {
511
561
  try {
562
+ // `play()` / `pause()` emit NO status event of their own (expo-av's
563
+ // playAsync/pauseAsync resolved with one). Playing state only ever
564
+ // reaches us through the periodic time observer, and that observer
565
+ // stops while paused — so without setting this here the button
566
+ // would latch on "pause" forever and never resume.
512
567
  if (isPlaying) {
513
- await soundRef.current.pauseAsync();
568
+ soundRef.current.pause();
569
+ setIsPlaying(false);
514
570
  } else {
515
571
  if (didFinishRef.current) {
516
- await soundRef.current.setPositionAsync(0);
572
+ await soundRef.current.seekTo(0);
517
573
  didFinishRef.current = false;
518
574
  }
519
- await soundRef.current.playAsync();
575
+ soundRef.current.play();
576
+ setIsPlaying(true);
520
577
  }
521
578
  } catch (error) {
522
579
  fail(error);
@@ -552,7 +609,7 @@ const AudioMessage = ({
552
609
  return () => {
553
610
  unmountedRef.current = true;
554
611
  clearLoadingGuard();
555
- soundRef.current?.unloadAsync();
612
+ releasePlayer();
556
613
  };
557
614
  // eslint-disable-next-line react-hooks/exhaustive-deps
558
615
  }, []);
@@ -560,8 +617,7 @@ const AudioMessage = ({
560
617
  // Full reset whenever the source changes (component reused for a new
561
618
  // message / re-render with a different src).
562
619
  useEffect(() => {
563
- soundRef.current?.unloadAsync();
564
- soundRef.current = null;
620
+ releasePlayer();
565
621
  preparedRef.current = null;
566
622
  bridgeReadyRef.current = false;
567
623
  injectedRef.current = false;
@@ -599,6 +655,8 @@ const AudioMessage = ({
599
655
  }) : null, /*#__PURE__*/_jsxs(View, {
600
656
  style: styles.container,
601
657
  children: [/*#__PURE__*/_jsx(TouchableOpacity, {
658
+ testID: "audio-play-button",
659
+ accessibilityLabel: "audio-play-button",
602
660
  style: [styles.playButton, {
603
661
  backgroundColor: primaryColor
604
662
  }],
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","View","TouchableOpacity","Text","StyleSheet","ActivityIndicator","Platform","Audio","FileSystem","WebView","PauseIcon","PlayIcon","useChatSettingState","getIosAudioPlaybackCacheExtension","pushLog","devPushLog","jsx","_jsx","jsxs","_jsxs","formatTime","millis","safe","Number","isFinite","totalSec","Math","floor","min","sec","toString","padStart","MAX_DECODE_BYTES","hashString","value","hash","i","length","charCodeAt","abs","withTimeout","promise","ms","label","timer","Promise","race","_","reject","setTimeout","Error","clearTimeout","logAudioDebug","message","details","__DEV__","console","log","B64_ALPHABET","decodeBase64Head","b64","maxBytes","out","buffer","bits","ch","idx","indexOf","push","detectContainer","bytes","getContainerExtension","container","requiresWebAudioDecode","OS","WEB_DECODER_HTML","AudioMessage","src","mimeType","fileName","originalName","config","soundRef","webViewRef","preparedRef","bridgeReadyRef","injectedRef","didFinishRef","unmountedRef","loadingTimerRef","isPlaying","setIsPlaying","isLoading","setIsLoading","playbackError","setPlaybackError","position","setPosition","duration","setDuration","webViewEnabled","setWebViewEnabled","primaryColor","colors","primary","clearLoadingGuard","current","fail","reason","error","name","String","armLoadingGuard","prepareSource","test","prepared","localUri","cacheDirectory","base","part","partInfo","getInfoAsync","exists","download","downloadAsync","uri","status","undefined","head","readAsStringAsync","encoding","EncodingType","Base64","base64","info","size","ext","mime","url","finalUri","finalInfo","deleteAsync","idempotent","catch","moveAsync","from","to","platform","decode","maybeInjectDecode","injectJavaScript","JSON","stringify","onPlaybackStatusUpdate","isLoaded","positionMillis","durationMillis","didJustFinish","setStatusAsync","shouldPlay","startNativePlayback","setAudioModeAsync","playsInSilentModeIOS","sound","Sound","createAsync","unloadAsync","onDecoded","wavBase64","wavUri","writeAsStringAsync","handleWebMessage","event","payload","parse","nativeEvent","data","type","wavBytes","togglePlayback","pauseAsync","setPositionAsync","playAsync","progress","style","styles","root","children","decoderHost","pointerEvents","ref","source","html","originWhitelist","onMessage","javaScriptEnabled","domStorageEnabled","scrollEnabled","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","hiddenWebView","playButton","backgroundColor","onPress","disabled","activeOpacity","color","iconWrap","width","height","progressContainer","progressTrack","progressFill","progressRow","time","create","top","left","overflow","opacity","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","maxWidth","borderRadius","justifyContent","marginLeft","flex","fontSize","fontWeight"],"sourceRoot":"../../../../src","sources":["components/styled/AudioMessage.tsx"],"mappings":"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K,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;IAC/D,OAAO,KAAK;EACd;EACA,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAACA,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;IACnD;IACA,OAAOA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK;EAC/D;EACA,OAAO,SAAS;AAClB,CAAC;AAED,MAAMC,qBAAqB,GAAIC,SAAyB,IAAK;EAC3D,QAAQA,SAAS;IACf,KAAK,MAAM;MACT,OAAO,OAAO;IAChB,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf;MACE,OAAO,MAAM;EACjB;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,GAAID,SAAyB,IACvDlE,QAAQ,CAACoE,EAAE,KAAK,KAAK,KAAKF,SAAS,KAAK,MAAM,IAAIA,SAAS,KAAK,KAAK,CAAC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,gBAAgB,GAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB3C,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useRef","useState","View","TouchableOpacity","Text","StyleSheet","ActivityIndicator","Platform","createAudioPlayer","setAudioModeAsync","FileSystem","WebView","PauseIcon","PlayIcon","useChatSettingState","getIosAudioPlaybackCacheExtension","pushLog","devPushLog","jsx","_jsx","jsxs","_jsxs","formatTime","millis","safe","Number","isFinite","totalSec","Math","floor","min","sec","toString","padStart","MAX_DECODE_BYTES","hashString","value","hash","i","length","charCodeAt","abs","withTimeout","promise","ms","label","timer","Promise","race","_","reject","setTimeout","Error","clearTimeout","logAudioDebug","message","details","__DEV__","console","log","B64_ALPHABET","decodeBase64Head","b64","maxBytes","out","buffer","bits","ch","idx","indexOf","push","detectContainer","bytes","getContainerExtension","container","requiresWebAudioDecode","OS","WEB_DECODER_HTML","AudioMessage","src","mimeType","fileName","originalName","config","soundRef","statusSubRef","webViewRef","preparedRef","bridgeReadyRef","injectedRef","didFinishRef","unmountedRef","loadingTimerRef","isPlaying","setIsPlaying","isLoading","setIsLoading","playbackError","setPlaybackError","position","setPosition","duration","setDuration","webViewEnabled","setWebViewEnabled","primaryColor","colors","primary","clearLoadingGuard","current","releasePlayer","remove","player","pause","fail","reason","error","name","String","armLoadingGuard","prepareSource","test","prepared","localUri","cacheDirectory","base","part","partInfo","getInfoAsync","exists","download","downloadAsync","uri","status","undefined","head","readAsStringAsync","encoding","EncodingType","Base64","base64","info","size","ext","mime","url","finalUri","finalInfo","deleteAsync","idempotent","catch","moveAsync","from","to","platform","decode","maybeInjectDecode","injectJavaScript","JSON","stringify","onPlaybackStatusUpdate","isLoaded","max","currentTime","playing","didJustFinish","seekTo","startNativePlayback","playsInSilentMode","updateInterval","settleLoaded","loaded","resolve","subscription","addListener","play","onDecoded","durationMillis","wavBase64","wavUri","writeAsStringAsync","handleWebMessage","event","payload","parse","nativeEvent","data","type","wavBytes","togglePlayback","progress","style","styles","root","children","decoderHost","pointerEvents","ref","source","html","originWhitelist","onMessage","javaScriptEnabled","domStorageEnabled","scrollEnabled","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","hiddenWebView","testID","accessibilityLabel","playButton","backgroundColor","onPress","disabled","activeOpacity","color","iconWrap","width","height","progressContainer","progressTrack","progressFill","progressRow","time","create","top","left","overflow","opacity","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","maxWidth","borderRadius","justifyContent","marginLeft","flex","fontSize","fontWeight"],"sourceRoot":"../../../../src","sources":["components/styled/AudioMessage.tsx"],"mappings":"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C,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;IAC/D,OAAO,KAAK;EACd;EACA,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAACA,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;IACnD;IACA,OAAOA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK;EAC/D;EACA,OAAO,SAAS;AAClB,CAAC;AAED,MAAMC,qBAAqB,GAAIC,SAAyB,IAAK;EAC3D,QAAQA,SAAS;IACf,KAAK,MAAM;MACT,OAAO,OAAO;IAChB,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf;MACE,OAAO,MAAM;EACjB;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,GAAID,SAAyB,IACvDnE,QAAQ,CAACqE,EAAE,KAAK,KAAK,KAAKF,SAAS,KAAK,MAAM,IAAIA,SAAS,KAAK,KAAK,CAAC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,gBAAgB,GAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB3C,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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","ignoreList":[]}