@ethora/chat-component-rn 26.5.21 → 26.6.11

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 (372) 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/MediaMessage.js +7 -1
  13. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  14. package/lib/commonjs/components/MainComponents/RoomList.js +23 -9
  15. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  16. package/lib/commonjs/components/MessageBubble/Message.js +72 -11
  17. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  18. package/lib/commonjs/components/MessageBubble/MessageTranslate.js +160 -0
  19. package/lib/commonjs/components/MessageBubble/MessageTranslate.js.map +1 -0
  20. package/lib/commonjs/components/MessageBubble/TranslatedMessageBody.js +59 -0
  21. package/lib/commonjs/components/MessageBubble/TranslatedMessageBody.js.map +1 -0
  22. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +3 -3
  23. package/lib/commonjs/components/UsersList/UsersList.js +3 -1
  24. package/lib/commonjs/components/UsersList/UsersList.js.map +1 -1
  25. package/lib/commonjs/components/VideoCalls/CallButtons.js +159 -0
  26. package/lib/commonjs/components/VideoCalls/CallButtons.js.map +1 -0
  27. package/lib/commonjs/components/VideoCalls/CallIcons.js +328 -0
  28. package/lib/commonjs/components/VideoCalls/CallIcons.js.map +1 -0
  29. package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js +550 -0
  30. package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js.map +1 -0
  31. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +636 -0
  32. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -0
  33. package/lib/commonjs/components/VideoCalls/livekitRuntime.js +91 -0
  34. package/lib/commonjs/components/VideoCalls/livekitRuntime.js.map +1 -0
  35. package/lib/commonjs/components/VideoCalls/useCallKeep.js +215 -0
  36. package/lib/commonjs/components/VideoCalls/useCallKeep.js.map +1 -0
  37. package/lib/commonjs/components/styled/AudioMessage.js +91 -33
  38. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  39. package/lib/commonjs/components/styled/RoomListComponents/index.js +13 -1
  40. package/lib/commonjs/components/styled/RoomListComponents/index.js.map +1 -1
  41. package/lib/commonjs/components/styled/SendInput.js +83 -49
  42. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  43. package/lib/commonjs/components/styled/StyledComponents.js +9 -4
  44. package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
  45. package/lib/commonjs/components/styled/StyledInputComponents/Composing.js +2 -0
  46. package/lib/commonjs/components/styled/StyledInputComponents/Composing.js.map +1 -1
  47. package/lib/commonjs/components/styled/VideoMessage.js +110 -26
  48. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  49. package/lib/commonjs/context/xmppProvider.js +10 -3
  50. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  51. package/lib/commonjs/helpers/callLogMessage.js +162 -0
  52. package/lib/commonjs/helpers/callLogMessage.js.map +1 -0
  53. package/lib/commonjs/helpers/callPush.js +61 -0
  54. package/lib/commonjs/helpers/callPush.js.map +1 -0
  55. package/lib/commonjs/helpers/constants/LANGUAGE_OPTIONS.js +24 -12
  56. package/lib/commonjs/helpers/constants/LANGUAGE_OPTIONS.js.map +1 -1
  57. package/lib/commonjs/helpers/createUserNameFromSetUser.js +51 -2
  58. package/lib/commonjs/helpers/createUserNameFromSetUser.js.map +1 -1
  59. package/lib/commonjs/helpers/getDataFromXml.js +19 -1
  60. package/lib/commonjs/helpers/getDataFromXml.js.map +1 -1
  61. package/lib/commonjs/helpers/incomingCallFromPush.js +74 -0
  62. package/lib/commonjs/helpers/incomingCallFromPush.js.map +1 -0
  63. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +13 -1
  64. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  65. package/lib/commonjs/helpers/isUnresolvedSenderId.js +32 -0
  66. package/lib/commonjs/helpers/isUnresolvedSenderId.js.map +1 -0
  67. package/lib/commonjs/hooks/useChatSettingState.js +2 -0
  68. package/lib/commonjs/hooks/useChatSettingState.js.map +1 -1
  69. package/lib/commonjs/hooks/useMessageTranslation.js +51 -0
  70. package/lib/commonjs/hooks/useMessageTranslation.js.map +1 -0
  71. package/lib/commonjs/hooks/usePushNotifications.js +13 -3
  72. package/lib/commonjs/hooks/usePushNotifications.js.map +1 -1
  73. package/lib/commonjs/hooks/useSendMessage.js +14 -4
  74. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  75. package/lib/commonjs/i18n/strings.js +1308 -0
  76. package/lib/commonjs/i18n/strings.js.map +1 -0
  77. package/lib/commonjs/i18n/useT.js +60 -0
  78. package/lib/commonjs/i18n/useT.js.map +1 -0
  79. package/lib/commonjs/main.js +44 -0
  80. package/lib/commonjs/main.js.map +1 -1
  81. package/lib/commonjs/networking/api-requests/auth.api.js +81 -52
  82. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  83. package/lib/commonjs/networking/api-requests/push.api.js +34 -5
  84. package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
  85. package/lib/commonjs/networking/api-requests/rooms.api.js +108 -0
  86. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  87. package/lib/commonjs/networking/callTokenStanza.js +531 -0
  88. package/lib/commonjs/networking/callTokenStanza.js.map +1 -0
  89. package/lib/commonjs/networking/outboundQueue.js.map +1 -1
  90. package/lib/commonjs/networking/stanzaHandlers.js +75 -8
  91. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  92. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +47 -11
  93. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  94. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +2 -1
  95. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  96. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +42 -5
  97. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  98. package/lib/commonjs/networking/xmppClient.js +78 -16
  99. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  100. package/lib/commonjs/roomStore/callSlice.js +144 -0
  101. package/lib/commonjs/roomStore/callSlice.js.map +1 -0
  102. package/lib/commonjs/roomStore/chatSettingsSlice.js +8 -2
  103. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  104. package/lib/commonjs/roomStore/index.js +7 -1
  105. package/lib/commonjs/roomStore/index.js.map +1 -1
  106. package/lib/commonjs/roomStore/persistence.js +69 -5
  107. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  108. package/lib/commonjs/roomStore/roomsSlice.js +136 -6
  109. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  110. package/lib/commonjs/utils/translateModePolicy.js +33 -0
  111. package/lib/commonjs/utils/translateModePolicy.js.map +1 -0
  112. package/lib/module/components/MainComponents/ChatHeader.js +20 -8
  113. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  114. package/lib/module/components/MainComponents/ChatWrapper.js +17 -0
  115. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  116. package/lib/module/components/MainComponents/LanguageSelectorButton.js +57 -0
  117. package/lib/module/components/MainComponents/LanguageSelectorButton.js.map +1 -0
  118. package/lib/module/components/MainComponents/LanguageSelectorModal.js +246 -0
  119. package/lib/module/components/MainComponents/LanguageSelectorModal.js.map +1 -0
  120. package/lib/module/components/MainComponents/MediaMessage.js +7 -1
  121. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  122. package/lib/module/components/MainComponents/RoomList.js +23 -9
  123. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  124. package/lib/module/components/MessageBubble/Message.js +73 -12
  125. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  126. package/lib/module/components/MessageBubble/MessageTranslate.js +155 -0
  127. package/lib/module/components/MessageBubble/MessageTranslate.js.map +1 -0
  128. package/lib/module/components/MessageBubble/TranslatedMessageBody.js +53 -0
  129. package/lib/module/components/MessageBubble/TranslatedMessageBody.js.map +1 -0
  130. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +3 -3
  131. package/lib/module/components/UsersList/UsersList.js +3 -1
  132. package/lib/module/components/UsersList/UsersList.js.map +1 -1
  133. package/lib/module/components/VideoCalls/CallButtons.js +154 -0
  134. package/lib/module/components/VideoCalls/CallButtons.js.map +1 -0
  135. package/lib/module/components/VideoCalls/CallIcons.js +309 -0
  136. package/lib/module/components/VideoCalls/CallIcons.js.map +1 -0
  137. package/lib/module/components/VideoCalls/VideoCallOverlay.js +544 -0
  138. package/lib/module/components/VideoCalls/VideoCallOverlay.js.map +1 -0
  139. package/lib/module/components/VideoCalls/VideoCallSession.js +630 -0
  140. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -0
  141. package/lib/module/components/VideoCalls/livekitRuntime.js +83 -0
  142. package/lib/module/components/VideoCalls/livekitRuntime.js.map +1 -0
  143. package/lib/module/components/VideoCalls/useCallKeep.js +210 -0
  144. package/lib/module/components/VideoCalls/useCallKeep.js.map +1 -0
  145. package/lib/module/components/styled/AudioMessage.js +91 -33
  146. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  147. package/lib/module/components/styled/RoomListComponents/index.js +13 -1
  148. package/lib/module/components/styled/RoomListComponents/index.js.map +1 -1
  149. package/lib/module/components/styled/SendInput.js +83 -49
  150. package/lib/module/components/styled/SendInput.js.map +1 -1
  151. package/lib/module/components/styled/StyledComponents.js +9 -4
  152. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  153. package/lib/module/components/styled/StyledInputComponents/Composing.js +2 -0
  154. package/lib/module/components/styled/StyledInputComponents/Composing.js.map +1 -1
  155. package/lib/module/components/styled/VideoMessage.js +111 -27
  156. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  157. package/lib/module/context/xmppProvider.js +11 -4
  158. package/lib/module/context/xmppProvider.js.map +1 -1
  159. package/lib/module/helpers/callLogMessage.js +152 -0
  160. package/lib/module/helpers/callLogMessage.js.map +1 -0
  161. package/lib/module/helpers/callPush.js +55 -0
  162. package/lib/module/helpers/callPush.js.map +1 -0
  163. package/lib/module/helpers/constants/LANGUAGE_OPTIONS.js +24 -12
  164. package/lib/module/helpers/constants/LANGUAGE_OPTIONS.js.map +1 -1
  165. package/lib/module/helpers/createUserNameFromSetUser.js +49 -1
  166. package/lib/module/helpers/createUserNameFromSetUser.js.map +1 -1
  167. package/lib/module/helpers/getDataFromXml.js +20 -1
  168. package/lib/module/helpers/getDataFromXml.js.map +1 -1
  169. package/lib/module/helpers/incomingCallFromPush.js +70 -0
  170. package/lib/module/helpers/incomingCallFromPush.js.map +1 -0
  171. package/lib/module/helpers/insertMessageWithDelimiter.js +13 -1
  172. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  173. package/lib/module/helpers/isUnresolvedSenderId.js +27 -0
  174. package/lib/module/helpers/isUnresolvedSenderId.js.map +1 -0
  175. package/lib/module/hooks/useChatSettingState.js +2 -0
  176. package/lib/module/hooks/useChatSettingState.js.map +1 -1
  177. package/lib/module/hooks/useMessageTranslation.js +46 -0
  178. package/lib/module/hooks/useMessageTranslation.js.map +1 -0
  179. package/lib/module/hooks/usePushNotifications.js +13 -3
  180. package/lib/module/hooks/usePushNotifications.js.map +1 -1
  181. package/lib/module/hooks/useSendMessage.js +15 -5
  182. package/lib/module/hooks/useSendMessage.js.map +1 -1
  183. package/lib/module/i18n/strings.js +1300 -0
  184. package/lib/module/i18n/strings.js.map +1 -0
  185. package/lib/module/i18n/useT.js +55 -0
  186. package/lib/module/i18n/useT.js.map +1 -0
  187. package/lib/module/main.js +7 -1
  188. package/lib/module/main.js.map +1 -1
  189. package/lib/module/networking/api-requests/auth.api.js +80 -51
  190. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  191. package/lib/module/networking/api-requests/push.api.js +35 -5
  192. package/lib/module/networking/api-requests/push.api.js.map +1 -1
  193. package/lib/module/networking/api-requests/rooms.api.js +109 -1
  194. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  195. package/lib/module/networking/callTokenStanza.js +526 -0
  196. package/lib/module/networking/callTokenStanza.js.map +1 -0
  197. package/lib/module/networking/outboundQueue.js.map +1 -1
  198. package/lib/module/networking/stanzaHandlers.js +76 -9
  199. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  200. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +48 -11
  201. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  202. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +1 -1
  203. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  204. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +43 -5
  205. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  206. package/lib/module/networking/xmppClient.js +78 -16
  207. package/lib/module/networking/xmppClient.js.map +1 -1
  208. package/lib/module/roomStore/callSlice.js +130 -0
  209. package/lib/module/roomStore/callSlice.js.map +1 -0
  210. package/lib/module/roomStore/chatSettingsSlice.js +6 -1
  211. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  212. package/lib/module/roomStore/index.js +6 -1
  213. package/lib/module/roomStore/index.js.map +1 -1
  214. package/lib/module/roomStore/persistence.js +69 -5
  215. package/lib/module/roomStore/persistence.js.map +1 -1
  216. package/lib/module/roomStore/roomsSlice.js +134 -5
  217. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  218. package/lib/module/utils/translateModePolicy.js +27 -0
  219. package/lib/module/utils/translateModePolicy.js.map +1 -0
  220. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  221. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  222. package/lib/typescript/components/MainComponents/LanguageSelectorButton.d.ts +12 -0
  223. package/lib/typescript/components/MainComponents/LanguageSelectorButton.d.ts.map +1 -0
  224. package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts +31 -0
  225. package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts.map +1 -0
  226. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  227. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  228. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  229. package/lib/typescript/components/MessageBubble/MessageTranslate.d.ts +44 -0
  230. package/lib/typescript/components/MessageBubble/MessageTranslate.d.ts.map +1 -0
  231. package/lib/typescript/components/MessageBubble/TranslatedMessageBody.d.ts +24 -0
  232. package/lib/typescript/components/MessageBubble/TranslatedMessageBody.d.ts.map +1 -0
  233. package/lib/typescript/components/UsersList/UsersList.d.ts.map +1 -1
  234. package/lib/typescript/components/VideoCalls/CallButtons.d.ts +16 -0
  235. package/lib/typescript/components/VideoCalls/CallButtons.d.ts.map +1 -0
  236. package/lib/typescript/components/VideoCalls/CallIcons.d.ts +30 -0
  237. package/lib/typescript/components/VideoCalls/CallIcons.d.ts.map +1 -0
  238. package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts +10 -0
  239. package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts.map +1 -0
  240. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts +38 -0
  241. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -0
  242. package/lib/typescript/components/VideoCalls/livekitRuntime.d.ts +52 -0
  243. package/lib/typescript/components/VideoCalls/livekitRuntime.d.ts.map +1 -0
  244. package/lib/typescript/components/VideoCalls/useCallKeep.d.ts +32 -0
  245. package/lib/typescript/components/VideoCalls/useCallKeep.d.ts.map +1 -0
  246. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  247. package/lib/typescript/components/styled/RoomListComponents/index.d.ts.map +1 -1
  248. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  249. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  250. package/lib/typescript/components/styled/StyledInputComponents/Composing.d.ts.map +1 -1
  251. package/lib/typescript/components/styled/VideoMessage.d.ts +2 -0
  252. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  253. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  254. package/lib/typescript/helpers/callLogMessage.d.ts +34 -0
  255. package/lib/typescript/helpers/callLogMessage.d.ts.map +1 -0
  256. package/lib/typescript/helpers/callPush.d.ts +23 -0
  257. package/lib/typescript/helpers/callPush.d.ts.map +1 -0
  258. package/lib/typescript/helpers/constants/LANGUAGE_OPTIONS.d.ts +14 -0
  259. package/lib/typescript/helpers/constants/LANGUAGE_OPTIONS.d.ts.map +1 -1
  260. package/lib/typescript/helpers/createUserNameFromSetUser.d.ts +33 -1
  261. package/lib/typescript/helpers/createUserNameFromSetUser.d.ts.map +1 -1
  262. package/lib/typescript/helpers/getDataFromXml.d.ts.map +1 -1
  263. package/lib/typescript/helpers/incomingCallFromPush.d.ts +14 -0
  264. package/lib/typescript/helpers/incomingCallFromPush.d.ts.map +1 -0
  265. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  266. package/lib/typescript/helpers/isUnresolvedSenderId.d.ts +2 -0
  267. package/lib/typescript/helpers/isUnresolvedSenderId.d.ts.map +1 -0
  268. package/lib/typescript/hooks/useChatSettingState.d.ts +2 -1
  269. package/lib/typescript/hooks/useChatSettingState.d.ts.map +1 -1
  270. package/lib/typescript/hooks/useMessageTranslation.d.ts +25 -0
  271. package/lib/typescript/hooks/useMessageTranslation.d.ts.map +1 -0
  272. package/lib/typescript/hooks/usePushNotifications.d.ts.map +1 -1
  273. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  274. package/lib/typescript/i18n/strings.d.ts +16 -0
  275. package/lib/typescript/i18n/strings.d.ts.map +1 -0
  276. package/lib/typescript/i18n/useT.d.ts +34 -0
  277. package/lib/typescript/i18n/useT.d.ts.map +1 -0
  278. package/lib/typescript/main.d.ts +6 -1
  279. package/lib/typescript/main.d.ts.map +1 -1
  280. package/lib/typescript/networking/api-requests/auth.api.d.ts +27 -1
  281. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  282. package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
  283. package/lib/typescript/networking/api-requests/rooms.api.d.ts +3 -0
  284. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  285. package/lib/typescript/networking/callTokenStanza.d.ts +14 -0
  286. package/lib/typescript/networking/callTokenStanza.d.ts.map +1 -0
  287. package/lib/typescript/networking/outboundQueue.d.ts +1 -0
  288. package/lib/typescript/networking/outboundQueue.d.ts.map +1 -1
  289. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  290. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  291. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts +10 -0
  292. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  293. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts +16 -1
  294. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
  295. package/lib/typescript/networking/xmppClient.d.ts +1 -1
  296. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  297. package/lib/typescript/roomStore/callSlice.d.ts +39 -0
  298. package/lib/typescript/roomStore/callSlice.d.ts.map +1 -0
  299. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +10 -1
  300. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  301. package/lib/typescript/roomStore/index.d.ts +4 -0
  302. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  303. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  304. package/lib/typescript/roomStore/roomsSlice.d.ts +6 -1
  305. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  306. package/lib/typescript/types/models/language.model.d.ts +1 -1
  307. package/lib/typescript/types/models/language.model.d.ts.map +1 -1
  308. package/lib/typescript/types/models/message.model.d.ts +7 -0
  309. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  310. package/lib/typescript/types/types.d.ts +135 -1
  311. package/lib/typescript/types/types.d.ts.map +1 -1
  312. package/lib/typescript/utils/translateModePolicy.d.ts +20 -0
  313. package/lib/typescript/utils/translateModePolicy.d.ts.map +1 -0
  314. package/package.json +20 -4
  315. package/src/components/MainComponents/ChatHeader.tsx +30 -9
  316. package/src/components/MainComponents/ChatWrapper.tsx +15 -0
  317. package/src/components/MainComponents/LanguageSelectorButton.tsx +53 -0
  318. package/src/components/MainComponents/LanguageSelectorModal.tsx +276 -0
  319. package/src/components/MainComponents/MediaMessage.tsx +5 -0
  320. package/src/components/MainComponents/RoomList.tsx +27 -9
  321. package/src/components/MessageBubble/Message.tsx +109 -17
  322. package/src/components/MessageBubble/MessageTranslate.tsx +182 -0
  323. package/src/components/MessageBubble/TranslatedMessageBody.tsx +59 -0
  324. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +3 -3
  325. package/src/components/UsersList/UsersList.tsx +3 -1
  326. package/src/components/VideoCalls/CallButtons.tsx +171 -0
  327. package/src/components/VideoCalls/CallIcons.tsx +246 -0
  328. package/src/components/VideoCalls/VideoCallOverlay.tsx +627 -0
  329. package/src/components/VideoCalls/VideoCallSession.tsx +675 -0
  330. package/src/components/VideoCalls/livekitRuntime.ts +100 -0
  331. package/src/components/VideoCalls/useCallKeep.ts +252 -0
  332. package/src/components/styled/AudioMessage.tsx +97 -37
  333. package/src/components/styled/RoomListComponents/index.tsx +15 -3
  334. package/src/components/styled/SendInput.tsx +94 -51
  335. package/src/components/styled/StyledComponents.ts +9 -6
  336. package/src/components/styled/StyledInputComponents/Composing.tsx +7 -1
  337. package/src/components/styled/VideoMessage.tsx +114 -20
  338. package/src/context/xmppProvider.tsx +14 -1
  339. package/src/helpers/callLogMessage.ts +174 -0
  340. package/src/helpers/callPush.ts +90 -0
  341. package/src/helpers/constants/LANGUAGE_OPTIONS.ts +20 -5
  342. package/src/helpers/createUserNameFromSetUser.ts +68 -2
  343. package/src/helpers/getDataFromXml.ts +40 -4
  344. package/src/helpers/incomingCallFromPush.ts +83 -0
  345. package/src/helpers/insertMessageWithDelimiter.ts +27 -9
  346. package/src/helpers/isUnresolvedSenderId.ts +25 -0
  347. package/src/hooks/useChatSettingState.tsx +4 -0
  348. package/src/hooks/useMessageTranslation.ts +70 -0
  349. package/src/hooks/usePushNotifications.ts +15 -3
  350. package/src/hooks/useSendMessage.tsx +18 -5
  351. package/src/i18n/strings.ts +1322 -0
  352. package/src/i18n/useT.ts +56 -0
  353. package/src/main.ts +18 -1
  354. package/src/networking/api-requests/auth.api.ts +79 -44
  355. package/src/networking/api-requests/push.api.ts +39 -8
  356. package/src/networking/api-requests/rooms.api.ts +109 -1
  357. package/src/networking/callTokenStanza.ts +636 -0
  358. package/src/networking/outboundQueue.ts +1 -0
  359. package/src/networking/stanzaHandlers.ts +74 -15
  360. package/src/networking/xmpp/handleStanzas.xmpp.ts +52 -11
  361. package/src/networking/xmpp/sendTextMessage.xmpp.ts +1 -1
  362. package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +41 -5
  363. package/src/networking/xmppClient.ts +97 -28
  364. package/src/roomStore/callSlice.ts +190 -0
  365. package/src/roomStore/chatSettingsSlice.ts +16 -0
  366. package/src/roomStore/index.ts +5 -0
  367. package/src/roomStore/persistence.ts +103 -3
  368. package/src/roomStore/roomsSlice.ts +149 -4
  369. package/src/types/models/language.model.ts +17 -1
  370. package/src/types/models/message.model.ts +9 -0
  371. package/src/types/types.ts +142 -2
  372. package/src/utils/translateModePolicy.ts +31 -0
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import { store } from '../roomStore';
4
- import { addRoom, addRoomMessage, deleteRoomMessage, editRoomMessage, setComposing, setCurrentRoom, setRoomRole, updateRoom } from '../roomStore/roomsSlice';
4
+ import { addRoom, addRoomMessage, deleteRoomMessage, editRoomMessage, setComposing, setCurrentRoom, setRoomRole, updateRoom, mergeUsersSet } from '../roomStore/roomsSlice';
5
5
  import { createMessageFromXml } from '../helpers/createMessageFromXml';
6
6
  import { getDataFromXml } from '../helpers/getDataFromXml';
7
7
  import { setDeleteModal } from '../roomStore/chatSettingsSlice';
8
8
  import { messageNotificationManager } from '../utils/messageNotificationManager';
9
+ import { transformCallLogMessage } from '../helpers/callLogMessage';
9
10
 
10
11
  // TO DO: we are thinking to refactor this code in the following way:
11
12
  // each stanza will be parsed for 'type'
@@ -28,9 +29,22 @@ const onRealtimeMessage = async stanza => {
28
29
  console.log('Missing data elements in real-time message.');
29
30
  return;
30
31
  }
31
- if (!data.attrs.senderJID) {
32
+
33
+ // Not every sender stamps `senderJID` onto `<data>` — the web SDK's
34
+ // translate-tagged send path in particular builds `<data>` from a
35
+ // differently-named attr bag (roomJID/firstName/userMessage/…) that
36
+ // has no senderJID at all. This used to hard-drop the message here —
37
+ // live AND, via the identical check in onMessageHistory, in the MAM
38
+ // backfill too — so anything sent through that path just never
39
+ // appeared, on this device or after a restart. The stanza's own
40
+ // `from` is always the full MUC occupant jid (`room@conference/nick`,
41
+ // exactly what senderJID would have held), so fall back to it instead
42
+ // of dropping the message. Web's own onRealtimeMessage only requires
43
+ // `<data>` to exist at all — no senderJID check — so this brings RN
44
+ // to the same tolerance.
45
+ const senderJID = data.attrs.senderJID || stanza.attrs.from;
46
+ if (!senderJID) {
32
47
  console.log(stanza.toString());
33
- console.log(data.attrs.senderJID);
34
48
  console.log('Missing sender information in real-time message.');
35
49
  return;
36
50
  }
@@ -46,16 +60,29 @@ const onRealtimeMessage = async stanza => {
46
60
  body: pBody,
47
61
  ...pRest
48
62
  } = parsed ?? {};
63
+ const mergedData = {
64
+ ...(pData || data.attrs)
65
+ };
66
+ if (!mergedData.senderJID) {
67
+ mergedData.senderJID = senderJID;
68
+ }
49
69
  // Cast at the call site: createMessageFromXml accepts the merged
50
70
  // wrapped/positional shape; IUser type drift between models prevents
51
71
  // a narrower type here without a wider refactor.
52
- const message = await createMessageFromXml({
53
- data: pData || data.attrs,
72
+ const rawMessage = await createMessageFromXml({
73
+ data: mergedData,
54
74
  id: pId || id,
55
75
  body: pBody ?? '',
56
76
  ...pRest,
57
77
  isDeleted: !!deleted || !!pRest?.deleted
58
78
  });
79
+
80
+ // Turn server call-state stanzas into a friendly call-log entry
81
+ // ("Outgoing call · 12 sec" / "Missed call"). Non-call messages pass
82
+ // through unchanged. Without this the raw message keeps body
83
+ // "call-state" and gets dropped by the call-signal filter in
84
+ // roomsSlice, so call history silently disappears.
85
+ const message = transformCallLogMessage(rawMessage, store.getState().chatSettingStore.user?.xmppUsername || '');
59
86
  const roomJID = stanza.attrs.from.split('/')[0];
60
87
  store.dispatch(addRoomMessage({
61
88
  roomJID,
@@ -67,8 +94,8 @@ const onRealtimeMessage = async stanza => {
67
94
  try {
68
95
  const state = store.getState();
69
96
  const currentUserWallet = (state.chatSettingStore.user?.walletAddress || '').toLowerCase();
70
- const senderJID = String(data.attrs.senderJID || '').toLowerCase();
71
- if (currentUserWallet && senderJID.includes(currentUserWallet)) {
97
+ const senderJIDLower = String(senderJID || '').toLowerCase();
98
+ if (currentUserWallet && senderJIDLower.includes(currentUserWallet)) {
72
99
  return message; // own message, skip toast
73
100
  }
74
101
  const room = state.rooms.rooms[roomJID];
@@ -131,14 +158,35 @@ const onMessageHistory = async stanza => {
131
158
  }
132
159
  // console.log(stanza.attrs.from);
133
160
 
134
- if (!data?.attrs || !data.attrs.senderFirstName || !data.attrs.senderLastName || !data.attrs.senderJID) {
161
+ // Mirror the realtime path's tolerance: don't hard-require
162
+ // senderFirstName/senderLastName/senderJID on <data> — the web SDK's
163
+ // translate-tagged send path doesn't stamp any of them, and this used
164
+ // to drop those messages out of MAM backfill entirely (so they never
165
+ // appeared even after a restart). The inner forwarded <message>'s own
166
+ // `from` is the full MUC occupant jid (room@conference/nick), exactly
167
+ // what senderJID would have held — fall back to it. createMessageFromXml
168
+ // already derives a display name from the jid when senderFirstName/
169
+ // senderLastName are absent.
170
+ const innerFrom = stanza.getChild('result')?.getChild('forwarded')?.getChild('message')?.attrs?.from || stanza.attrs.from;
171
+ const senderJID = data?.attrs?.senderJID || innerFrom;
172
+ if (!data?.attrs || !senderJID) {
135
173
  // console.log(
136
174
  // "Missing sender information in message history.",
137
175
  // stanza.toString()
138
176
  // );
139
177
  return;
140
178
  }
141
- const message = await createMessageFromXml(data.attrs, body, id, stanza.attrs.from, !!deleted);
179
+ const mergedAttrs = {
180
+ ...data.attrs
181
+ };
182
+ if (!mergedAttrs.senderJID) {
183
+ mergedAttrs.senderJID = senderJID;
184
+ }
185
+ const rawMessage = await createMessageFromXml(mergedAttrs, body, id, stanza.attrs.from, !!deleted);
186
+
187
+ // Same call-log transform as the realtime path, applied to archived
188
+ // history so calls received while offline still render as log entries.
189
+ const message = transformCallLogMessage(rawMessage, store.getState().chatSettingStore.user?.xmppUsername || '');
142
190
  store.dispatch(addRoomMessage({
143
191
  roomJID: stanza.attrs.from,
144
192
  message
@@ -256,6 +304,25 @@ const onGetMembers = stanza => {
256
304
  roomMembers
257
305
  }
258
306
  }));
307
+
308
+ // Also feed the identity cache Message.tsx reads sender names from
309
+ // (state.rooms.usersSet). Keyed by both the bare local part and the
310
+ // full jid since a message's `user.id` can be either depending on
311
+ // how it was parsed (see createUserNameFromSetUser).
312
+ const usersSetUpdates = {};
313
+ for (const member of roomMembers) {
314
+ if (!member.jid) {
315
+ continue;
316
+ }
317
+ const local = member.jid.split('@')[0];
318
+ usersSetUpdates[local] = member;
319
+ usersSetUpdates[member.jid] = member;
320
+ }
321
+ if (Object.keys(usersSetUpdates).length > 0) {
322
+ store.dispatch(mergeUsersSet({
323
+ members: usersSetUpdates
324
+ }));
325
+ }
259
326
  } catch (err) {
260
327
  console.warn('onGetMembers parse failed', err);
261
328
  }
@@ -1 +1 @@
1
- {"version":3,"names":["store","addRoom","addRoomMessage","deleteRoomMessage","editRoomMessage","setComposing","setCurrentRoom","setRoomRole","updateRoom","createMessageFromXml","getDataFromXml","setDeleteModal","messageNotificationManager","onRealtimeMessage","stanza","getChild","is","attrs","id","body","archived","data","deleted","console","log","toString","senderJID","parsed","pData","pId","pBody","pRest","message","isDeleted","roomJID","from","split","dispatch","state","getState","currentUserWallet","chatSettingStore","user","walletAddress","toLowerCase","String","includes","room","rooms","roomName","title","name","senderName","senderFirstName","senderLastName","filter","Boolean","join","trim","showNotification","err","warn","onDeleteMessage","stanzaId","by","messageId","isDeleteModal","onEditMessage","replace","text","onMessageHistory","children","xmlns","delay","handleComposing","currentUser","composingUser","norm","s","senderLocal","selfUser","selfXmppUsername","xmppUsername","selfWallet","isSelf","chatJID","composingList","push","fullName","pop","composing","onPresenceInRoom","startsWith","role","onChatInvite","client","type","chatId","xEls","getChildren","el","child","chat","presenceInRoomStanza","getRoomsStanza","onGetMembers","queries","activities","roomJid","q","acts","a","jid","activeRoomJID","length","existingRoom","existingMembers","roomMembers","existingByJid","Map","m","map","memberJid","existing","get","undefined","firstName","lastName","_id","ban_status","last_active","Number","updates","onGetRoomInfo","onGetLastMessageArchive","_xmpp","onNewRoomCreated","xmpp","onGetChatRooms","Array","isArray","forEach","result","currentChatRooms","isRoomAlreadyAdded","Object","values","some","element","roomData","usersCnt","users_cnt","messages","isLoading","roomBg","room_background","icon","room_thumbnail","unreadMessages","lastViewedTimestamp","error","e","onMessageError","_stanza","onReactionMessage","onReactionHistory","onRoomKicked"],"sourceRoot":"../../../src","sources":["networking/stanzaHandlers.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["store","addRoom","addRoomMessage","deleteRoomMessage","editRoomMessage","setComposing","setCurrentRoom","setRoomRole","updateRoom","mergeUsersSet","createMessageFromXml","getDataFromXml","setDeleteModal","messageNotificationManager","transformCallLogMessage","onRealtimeMessage","stanza","getChild","is","attrs","id","body","archived","data","deleted","console","log","toString","senderJID","from","parsed","pData","pId","pBody","pRest","mergedData","rawMessage","isDeleted","message","getState","chatSettingStore","user","xmppUsername","roomJID","split","dispatch","state","currentUserWallet","walletAddress","toLowerCase","senderJIDLower","String","includes","room","rooms","roomName","title","name","senderName","senderFirstName","senderLastName","filter","Boolean","join","trim","showNotification","err","warn","onDeleteMessage","stanzaId","by","messageId","isDeleteModal","onEditMessage","replace","text","onMessageHistory","children","xmlns","delay","innerFrom","mergedAttrs","handleComposing","currentUser","composingUser","norm","s","senderLocal","selfUser","selfXmppUsername","selfWallet","isSelf","chatJID","composingList","push","fullName","pop","composing","onPresenceInRoom","startsWith","role","onChatInvite","client","type","chatId","xEls","getChildren","el","child","chat","presenceInRoomStanza","getRoomsStanza","onGetMembers","queries","activities","roomJid","q","acts","a","jid","activeRoomJID","length","existingRoom","existingMembers","roomMembers","existingByJid","Map","m","map","memberJid","existing","get","undefined","firstName","lastName","_id","ban_status","last_active","Number","updates","usersSetUpdates","member","local","Object","keys","members","onGetRoomInfo","onGetLastMessageArchive","_xmpp","onNewRoomCreated","xmpp","onGetChatRooms","Array","isArray","forEach","result","currentChatRooms","isRoomAlreadyAdded","values","some","element","roomData","usersCnt","users_cnt","messages","isLoading","roomBg","room_background","icon","room_thumbnail","unreadMessages","lastViewedTimestamp","error","e","onMessageError","_stanza","onReactionMessage","onReactionHistory","onRoomKicked"],"sourceRoot":"../../../src","sources":["networking/stanzaHandlers.ts"],"mappings":"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","ignoreList":[]}
@@ -1,23 +1,60 @@
1
1
  "use strict";
2
2
 
3
3
  import { onDeleteMessage, onEditMessage, onRealtimeMessage, onMessageHistory, onGetLastMessageArchive, handleComposing, onChatInvite, onPresenceInRoom, onGetChatRooms, onGetMembers, onGetRoomInfo, onNewRoomCreated, onReactionMessage, onReactionHistory, onRoomKicked, onMessageError } from '../stanzaHandlers';
4
+ import { onCallTokenMessage } from '../callTokenStanza';
5
+
6
+ /**
7
+ * Unwrap a mucsub event wrapper so the chat handlers see the real inner
8
+ * `<message>` (the one carrying `<data senderJID=…>` and `<body>`).
9
+ *
10
+ * We subscribe every room to `urn:xmpp:mucsub:nodes:messages` (see
11
+ * subscribeToRoomMessages / pushSubscriptionService), so ejabberd pushes
12
+ * room traffic as:
13
+ *
14
+ * <message from="room@conference/…">
15
+ * <event xmlns="http://jabber.org/protocol/pubsub#event">
16
+ * <items node="urn:xmpp:mucsub:nodes:messages">
17
+ * <item><message …><data senderJID=…/><body>…</body></message></item>
18
+ *
19
+ * Without unwrapping, onRealtimeMessage reads `<data>` off the OUTER
20
+ * wrapper, finds nothing, logs "Missing data elements in real-time
21
+ * message" and drops the stanza — so live messages never render and only
22
+ * surface later through the MAM history fetch (i.e. after an app restart
23
+ * or re-opening the room). Mirrors the web SDK's handleStanza.
24
+ */
25
+ const unwrapMucsubMessage = stanza => {
26
+ const inner = stanza?.getChild?.('event', 'http://jabber.org/protocol/pubsub#event')?.getChild?.('items')?.getChild?.('item')?.getChild?.('message');
27
+ return inner || stanza;
28
+ };
4
29
  export function handleStanza(stanza, xmppWs) {
5
30
  if (stanza?.attrs?.type === 'headline') {
6
31
  return;
7
32
  }
33
+
34
+ // Call signaling is swallowed before any chat handler sees it. A
35
+ // `<data type="call-*">` frame is not user-visible content, and letting
36
+ // it through renders bubbles reading "Deleted User: call-state" and
37
+ // fires new-message notifications for a call that never happened.
38
+ // Returns false for server call-LOGS, which do belong in the chat.
39
+ if (stanza?.name === 'message' && onCallTokenMessage(stanza)) {
40
+ return;
41
+ }
8
42
  switch (stanza.name) {
9
43
  case 'message':
10
- onMessageError(stanza, xmppWs);
11
- onReactionMessage(stanza);
12
- onReactionHistory(stanza);
13
- onDeleteMessage(stanza);
14
- onEditMessage(stanza);
15
- onChatInvite(stanza, xmppWs);
16
- onRealtimeMessage(stanza);
17
- onMessageHistory(stanza);
18
- handleComposing(stanza, xmppWs.username);
19
- onPresenceInRoom(stanza);
20
- break;
44
+ {
45
+ const unwrapped = unwrapMucsubMessage(stanza);
46
+ onMessageError(unwrapped, xmppWs);
47
+ onReactionMessage(unwrapped);
48
+ onReactionHistory(unwrapped);
49
+ onDeleteMessage(unwrapped);
50
+ onEditMessage(unwrapped);
51
+ onChatInvite(unwrapped, xmppWs);
52
+ onRealtimeMessage(unwrapped);
53
+ onMessageHistory(unwrapped);
54
+ handleComposing(unwrapped, xmppWs.username);
55
+ onPresenceInRoom(unwrapped);
56
+ break;
57
+ }
21
58
  case 'presence':
22
59
  onRoomKicked(stanza);
23
60
  onPresenceInRoom(stanza);
@@ -1 +1 @@
1
- {"version":3,"names":["onDeleteMessage","onEditMessage","onRealtimeMessage","onMessageHistory","onGetLastMessageArchive","handleComposing","onChatInvite","onPresenceInRoom","onGetChatRooms","onGetMembers","onGetRoomInfo","onNewRoomCreated","onReactionMessage","onReactionHistory","onRoomKicked","onMessageError","handleStanza","stanza","xmppWs","attrs","type","name","username","console","log"],"sourceRoot":"../../../../src","sources":["networking/xmpp/handleStanzas.xmpp.ts"],"mappings":";;AACA,SACEA,eAAe,EACfC,aAAa,EACbC,iBAAiB,EACjBC,gBAAgB,EAChBC,uBAAuB,EACvBC,eAAe,EACfC,YAAY,EACZC,gBAAgB,EAChBC,cAAc,EACdC,YAAY,EACZC,aAAa,EACbC,gBAAgB,EAChBC,iBAAiB,EACjBC,iBAAiB,EACjBC,YAAY,EACZC,cAAc,QACT,mBAAmB;AAG1B,OAAO,SAASC,YAAYA,CAACC,MAAe,EAAEC,MAAkB,EAAE;EAChE,IAAID,MAAM,EAAEE,KAAK,EAAEC,IAAI,KAAK,UAAU,EAAE;IAAC;EAAO;EAChD,QAAQH,MAAM,CAACI,IAAI;IACjB,KAAK,SAAS;MACZN,cAAc,CAACE,MAAM,EAAEC,MAAM,CAAC;MAC9BN,iBAAiB,CAACK,MAAM,CAAC;MACzBJ,iBAAiB,CAACI,MAAM,CAAC;MACzBjB,eAAe,CAACiB,MAAM,CAAC;MACvBhB,aAAa,CAACgB,MAAM,CAAC;MACrBX,YAAY,CAACW,MAAM,EAAEC,MAAM,CAAC;MAC5BhB,iBAAiB,CAACe,MAAM,CAAC;MACzBd,gBAAgB,CAACc,MAAM,CAAC;MACxBZ,eAAe,CAACY,MAAM,EAAEC,MAAM,CAACI,QAAQ,CAAC;MACxCf,gBAAgB,CAACU,MAAM,CAAC;MACxB;IACF,KAAK,UAAU;MACbH,YAAY,CAACG,MAAM,CAAC;MACpBV,gBAAgB,CAACU,MAAM,CAAC;MACxB;IACF,KAAK,IAAI;MACPT,cAAc,CAACS,MAAM,EAAEC,MAAM,CAAC;MAC9BhB,iBAAiB,CAACe,MAAM,CAAC;MACzBV,gBAAgB,CAACU,MAAM,CAAC;MACxBR,YAAY,CAACQ,MAAM,CAAC;MACpBP,aAAa,CAACO,MAAM,CAAC;MACrBb,uBAAuB,CAACa,MAAM,EAAEC,MAAM,CAAC;MACvC;IACF,KAAK,aAAa;MAChBP,gBAAgB,CAACM,MAAM,EAAEC,MAAM,CAAC;MAChC;IACF;MACEK,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAEP,MAAM,CAACI,IAAI,CAAC;EACtD;AACF","ignoreList":[]}
1
+ {"version":3,"names":["onDeleteMessage","onEditMessage","onRealtimeMessage","onMessageHistory","onGetLastMessageArchive","handleComposing","onChatInvite","onPresenceInRoom","onGetChatRooms","onGetMembers","onGetRoomInfo","onNewRoomCreated","onReactionMessage","onReactionHistory","onRoomKicked","onMessageError","onCallTokenMessage","unwrapMucsubMessage","stanza","inner","getChild","handleStanza","xmppWs","attrs","type","name","unwrapped","username","console","log"],"sourceRoot":"../../../../src","sources":["networking/xmpp/handleStanzas.xmpp.ts"],"mappings":";;AACA,SACEA,eAAe,EACfC,aAAa,EACbC,iBAAiB,EACjBC,gBAAgB,EAChBC,uBAAuB,EACvBC,eAAe,EACfC,YAAY,EACZC,gBAAgB,EAChBC,cAAc,EACdC,YAAY,EACZC,aAAa,EACbC,gBAAgB,EAChBC,iBAAiB,EACjBC,iBAAiB,EACjBC,YAAY,EACZC,cAAc,QACT,mBAAmB;AAE1B,SAASC,kBAAkB,QAAQ,oBAAoB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,mBAAmB,GAAIC,MAAe,IAAc;EACxD,MAAMC,KAAK,GAAID,MAAM,EACjBE,QAAQ,GAAG,OAAO,EAAE,yCAAyC,CAAC,EAC9DA,QAAQ,GAAG,OAAO,CAAC,EACnBA,QAAQ,GAAG,MAAM,CAAC,EAClBA,QAAQ,GAAG,SAAS,CAAC;EACzB,OAAQD,KAAK,IAAgBD,MAAM;AACrC,CAAC;AAED,OAAO,SAASG,YAAYA,CAACH,MAAe,EAAEI,MAAkB,EAAE;EAChE,IAAIJ,MAAM,EAAEK,KAAK,EAAEC,IAAI,KAAK,UAAU,EAAE;IAAC;EAAO;;EAEhD;EACA;EACA;EACA;EACA;EACA,IAAIN,MAAM,EAAEO,IAAI,KAAK,SAAS,IAAIT,kBAAkB,CAACE,MAAM,CAAC,EAAE;IAC5D;EACF;EAEA,QAAQA,MAAM,CAACO,IAAI;IACjB,KAAK,SAAS;MAAE;QACd,MAAMC,SAAS,GAAGT,mBAAmB,CAACC,MAAM,CAAC;QAC7CH,cAAc,CAACW,SAAS,EAAEJ,MAAM,CAAC;QACjCV,iBAAiB,CAACc,SAAS,CAAC;QAC5Bb,iBAAiB,CAACa,SAAS,CAAC;QAC5B1B,eAAe,CAAC0B,SAAS,CAAC;QAC1BzB,aAAa,CAACyB,SAAS,CAAC;QACxBpB,YAAY,CAACoB,SAAS,EAAEJ,MAAM,CAAC;QAC/BpB,iBAAiB,CAACwB,SAAS,CAAC;QAC5BvB,gBAAgB,CAACuB,SAAS,CAAC;QAC3BrB,eAAe,CAACqB,SAAS,EAAEJ,MAAM,CAACK,QAAQ,CAAC;QAC3CpB,gBAAgB,CAACmB,SAAS,CAAC;QAC3B;MACF;IACA,KAAK,UAAU;MACbZ,YAAY,CAACI,MAAM,CAAC;MACpBX,gBAAgB,CAACW,MAAM,CAAC;MACxB;IACF,KAAK,IAAI;MACPV,cAAc,CAACU,MAAM,EAAEI,MAAM,CAAC;MAC9BpB,iBAAiB,CAACgB,MAAM,CAAC;MACzBX,gBAAgB,CAACW,MAAM,CAAC;MACxBT,YAAY,CAACS,MAAM,CAAC;MACpBR,aAAa,CAACQ,MAAM,CAAC;MACrBd,uBAAuB,CAACc,MAAM,EAAEI,MAAM,CAAC;MACvC;IACF,KAAK,aAAa;MAChBX,gBAAgB,CAACO,MAAM,EAAEI,MAAM,CAAC;MAChC;IACF;MACEM,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAEX,MAAM,CAACO,IAAI,CAAC;EACtD;AACF","ignoreList":[]}
@@ -14,7 +14,7 @@ let _sendTextSeq = 0;
14
14
  *
15
15
  * Mirrors web's `SERVICE` derivation (utils/runtimeHostConfig.ts).
16
16
  */
17
- const toServiceXmlns = (devServer, client) => {
17
+ export const toServiceXmlns = (devServer, client) => {
18
18
  // Prefer the URL the client is actually connected to — guaranteed to
19
19
  // be the one the server expects.
20
20
  const clientService = client?.options?.service;
@@ -1 +1 @@
1
- {"version":3,"names":["xml","_sendTextSeq","toServiceXmlns","devServer","client","clientService","options","service","test","ds","trim","includes","replace","sendTextMessage","roomJID","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","id","Date","now","dataXmlns","message","to","type","xmlns","senderFirstName","senderLastName","fullName","photoURL","senderJID","jid","toString","senderWalletAddress","roomJid","isSystemMessage","tokenAmount","quickReplies","push","sendResult","send","then","console","log","catch","err","error","name","stack"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendTextMessage.xmpp.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["xml","_sendTextSeq","toServiceXmlns","devServer","client","clientService","options","service","test","ds","trim","includes","replace","sendTextMessage","roomJID","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","id","Date","now","dataXmlns","message","to","type","xmlns","senderFirstName","senderLastName","fullName","photoURL","senderJID","jid","toString","senderWalletAddress","roomJid","isSystemMessage","tokenAmount","quickReplies","push","sendResult","send","then","console","log","catch","err","error","name","stack"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendTextMessage.xmpp.ts"],"mappings":";;AAAA,SAAiBA,GAAG,QAAQ,cAAc;;AAE1C;AACA,IAAIC,YAAY,GAAG,CAAC;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GAAGA,CAACC,SAA6B,EAAEC,MAAc,KAAa;EACvF;EACA;EACA,MAAMC,aAAa,GAAID,MAAM,EAAUE,OAAO,EAAEC,OAA6B;EAC7E,IAAIF,aAAa,IAAI,YAAY,CAACG,IAAI,CAACH,aAAa,CAAC,EAAE;IAAC,OAAOA,aAAa;EAAC;EAC7E,MAAMI,EAAE,GAAG,CAACN,SAAS,IAAI,EAAE,EAAEO,IAAI,CAAC,CAAC;EACnC,IAAI,CAACD,EAAE,EAAE;IAAC,OAAO,6BAA6B;EAAC;EAC/C,IAAI,YAAY,CAACD,IAAI,CAACC,EAAE,CAAC,EAAE;IAAC,OAAOA,EAAE;EAAC;EACtC,IAAIA,EAAE,CAACE,QAAQ,CAAC,KAAK,CAAC,EAAE;IAAC,OAAOF,EAAE;EAAC;EACnC;EACA,OAAO,SAASA,EAAE,CAACG,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK;AACnD,CAAC;AAED,OAAO,MAAMC,eAAe,GAAGA,CAC7BT,MAAc,EACdU,OAAe,EACfC,SAAiB,EACjBC,QAAgB,EAChBC,KAAa,EACbC,aAAqB,EACrBC,WAAmB,EACnBC,iBAA0B,EAC1BC,OAAiB,EACjBC,aAAuB,EACvBC,WAAoB,EACpBpB,SAAkB,EAClBqB,QAAiB,KACd;EACH;EACA;EACA;EACA,IAAI,CAACvB,YAAY,EAAE,CAAC;EACpB,MAAMwB,EAAE,GAAGD,QAAQ,GACfA,QAAQ,GACRH,OAAO,GACL,sBAAsBK,IAAI,CAACC,GAAG,CAAC,CAAC,IAAK1B,YAAY,GAAIA,YAAY,GAAG,CAAC,KAAM,CAAC,EAAG,GAC/E,qBAAqByB,IAAI,CAACC,GAAG,CAAC,CAAC,IAAK1B,YAAY,GAAIA,YAAY,GAAG,CAAC,KAAM,CAAC,EAAG;EAEpF,IAAI;IACF,MAAM2B,SAAS,GAAG1B,cAAc,CAACC,SAAS,EAAEC,MAAM,CAAC;IACnD,MAAMyB,OAAO,GAAG7B,GAAG,CACjB,SAAS,EACT;MACE8B,EAAE,EAAEhB,OAAO;MACXiB,IAAI,EAAE,WAAW;MACjBN,EAAE,EAAEA;IACN,CAAC,EACDzB,GAAG,CAAC,MAAM,EAAE;MACVgC,KAAK,EAAEJ,SAAS;MAChBK,eAAe,EAAElB,SAAS;MAC1BmB,cAAc,EAAElB,QAAQ;MACxBmB,QAAQ,EAAE,GAAGpB,SAAS,IAAIC,QAAQ,EAAE;MACpCoB,QAAQ,EAAEnB,KAAK;MACfoB,SAAS,EAAEjC,MAAM,CAACkC,GAAG,EAAEC,QAAQ,CAAC,CAAC;MACjCC,mBAAmB,EAAEtB,aAAa;MAClCuB,OAAO,EAAE3B,OAAO;MAChB4B,eAAe,EAAE,KAAK;MACtBC,WAAW,EAAE,CAAC;MACdC,YAAY,EAAE,EAAE;MAChBxB,iBAAiB,EAAE,EAAE;MACrBE,aAAa,EAAEA,aAAa,IAAI,KAAK;MACrCD,OAAO,EAAEA,OAAO,IAAI,KAAK;MACzBE,WAAW,EAAEA,WAAW,IAAI,EAAE;MAC9BsB,IAAI,EAAE;IACR,CAAC,CAAC,EACF7C,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAEmB,WAAW,CAC7B,CAAC;IACD,MAAM2B,UAAU,GAAG1C,MAAM,CAAC2C,IAAI,CAAClB,OAAO,CAAC;IACvC,IAAIiB,UAAU,IAAI,OAAQA,UAAU,CAASE,IAAI,KAAK,UAAU,EAAE;MAC/DF,UAAU,CACRE,IAAI,CAAC,MAAMC,OAAO,CAACC,GAAG,CAAC,sBAAsB,EAAE;QAAEzB;MAAG,CAAC,CAAC,CAAC,CACvD0B,KAAK,CAAEC,GAAG,IACTH,OAAO,CAACI,KAAK,CAAC,sBAAsB,EAAE;QACpC5B,EAAE;QACFI,OAAO,EAAGuB,GAAG,EAAUvB,OAAO;QAC9ByB,IAAI,EAAGF,GAAG,EAAUE,IAAI;QACxBC,KAAK,EAAGH,GAAG,EAAUG;MACvB,CAAC,CACH,CAAC;IACL,CAAC,MAAM;MACLN,OAAO,CAACC,GAAG,CAAC,uDAAuD,EAAE;QAAEzB,EAAE;QAAEM,IAAI,EAAE,OAAOe;MAAW,CAAC,CAAC;IACvG;EACF,CAAC,CAAC,OAAOO,KAAK,EAAE;IACdJ,OAAO,CAACI,KAAK,CAACA,KAAK,CAAC;EACtB;AACF,CAAC","ignoreList":[]}
@@ -1,22 +1,60 @@
1
1
  "use strict";
2
2
 
3
3
  import { xml } from '@xmpp/client';
4
+ import { toServiceXmlns } from './sendTextMessage.xmpp';
5
+
6
+ /**
7
+ * Same wire message as `sendTextMessage`, plus a `<translate source="xx"/>`
8
+ * child that DECLARES the message's source language so the backend can
9
+ * translate it for readers in other languages. No pre-translation happens
10
+ * client-side.
11
+ *
12
+ * The `<data>` element MUST be built identically to `sendTextMessage`
13
+ * (correct `xmlns` = the `wss://<host>/ws` service URL, and the
14
+ * `senderFirstName` / `senderLastName` / `senderJID` / `roomJid` attr
15
+ * names the server + parser expect). An earlier version spread a loose
16
+ * `stanzaMessage` bag into `<data>` with no xmlns and mismatched attr
17
+ * names — the server silently dropped those stanzas, so no echo came back
18
+ * and every sent message stayed stuck in the "pending" state. Keep this in
19
+ * lockstep with sendTextMessage.xmpp.ts.
20
+ */
4
21
  export const sendTextMessageWithTranslateTag = (client, stanzaMessage, source, customId) => {
5
- const id = customId || `get-translate-messsage:${Date.now().toString()}`;
22
+ const id = customId || `send-text-message-${Date.now()}`;
6
23
  try {
24
+ const dataXmlns = toServiceXmlns(stanzaMessage.devServer, client);
7
25
  const message = xml('message', {
8
26
  to: stanzaMessage.roomJID,
9
27
  type: 'groupchat',
10
- id: id
28
+ id
11
29
  }, xml('data', {
12
- ...stanzaMessage,
30
+ xmlns: dataXmlns,
31
+ senderFirstName: stanzaMessage.firstName,
32
+ senderLastName: stanzaMessage.lastName,
33
+ fullName: `${stanzaMessage.firstName} ${stanzaMessage.lastName}`,
34
+ photoURL: stanzaMessage.photo,
35
+ senderJID: client.jid?.toString(),
36
+ senderWalletAddress: stanzaMessage.walletAddress,
37
+ roomJid: stanzaMessage.roomJID,
38
+ isSystemMessage: false,
39
+ tokenAmount: 0,
40
+ quickReplies: '',
41
+ notDisplayedValue: '',
42
+ showInChannel: stanzaMessage.showInChannel || false,
43
+ isReply: stanzaMessage.isReply || false,
44
+ mainMessage: stanzaMessage.mainMessage || '',
13
45
  push: 'true'
14
- }), xml('body', {}, stanzaMessage.userMessage), xml('translate', {
15
- source: source
46
+ }), xml('body', {}, stanzaMessage.userMessage),
47
+ // `<translate source>` only DECLARES the language this text is in; it
48
+ // costs nothing to send and is what lets each reader translate the
49
+ // message into their own language on their side.
50
+ xml('translate', {
51
+ source
16
52
  }));
17
53
  client.send(message);
54
+ return true;
18
55
  } catch (error) {
19
56
  console.error('An error occurred while sending message:', error);
57
+ return false;
20
58
  }
21
59
  };
22
60
  //# sourceMappingURL=sendTextMessageWithTranslateTag.xmpp.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["xml","sendTextMessageWithTranslateTag","client","stanzaMessage","source","customId","id","Date","now","toString","message","to","roomJID","type","push","userMessage","send","error","console"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts"],"mappings":";;AAAA,SAAiBA,GAAG,QAAQ,cAAc;AAG1C,OAAO,MAAMC,+BAA+B,GAAGA,CAC7CC,MAAc,EACdC,aAYC,EACDC,MAAqB,EACrBC,QAAiB,KACd;EACH,MAAMC,EAAE,GAAGD,QAAQ,IAAI,0BAA0BE,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE;EAExE,IAAI;IACF,MAAMC,OAAO,GAAGV,GAAG,CACjB,SAAS,EACT;MACEW,EAAE,EAAER,aAAa,CAACS,OAAO;MACzBC,IAAI,EAAE,WAAW;MACjBP,EAAE,EAAEA;IACN,CAAC,EACDN,GAAG,CAAC,MAAM,EAAE;MACV,GAAGG,aAAa;MAChBW,IAAI,EAAE;IACR,CAAC,CAAC,EACFd,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAEG,aAAa,CAACY,WAAW,CAAC,EAC1Cf,GAAG,CAAC,WAAW,EAAE;MAAEI,MAAM,EAAEA;IAAO,CAAC,CACrC,CAAC;IAEDF,MAAM,CAACc,IAAI,CAACN,OAAO,CAAC;EACtB,CAAC,CAAC,OAAOO,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,0CAA0C,EAAEA,KAAK,CAAC;EAClE;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["xml","toServiceXmlns","sendTextMessageWithTranslateTag","client","stanzaMessage","source","customId","id","Date","now","dataXmlns","devServer","message","to","roomJID","type","xmlns","senderFirstName","firstName","senderLastName","lastName","fullName","photoURL","photo","senderJID","jid","toString","senderWalletAddress","walletAddress","roomJid","isSystemMessage","tokenAmount","quickReplies","notDisplayedValue","showInChannel","isReply","mainMessage","push","userMessage","send","error","console"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts"],"mappings":";;AAAA,SAAiBA,GAAG,QAAQ,cAAc;AAE1C,SAASC,cAAc,QAAQ,wBAAwB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,+BAA+B,GAAGA,CAC7CC,MAAc,EACdC,aAYC,EACDC,MAAqB,EACrBC,QAAiB,KACL;EACZ,MAAMC,EAAE,GAAGD,QAAQ,IAAI,qBAAqBE,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;EAExD,IAAI;IACF,MAAMC,SAAS,GAAGT,cAAc,CAACG,aAAa,CAACO,SAAS,EAAER,MAAM,CAAC;IACjE,MAAMS,OAAO,GAAGZ,GAAG,CACjB,SAAS,EACT;MACEa,EAAE,EAAET,aAAa,CAACU,OAAO;MACzBC,IAAI,EAAE,WAAW;MACjBR;IACF,CAAC,EACDP,GAAG,CAAC,MAAM,EAAE;MACVgB,KAAK,EAAEN,SAAS;MAChBO,eAAe,EAAEb,aAAa,CAACc,SAAS;MACxCC,cAAc,EAAEf,aAAa,CAACgB,QAAQ;MACtCC,QAAQ,EAAE,GAAGjB,aAAa,CAACc,SAAS,IAAId,aAAa,CAACgB,QAAQ,EAAE;MAChEE,QAAQ,EAAElB,aAAa,CAACmB,KAAK;MAC7BC,SAAS,EAAErB,MAAM,CAACsB,GAAG,EAAEC,QAAQ,CAAC,CAAC;MACjCC,mBAAmB,EAAEvB,aAAa,CAACwB,aAAa;MAChDC,OAAO,EAAEzB,aAAa,CAACU,OAAO;MAC9BgB,eAAe,EAAE,KAAK;MACtBC,WAAW,EAAE,CAAC;MACdC,YAAY,EAAE,EAAE;MAChBC,iBAAiB,EAAE,EAAE;MACrBC,aAAa,EAAE9B,aAAa,CAAC8B,aAAa,IAAI,KAAK;MACnDC,OAAO,EAAE/B,aAAa,CAAC+B,OAAO,IAAI,KAAK;MACvCC,WAAW,EAAEhC,aAAa,CAACgC,WAAW,IAAI,EAAE;MAC5CC,IAAI,EAAE;IACR,CAAC,CAAC,EACFrC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAEI,aAAa,CAACkC,WAAW,CAAC;IAC1C;IACA;IACA;IACAtC,GAAG,CAAC,WAAW,EAAE;MAAEK;IAAO,CAAC,CAC7B,CAAC;IAEDF,MAAM,CAACoC,IAAI,CAAC3B,OAAO,CAAC;IACpB,OAAO,IAAI;EACb,CAAC,CAAC,OAAO4B,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,0CAA0C,EAAEA,KAAK,CAAC;IAChE,OAAO,KAAK;EACd;AACF,CAAC","ignoreList":[]}
@@ -10,6 +10,7 @@ import { sendTypingRequest } from './xmpp/sendTypingRequest.xmpp';
10
10
  import { sendPing } from './xmpp/sendPing.xmpp';
11
11
  import { getHistory } from './xmpp/getHistory.xmpp';
12
12
  import { sendTextMessage } from './xmpp/sendTextMessage.xmpp';
13
+ import { sendTextMessageWithTranslateTag } from './xmpp/sendTextMessageWithTranslateTag.xmpp';
13
14
  import { deleteMessage } from './xmpp/deleteMessage.xmpp';
14
15
  import { presenceInRoom } from './xmpp/presenceInRoom.xmpp';
15
16
  import { getLastMessage } from './xmpp/getLastMessageArchive.xmpp';
@@ -31,6 +32,33 @@ import { clearOutboundSends, enqueueOutboundSend, flushOutboundSends } from './o
31
32
  // Canonical production XMPP WSS endpoint (standard wss/443, no port suffix).
32
33
  const DEFAULT_DEV_SERVER = 'xmpp.chat.ethora.com';
33
34
 
35
+ // How long to wait for the old client's stop() during a reconnect before
36
+ // giving up on it. Short on purpose: we are already tearing this client
37
+ // down, and a socket that hasn't closed in 3s is exactly the dead one we
38
+ // must not block on. See the call site in reconnect().
39
+ const STOP_TIMEOUT_MS = 3000;
40
+
41
+ /**
42
+ * Resolve when `promise` settles or when `ms` elapses, whichever is first.
43
+ * Never rejects: a teardown that fails or hangs must not break the caller's
44
+ * control flow (that is the whole point of using it around stop()).
45
+ */
46
+ function withTimeout(promise, ms) {
47
+ return new Promise(resolve => {
48
+ let settled = false;
49
+ const done = () => {
50
+ if (settled) {
51
+ return;
52
+ }
53
+ settled = true;
54
+ clearTimeout(timer);
55
+ resolve();
56
+ };
57
+ const timer = setTimeout(done, ms);
58
+ Promise.resolve(promise).then(done, done);
59
+ });
60
+ }
61
+
34
62
  // @xmpp/client surfaces SASL/stream errors in a few shapes depending on
35
63
  // where it fails — XMPPError on stream:error, SASLError on SASL bind, or
36
64
  // a generic Error whose message contains "not-authorized". Match all of
@@ -646,9 +674,17 @@ export class XmppClient {
646
674
  const old = this.client;
647
675
  if (old) {
648
676
  this.detachEventListeners();
649
- try {
650
- await old.stop();
651
- } catch {}
677
+ // NEVER await a bare stop(): on a half-dead socket (the exact case
678
+ // we're reconnecting for) @xmpp/client's stop() can hang forever
679
+ // waiting on a close handshake that never lands. That leaves this
680
+ // function parked before `finally`, so `reconnecting` stays true and
681
+ // EVERY later reconnect — watchdog, NetInfo, AppState — silently
682
+ // returns at the single-flight guard. The client then never comes
683
+ // back until the app is killed, which reads as "new messages just
684
+ // stop arriving". Cap the teardown and move on: initializeClient()
685
+ // replaces `this.client` anyway, and the old one's listeners are
686
+ // already detached above, so a late-settling stop() is harmless.
687
+ await withTimeout(old.stop(), STOP_TIMEOUT_MS);
652
688
  }
653
689
  this.initializeClient();
654
690
  } finally {
@@ -708,12 +744,14 @@ export class XmppClient {
708
744
  // handshake can't re-enter handleStanza and dispatch into a store
709
745
  // that's being wiped (or, on re-login, the new session's store).
710
746
  this.detachEventListeners();
711
- try {
712
- await this.client.stop();
713
- console.log('XMPP client connection closed.');
714
- } catch (error) {
747
+ // Bounded like the reconnect teardown: a stop() that never settles on
748
+ // a dead socket would otherwise hang logout (the LOGOUT_EVENT handler
749
+ // awaits this) and leave the app wedged on the sign-out screen. The
750
+ // rejection is still logged — only the *waiting* is capped.
751
+ await withTimeout(Promise.resolve(this.client.stop()).catch(error => {
715
752
  console.error('Error closing the xmpp client:', error);
716
- }
753
+ }), STOP_TIMEOUT_MS);
754
+ console.log('XMPP client connection closed.');
717
755
  }
718
756
  this.status = 'offline';
719
757
  this.presencesReady = false;
@@ -897,14 +935,38 @@ export class XmppClient {
897
935
  sendMessageReactionStanza(_messageId, _roomJid, _reactionsList, _reactionSymbol) {
898
936
  console.warn('sendMessageReactionStanza: not implemented in RN xmpp client');
899
937
  }
900
- sendTextMessageWithTranslateTagStanza(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, _langSource, customId) {
901
- // No translate tag support yet — fall back to a regular text send.
902
- // Forward the caller's customId so the optimistic message (heap/redux)
903
- // reconciles with the server echo. Without it, translated sends went
904
- // out with no client id → the echo carried a server-assigned id and
905
- // surfaced as a stuck-pending message PLUS a duplicate (affected both
906
- // the live translated-send path and resend).
907
- this.sendMessage(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, customId);
938
+
939
+ // Sends a groupchat message carrying a `<translate source="xx"/>` tag so
940
+ // the backend knows the message's source language and can translate it
941
+ // for each reader (mirrors the web SDK's send path). `langSource` is the
942
+ // sender's own language; it only DECLARES the source, no pre-translation
943
+ // happens client-side. Structure mirrors `sendMessage`: buffer + replay
944
+ // when the stream isn't ready so a reconnect flush re-sends it, and
945
+ // forward `customId` so the optimistic bubble reconciles with the echo.
946
+ sendTextMessageWithTranslateTagStanza(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, langSource, customId) {
947
+ const source = langSource || 'en';
948
+ if (!this.isStreamReady()) {
949
+ enqueueOutboundSend({
950
+ optimisticId: customId || `send-text-message-${Date.now()}`,
951
+ roomJID,
952
+ enqueuedAt: Date.now(),
953
+ send: c => c.sendTextMessageWithTranslateTagStanza(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, langSource, customId)
954
+ });
955
+ return false;
956
+ }
957
+ return sendTextMessageWithTranslateTag(this.client, {
958
+ roomJID,
959
+ firstName,
960
+ lastName,
961
+ photo,
962
+ walletAddress,
963
+ userMessage,
964
+ notDisplayedValue,
965
+ isReply,
966
+ showInChannel,
967
+ mainMessage,
968
+ devServer: this.devServer || DEFAULT_DEV_SERVER
969
+ }, source, customId);
908
970
  }
909
971
  }
910
972
  export default XmppClient;