@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 +1 @@
1
- {"version":3,"names":["LANGUAGE_OPTIONS","name","id"],"sourceRoot":"../../../../src","sources":["helpers/constants/LANGUAGE_OPTIONS.ts"],"mappings":";;AAOA,OAAO,MAAMA,gBAAkC,GAAG,CAChD;EAAEC,IAAI,EAAE,SAAS;EAAEC,EAAE,EAAE;AAAK,CAAC,EAC7B;EAAED,IAAI,EAAE,SAAS;EAAEC,EAAE,EAAE;AAAK,CAAC,EAC7B;EAAED,IAAI,EAAE,YAAY;EAAEC,EAAE,EAAE;AAAK,CAAC,EAChC;EAAED,IAAI,EAAE,gBAAgB;EAAEC,EAAE,EAAE;AAAK,CAAC,EACpC;EAAED,IAAI,EAAE,SAAS;EAAEC,EAAE,EAAE;AAAK,CAAC,CAC9B","ignoreList":[]}
1
+ {"version":3,"names":["LANGUAGE_OPTIONS","name","id"],"sourceRoot":"../../../../src","sources":["helpers/constants/LANGUAGE_OPTIONS.ts"],"mappings":";;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,gBAAkC,GAAG,CAChD;EAAEC,IAAI,EAAE,SAAS;EAAEC,EAAE,EAAE;AAAQ,CAAC,EAChC;EAAED,IAAI,EAAE,SAAS;EAAEC,EAAE,EAAE;AAAQ,CAAC,EAChC;EAAED,IAAI,EAAE,UAAU;EAAEC,EAAE,EAAE;AAAQ;AAChC;AACA;AACA;AAAA,CACD","ignoreList":[]}
@@ -1,5 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ /**
4
+ * Cache-only lookup. Returns the literal "Deleted User" as a MISS sentinel
5
+ * when `usersSet` has no entry for `userId` yet, callers that want a
6
+ * better fallback (e.g. resolveSenderDisplayName below) check for that
7
+ * exact string rather than treating it as a real name.
8
+ */
3
9
  export const createUserNameFromSetUser = (usersSet, userId) => {
4
10
  const user = usersSet[userId];
5
11
  if (!user) {
@@ -7,6 +13,48 @@ export const createUserNameFromSetUser = (usersSet, userId) => {
7
13
  }
8
14
  const firstName = user.firstName?.trim() || '';
9
15
  const lastName = user.lastName?.trim() || '';
10
- return `${firstName} ${lastName}`.trim() || userId;
16
+ // REST-loaded members carry firstName/lastName; XMPP-roster-only
17
+ // members (no REST match yet) carry just the roster `name` attr —
18
+ // fall back to that before giving up and returning the raw id.
19
+ const bareName = user.name?.trim() || '';
20
+ return `${firstName} ${lastName}`.trim() || bareName || userId;
21
+ };
22
+
23
+ /**
24
+ * The sender's display name, resolved WITHOUT depending on `usersSet`
25
+ * having already been hydrated.
26
+ *
27
+ * `usersSet` is populated by a separate fetch (member list / presence) that
28
+ * can still be in flight when a message arrives, most reliably right after
29
+ * reconnect, when a burst of catch-up messages can land before that fetch
30
+ * resolves. A cache-only lookup shows the literal "Deleted User" for every
31
+ * one of those messages, even though the sender is very much not deleted.
32
+ * On mobile this is the common case, not the rare one: every return from
33
+ * background reconnects.
34
+ *
35
+ * The message itself already carries the sender's name on the wire: every
36
+ * client that sends through this SDK stamps `senderFirstName` /
37
+ * `senderLastName` / `fullName` onto the outgoing stanza's `<data>` element
38
+ * (see sendTextMessage.xmpp.ts / sendTextMessageWithTranslateTag.xmpp.ts),
39
+ * and createMessageFromXml spreads those onto the top-level message object.
40
+ * Preferring that over the cache removes the timing dependency entirely for
41
+ * the common case, and "Deleted User" becomes what it should have always
42
+ * been: a rare last resort, not "usersSet hasn't loaded yet".
43
+ */
44
+ export const resolveSenderDisplayName = (message, usersSet) => {
45
+ const rawUserId = String(message?.user?.id || '');
46
+ const localUserId = rawUserId.split('@')[0];
47
+ const currentNameRaw = String(message?.user?.name || '').trim();
48
+ // A previously-resolved "Deleted User" is itself a miss sentinel, not a
49
+ // real name, don't let it short-circuit the fallback chain below.
50
+ const currentName = currentNameRaw === 'Deleted User' ? '' : currentNameRaw;
51
+ const dataFullName = String(message?.fullName || '').trim();
52
+ const dataFirst = String(message?.senderFirstName || '').trim();
53
+ const dataLast = String(message?.senderLastName || '').trim();
54
+ const composedFromData = dataFullName || `${dataFirst} ${dataLast}`.trim();
55
+ const usersSetName = createUserNameFromSetUser(usersSet, localUserId);
56
+ const usersSetNameAlt = createUserNameFromSetUser(usersSet, rawUserId);
57
+ const isUsersSetUseful = name => !!name && name !== 'Deleted User';
58
+ return currentName || isUsersSetUseful(usersSetName) && usersSetName || isUsersSetUseful(usersSetNameAlt) && usersSetNameAlt || composedFromData || localUserId || rawUserId || 'Deleted User';
11
59
  };
12
60
  //# sourceMappingURL=createUserNameFromSetUser.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createUserNameFromSetUser","usersSet","userId","user","firstName","trim","lastName"],"sourceRoot":"../../../src","sources":["helpers/createUserNameFromSetUser.ts"],"mappings":";;AAEA,OAAO,MAAMA,yBAAyB,GAAGA,CACvCC,QAAoC,EACpCC,MAAc,KACH;EACX,MAAMC,IAAI,GAAGF,QAAQ,CAACC,MAAM,CAAC;EAE7B,IAAI,CAACC,IAAI,EAAE;IAAC,OAAO,cAAc;EAAC;EAElC,MAAMC,SAAS,GAAGD,IAAI,CAACC,SAAS,EAAEC,IAAI,CAAC,CAAC,IAAI,EAAE;EAC9C,MAAMC,QAAQ,GAAGH,IAAI,CAACG,QAAQ,EAAED,IAAI,CAAC,CAAC,IAAI,EAAE;EAE5C,OAAO,GAAGD,SAAS,IAAIE,QAAQ,EAAE,CAACD,IAAI,CAAC,CAAC,IAAIH,MAAM;AACpD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createUserNameFromSetUser","usersSet","userId","user","firstName","trim","lastName","bareName","name","resolveSenderDisplayName","message","rawUserId","String","id","localUserId","split","currentNameRaw","currentName","dataFullName","fullName","dataFirst","senderFirstName","dataLast","senderLastName","composedFromData","usersSetName","usersSetNameAlt","isUsersSetUseful"],"sourceRoot":"../../../src","sources":["helpers/createUserNameFromSetUser.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,yBAAyB,GAAGA,CACvCC,QAAoC,EACpCC,MAAc,KACH;EACX,MAAMC,IAAI,GAAGF,QAAQ,CAACC,MAAM,CAAC;EAE7B,IAAI,CAACC,IAAI,EAAE;IAAC,OAAO,cAAc;EAAC;EAElC,MAAMC,SAAS,GAAGD,IAAI,CAACC,SAAS,EAAEC,IAAI,CAAC,CAAC,IAAI,EAAE;EAC9C,MAAMC,QAAQ,GAAGH,IAAI,CAACG,QAAQ,EAAED,IAAI,CAAC,CAAC,IAAI,EAAE;EAC5C;EACA;EACA;EACA,MAAME,QAAQ,GAAGJ,IAAI,CAACK,IAAI,EAAEH,IAAI,CAAC,CAAC,IAAI,EAAE;EAExC,OAAO,GAAGD,SAAS,IAAIE,QAAQ,EAAE,CAACD,IAAI,CAAC,CAAC,IAAIE,QAAQ,IAAIL,MAAM;AAChE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,wBAAwB,GAAGA,CACtCC,OAIC,EACDT,QAAoC,KACzB;EACX,MAAMU,SAAS,GAAGC,MAAM,CAACF,OAAO,EAAEP,IAAI,EAAEU,EAAE,IAAI,EAAE,CAAC;EACjD,MAAMC,WAAW,GAAGH,SAAS,CAACI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAC3C,MAAMC,cAAc,GAAGJ,MAAM,CAACF,OAAO,EAAEP,IAAI,EAAEK,IAAI,IAAI,EAAE,CAAC,CAACH,IAAI,CAAC,CAAC;EAC/D;EACA;EACA,MAAMY,WAAW,GAAGD,cAAc,KAAK,cAAc,GAAG,EAAE,GAAGA,cAAc;EAE3E,MAAME,YAAY,GAAGN,MAAM,CAACF,OAAO,EAAES,QAAQ,IAAI,EAAE,CAAC,CAACd,IAAI,CAAC,CAAC;EAC3D,MAAMe,SAAS,GAAGR,MAAM,CAACF,OAAO,EAAEW,eAAe,IAAI,EAAE,CAAC,CAAChB,IAAI,CAAC,CAAC;EAC/D,MAAMiB,QAAQ,GAAGV,MAAM,CAACF,OAAO,EAAEa,cAAc,IAAI,EAAE,CAAC,CAAClB,IAAI,CAAC,CAAC;EAC7D,MAAMmB,gBAAgB,GAAGN,YAAY,IAAI,GAAGE,SAAS,IAAIE,QAAQ,EAAE,CAACjB,IAAI,CAAC,CAAC;EAE1E,MAAMoB,YAAY,GAAGzB,yBAAyB,CAACC,QAAQ,EAAEa,WAAW,CAAC;EACrE,MAAMY,eAAe,GAAG1B,yBAAyB,CAACC,QAAQ,EAAEU,SAAS,CAAC;EACtE,MAAMgB,gBAAgB,GAAInB,IAAY,IAAK,CAAC,CAACA,IAAI,IAAIA,IAAI,KAAK,cAAc;EAE5E,OACES,WAAW,IACVU,gBAAgB,CAACF,YAAY,CAAC,IAAIA,YAAa,IAC/CE,gBAAgB,CAACD,eAAe,CAAC,IAAIA,eAAgB,IACtDF,gBAAgB,IAChBV,WAAW,IACXH,SAAS,IACT,cAAc;AAElB,CAAC","ignoreList":[]}
@@ -1,6 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  import { transformArrayToObject } from './transformTranslatations';
4
+
5
+ // Tolerant JSON parse: a malformed `translations` attr must not reject the
6
+ // whole stanza (which would silently drop the message). Mirrors the web
7
+ // SDK's safeJsonParse.
8
+ const safeJsonParse = (value, fallback) => {
9
+ if (typeof value !== 'string' || !value) {
10
+ return fallback;
11
+ }
12
+ try {
13
+ return JSON.parse(value);
14
+ } catch {
15
+ return fallback;
16
+ }
17
+ };
18
+
19
+ // Keep only well-formed translation entries (drops partial/garbage items),
20
+ // same shape guard the web SDK applies before transformArrayToObject.
21
+ 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') : [];
4
22
  const extractTimestamp = (str, stanza) => {
5
23
  if (!str) {
6
24
  return null;
@@ -23,7 +41,8 @@ export const getDataFromXml = async stanza => {
23
41
  }
24
42
  const body = fullData?.getChild('body')?.getText() || undefined;
25
43
  const deleted = !!fullData?.getChild('deleted');
26
- const translations = fullData?.getChild('translations')?.attrs?.value ? transformArrayToObject(JSON.parse(fullData.getChild('translations').attrs.value).translates) : undefined;
44
+ const translationPayload = safeJsonParse(fullData?.getChild('translations')?.attrs?.value, {});
45
+ const translations = fullData?.getChild('translations')?.attrs?.value ? transformArrayToObject(normalizeTranslations(translationPayload.translates)) : undefined;
27
46
  const langSource = fullData?.getChild('translate')?.attrs?.source;
28
47
  const numericPart = /\d{13,}/.exec(id || '')?.[0];
29
48
  const date = numericPart ? new Date(+numericPart.slice(0, 13)).toISOString() : new Date().toISOString();
@@ -1 +1 @@
1
- {"version":3,"names":["transformArrayToObject","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","JSON","parse","translates","langSource","source","numericPart","exec","date","toISOString","data","photoURL","photo","user","dataAttrs"],"sourceRoot":"../../../src","sources":["helpers/getDataFromXml.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["transformArrayToObject","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","translates","langSource","source","numericPart","exec","date","toISOString","data","photoURL","photo","user","dataAttrs"],"sourceRoot":"../../../src","sources":["helpers/getDataFromXml.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ import { store } from '../roomStore';
4
+ import { setIncomingCallToken } from '../roomStore/callSlice';
5
+ import { isCallPush, parseCallPush } from './callPush';
6
+
7
+ /**
8
+ * Turn an incoming-call push into a ringing call.
9
+ *
10
+ * On mobile the XMPP socket dies whenever the OS backgrounds or kills the
11
+ * app, and the `call-token` stanza that normally opens the ring screen is
12
+ * lost with it. The backend also delivers the call as a data push, so this
13
+ * is the path every call takes when the app was not in the foreground.
14
+ *
15
+ * Returns true when the payload WAS a call push (whether or not it could
16
+ * be rung), so the caller knows to stop and not also show it as a chat
17
+ * notification. A user should never get a "new message: call-state" toast.
18
+ */
19
+ export const handleCallPush = data => {
20
+ if (!isCallPush(data)) {
21
+ return false;
22
+ }
23
+ const parsed = parseCallPush(data);
24
+ const state = store.getState();
25
+
26
+ // Calls off in this deployment: swallow the push rather than ringing a
27
+ // screen the host never opted into.
28
+ if (state.chatSettingStore.config?.videoCalls?.enabled !== true) {
29
+ return true;
30
+ }
31
+
32
+ // Already ringing or in this exact call (the push raced the stanza, or
33
+ // two pushes arrived). Re-dispatching would reset startedAt and restart
34
+ // the ring, so leave the existing call alone.
35
+ const current = state.call;
36
+ if (current.phase !== 'idle') {
37
+ const sameCall = !!parsed.callId && parsed.callId === current.callId || !!parsed.roomBareName && parsed.roomBareName === current.roomBareName;
38
+ if (sameCall || current.phase === 'in-call') {
39
+ return true;
40
+ }
41
+ }
42
+
43
+ // Without a LiveKit token there is nothing to accept: the push is only
44
+ // an alert. Ringing anyway would give the user an Accept button that
45
+ // cannot work, so treat it as handled and let the stanza (once the
46
+ // socket is back up) open the real ring screen.
47
+ if (!parsed.token) {
48
+ return true;
49
+ }
50
+
51
+ // Resolve the full room JID from the local room map. The push carries
52
+ // the bare name; callSlice and the hangup signal both want the JID.
53
+ const rooms = state.rooms.rooms || {};
54
+ const resolved = Object.values(rooms).find(room => (room?.jid || '').split('@')[0] === parsed.roomBareName || room?.jid === parsed.roomRef);
55
+ const roomJid = resolved?.jid || (parsed.roomRef && parsed.roomRef.includes('@') ? parsed.roomRef : '');
56
+ if (!roomJid) {
57
+ return true;
58
+ }
59
+ store.dispatch(setIncomingCallToken({
60
+ roomJid,
61
+ roomName: parsed.callerName || resolved?.name || null,
62
+ roomBareName: parsed.roomBareName,
63
+ token: parsed.token,
64
+ kind: parsed.kind,
65
+ callId: parsed.callId,
66
+ peerXmppUsername: parsed.callerXmppUsername
67
+ }));
68
+ return true;
69
+ };
70
+ //# sourceMappingURL=incomingCallFromPush.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["store","setIncomingCallToken","isCallPush","parseCallPush","handleCallPush","data","parsed","state","getState","chatSettingStore","config","videoCalls","enabled","current","call","phase","sameCall","callId","roomBareName","token","rooms","resolved","Object","values","find","room","jid","split","roomRef","roomJid","includes","dispatch","roomName","callerName","name","kind","peerXmppUsername","callerXmppUsername"],"sourceRoot":"../../../src","sources":["helpers/incomingCallFromPush.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,cAAc;AACpC,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,UAAU,EAAEC,aAAa,QAAQ,YAAY;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GACzBC,IAA4C,IAChC;EACZ,IAAI,CAACH,UAAU,CAACG,IAAI,CAAC,EAAE;IACrB,OAAO,KAAK;EACd;EAEA,MAAMC,MAAM,GAAGH,aAAa,CAACE,IAAI,CAAC;EAClC,MAAME,KAAK,GAAGP,KAAK,CAACQ,QAAQ,CAAC,CAAC;;EAE9B;EACA;EACA,IAAID,KAAK,CAACE,gBAAgB,CAACC,MAAM,EAAEC,UAAU,EAAEC,OAAO,KAAK,IAAI,EAAE;IAC/D,OAAO,IAAI;EACb;;EAEA;EACA;EACA;EACA,MAAMC,OAAO,GAAGN,KAAK,CAACO,IAAI;EAC1B,IAAID,OAAO,CAACE,KAAK,KAAK,MAAM,EAAE;IAC5B,MAAMC,QAAQ,GACX,CAAC,CAACV,MAAM,CAACW,MAAM,IAAIX,MAAM,CAACW,MAAM,KAAKJ,OAAO,CAACI,MAAM,IACnD,CAAC,CAACX,MAAM,CAACY,YAAY,IAAIZ,MAAM,CAACY,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,CAACT,MAAM,CAACa,KAAK,EAAE;IACjB,OAAO,IAAI;EACb;;EAEA;EACA;EACA,MAAMC,KAAK,GAAGb,KAAK,CAACa,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,KAAKrB,MAAM,CAACY,YAAY,IACvDO,IAAI,EAAEC,GAAG,KAAKpB,MAAM,CAACsB,OACzB,CAAgD;EAEhD,MAAMC,OAAO,GACXR,QAAQ,EAAEK,GAAG,KACZpB,MAAM,CAACsB,OAAO,IAAItB,MAAM,CAACsB,OAAO,CAACE,QAAQ,CAAC,GAAG,CAAC,GAAGxB,MAAM,CAACsB,OAAO,GAAG,EAAE,CAAC;EACxE,IAAI,CAACC,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA7B,KAAK,CAAC+B,QAAQ,CACZ9B,oBAAoB,CAAC;IACnB4B,OAAO;IACPG,QAAQ,EAAE1B,MAAM,CAAC2B,UAAU,IAAIZ,QAAQ,EAAEa,IAAI,IAAI,IAAI;IACrDhB,YAAY,EAAEZ,MAAM,CAACY,YAAY;IACjCC,KAAK,EAAEb,MAAM,CAACa,KAAK;IACnBgB,IAAI,EAAE7B,MAAM,CAAC6B,IAAI;IACjBlB,MAAM,EAAEX,MAAM,CAACW,MAAM;IACrBmB,gBAAgB,EAAE9B,MAAM,CAAC+B;EAC3B,CAAC,CACH,CAAC;EAED,OAAO,IAAI;AACb,CAAC","ignoreList":[]}
@@ -52,6 +52,18 @@ export function insertMessageWithDelimiter(roomMessages, message, lastViewedTime
52
52
  if (lastViewedTimestamp && !roomMessages.some(msg => msg.id === 'delimiter-new') && isDateAfter(newMessageDate.toString(), lastViewedTimestamp.toString())) {
53
53
  const delimiterIndex = roomMessages.findIndex(msg => isDateAfter(msg.date?.toString() ?? '', lastViewedTimestamp.toString()));
54
54
  if (delimiterIndex !== -1) {
55
+ // The divider's date is what ORDERS it: roomsSlice re-sorts every
56
+ // merged page by timestamp (see `byMs`), so a divider stamped with
57
+ // `new Date()` — i.e. now — sorted past every real message and
58
+ // rendered at the very bottom, BELOW the new messages it is
59
+ // supposed to introduce. Anchor it a hair before the first unread
60
+ // instead, which is where it belongs and where any later sort keeps
61
+ // it. Derived from that message rather than from
62
+ // lastViewedTimestamp so it works whatever format the caller passes.
63
+ const firstUnreadMs = Date.parse(String(roomMessages[delimiterIndex]?.date ?? ''));
64
+ const rawLastViewed = lastViewedTimestamp.toString();
65
+ const lastViewedMs = Date.parse(rawLastViewed) || Number(rawLastViewed) || Date.now();
66
+ const anchorMs = Number.isFinite(firstUnreadMs) ? firstUnreadMs - 1 : lastViewedMs;
55
67
  roomMessages.splice(delimiterIndex, 0, {
56
68
  id: 'delimiter-new',
57
69
  user: {
@@ -60,7 +72,7 @@ export function insertMessageWithDelimiter(roomMessages, message, lastViewedTime
60
72
  token: '',
61
73
  refreshToken: ''
62
74
  },
63
- date: new Date().toString(),
75
+ date: new Date(anchorMs).toISOString(),
64
76
  body: 'New Messages',
65
77
  roomJid: ''
66
78
  });
@@ -1 +1 @@
1
- {"version":3,"names":["isDateAfter","isDateBefore","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","toString","index","push","some","delimiterIndex","splice","name","undefined","token","refreshToken","Date","body","roomJid","unshift","i"],"sourceRoot":"../../../src","sources":["helpers/insertMessageWithDelimiter.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isDateAfter","isDateBefore","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","toString","index","push","some","delimiterIndex","firstUnreadMs","Date","parse","String","rawLastViewed","lastViewedMs","Number","now","anchorMs","isFinite","splice","name","undefined","token","refreshToken","toISOString","body","roomJid","unshift","i"],"sourceRoot":"../../../src","sources":["helpers/insertMessageWithDelimiter.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Whether a resolved sender "name" is really just an unresolved id.
5
+ *
6
+ * The name chain ends at the sender's JID localpart when `usersSet` has no
7
+ * entry and the wire carried no name. For a real member that never happens
8
+ * for long — the REST roster fills the cache in. But some senders are not
9
+ * members at all: a broadcast posted by the app itself arrives with the
10
+ * ROOM's own id as its occupant resource (e.g.
11
+ * `646cc8dc96d4a4dc8f7b2f2d_67f6823cf5995841ba431f06`), so no roster will
12
+ * ever resolve it and the bubble ends up captioned with 50 characters of
13
+ * hex.
14
+ *
15
+ * Ethora ids are `<24-hex appId>_<24-hex objectId>`, which is what this
16
+ * matches. A raw objectId on its own is matched too, since some senders
17
+ * carry only that half.
18
+ */
19
+ const ETHORA_ID = /^[0-9a-f]{24}(_[0-9a-f]{24})?$/i;
20
+ export const isUnresolvedSenderId = name => {
21
+ const trimmed = String(name || '').trim();
22
+ if (!trimmed) {
23
+ return true;
24
+ }
25
+ return ETHORA_ID.test(trimmed);
26
+ };
27
+ //# sourceMappingURL=isUnresolvedSenderId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ETHORA_ID","isUnresolvedSenderId","name","trimmed","String","trim","test"],"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;AAEnD,OAAO,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","ignoreList":[]}
@@ -10,6 +10,7 @@ export const useChatSettingState = () => {
10
10
  const selectedUser = useSelector(state => state.chatSettingStore.selectedUser);
11
11
  const langSource = useSelector(state => state.chatSettingStore.langSource);
12
12
  const client = useSelector(state => state.chatSettingStore.client);
13
+ const translateMode = useSelector(state => state.chatSettingStore.translateMode);
13
14
  return {
14
15
  user,
15
16
  activeFile,
@@ -18,6 +19,7 @@ export const useChatSettingState = () => {
18
19
  deleteModal,
19
20
  selectedUser,
20
21
  langSource,
22
+ translateMode,
21
23
  client
22
24
  };
23
25
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useSelector","useChatSettingState","user","state","chatSettingStore","activeFile","activeModal","config","deleteModal","selectedUser","langSource","client"],"sourceRoot":"../../../src","sources":["hooks/useChatSettingState.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,aAAa;AAGzC,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMC,IAAI,GAAGF,WAAW,CAAEG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACF,IAAI,CAAC;EAC3E,MAAMG,UAAU,GAAGL,WAAW,CAC3BG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACC,UAC/C,CAAC;EACD,MAAMC,WAAW,GAAGN,WAAW,CAC5BG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACE,WAC/C,CAAC;EACD,MAAMC,MAAM,GAAGP,WAAW,CACvBG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACG,MAC/C,CAAC;EACD,MAAMC,WAAW,GAAGR,WAAW,CAC5BG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACI,WAC/C,CAAC;EACD,MAAMC,YAAY,GAAGT,WAAW,CAC7BG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACK,YAC/C,CAAC;EACD,MAAMC,UAAU,GAAGV,WAAW,CAC3BG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACM,UAC/C,CAAC;EACD,MAAMC,MAAM,GAAGX,WAAW,CACvBG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACO,MAC/C,CAAC;EAED,OAAO;IACLT,IAAI;IACJG,UAAU;IACVC,WAAW;IACXC,MAAM;IACNC,WAAW;IACXC,YAAY;IACZC,UAAU;IACVC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useSelector","useChatSettingState","user","state","chatSettingStore","activeFile","activeModal","config","deleteModal","selectedUser","langSource","client","translateMode"],"sourceRoot":"../../../src","sources":["hooks/useChatSettingState.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,aAAa;AAGzC,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMC,IAAI,GAAGF,WAAW,CAAEG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACF,IAAI,CAAC;EAC3E,MAAMG,UAAU,GAAGL,WAAW,CAC3BG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACC,UAC/C,CAAC;EACD,MAAMC,WAAW,GAAGN,WAAW,CAC5BG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACE,WAC/C,CAAC;EACD,MAAMC,MAAM,GAAGP,WAAW,CACvBG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACG,MAC/C,CAAC;EACD,MAAMC,WAAW,GAAGR,WAAW,CAC5BG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACI,WAC/C,CAAC;EACD,MAAMC,YAAY,GAAGT,WAAW,CAC7BG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACK,YAC/C,CAAC;EACD,MAAMC,UAAU,GAAGV,WAAW,CAC3BG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACM,UAC/C,CAAC;EACD,MAAMC,MAAM,GAAGX,WAAW,CACvBG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACO,MAC/C,CAAC;EACD,MAAMC,aAAa,GAAGZ,WAAW,CAC9BG,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACQ,aAC/C,CAAC;EAED,OAAO;IACLV,IAAI;IACJG,UAAU;IACVC,WAAW;IACXC,MAAM;IACNC,WAAW;IACXC,YAAY;IACZC,UAAU;IACVE,aAAa;IACbD;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ import { toBaseLanguage } from '../i18n/strings';
4
+ // "42", "+1 (555) 123-4567", "3.14159" — text with no actual letters has
5
+ // nothing to translate.
6
+ const hasNoLetters = text => !/\p{L}/u.test(text);
7
+
8
+ /**
9
+ * Translation for ONE message, into the reader's language only. Ported
10
+ * verbatim from the web SDK (src/hooks/useMessageTranslation.ts).
11
+ *
12
+ * Pure and synchronous — no HTTP call. Every translation this client ever
13
+ * shows arrives over XMPP already: the sender tags outgoing messages with
14
+ * `<translate source="xx"/>` (see sendTextMessageWithTranslateTag) and
15
+ * whatever process attaches actual translations does so server-side,
16
+ * landing on `message.translations` when the stanza is parsed (see
17
+ * getDataFromXml). This function only ever reads that — it never calls a
18
+ * translation service itself, so there's nothing to fail when one isn't
19
+ * reachable, and nothing to await.
20
+ */
21
+ export const useMessageTranslation = (message, readerLocale, enabled = true) => {
22
+ const originalText = message?.body || '';
23
+ const source = message?.langSource;
24
+ const targetBase = toBaseLanguage(readerLocale || 'en');
25
+ const sourceBase = toBaseLanguage(source);
26
+
27
+ // Nothing to do when we don't know the source language, the message is
28
+ // already in the reader's language (region ignored: en-US vs en-CA is the
29
+ // same language, not a translation job), or there's no actual text to
30
+ // translate (a bare number, a phone number, an emoji-only reaction).
31
+ const trimmedText = originalText.trim();
32
+ const needsTranslation = enabled && !!trimmedText && !!source && sourceBase !== targetBase && !hasNoLetters(trimmedText);
33
+ const result = needsTranslation ? message?.translations?.[readerLocale || '']?.translatedText || message?.translations?.[targetBase]?.translatedText : undefined;
34
+
35
+ // A "translation" that's byte-identical to the original (mistagged
36
+ // langSource, a no-op from the source, matching proper nouns/numbers in
37
+ // otherwise-different text) is worse than nothing: it renders the same
38
+ // sentence twice. Treat identical-after-trim as "nothing to show".
39
+ const isRealTranslation = !!result && result.trim() !== originalText.trim();
40
+ return {
41
+ hasTranslation: isRealTranslation,
42
+ originalText,
43
+ displayText: isRealTranslation ? result : originalText
44
+ };
45
+ };
46
+ //# sourceMappingURL=useMessageTranslation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["toBaseLanguage","hasNoLetters","text","test","useMessageTranslation","message","readerLocale","enabled","originalText","body","source","langSource","targetBase","sourceBase","trimmedText","trim","needsTranslation","result","translations","translatedText","undefined","isRealTranslation","hasTranslation","displayText"],"sourceRoot":"../../../src","sources":["hooks/useMessageTranslation.ts"],"mappings":";;AACA,SAASA,cAAc,QAAQ,iBAAiB;AAYhD;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;AACA,OAAO,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,GAAGZ,cAAc,CAACM,YAAY,IAAI,IAAI,CAAC;EACvD,MAAMO,UAAU,GAAGb,cAAc,CAACU,MAAM,CAAC;;EAEzC;EACA;EACA;EACA;EACA,MAAMI,WAAW,GAAGN,YAAY,CAACO,IAAI,CAAC,CAAC;EACvC,MAAMC,gBAAgB,GACpBT,OAAO,IACP,CAAC,CAACO,WAAW,IACb,CAAC,CAACJ,MAAM,IACRG,UAAU,KAAKD,UAAU,IACzB,CAACX,YAAY,CAACa,WAAW,CAAC;EAE5B,MAAMG,MAAM,GAAGD,gBAAgB,GAC3BX,OAAO,EAAEa,YAAY,GAAGZ,YAAY,IAAI,EAAE,CAAC,EAAEa,cAAc,IAC3Dd,OAAO,EAAEa,YAAY,GAAGN,UAAU,CAAC,EAAEO,cAAc,GACnDC,SAAS;;EAEb;EACA;EACA;EACA;EACA,MAAMC,iBAAiB,GACrB,CAAC,CAACJ,MAAM,IAAIA,MAAM,CAACF,IAAI,CAAC,CAAC,KAAKP,YAAY,CAACO,IAAI,CAAC,CAAC;EAEnD,OAAO;IACLO,cAAc,EAAED,iBAAiB;IACjCb,YAAY;IACZe,WAAW,EAAEF,iBAAiB,GAAIJ,MAAM,GAAcT;EACxD,CAAC;AACH,CAAC","ignoreList":[]}
@@ -7,6 +7,7 @@ import { pushSubscriptionService } from '../services/pushSubscriptionService';
7
7
  import { useSelector, useDispatch } from 'react-redux';
8
8
  import { useLocalStorage } from './useLocalStorage';
9
9
  import { setPendingNotificationJid } from '../roomStore/roomsSlice';
10
+ import { handleCallPush } from '../helpers/incomingCallFromPush';
10
11
  export function usePushNotifications() {
11
12
  const [fcmToken, setFcmToken] = useState(null);
12
13
  const [notification, setNotification] = useState(null);
@@ -21,7 +22,11 @@ export function usePushNotifications() {
21
22
  get
22
23
  } = useLocalStorage('fcmToken');
23
24
  const handleNotificationPress = remoteMessage => {
24
- console.log('[usePushNotifications] Notification pressed:', JSON.stringify(remoteMessage, null, 2));
25
+ // Tapping a call notification (or launching the app from one) should
26
+ // land on the ring screen, not on the chat room.
27
+ if (handleCallPush(remoteMessage?.data)) {
28
+ return;
29
+ }
25
30
  const jid = remoteMessage?.data?.jid || remoteMessage?.data?.chatJid || remoteMessage?.jid;
26
31
  if (jid) {
27
32
  dispatch(setPendingNotificationJid(jid));
@@ -50,10 +55,15 @@ export function usePushNotifications() {
50
55
  // synchronous throw before the try-block ran would still leak.
51
56
  initToken().catch(err => console.warn('[usePushNotifications] initToken rejected', err));
52
57
  const unsubscribeForeground = onForegroundMessage(message => {
58
+ // Calls first: a call push must open the ring screen, never an
59
+ // "OK / Open" alert. handleCallPush returns true for anything
60
+ // call-shaped, so we bail before the chat-notification path.
61
+ if (handleCallPush(message?.data)) {
62
+ return;
63
+ }
53
64
  setNotification(message);
54
65
  const {
55
- notification: notif,
56
- data
66
+ notification: notif
57
67
  } = message;
58
68
  if (notif) {
59
69
  Alert.alert(notif.title || 'Notification', notif.body || '', [{
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","Alert","initPushNotifications","onForegroundMessage","onNotificationOpenedApp","getInitialNotification","pushSubscriptionService","useSelector","useDispatch","useLocalStorage","setPendingNotificationJid","usePushNotifications","fcmToken","setFcmToken","notification","setNotification","user","config","state","chatSettingStore","rooms","dispatch","set","get","handleNotificationPress","remoteMessage","console","log","JSON","stringify","jid","data","chatJid","warn","initToken","token","newToken","error","catch","err","unsubscribeForeground","message","notif","alert","title","body","text","onPress","unsubscribeOpened","then","xmppPassword","defaultWallet","walletAddress","subscribeToPush","projectName"],"sourceRoot":"../../../src","sources":["hooks/usePushNotifications.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useState","Alert","initPushNotifications","onForegroundMessage","onNotificationOpenedApp","getInitialNotification","pushSubscriptionService","useSelector","useDispatch","useLocalStorage","setPendingNotificationJid","handleCallPush","usePushNotifications","fcmToken","setFcmToken","notification","setNotification","user","config","state","chatSettingStore","rooms","dispatch","set","get","handleNotificationPress","remoteMessage","data","jid","chatJid","console","warn","initToken","token","newToken","error","catch","err","unsubscribeForeground","message","notif","alert","title","body","text","onPress","unsubscribeOpened","log","JSON","stringify","then","xmppPassword","defaultWallet","walletAddress","subscribeToPush","projectName"],"sourceRoot":"../../../src","sources":["hooks/usePushNotifications.ts"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ import { useXmppClient } from '../context/xmppProvider';
7
7
  import { useDispatch, useSelector, useStore } from 'react-redux';
8
8
  import { addRoomMessage, setEditAction } from '../roomStore/roomsSlice';
9
9
  import { addMessageToHeap, clearMessageFailure, markMessageFailed } from '../roomStore/roomHeapSlice';
10
- import { uploadFileViaFetch } from '../networking/api-requests/auth.api';
10
+ import { uploadFileMultipart } from '../networking/api-requests/auth.api';
11
11
  import { enqueueOutboundSend } from '../networking/outboundQueue';
12
12
  import { store } from '../roomStore';
13
13
  import { getGlobalXmppClient } from '../utils/clientRegistry';
@@ -64,6 +64,12 @@ export const useSendMessage = _configOverride => {
64
64
  // rerenders on every redux update.
65
65
  const user = useSelector(state => state.chatSettingStore.user);
66
66
  const config = useSelector(state => state.chatSettingStore.config);
67
+ // The sender's own language, driven by the header globe picker (or the
68
+ // host via config.translates.readerLocale). Declared on every outgoing
69
+ // message as `<translate source>` so the backend can translate it for
70
+ // readers in other languages (see sendTextMessageWithTranslateTagStanza).
71
+ // Mirrors the web SDK, which always sends through the translate-tag path.
72
+ const langSource = useSelector(state => state.chatSettingStore.langSource);
67
73
  const editAction = useSelector(state => state.rooms.editAction);
68
74
  const rooms = useSelector(state => state.rooms.rooms);
69
75
  const {
@@ -122,6 +128,10 @@ export const useSendMessage = _configOverride => {
122
128
  date: optimisticDate,
123
129
  pending: true,
124
130
  isDeleted: false,
131
+ // Declare the sender's language on their own optimistic bubble so
132
+ // manual-mode readers see the Translate link on it too (parity with
133
+ // the web SDK, which stamps langSource on the optimistic message).
134
+ langSource: langSource || 'en',
125
135
  user: {
126
136
  ...user,
127
137
  id: selfId,
@@ -173,7 +183,7 @@ export const useSendMessage = _configOverride => {
173
183
  // means the server echoes it back with the same value, so the
174
184
  // reducer's dedupe matches and the bubble flips pending → delivered
175
185
  // in-place (rather than rendering a second copy).
176
- const replaySend = c => c.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId);
186
+ const replaySend = c => c.sendTextMessageWithTranslateTagStanza(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', langSource || 'en', optimisticId);
177
187
 
178
188
  // Always buffer a copy BEFORE attempting the live send. The WebSocket
179
189
  // can still read `status: 'online'` for a beat after the network
@@ -232,7 +242,7 @@ export const useSendMessage = _configOverride => {
232
242
  messageType: 'text'
233
243
  });
234
244
  }
235
- }, [editAction, client, user, dispatch, handleMessageSent, handleMessageEdited, handleMessageFailed, reduxStore]);
245
+ }, [editAction, client, user, langSource, dispatch, handleMessageSent, handleMessageEdited, handleMessageFailed, reduxStore]);
236
246
  const sendMedia = useCallback(async (data, type, activeRoomJID, isReply = false, isChecked = false, mainMessage = '', existingId) => {
237
247
  client?.onCriticalSend?.(activeRoomJID);
238
248
 
@@ -372,7 +382,7 @@ export const useSendMessage = _configOverride => {
372
382
  const fd = new FormData();
373
383
  fd.append('files', fileBlob);
374
384
  try {
375
- return await uploadFileViaFetch(fd);
385
+ return await uploadFileMultipart(fd);
376
386
  } catch (err) {
377
387
  if (err?.response?.status === 500) {
378
388
  console.warn('upload "files" field returned 500 — retrying with "file" (singular)', {
@@ -381,7 +391,7 @@ export const useSendMessage = _configOverride => {
381
391
  });
382
392
  const fd2 = new FormData();
383
393
  fd2.append('file', fileBlob);
384
- return await uploadFileViaFetch(fd2);
394
+ return await uploadFileMultipart(fd2);
385
395
  }
386
396
  throw err;
387
397
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileViaFetch","enqueueOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","MEDIA_PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","existingId","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","kind","Error","replaySend","c","enqueuedAt","send","effectiveClient","status","anyClient","forceReconnect","ensureStreamAlive","clearTimeout","sendMedia","data","type","size","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","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","OS","platformVersion","Version","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileMultipart","enqueueOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","MEDIA_PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","langSource","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","existingId","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","kind","Error","replaySend","c","sendTextMessageWithTranslateTagStanza","enqueuedAt","send","effectiveClient","status","anyClient","forceReconnect","ensureStreamAlive","clearTimeout","sendMedia","data","type","size","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","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","OS","platformVersion","Version","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}