@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
@@ -5,6 +5,23 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getDataFromXml = void 0;
7
7
  var _transformTranslatations = require("./transformTranslatations");
8
+ // Tolerant JSON parse: a malformed `translations` attr must not reject the
9
+ // whole stanza (which would silently drop the message). Mirrors the web
10
+ // SDK's safeJsonParse.
11
+ const safeJsonParse = (value, fallback) => {
12
+ if (typeof value !== 'string' || !value) {
13
+ return fallback;
14
+ }
15
+ try {
16
+ return JSON.parse(value);
17
+ } catch {
18
+ return fallback;
19
+ }
20
+ };
21
+
22
+ // Keep only well-formed translation entries (drops partial/garbage items),
23
+ // same shape guard the web SDK applies before transformArrayToObject.
24
+ const normalizeTranslations = value => Array.isArray(value) ? value.filter(item => !!item && typeof item === 'object' && typeof item.translatedText === 'string' && typeof item.language === 'string' && typeof item.languageName === 'string') : [];
8
25
  const extractTimestamp = (str, stanza) => {
9
26
  if (!str) {
10
27
  return null;
@@ -27,7 +44,8 @@ const getDataFromXml = async stanza => {
27
44
  }
28
45
  const body = fullData?.getChild('body')?.getText() || undefined;
29
46
  const deleted = !!fullData?.getChild('deleted');
30
- const translations = fullData?.getChild('translations')?.attrs?.value ? (0, _transformTranslatations.transformArrayToObject)(JSON.parse(fullData.getChild('translations').attrs.value).translates) : undefined;
47
+ const translationPayload = safeJsonParse(fullData?.getChild('translations')?.attrs?.value, {});
48
+ const translations = fullData?.getChild('translations')?.attrs?.value ? (0, _transformTranslatations.transformArrayToObject)(normalizeTranslations(translationPayload.translates)) : undefined;
31
49
  const langSource = fullData?.getChild('translate')?.attrs?.source;
32
50
  const numericPart = /\d{13,}/.exec(id || '')?.[0];
33
51
  const date = numericPart ? new Date(+numericPart.slice(0, 13)).toISOString() : new Date().toISOString();
@@ -1 +1 @@
1
- {"version":3,"names":["_transformTranslatations","require","extractTimestamp","str","stanza","console","log","toString","timestamp","slice","getDataFromXml","fullData","getChild","xmppId","attrs","id","xmppFrom","from","roomJid","userWallet","split","Date","now","body","getText","undefined","deleted","translations","value","transformArrayToObject","JSON","parse","translates","langSource","source","numericPart","exec","date","toISOString","data","photoURL","photo","user","dataAttrs","exports"],"sourceRoot":"../../../src","sources":["helpers/getDataFromXml.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_transformTranslatations","require","safeJsonParse","value","fallback","JSON","parse","normalizeTranslations","Array","isArray","filter","item","translatedText","language","languageName","extractTimestamp","str","stanza","console","log","toString","timestamp","slice","getDataFromXml","fullData","getChild","xmppId","attrs","id","xmppFrom","from","roomJid","userWallet","split","Date","now","body","getText","undefined","deleted","translationPayload","translations","transformArrayToObject","translates","langSource","source","numericPart","exec","date","toISOString","data","photoURL","photo","user","dataAttrs","exports"],"sourceRoot":"../../../src","sources":["helpers/getDataFromXml.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.handleCallPush = void 0;
7
+ var _roomStore = require("../roomStore");
8
+ var _callSlice = require("../roomStore/callSlice");
9
+ var _callPush = require("./callPush");
10
+ /**
11
+ * Turn an incoming-call push into a ringing call.
12
+ *
13
+ * On mobile the XMPP socket dies whenever the OS backgrounds or kills the
14
+ * app, and the `call-token` stanza that normally opens the ring screen is
15
+ * lost with it. The backend also delivers the call as a data push, so this
16
+ * is the path every call takes when the app was not in the foreground.
17
+ *
18
+ * Returns true when the payload WAS a call push (whether or not it could
19
+ * be rung), so the caller knows to stop and not also show it as a chat
20
+ * notification. A user should never get a "new message: call-state" toast.
21
+ */
22
+ const handleCallPush = data => {
23
+ if (!(0, _callPush.isCallPush)(data)) {
24
+ return false;
25
+ }
26
+ const parsed = (0, _callPush.parseCallPush)(data);
27
+ const state = _roomStore.store.getState();
28
+
29
+ // Calls off in this deployment: swallow the push rather than ringing a
30
+ // screen the host never opted into.
31
+ if (state.chatSettingStore.config?.videoCalls?.enabled !== true) {
32
+ return true;
33
+ }
34
+
35
+ // Already ringing or in this exact call (the push raced the stanza, or
36
+ // two pushes arrived). Re-dispatching would reset startedAt and restart
37
+ // the ring, so leave the existing call alone.
38
+ const current = state.call;
39
+ if (current.phase !== 'idle') {
40
+ const sameCall = !!parsed.callId && parsed.callId === current.callId || !!parsed.roomBareName && parsed.roomBareName === current.roomBareName;
41
+ if (sameCall || current.phase === 'in-call') {
42
+ return true;
43
+ }
44
+ }
45
+
46
+ // Without a LiveKit token there is nothing to accept: the push is only
47
+ // an alert. Ringing anyway would give the user an Accept button that
48
+ // cannot work, so treat it as handled and let the stanza (once the
49
+ // socket is back up) open the real ring screen.
50
+ if (!parsed.token) {
51
+ return true;
52
+ }
53
+
54
+ // Resolve the full room JID from the local room map. The push carries
55
+ // the bare name; callSlice and the hangup signal both want the JID.
56
+ const rooms = state.rooms.rooms || {};
57
+ const resolved = Object.values(rooms).find(room => (room?.jid || '').split('@')[0] === parsed.roomBareName || room?.jid === parsed.roomRef);
58
+ const roomJid = resolved?.jid || (parsed.roomRef && parsed.roomRef.includes('@') ? parsed.roomRef : '');
59
+ if (!roomJid) {
60
+ return true;
61
+ }
62
+ _roomStore.store.dispatch((0, _callSlice.setIncomingCallToken)({
63
+ roomJid,
64
+ roomName: parsed.callerName || resolved?.name || null,
65
+ roomBareName: parsed.roomBareName,
66
+ token: parsed.token,
67
+ kind: parsed.kind,
68
+ callId: parsed.callId,
69
+ peerXmppUsername: parsed.callerXmppUsername
70
+ }));
71
+ return true;
72
+ };
73
+ exports.handleCallPush = handleCallPush;
74
+ //# sourceMappingURL=incomingCallFromPush.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_roomStore","require","_callSlice","_callPush","handleCallPush","data","isCallPush","parsed","parseCallPush","state","store","getState","chatSettingStore","config","videoCalls","enabled","current","call","phase","sameCall","callId","roomBareName","token","rooms","resolved","Object","values","find","room","jid","split","roomRef","roomJid","includes","dispatch","setIncomingCallToken","roomName","callerName","name","kind","peerXmppUsername","callerXmppUsername","exports"],"sourceRoot":"../../../src","sources":["helpers/incomingCallFromPush.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,cAAc,GACzBC,IAA4C,IAChC;EACZ,IAAI,CAAC,IAAAC,oBAAU,EAACD,IAAI,CAAC,EAAE;IACrB,OAAO,KAAK;EACd;EAEA,MAAME,MAAM,GAAG,IAAAC,uBAAa,EAACH,IAAI,CAAC;EAClC,MAAMI,KAAK,GAAGC,gBAAK,CAACC,QAAQ,CAAC,CAAC;;EAE9B;EACA;EACA,IAAIF,KAAK,CAACG,gBAAgB,CAACC,MAAM,EAAEC,UAAU,EAAEC,OAAO,KAAK,IAAI,EAAE;IAC/D,OAAO,IAAI;EACb;;EAEA;EACA;EACA;EACA,MAAMC,OAAO,GAAGP,KAAK,CAACQ,IAAI;EAC1B,IAAID,OAAO,CAACE,KAAK,KAAK,MAAM,EAAE;IAC5B,MAAMC,QAAQ,GACX,CAAC,CAACZ,MAAM,CAACa,MAAM,IAAIb,MAAM,CAACa,MAAM,KAAKJ,OAAO,CAACI,MAAM,IACnD,CAAC,CAACb,MAAM,CAACc,YAAY,IAAId,MAAM,CAACc,YAAY,KAAKL,OAAO,CAACK,YAAa;IACzE,IAAIF,QAAQ,IAAIH,OAAO,CAACE,KAAK,KAAK,SAAS,EAAE;MAC3C,OAAO,IAAI;IACb;EACF;;EAEA;EACA;EACA;EACA;EACA,IAAI,CAACX,MAAM,CAACe,KAAK,EAAE;IACjB,OAAO,IAAI;EACb;;EAEA;EACA;EACA,MAAMC,KAAK,GAAGd,KAAK,CAACc,KAAK,CAACA,KAAK,IAAI,CAAC,CAAC;EACrC,MAAMC,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAACH,KAAK,CAAC,CAACI,IAAI,CACvCC,IAAS,IACR,CAACA,IAAI,EAAEC,GAAG,IAAI,EAAE,EAAEC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAKvB,MAAM,CAACc,YAAY,IACvDO,IAAI,EAAEC,GAAG,KAAKtB,MAAM,CAACwB,OACzB,CAAgD;EAEhD,MAAMC,OAAO,GACXR,QAAQ,EAAEK,GAAG,KACZtB,MAAM,CAACwB,OAAO,IAAIxB,MAAM,CAACwB,OAAO,CAACE,QAAQ,CAAC,GAAG,CAAC,GAAG1B,MAAM,CAACwB,OAAO,GAAG,EAAE,CAAC;EACxE,IAAI,CAACC,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEAtB,gBAAK,CAACwB,QAAQ,CACZ,IAAAC,+BAAoB,EAAC;IACnBH,OAAO;IACPI,QAAQ,EAAE7B,MAAM,CAAC8B,UAAU,IAAIb,QAAQ,EAAEc,IAAI,IAAI,IAAI;IACrDjB,YAAY,EAAEd,MAAM,CAACc,YAAY;IACjCC,KAAK,EAAEf,MAAM,CAACe,KAAK;IACnBiB,IAAI,EAAEhC,MAAM,CAACgC,IAAI;IACjBnB,MAAM,EAAEb,MAAM,CAACa,MAAM;IACrBoB,gBAAgB,EAAEjC,MAAM,CAACkC;EAC3B,CAAC,CACH,CAAC;EAED,OAAO,IAAI;AACb,CAAC;AAACC,OAAA,CAAAtC,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -56,6 +56,18 @@ function insertMessageWithDelimiter(roomMessages, message, lastViewedTimestamp)
56
56
  if (lastViewedTimestamp && !roomMessages.some(msg => msg.id === 'delimiter-new') && (0, _dateComparison.isDateAfter)(newMessageDate.toString(), lastViewedTimestamp.toString())) {
57
57
  const delimiterIndex = roomMessages.findIndex(msg => (0, _dateComparison.isDateAfter)(msg.date?.toString() ?? '', lastViewedTimestamp.toString()));
58
58
  if (delimiterIndex !== -1) {
59
+ // The divider's date is what ORDERS it: roomsSlice re-sorts every
60
+ // merged page by timestamp (see `byMs`), so a divider stamped with
61
+ // `new Date()` — i.e. now — sorted past every real message and
62
+ // rendered at the very bottom, BELOW the new messages it is
63
+ // supposed to introduce. Anchor it a hair before the first unread
64
+ // instead, which is where it belongs and where any later sort keeps
65
+ // it. Derived from that message rather than from
66
+ // lastViewedTimestamp so it works whatever format the caller passes.
67
+ const firstUnreadMs = Date.parse(String(roomMessages[delimiterIndex]?.date ?? ''));
68
+ const rawLastViewed = lastViewedTimestamp.toString();
69
+ const lastViewedMs = Date.parse(rawLastViewed) || Number(rawLastViewed) || Date.now();
70
+ const anchorMs = Number.isFinite(firstUnreadMs) ? firstUnreadMs - 1 : lastViewedMs;
59
71
  roomMessages.splice(delimiterIndex, 0, {
60
72
  id: 'delimiter-new',
61
73
  user: {
@@ -64,7 +76,7 @@ function insertMessageWithDelimiter(roomMessages, message, lastViewedTimestamp)
64
76
  token: '',
65
77
  refreshToken: ''
66
78
  },
67
- date: new Date().toString(),
79
+ date: new Date(anchorMs).toISOString(),
68
80
  body: 'New Messages',
69
81
  roomJid: ''
70
82
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_dateComparison","require","deepMerge","target","source","key","Array","isArray","insertMessageWithDelimiter","roomMessages","message","lastViewedTimestamp","existingIndex","findIndex","msg","id","xmppId","existing","preservedUserId","user","merged","pending","newMessageDate","date","lastMessage","length","firstMessage","isDateAfter","toString","index","push","some","delimiterIndex","splice","name","undefined","token","refreshToken","Date","body","roomJid","isDateBefore","unshift","i"],"sourceRoot":"../../../src","sources":["helpers/insertMessageWithDelimiter.ts"],"mappings":";;;;;;AACA,IAAAA,eAAA,GAAAC,OAAA;AAEA,SAASC,SAASA,CAACC,MAAW,EAAEC,MAAW,EAAO;EAChD,KAAK,MAAMC,GAAG,IAAID,MAAM,EAAE;IACxB,IACEA,MAAM,CAACC,GAAG,CAAC,IACX,OAAOD,MAAM,CAACC,GAAG,CAAC,KAAK,QAAQ,IAC/B,CAACC,KAAK,CAACC,OAAO,CAACH,MAAM,CAACC,GAAG,CAAC,CAAC,EAC3B;MACAF,MAAM,CAACE,GAAG,CAAC,GAAGH,SAAS,CAACC,MAAM,CAACE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAED,MAAM,CAACC,GAAG,CAAC,CAAC;IACzD,CAAC,MAAM;MACLF,MAAM,CAACE,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;IAC3B;EACF;EACA,OAAOF,MAAM;AACf;AAEO,SAASK,0BAA0BA,CACxCC,YAAiC,EACjCC,OAAiB,EACjBC,mBAAsD,EACtD;EACA,MAAMC,aAAa,GAAGH,YAAY,CAACI,SAAS,CACzCC,GAAG,IACFA,GAAG,CAACC,EAAE,KAAKL,OAAO,CAACK,EAAE,IACpBL,OAAO,CAACM,MAAM,IAAIF,GAAG,CAACC,EAAE,KAAKL,OAAO,CAACM,MAAO,IAC5CF,GAAG,CAACE,MAAM,IAAIF,GAAG,CAACE,MAAM,KAAKN,OAAO,CAACK,EAC1C,CAAC;EAED,IAAIH,aAAa,KAAK,CAAC,CAAC,EAAE;IACxB,MAAMK,QAAQ,GAAGR,YAAY,CAACG,aAAa,CAAC;IAC5C;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMM,eAAe,GAClBD,QAAQ,EAAUE,IAAI,EAAEJ,EAAE,IAAKL,OAAO,EAAUS,IAAI,EAAEJ,EAAE;IAC3D,MAAMK,MAAM,GAAGlB,SAAS,CAAC;MAAE,GAAGe;IAAS,CAAC,EAAE;MAAE,GAAGP,OAAO;MAAEW,OAAO,EAAE;IAAM,CAAC,CAAC;IACzE,IAAID,MAAM,CAACD,IAAI,IAAID,eAAe,EAAE;MAClCE,MAAM,CAACD,IAAI,CAACJ,EAAE,GAAGG,eAAe;IAClC;IACAT,YAAY,CAACG,aAAa,CAAC,GAAGQ,MAAM;IACpC;EACF;EAEA,MAAME,cAAc,GAAGZ,OAAO,CAACa,IAAI;EACnC,MAAMC,WAAW,GAAGf,YAAY,CAACA,YAAY,CAACgB,MAAM,GAAG,CAAC,CAAC;EACzD,MAAMC,YAAY,GAAGjB,YAAY,CAAC,CAAC,CAAC;EAEpC,IAAI,IAAAkB,2BAAW,EAACL,cAAc,CAACM,QAAQ,CAAC,CAAC,EAAEJ,WAAW,EAAED,IAAI,EAAEK,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;IAC/E,MAAMC,KAAK,GAAGpB,YAAY,CAACI,SAAS,CACjCC,GAAG,IAAKA,GAAG,CAACC,EAAE,KAAKL,OAAO,CAACM,MAAM,IAAIF,GAAG,CAACC,EAAE,KAAKL,OAAO,CAACK,EAC3D,CAAC;IAED,IAAIc,KAAK,KAAK,CAAC,CAAC,EAAE;MAChBpB,YAAY,CAACoB,KAAK,CAAC,GAAG;QAAE,GAAGnB,OAAO;QAAEK,EAAE,EAAEL,OAAO,CAACK,EAAE;QAAEM,OAAO,EAAE;MAAM,CAAC;IACtE,CAAC,MAAM;MACLZ,YAAY,CAACqB,IAAI,CAACpB,OAAO,CAAC;IAC5B;IAEA,IACEC,mBAAmB,IACnB,CAACF,YAAY,CAACsB,IAAI,CAAEjB,GAAG,IAAKA,GAAG,CAACC,EAAE,KAAK,eAAe,CAAC,IACvD,IAAAY,2BAAW,EAACL,cAAc,CAACM,QAAQ,CAAC,CAAC,EAAEjB,mBAAmB,CAACiB,QAAQ,CAAC,CAAC,CAAC,EACtE;MACA,MAAMI,cAAc,GAAGvB,YAAY,CAACI,SAAS,CAAEC,GAAG,IAChD,IAAAa,2BAAW,EAACb,GAAG,CAACS,IAAI,EAAEK,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAEjB,mBAAmB,CAACiB,QAAQ,CAAC,CAAC,CACxE,CAAC;MAEC,IAAII,cAAc,KAAK,CAAC,CAAC,EAAE;QACzBvB,YAAY,CAACwB,MAAM,CAACD,cAAc,EAAE,CAAC,EAAE;UACrCjB,EAAE,EAAE,eAAe;UACnBI,IAAI,EAAE;YACNJ,EAAE,EAAE,QAAQ;YACZmB,IAAI,EAAEC,SAAS;YACfC,KAAK,EAAE,EAAE;YACTC,YAAY,EAAE;UAChB,CAAC;UACDd,IAAI,EAAE,IAAIe,IAAI,CAAC,CAAC,CAACV,QAAQ,CAAC,CAAC;UACzBW,IAAI,EAAE,cAAc;UACpBC,OAAO,EAAE;QACX,CAAC,CAAC;MACJ;IACF;EACJ,CAAC,MAAM,IACL,IAAAC,4BAAY,EAACnB,cAAc,CAACM,QAAQ,CAAC,CAAC,EAAEF,YAAY,EAAEH,IAAI,EAAEK,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,EAC7E;IACAnB,YAAY,CAACiC,OAAO,CAAChC,OAAO,CAAC;EAC/B,CAAC,MAAM;IACL,KAAK,IAAIiC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGlC,YAAY,CAACgB,MAAM,EAAEkB,CAAC,EAAE,EAAE;MAC5C,IACE,IAAAF,4BAAY,EAACnB,cAAc,CAACM,QAAQ,CAAC,CAAC,EAAEnB,YAAY,CAACkC,CAAC,CAAC,CAACpB,IAAI,EAAEK,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,EAC/E;QACAnB,YAAY,CAACwB,MAAM,CAACU,CAAC,EAAE,CAAC,EAAEjC,OAAO,CAAC;QAClC;MACF;IACF;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_dateComparison","require","deepMerge","target","source","key","Array","isArray","insertMessageWithDelimiter","roomMessages","message","lastViewedTimestamp","existingIndex","findIndex","msg","id","xmppId","existing","preservedUserId","user","merged","pending","newMessageDate","date","lastMessage","length","firstMessage","isDateAfter","toString","index","push","some","delimiterIndex","firstUnreadMs","Date","parse","String","rawLastViewed","lastViewedMs","Number","now","anchorMs","isFinite","splice","name","undefined","token","refreshToken","toISOString","body","roomJid","isDateBefore","unshift","i"],"sourceRoot":"../../../src","sources":["helpers/insertMessageWithDelimiter.ts"],"mappings":";;;;;;AACA,IAAAA,eAAA,GAAAC,OAAA;AAEA,SAASC,SAASA,CAACC,MAAW,EAAEC,MAAW,EAAO;EAChD,KAAK,MAAMC,GAAG,IAAID,MAAM,EAAE;IACxB,IACEA,MAAM,CAACC,GAAG,CAAC,IACX,OAAOD,MAAM,CAACC,GAAG,CAAC,KAAK,QAAQ,IAC/B,CAACC,KAAK,CAACC,OAAO,CAACH,MAAM,CAACC,GAAG,CAAC,CAAC,EAC3B;MACAF,MAAM,CAACE,GAAG,CAAC,GAAGH,SAAS,CAACC,MAAM,CAACE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAED,MAAM,CAACC,GAAG,CAAC,CAAC;IACzD,CAAC,MAAM;MACLF,MAAM,CAACE,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;IAC3B;EACF;EACA,OAAOF,MAAM;AACf;AAEO,SAASK,0BAA0BA,CACxCC,YAAiC,EACjCC,OAAiB,EACjBC,mBAAsD,EACtD;EACA,MAAMC,aAAa,GAAGH,YAAY,CAACI,SAAS,CACzCC,GAAG,IACFA,GAAG,CAACC,EAAE,KAAKL,OAAO,CAACK,EAAE,IACpBL,OAAO,CAACM,MAAM,IAAIF,GAAG,CAACC,EAAE,KAAKL,OAAO,CAACM,MAAO,IAC5CF,GAAG,CAACE,MAAM,IAAIF,GAAG,CAACE,MAAM,KAAKN,OAAO,CAACK,EAC1C,CAAC;EAED,IAAIH,aAAa,KAAK,CAAC,CAAC,EAAE;IACxB,MAAMK,QAAQ,GAAGR,YAAY,CAACG,aAAa,CAAC;IAC5C;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMM,eAAe,GAClBD,QAAQ,EAAUE,IAAI,EAAEJ,EAAE,IAAKL,OAAO,EAAUS,IAAI,EAAEJ,EAAE;IAC3D,MAAMK,MAAM,GAAGlB,SAAS,CAAC;MAAE,GAAGe;IAAS,CAAC,EAAE;MAAE,GAAGP,OAAO;MAAEW,OAAO,EAAE;IAAM,CAAC,CAAC;IACzE,IAAID,MAAM,CAACD,IAAI,IAAID,eAAe,EAAE;MAClCE,MAAM,CAACD,IAAI,CAACJ,EAAE,GAAGG,eAAe;IAClC;IACAT,YAAY,CAACG,aAAa,CAAC,GAAGQ,MAAM;IACpC;EACF;EAEA,MAAME,cAAc,GAAGZ,OAAO,CAACa,IAAI;EACnC,MAAMC,WAAW,GAAGf,YAAY,CAACA,YAAY,CAACgB,MAAM,GAAG,CAAC,CAAC;EACzD,MAAMC,YAAY,GAAGjB,YAAY,CAAC,CAAC,CAAC;EAEpC,IAAI,IAAAkB,2BAAW,EAACL,cAAc,CAACM,QAAQ,CAAC,CAAC,EAAEJ,WAAW,EAAED,IAAI,EAAEK,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;IAC/E,MAAMC,KAAK,GAAGpB,YAAY,CAACI,SAAS,CACjCC,GAAG,IAAKA,GAAG,CAACC,EAAE,KAAKL,OAAO,CAACM,MAAM,IAAIF,GAAG,CAACC,EAAE,KAAKL,OAAO,CAACK,EAC3D,CAAC;IAED,IAAIc,KAAK,KAAK,CAAC,CAAC,EAAE;MAChBpB,YAAY,CAACoB,KAAK,CAAC,GAAG;QAAE,GAAGnB,OAAO;QAAEK,EAAE,EAAEL,OAAO,CAACK,EAAE;QAAEM,OAAO,EAAE;MAAM,CAAC;IACtE,CAAC,MAAM;MACLZ,YAAY,CAACqB,IAAI,CAACpB,OAAO,CAAC;IAC5B;IAEA,IACEC,mBAAmB,IACnB,CAACF,YAAY,CAACsB,IAAI,CAAEjB,GAAG,IAAKA,GAAG,CAACC,EAAE,KAAK,eAAe,CAAC,IACvD,IAAAY,2BAAW,EAACL,cAAc,CAACM,QAAQ,CAAC,CAAC,EAAEjB,mBAAmB,CAACiB,QAAQ,CAAC,CAAC,CAAC,EACtE;MACA,MAAMI,cAAc,GAAGvB,YAAY,CAACI,SAAS,CAAEC,GAAG,IAChD,IAAAa,2BAAW,EAACb,GAAG,CAACS,IAAI,EAAEK,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAEjB,mBAAmB,CAACiB,QAAQ,CAAC,CAAC,CACxE,CAAC;MAED,IAAII,cAAc,KAAK,CAAC,CAAC,EAAE;QACzB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAMC,aAAa,GAAGC,IAAI,CAACC,KAAK,CAC9BC,MAAM,CAAC3B,YAAY,CAACuB,cAAc,CAAC,EAAET,IAAI,IAAI,EAAE,CACjD,CAAC;QACD,MAAMc,aAAa,GAAG1B,mBAAmB,CAACiB,QAAQ,CAAC,CAAC;QACpD,MAAMU,YAAY,GAChBJ,IAAI,CAACC,KAAK,CAACE,aAAa,CAAC,IAAIE,MAAM,CAACF,aAAa,CAAC,IAAIH,IAAI,CAACM,GAAG,CAAC,CAAC;QAClE,MAAMC,QAAQ,GAAGF,MAAM,CAACG,QAAQ,CAACT,aAAa,CAAC,GAC3CA,aAAa,GAAG,CAAC,GACjBK,YAAY;QAEhB7B,YAAY,CAACkC,MAAM,CAACX,cAAc,EAAE,CAAC,EAAE;UACrCjB,EAAE,EAAE,eAAe;UACnBI,IAAI,EAAE;YACJJ,EAAE,EAAE,QAAQ;YACZ6B,IAAI,EAAEC,SAAS;YACfC,KAAK,EAAE,EAAE;YACTC,YAAY,EAAE;UAChB,CAAC;UACDxB,IAAI,EAAE,IAAIW,IAAI,CAACO,QAAQ,CAAC,CAACO,WAAW,CAAC,CAAC;UACtCC,IAAI,EAAE,cAAc;UACpBC,OAAO,EAAE;QACX,CAAC,CAAC;MACJ;IACA;EACJ,CAAC,MAAM,IACL,IAAAC,4BAAY,EAAC7B,cAAc,CAACM,QAAQ,CAAC,CAAC,EAAEF,YAAY,EAAEH,IAAI,EAAEK,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,EAC7E;IACAnB,YAAY,CAAC2C,OAAO,CAAC1C,OAAO,CAAC;EAC/B,CAAC,MAAM;IACL,KAAK,IAAI2C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG5C,YAAY,CAACgB,MAAM,EAAE4B,CAAC,EAAE,EAAE;MAC5C,IACE,IAAAF,4BAAY,EAAC7B,cAAc,CAACM,QAAQ,CAAC,CAAC,EAAEnB,YAAY,CAAC4C,CAAC,CAAC,CAAC9B,IAAI,EAAEK,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,EAC/E;QACAnB,YAAY,CAACkC,MAAM,CAACU,CAAC,EAAE,CAAC,EAAE3C,OAAO,CAAC;QAClC;MACF;IACF;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isUnresolvedSenderId = void 0;
7
+ /**
8
+ * Whether a resolved sender "name" is really just an unresolved id.
9
+ *
10
+ * The name chain ends at the sender's JID localpart when `usersSet` has no
11
+ * entry and the wire carried no name. For a real member that never happens
12
+ * for long — the REST roster fills the cache in. But some senders are not
13
+ * members at all: a broadcast posted by the app itself arrives with the
14
+ * ROOM's own id as its occupant resource (e.g.
15
+ * `646cc8dc96d4a4dc8f7b2f2d_67f6823cf5995841ba431f06`), so no roster will
16
+ * ever resolve it and the bubble ends up captioned with 50 characters of
17
+ * hex.
18
+ *
19
+ * Ethora ids are `<24-hex appId>_<24-hex objectId>`, which is what this
20
+ * matches. A raw objectId on its own is matched too, since some senders
21
+ * carry only that half.
22
+ */
23
+ const ETHORA_ID = /^[0-9a-f]{24}(_[0-9a-f]{24})?$/i;
24
+ const isUnresolvedSenderId = name => {
25
+ const trimmed = String(name || '').trim();
26
+ if (!trimmed) {
27
+ return true;
28
+ }
29
+ return ETHORA_ID.test(trimmed);
30
+ };
31
+ exports.isUnresolvedSenderId = isUnresolvedSenderId;
32
+ //# sourceMappingURL=isUnresolvedSenderId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ETHORA_ID","isUnresolvedSenderId","name","trimmed","String","trim","test","exports"],"sourceRoot":"../../../src","sources":["helpers/isUnresolvedSenderId.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,SAAS,GAAG,iCAAiC;AAE5C,MAAMC,oBAAoB,GAAIC,IAAa,IAAc;EAC9D,MAAMC,OAAO,GAAGC,MAAM,CAACF,IAAI,IAAI,EAAE,CAAC,CAACG,IAAI,CAAC,CAAC;EACzC,IAAI,CAACF,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EACA,OAAOH,SAAS,CAACM,IAAI,CAACH,OAAO,CAAC;AAChC,CAAC;AAACI,OAAA,CAAAN,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -14,6 +14,7 @@ const useChatSettingState = () => {
14
14
  const selectedUser = (0, _reactRedux.useSelector)(state => state.chatSettingStore.selectedUser);
15
15
  const langSource = (0, _reactRedux.useSelector)(state => state.chatSettingStore.langSource);
16
16
  const client = (0, _reactRedux.useSelector)(state => state.chatSettingStore.client);
17
+ const translateMode = (0, _reactRedux.useSelector)(state => state.chatSettingStore.translateMode);
17
18
  return {
18
19
  user,
19
20
  activeFile,
@@ -22,6 +23,7 @@ const useChatSettingState = () => {
22
23
  deleteModal,
23
24
  selectedUser,
24
25
  langSource,
26
+ translateMode,
25
27
  client
26
28
  };
27
29
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_reactRedux","require","useChatSettingState","user","useSelector","state","chatSettingStore","activeFile","activeModal","config","deleteModal","selectedUser","langSource","client","exports"],"sourceRoot":"../../../src","sources":["hooks/useChatSettingState.tsx"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGO,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMC,IAAI,GAAG,IAAAC,uBAAW,EAAEC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACH,IAAI,CAAC;EAC3E,MAAMI,UAAU,GAAG,IAAAH,uBAAW,EAC3BC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACC,UAC/C,CAAC;EACD,MAAMC,WAAW,GAAG,IAAAJ,uBAAW,EAC5BC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACE,WAC/C,CAAC;EACD,MAAMC,MAAM,GAAG,IAAAL,uBAAW,EACvBC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACG,MAC/C,CAAC;EACD,MAAMC,WAAW,GAAG,IAAAN,uBAAW,EAC5BC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACI,WAC/C,CAAC;EACD,MAAMC,YAAY,GAAG,IAAAP,uBAAW,EAC7BC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACK,YAC/C,CAAC;EACD,MAAMC,UAAU,GAAG,IAAAR,uBAAW,EAC3BC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACM,UAC/C,CAAC;EACD,MAAMC,MAAM,GAAG,IAAAT,uBAAW,EACvBC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACO,MAC/C,CAAC;EAED,OAAO;IACLV,IAAI;IACJI,UAAU;IACVC,WAAW;IACXC,MAAM;IACNC,WAAW;IACXC,YAAY;IACZC,UAAU;IACVC;EACF,CAAC;AACH,CAAC;AAACC,OAAA,CAAAZ,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactRedux","require","useChatSettingState","user","useSelector","state","chatSettingStore","activeFile","activeModal","config","deleteModal","selectedUser","langSource","client","translateMode","exports"],"sourceRoot":"../../../src","sources":["hooks/useChatSettingState.tsx"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGO,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMC,IAAI,GAAG,IAAAC,uBAAW,EAAEC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACH,IAAI,CAAC;EAC3E,MAAMI,UAAU,GAAG,IAAAH,uBAAW,EAC3BC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACC,UAC/C,CAAC;EACD,MAAMC,WAAW,GAAG,IAAAJ,uBAAW,EAC5BC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACE,WAC/C,CAAC;EACD,MAAMC,MAAM,GAAG,IAAAL,uBAAW,EACvBC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACG,MAC/C,CAAC;EACD,MAAMC,WAAW,GAAG,IAAAN,uBAAW,EAC5BC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACI,WAC/C,CAAC;EACD,MAAMC,YAAY,GAAG,IAAAP,uBAAW,EAC7BC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACK,YAC/C,CAAC;EACD,MAAMC,UAAU,GAAG,IAAAR,uBAAW,EAC3BC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACM,UAC/C,CAAC;EACD,MAAMC,MAAM,GAAG,IAAAT,uBAAW,EACvBC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACO,MAC/C,CAAC;EACD,MAAMC,aAAa,GAAG,IAAAV,uBAAW,EAC9BC,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACQ,aAC/C,CAAC;EAED,OAAO;IACLX,IAAI;IACJI,UAAU;IACVC,WAAW;IACXC,MAAM;IACNC,WAAW;IACXC,YAAY;IACZC,UAAU;IACVE,aAAa;IACbD;EACF,CAAC;AACH,CAAC;AAACE,OAAA,CAAAb,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useMessageTranslation = void 0;
7
+ var _strings = require("../i18n/strings");
8
+ // "42", "+1 (555) 123-4567", "3.14159" — text with no actual letters has
9
+ // nothing to translate.
10
+ const hasNoLetters = text => !/\p{L}/u.test(text);
11
+
12
+ /**
13
+ * Translation for ONE message, into the reader's language only. Ported
14
+ * verbatim from the web SDK (src/hooks/useMessageTranslation.ts).
15
+ *
16
+ * Pure and synchronous — no HTTP call. Every translation this client ever
17
+ * shows arrives over XMPP already: the sender tags outgoing messages with
18
+ * `<translate source="xx"/>` (see sendTextMessageWithTranslateTag) and
19
+ * whatever process attaches actual translations does so server-side,
20
+ * landing on `message.translations` when the stanza is parsed (see
21
+ * getDataFromXml). This function only ever reads that — it never calls a
22
+ * translation service itself, so there's nothing to fail when one isn't
23
+ * reachable, and nothing to await.
24
+ */
25
+ const useMessageTranslation = (message, readerLocale, enabled = true) => {
26
+ const originalText = message?.body || '';
27
+ const source = message?.langSource;
28
+ const targetBase = (0, _strings.toBaseLanguage)(readerLocale || 'en');
29
+ const sourceBase = (0, _strings.toBaseLanguage)(source);
30
+
31
+ // Nothing to do when we don't know the source language, the message is
32
+ // already in the reader's language (region ignored: en-US vs en-CA is the
33
+ // same language, not a translation job), or there's no actual text to
34
+ // translate (a bare number, a phone number, an emoji-only reaction).
35
+ const trimmedText = originalText.trim();
36
+ const needsTranslation = enabled && !!trimmedText && !!source && sourceBase !== targetBase && !hasNoLetters(trimmedText);
37
+ const result = needsTranslation ? message?.translations?.[readerLocale || '']?.translatedText || message?.translations?.[targetBase]?.translatedText : undefined;
38
+
39
+ // A "translation" that's byte-identical to the original (mistagged
40
+ // langSource, a no-op from the source, matching proper nouns/numbers in
41
+ // otherwise-different text) is worse than nothing: it renders the same
42
+ // sentence twice. Treat identical-after-trim as "nothing to show".
43
+ const isRealTranslation = !!result && result.trim() !== originalText.trim();
44
+ return {
45
+ hasTranslation: isRealTranslation,
46
+ originalText,
47
+ displayText: isRealTranslation ? result : originalText
48
+ };
49
+ };
50
+ exports.useMessageTranslation = useMessageTranslation;
51
+ //# sourceMappingURL=useMessageTranslation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_strings","require","hasNoLetters","text","test","useMessageTranslation","message","readerLocale","enabled","originalText","body","source","langSource","targetBase","toBaseLanguage","sourceBase","trimmedText","trim","needsTranslation","result","translations","translatedText","undefined","isRealTranslation","hasTranslation","displayText","exports"],"sourceRoot":"../../../src","sources":["hooks/useMessageTranslation.ts"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAYA;AACA;AACA,MAAMC,YAAY,GAAIC,IAAY,IAAc,CAAC,QAAQ,CAACC,IAAI,CAACD,IAAI,CAAC;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAME,qBAAqB,GAAGA,CACnCC,OAA+D,EAC/DC,YAAqB,EACrBC,OAAO,GAAG,IAAI,KACc;EAC5B,MAAMC,YAAY,GAAGH,OAAO,EAAEI,IAAI,IAAI,EAAE;EACxC,MAAMC,MAAM,GAAGL,OAAO,EAAEM,UAAU;EAClC,MAAMC,UAAU,GAAG,IAAAC,uBAAc,EAACP,YAAY,IAAI,IAAI,CAAC;EACvD,MAAMQ,UAAU,GAAG,IAAAD,uBAAc,EAACH,MAAM,CAAC;;EAEzC;EACA;EACA;EACA;EACA,MAAMK,WAAW,GAAGP,YAAY,CAACQ,IAAI,CAAC,CAAC;EACvC,MAAMC,gBAAgB,GACpBV,OAAO,IACP,CAAC,CAACQ,WAAW,IACb,CAAC,CAACL,MAAM,IACRI,UAAU,KAAKF,UAAU,IACzB,CAACX,YAAY,CAACc,WAAW,CAAC;EAE5B,MAAMG,MAAM,GAAGD,gBAAgB,GAC3BZ,OAAO,EAAEc,YAAY,GAAGb,YAAY,IAAI,EAAE,CAAC,EAAEc,cAAc,IAC3Df,OAAO,EAAEc,YAAY,GAAGP,UAAU,CAAC,EAAEQ,cAAc,GACnDC,SAAS;;EAEb;EACA;EACA;EACA;EACA,MAAMC,iBAAiB,GACrB,CAAC,CAACJ,MAAM,IAAIA,MAAM,CAACF,IAAI,CAAC,CAAC,KAAKR,YAAY,CAACQ,IAAI,CAAC,CAAC;EAEnD,OAAO;IACLO,cAAc,EAAED,iBAAiB;IACjCd,YAAY;IACZgB,WAAW,EAAEF,iBAAiB,GAAIJ,MAAM,GAAcV;EACxD,CAAC;AACH,CAAC;AAACiB,OAAA,CAAArB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -11,6 +11,7 @@ var _pushSubscriptionService = require("../services/pushSubscriptionService");
11
11
  var _reactRedux = require("react-redux");
12
12
  var _useLocalStorage = require("./useLocalStorage");
13
13
  var _roomsSlice = require("../roomStore/roomsSlice");
14
+ var _incomingCallFromPush = require("../helpers/incomingCallFromPush");
14
15
  function usePushNotifications() {
15
16
  const [fcmToken, setFcmToken] = (0, _react.useState)(null);
16
17
  const [notification, setNotification] = (0, _react.useState)(null);
@@ -25,7 +26,11 @@ function usePushNotifications() {
25
26
  get
26
27
  } = (0, _useLocalStorage.useLocalStorage)('fcmToken');
27
28
  const handleNotificationPress = remoteMessage => {
28
- console.log('[usePushNotifications] Notification pressed:', JSON.stringify(remoteMessage, null, 2));
29
+ // Tapping a call notification (or launching the app from one) should
30
+ // land on the ring screen, not on the chat room.
31
+ if ((0, _incomingCallFromPush.handleCallPush)(remoteMessage?.data)) {
32
+ return;
33
+ }
29
34
  const jid = remoteMessage?.data?.jid || remoteMessage?.data?.chatJid || remoteMessage?.jid;
30
35
  if (jid) {
31
36
  dispatch((0, _roomsSlice.setPendingNotificationJid)(jid));
@@ -54,10 +59,15 @@ function usePushNotifications() {
54
59
  // synchronous throw before the try-block ran would still leak.
55
60
  initToken().catch(err => console.warn('[usePushNotifications] initToken rejected', err));
56
61
  const unsubscribeForeground = (0, _pushNotifications.onForegroundMessage)(message => {
62
+ // Calls first: a call push must open the ring screen, never an
63
+ // "OK / Open" alert. handleCallPush returns true for anything
64
+ // call-shaped, so we bail before the chat-notification path.
65
+ if ((0, _incomingCallFromPush.handleCallPush)(message?.data)) {
66
+ return;
67
+ }
57
68
  setNotification(message);
58
69
  const {
59
- notification: notif,
60
- data
70
+ notification: notif
61
71
  } = message;
62
72
  if (notif) {
63
73
  _reactNative.Alert.alert(notif.title || 'Notification', notif.body || '', [{
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_pushNotifications","_pushSubscriptionService","_reactRedux","_useLocalStorage","_roomsSlice","usePushNotifications","fcmToken","setFcmToken","useState","notification","setNotification","user","config","useSelector","state","chatSettingStore","rooms","dispatch","useDispatch","set","get","useLocalStorage","handleNotificationPress","remoteMessage","console","log","JSON","stringify","jid","data","chatJid","setPendingNotificationJid","warn","initToken","token","newToken","initPushNotifications","error","useEffect","catch","err","unsubscribeForeground","onForegroundMessage","message","notif","Alert","alert","title","body","text","onPress","unsubscribeOpened","onNotificationOpenedApp","getInitialNotification","then","xmppPassword","defaultWallet","walletAddress","pushSubscriptionService","subscribeToPush","projectName"],"sourceRoot":"../../../src","sources":["hooks/usePushNotifications.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_pushNotifications","_pushSubscriptionService","_reactRedux","_useLocalStorage","_roomsSlice","_incomingCallFromPush","usePushNotifications","fcmToken","setFcmToken","useState","notification","setNotification","user","config","useSelector","state","chatSettingStore","rooms","dispatch","useDispatch","set","get","useLocalStorage","handleNotificationPress","remoteMessage","handleCallPush","data","jid","chatJid","setPendingNotificationJid","console","warn","initToken","token","newToken","initPushNotifications","error","useEffect","catch","err","unsubscribeForeground","onForegroundMessage","message","notif","Alert","alert","title","body","text","onPress","unsubscribeOpened","onNotificationOpenedApp","log","JSON","stringify","getInitialNotification","then","xmppPassword","defaultWallet","walletAddress","pushSubscriptionService","subscribeToPush","projectName"],"sourceRoot":"../../../src","sources":["hooks/usePushNotifications.ts"],"mappings":"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","ignoreList":[]}
@@ -68,6 +68,12 @@ const useSendMessage = _configOverride => {
68
68
  // rerenders on every redux update.
69
69
  const user = (0, _reactRedux.useSelector)(state => state.chatSettingStore.user);
70
70
  const config = (0, _reactRedux.useSelector)(state => state.chatSettingStore.config);
71
+ // The sender's own language, driven by the header globe picker (or the
72
+ // host via config.translates.readerLocale). Declared on every outgoing
73
+ // message as `<translate source>` so the backend can translate it for
74
+ // readers in other languages (see sendTextMessageWithTranslateTagStanza).
75
+ // Mirrors the web SDK, which always sends through the translate-tag path.
76
+ const langSource = (0, _reactRedux.useSelector)(state => state.chatSettingStore.langSource);
71
77
  const editAction = (0, _reactRedux.useSelector)(state => state.rooms.editAction);
72
78
  const rooms = (0, _reactRedux.useSelector)(state => state.rooms.rooms);
73
79
  const {
@@ -126,6 +132,10 @@ const useSendMessage = _configOverride => {
126
132
  date: optimisticDate,
127
133
  pending: true,
128
134
  isDeleted: false,
135
+ // Declare the sender's language on their own optimistic bubble so
136
+ // manual-mode readers see the Translate link on it too (parity with
137
+ // the web SDK, which stamps langSource on the optimistic message).
138
+ langSource: langSource || 'en',
129
139
  user: {
130
140
  ...user,
131
141
  id: selfId,
@@ -177,7 +187,7 @@ const useSendMessage = _configOverride => {
177
187
  // means the server echoes it back with the same value, so the
178
188
  // reducer's dedupe matches and the bubble flips pending → delivered
179
189
  // in-place (rather than rendering a second copy).
180
- const replaySend = c => c.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId);
190
+ const replaySend = c => c.sendTextMessageWithTranslateTagStanza(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', langSource || 'en', optimisticId);
181
191
 
182
192
  // Always buffer a copy BEFORE attempting the live send. The WebSocket
183
193
  // can still read `status: 'online'` for a beat after the network
@@ -236,7 +246,7 @@ const useSendMessage = _configOverride => {
236
246
  messageType: 'text'
237
247
  });
238
248
  }
239
- }, [editAction, client, user, dispatch, handleMessageSent, handleMessageEdited, handleMessageFailed, reduxStore]);
249
+ }, [editAction, client, user, langSource, dispatch, handleMessageSent, handleMessageEdited, handleMessageFailed, reduxStore]);
240
250
  const sendMedia = (0, _react.useCallback)(async (data, type, activeRoomJID, isReply = false, isChecked = false, mainMessage = '', existingId) => {
241
251
  client?.onCriticalSend?.(activeRoomJID);
242
252
 
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_uuid","_xmppProvider","_reactRedux","_roomsSlice","_roomHeapSlice","_auth","_outboundQueue","_roomStore","_clientRegistry","_useEventHandlers","PENDING_WATCHDOG_MS","MEDIA_PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","useXmppClient","dispatch","useDispatch","reduxStore","useStore","user","useSelector","state","chatSettingStore","config","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","useEventHandlers","failedMessages","roomHeapSlice","sendMessage","useCallback","message","activeRoomJID","isReply","isChecked","mainMessage","existingId","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","setEditAction","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","addRoomMessage","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","markMessageFailed","kind","Error","replaySend","c","enqueueOutboundSend","enqueuedAt","send","effectiveClient","getGlobalXmppClient","store","status","anyClient","forceReconnect","ensureStreamAlive","clearTimeout","sendMedia","data","type","size","uuidv4","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","addMessageToHeap","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","uploadFileViaFetch","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","setActiveRoomJid","Promise","resolve","prioritizeRoomPresence","catch","sendMediaMessageStanza","anyMediaClient","ttlMs","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","Platform","OS","platformVersion","Version","retryMessage","failedId","payload","clearMessageFailure","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last","exports"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_uuid","_xmppProvider","_reactRedux","_roomsSlice","_roomHeapSlice","_auth","_outboundQueue","_roomStore","_clientRegistry","_useEventHandlers","PENDING_WATCHDOG_MS","MEDIA_PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","useXmppClient","dispatch","useDispatch","reduxStore","useStore","user","useSelector","state","chatSettingStore","config","langSource","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","useEventHandlers","failedMessages","roomHeapSlice","sendMessage","useCallback","message","activeRoomJID","isReply","isChecked","mainMessage","existingId","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","setEditAction","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","addRoomMessage","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","markMessageFailed","kind","Error","replaySend","c","sendTextMessageWithTranslateTagStanza","enqueueOutboundSend","enqueuedAt","send","effectiveClient","getGlobalXmppClient","store","status","anyClient","forceReconnect","ensureStreamAlive","clearTimeout","sendMedia","data","type","size","uuidv4","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","addMessageToHeap","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","uploadFileViaFetch","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","setActiveRoomJid","Promise","resolve","prioritizeRoomPresence","catch","sendMediaMessageStanza","anyMediaClient","ttlMs","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","Platform","OS","platformVersion","Version","retryMessage","failedId","payload","clearMessageFailure","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last","exports"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}