@ethora/chat-component-rn 26.5.21 → 26.6.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +80 -0
- package/README.md +3 -3
- package/index.js +1 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js +20 -8
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +17 -0
- package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/LanguageSelectorButton.js +62 -0
- package/lib/commonjs/components/MainComponents/LanguageSelectorButton.js.map +1 -0
- package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js +253 -0
- package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js.map +1 -0
- package/lib/commonjs/components/MainComponents/RoomList.js +23 -9
- package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Message.js +72 -11
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageTranslate.js +160 -0
- package/lib/commonjs/components/MessageBubble/MessageTranslate.js.map +1 -0
- package/lib/commonjs/components/MessageBubble/TranslatedMessageBody.js +59 -0
- package/lib/commonjs/components/MessageBubble/TranslatedMessageBody.js.map +1 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +3 -3
- package/lib/commonjs/components/UsersList/UsersList.js +3 -1
- package/lib/commonjs/components/UsersList/UsersList.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/CallButtons.js +159 -0
- package/lib/commonjs/components/VideoCalls/CallButtons.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/CallIcons.js +328 -0
- package/lib/commonjs/components/VideoCalls/CallIcons.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js +550 -0
- package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/VideoCallSession.js +636 -0
- package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/livekitRuntime.js +91 -0
- package/lib/commonjs/components/VideoCalls/livekitRuntime.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/useCallKeep.js +215 -0
- package/lib/commonjs/components/VideoCalls/useCallKeep.js.map +1 -0
- package/lib/commonjs/components/styled/AudioMessage.js +91 -33
- package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
- package/lib/commonjs/components/styled/RoomListComponents/index.js +13 -1
- package/lib/commonjs/components/styled/RoomListComponents/index.js.map +1 -1
- package/lib/commonjs/components/styled/SendInput.js +83 -49
- package/lib/commonjs/components/styled/SendInput.js.map +1 -1
- package/lib/commonjs/components/styled/StyledComponents.js +9 -4
- package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
- package/lib/commonjs/components/styled/StyledInputComponents/Composing.js +2 -0
- package/lib/commonjs/components/styled/StyledInputComponents/Composing.js.map +1 -1
- package/lib/commonjs/context/xmppProvider.js +10 -3
- package/lib/commonjs/context/xmppProvider.js.map +1 -1
- package/lib/commonjs/helpers/callLogMessage.js +162 -0
- package/lib/commonjs/helpers/callLogMessage.js.map +1 -0
- package/lib/commonjs/helpers/callPush.js +61 -0
- package/lib/commonjs/helpers/callPush.js.map +1 -0
- package/lib/commonjs/helpers/constants/LANGUAGE_OPTIONS.js +24 -12
- package/lib/commonjs/helpers/constants/LANGUAGE_OPTIONS.js.map +1 -1
- package/lib/commonjs/helpers/createUserNameFromSetUser.js +51 -2
- package/lib/commonjs/helpers/createUserNameFromSetUser.js.map +1 -1
- package/lib/commonjs/helpers/getDataFromXml.js +19 -1
- package/lib/commonjs/helpers/getDataFromXml.js.map +1 -1
- package/lib/commonjs/helpers/incomingCallFromPush.js +74 -0
- package/lib/commonjs/helpers/incomingCallFromPush.js.map +1 -0
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js +13 -1
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/commonjs/helpers/isUnresolvedSenderId.js +32 -0
- package/lib/commonjs/helpers/isUnresolvedSenderId.js.map +1 -0
- package/lib/commonjs/hooks/useChatSettingState.js +2 -0
- package/lib/commonjs/hooks/useChatSettingState.js.map +1 -1
- package/lib/commonjs/hooks/useMessageTranslation.js +51 -0
- package/lib/commonjs/hooks/useMessageTranslation.js.map +1 -0
- package/lib/commonjs/hooks/usePushNotifications.js +13 -3
- package/lib/commonjs/hooks/usePushNotifications.js.map +1 -1
- package/lib/commonjs/hooks/useSendMessage.js +12 -2
- package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
- package/lib/commonjs/i18n/strings.js +1308 -0
- package/lib/commonjs/i18n/strings.js.map +1 -0
- package/lib/commonjs/i18n/useT.js +60 -0
- package/lib/commonjs/i18n/useT.js.map +1 -0
- package/lib/commonjs/main.js +44 -0
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/networking/api-requests/push.api.js +34 -5
- package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/rooms.api.js +108 -0
- package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/commonjs/networking/callTokenStanza.js +531 -0
- package/lib/commonjs/networking/callTokenStanza.js.map +1 -0
- package/lib/commonjs/networking/outboundQueue.js.map +1 -1
- package/lib/commonjs/networking/stanzaHandlers.js +75 -8
- package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +47 -11
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +2 -1
- package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +42 -5
- package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmppClient.js +78 -16
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/roomStore/callSlice.js +144 -0
- package/lib/commonjs/roomStore/callSlice.js.map +1 -0
- package/lib/commonjs/roomStore/chatSettingsSlice.js +8 -2
- package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
- package/lib/commonjs/roomStore/index.js +7 -1
- package/lib/commonjs/roomStore/index.js.map +1 -1
- package/lib/commonjs/roomStore/persistence.js +69 -5
- package/lib/commonjs/roomStore/persistence.js.map +1 -1
- package/lib/commonjs/roomStore/roomsSlice.js +136 -6
- package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
- package/lib/commonjs/utils/translateModePolicy.js +33 -0
- package/lib/commonjs/utils/translateModePolicy.js.map +1 -0
- package/lib/module/components/MainComponents/ChatHeader.js +20 -8
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +17 -0
- package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/LanguageSelectorButton.js +57 -0
- package/lib/module/components/MainComponents/LanguageSelectorButton.js.map +1 -0
- package/lib/module/components/MainComponents/LanguageSelectorModal.js +246 -0
- package/lib/module/components/MainComponents/LanguageSelectorModal.js.map +1 -0
- package/lib/module/components/MainComponents/RoomList.js +23 -9
- package/lib/module/components/MainComponents/RoomList.js.map +1 -1
- package/lib/module/components/MessageBubble/Message.js +73 -12
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageTranslate.js +155 -0
- package/lib/module/components/MessageBubble/MessageTranslate.js.map +1 -0
- package/lib/module/components/MessageBubble/TranslatedMessageBody.js +53 -0
- package/lib/module/components/MessageBubble/TranslatedMessageBody.js.map +1 -0
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +3 -3
- package/lib/module/components/UsersList/UsersList.js +3 -1
- package/lib/module/components/UsersList/UsersList.js.map +1 -1
- package/lib/module/components/VideoCalls/CallButtons.js +154 -0
- package/lib/module/components/VideoCalls/CallButtons.js.map +1 -0
- package/lib/module/components/VideoCalls/CallIcons.js +309 -0
- package/lib/module/components/VideoCalls/CallIcons.js.map +1 -0
- package/lib/module/components/VideoCalls/VideoCallOverlay.js +544 -0
- package/lib/module/components/VideoCalls/VideoCallOverlay.js.map +1 -0
- package/lib/module/components/VideoCalls/VideoCallSession.js +630 -0
- package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -0
- package/lib/module/components/VideoCalls/livekitRuntime.js +83 -0
- package/lib/module/components/VideoCalls/livekitRuntime.js.map +1 -0
- package/lib/module/components/VideoCalls/useCallKeep.js +210 -0
- package/lib/module/components/VideoCalls/useCallKeep.js.map +1 -0
- package/lib/module/components/styled/AudioMessage.js +91 -33
- package/lib/module/components/styled/AudioMessage.js.map +1 -1
- package/lib/module/components/styled/RoomListComponents/index.js +13 -1
- package/lib/module/components/styled/RoomListComponents/index.js.map +1 -1
- package/lib/module/components/styled/SendInput.js +83 -49
- package/lib/module/components/styled/SendInput.js.map +1 -1
- package/lib/module/components/styled/StyledComponents.js +9 -4
- package/lib/module/components/styled/StyledComponents.js.map +1 -1
- package/lib/module/components/styled/StyledInputComponents/Composing.js +2 -0
- package/lib/module/components/styled/StyledInputComponents/Composing.js.map +1 -1
- package/lib/module/context/xmppProvider.js +11 -4
- package/lib/module/context/xmppProvider.js.map +1 -1
- package/lib/module/helpers/callLogMessage.js +152 -0
- package/lib/module/helpers/callLogMessage.js.map +1 -0
- package/lib/module/helpers/callPush.js +55 -0
- package/lib/module/helpers/callPush.js.map +1 -0
- package/lib/module/helpers/constants/LANGUAGE_OPTIONS.js +24 -12
- package/lib/module/helpers/constants/LANGUAGE_OPTIONS.js.map +1 -1
- package/lib/module/helpers/createUserNameFromSetUser.js +49 -1
- package/lib/module/helpers/createUserNameFromSetUser.js.map +1 -1
- package/lib/module/helpers/getDataFromXml.js +20 -1
- package/lib/module/helpers/getDataFromXml.js.map +1 -1
- package/lib/module/helpers/incomingCallFromPush.js +70 -0
- package/lib/module/helpers/incomingCallFromPush.js.map +1 -0
- package/lib/module/helpers/insertMessageWithDelimiter.js +13 -1
- package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/module/helpers/isUnresolvedSenderId.js +27 -0
- package/lib/module/helpers/isUnresolvedSenderId.js.map +1 -0
- package/lib/module/hooks/useChatSettingState.js +2 -0
- package/lib/module/hooks/useChatSettingState.js.map +1 -1
- package/lib/module/hooks/useMessageTranslation.js +46 -0
- package/lib/module/hooks/useMessageTranslation.js.map +1 -0
- package/lib/module/hooks/usePushNotifications.js +13 -3
- package/lib/module/hooks/usePushNotifications.js.map +1 -1
- package/lib/module/hooks/useSendMessage.js +12 -2
- package/lib/module/hooks/useSendMessage.js.map +1 -1
- package/lib/module/i18n/strings.js +1300 -0
- package/lib/module/i18n/strings.js.map +1 -0
- package/lib/module/i18n/useT.js +55 -0
- package/lib/module/i18n/useT.js.map +1 -0
- package/lib/module/main.js +7 -1
- package/lib/module/main.js.map +1 -1
- package/lib/module/networking/api-requests/push.api.js +35 -5
- package/lib/module/networking/api-requests/push.api.js.map +1 -1
- package/lib/module/networking/api-requests/rooms.api.js +109 -1
- package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/module/networking/callTokenStanza.js +526 -0
- package/lib/module/networking/callTokenStanza.js.map +1 -0
- package/lib/module/networking/outboundQueue.js.map +1 -1
- package/lib/module/networking/stanzaHandlers.js +76 -9
- package/lib/module/networking/stanzaHandlers.js.map +1 -1
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js +48 -11
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +1 -1
- package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +43 -5
- package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
- package/lib/module/networking/xmppClient.js +78 -16
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/roomStore/callSlice.js +130 -0
- package/lib/module/roomStore/callSlice.js.map +1 -0
- package/lib/module/roomStore/chatSettingsSlice.js +6 -1
- package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
- package/lib/module/roomStore/index.js +6 -1
- package/lib/module/roomStore/index.js.map +1 -1
- package/lib/module/roomStore/persistence.js +69 -5
- package/lib/module/roomStore/persistence.js.map +1 -1
- package/lib/module/roomStore/roomsSlice.js +134 -5
- package/lib/module/roomStore/roomsSlice.js.map +1 -1
- package/lib/module/utils/translateModePolicy.js +27 -0
- package/lib/module/utils/translateModePolicy.js.map +1 -0
- package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/LanguageSelectorButton.d.ts +12 -0
- package/lib/typescript/components/MainComponents/LanguageSelectorButton.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts +31 -0
- package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageTranslate.d.ts +44 -0
- package/lib/typescript/components/MessageBubble/MessageTranslate.d.ts.map +1 -0
- package/lib/typescript/components/MessageBubble/TranslatedMessageBody.d.ts +24 -0
- package/lib/typescript/components/MessageBubble/TranslatedMessageBody.d.ts.map +1 -0
- package/lib/typescript/components/UsersList/UsersList.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/CallButtons.d.ts +16 -0
- package/lib/typescript/components/VideoCalls/CallButtons.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/CallIcons.d.ts +30 -0
- package/lib/typescript/components/VideoCalls/CallIcons.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts +10 -0
- package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts +38 -0
- package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/livekitRuntime.d.ts +52 -0
- package/lib/typescript/components/VideoCalls/livekitRuntime.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/useCallKeep.d.ts +32 -0
- package/lib/typescript/components/VideoCalls/useCallKeep.d.ts.map +1 -0
- package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
- package/lib/typescript/components/styled/RoomListComponents/index.d.ts.map +1 -1
- package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
- package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
- package/lib/typescript/components/styled/StyledInputComponents/Composing.d.ts.map +1 -1
- package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
- package/lib/typescript/helpers/callLogMessage.d.ts +34 -0
- package/lib/typescript/helpers/callLogMessage.d.ts.map +1 -0
- package/lib/typescript/helpers/callPush.d.ts +23 -0
- package/lib/typescript/helpers/callPush.d.ts.map +1 -0
- package/lib/typescript/helpers/constants/LANGUAGE_OPTIONS.d.ts +14 -0
- package/lib/typescript/helpers/constants/LANGUAGE_OPTIONS.d.ts.map +1 -1
- package/lib/typescript/helpers/createUserNameFromSetUser.d.ts +33 -1
- package/lib/typescript/helpers/createUserNameFromSetUser.d.ts.map +1 -1
- package/lib/typescript/helpers/getDataFromXml.d.ts.map +1 -1
- package/lib/typescript/helpers/incomingCallFromPush.d.ts +14 -0
- package/lib/typescript/helpers/incomingCallFromPush.d.ts.map +1 -0
- package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
- package/lib/typescript/helpers/isUnresolvedSenderId.d.ts +2 -0
- package/lib/typescript/helpers/isUnresolvedSenderId.d.ts.map +1 -0
- package/lib/typescript/hooks/useChatSettingState.d.ts +2 -1
- package/lib/typescript/hooks/useChatSettingState.d.ts.map +1 -1
- package/lib/typescript/hooks/useMessageTranslation.d.ts +25 -0
- package/lib/typescript/hooks/useMessageTranslation.d.ts.map +1 -0
- package/lib/typescript/hooks/usePushNotifications.d.ts.map +1 -1
- package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/i18n/strings.d.ts +16 -0
- package/lib/typescript/i18n/strings.d.ts.map +1 -0
- package/lib/typescript/i18n/useT.d.ts +34 -0
- package/lib/typescript/i18n/useT.d.ts.map +1 -0
- package/lib/typescript/main.d.ts +6 -1
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/rooms.api.d.ts +3 -0
- package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
- package/lib/typescript/networking/callTokenStanza.d.ts +14 -0
- package/lib/typescript/networking/callTokenStanza.d.ts.map +1 -0
- package/lib/typescript/networking/outboundQueue.d.ts +1 -0
- package/lib/typescript/networking/outboundQueue.d.ts.map +1 -1
- package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts +10 -0
- package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts +16 -1
- package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmppClient.d.ts +1 -1
- package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
- package/lib/typescript/roomStore/callSlice.d.ts +39 -0
- package/lib/typescript/roomStore/callSlice.d.ts.map +1 -0
- package/lib/typescript/roomStore/chatSettingsSlice.d.ts +10 -1
- package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
- package/lib/typescript/roomStore/index.d.ts +4 -0
- package/lib/typescript/roomStore/index.d.ts.map +1 -1
- package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts +6 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
- package/lib/typescript/types/models/language.model.d.ts +1 -1
- package/lib/typescript/types/models/language.model.d.ts.map +1 -1
- package/lib/typescript/types/models/message.model.d.ts +7 -0
- package/lib/typescript/types/models/message.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +135 -1
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/utils/translateModePolicy.d.ts +20 -0
- package/lib/typescript/utils/translateModePolicy.d.ts.map +1 -0
- package/package.json +20 -4
- package/src/components/MainComponents/ChatHeader.tsx +30 -9
- package/src/components/MainComponents/ChatWrapper.tsx +15 -0
- package/src/components/MainComponents/LanguageSelectorButton.tsx +53 -0
- package/src/components/MainComponents/LanguageSelectorModal.tsx +276 -0
- package/src/components/MainComponents/RoomList.tsx +27 -9
- package/src/components/MessageBubble/Message.tsx +109 -17
- package/src/components/MessageBubble/MessageTranslate.tsx +182 -0
- package/src/components/MessageBubble/TranslatedMessageBody.tsx +59 -0
- package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +3 -3
- package/src/components/UsersList/UsersList.tsx +3 -1
- package/src/components/VideoCalls/CallButtons.tsx +171 -0
- package/src/components/VideoCalls/CallIcons.tsx +246 -0
- package/src/components/VideoCalls/VideoCallOverlay.tsx +627 -0
- package/src/components/VideoCalls/VideoCallSession.tsx +675 -0
- package/src/components/VideoCalls/livekitRuntime.ts +100 -0
- package/src/components/VideoCalls/useCallKeep.ts +252 -0
- package/src/components/styled/AudioMessage.tsx +97 -37
- package/src/components/styled/RoomListComponents/index.tsx +15 -3
- package/src/components/styled/SendInput.tsx +94 -51
- package/src/components/styled/StyledComponents.ts +9 -6
- package/src/components/styled/StyledInputComponents/Composing.tsx +7 -1
- package/src/context/xmppProvider.tsx +14 -1
- package/src/helpers/callLogMessage.ts +174 -0
- package/src/helpers/callPush.ts +90 -0
- package/src/helpers/constants/LANGUAGE_OPTIONS.ts +20 -5
- package/src/helpers/createUserNameFromSetUser.ts +68 -2
- package/src/helpers/getDataFromXml.ts +40 -4
- package/src/helpers/incomingCallFromPush.ts +83 -0
- package/src/helpers/insertMessageWithDelimiter.ts +27 -9
- package/src/helpers/isUnresolvedSenderId.ts +25 -0
- package/src/hooks/useChatSettingState.tsx +4 -0
- package/src/hooks/useMessageTranslation.ts +70 -0
- package/src/hooks/usePushNotifications.ts +15 -3
- package/src/hooks/useSendMessage.tsx +15 -2
- package/src/i18n/strings.ts +1322 -0
- package/src/i18n/useT.ts +56 -0
- package/src/main.ts +18 -1
- package/src/networking/api-requests/push.api.ts +39 -8
- package/src/networking/api-requests/rooms.api.ts +109 -1
- package/src/networking/callTokenStanza.ts +636 -0
- package/src/networking/outboundQueue.ts +1 -0
- package/src/networking/stanzaHandlers.ts +74 -15
- package/src/networking/xmpp/handleStanzas.xmpp.ts +52 -11
- package/src/networking/xmpp/sendTextMessage.xmpp.ts +1 -1
- package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +41 -5
- package/src/networking/xmppClient.ts +97 -28
- package/src/roomStore/callSlice.ts +190 -0
- package/src/roomStore/chatSettingsSlice.ts +16 -0
- package/src/roomStore/index.ts +5 -0
- package/src/roomStore/persistence.ts +103 -3
- package/src/roomStore/roomsSlice.ts +149 -4
- package/src/types/models/language.model.ts +17 -1
- package/src/types/models/message.model.ts +9 -0
- package/src/types/types.ts +142 -2
- package/src/utils/translateModePolicy.ts +31 -0
|
@@ -10,6 +10,7 @@ var _createMessageFromXml = require("../helpers/createMessageFromXml");
|
|
|
10
10
|
var _getDataFromXml = require("../helpers/getDataFromXml");
|
|
11
11
|
var _chatSettingsSlice = require("../roomStore/chatSettingsSlice");
|
|
12
12
|
var _messageNotificationManager = require("../utils/messageNotificationManager");
|
|
13
|
+
var _callLogMessage = require("../helpers/callLogMessage");
|
|
13
14
|
// TO DO: we are thinking to refactor this code in the following way:
|
|
14
15
|
// each stanza will be parsed for 'type'
|
|
15
16
|
// then it will be handled based on the type
|
|
@@ -31,9 +32,22 @@ const onRealtimeMessage = async stanza => {
|
|
|
31
32
|
console.log('Missing data elements in real-time message.');
|
|
32
33
|
return;
|
|
33
34
|
}
|
|
34
|
-
|
|
35
|
+
|
|
36
|
+
// Not every sender stamps `senderJID` onto `<data>` — the web SDK's
|
|
37
|
+
// translate-tagged send path in particular builds `<data>` from a
|
|
38
|
+
// differently-named attr bag (roomJID/firstName/userMessage/…) that
|
|
39
|
+
// has no senderJID at all. This used to hard-drop the message here —
|
|
40
|
+
// live AND, via the identical check in onMessageHistory, in the MAM
|
|
41
|
+
// backfill too — so anything sent through that path just never
|
|
42
|
+
// appeared, on this device or after a restart. The stanza's own
|
|
43
|
+
// `from` is always the full MUC occupant jid (`room@conference/nick`,
|
|
44
|
+
// exactly what senderJID would have held), so fall back to it instead
|
|
45
|
+
// of dropping the message. Web's own onRealtimeMessage only requires
|
|
46
|
+
// `<data>` to exist at all — no senderJID check — so this brings RN
|
|
47
|
+
// to the same tolerance.
|
|
48
|
+
const senderJID = data.attrs.senderJID || stanza.attrs.from;
|
|
49
|
+
if (!senderJID) {
|
|
35
50
|
console.log(stanza.toString());
|
|
36
|
-
console.log(data.attrs.senderJID);
|
|
37
51
|
console.log('Missing sender information in real-time message.');
|
|
38
52
|
return;
|
|
39
53
|
}
|
|
@@ -49,16 +63,29 @@ const onRealtimeMessage = async stanza => {
|
|
|
49
63
|
body: pBody,
|
|
50
64
|
...pRest
|
|
51
65
|
} = parsed ?? {};
|
|
66
|
+
const mergedData = {
|
|
67
|
+
...(pData || data.attrs)
|
|
68
|
+
};
|
|
69
|
+
if (!mergedData.senderJID) {
|
|
70
|
+
mergedData.senderJID = senderJID;
|
|
71
|
+
}
|
|
52
72
|
// Cast at the call site: createMessageFromXml accepts the merged
|
|
53
73
|
// wrapped/positional shape; IUser type drift between models prevents
|
|
54
74
|
// a narrower type here without a wider refactor.
|
|
55
|
-
const
|
|
56
|
-
data:
|
|
75
|
+
const rawMessage = await (0, _createMessageFromXml.createMessageFromXml)({
|
|
76
|
+
data: mergedData,
|
|
57
77
|
id: pId || id,
|
|
58
78
|
body: pBody ?? '',
|
|
59
79
|
...pRest,
|
|
60
80
|
isDeleted: !!deleted || !!pRest?.deleted
|
|
61
81
|
});
|
|
82
|
+
|
|
83
|
+
// Turn server call-state stanzas into a friendly call-log entry
|
|
84
|
+
// ("Outgoing call · 12 sec" / "Missed call"). Non-call messages pass
|
|
85
|
+
// through unchanged. Without this the raw message keeps body
|
|
86
|
+
// "call-state" and gets dropped by the call-signal filter in
|
|
87
|
+
// roomsSlice, so call history silently disappears.
|
|
88
|
+
const message = (0, _callLogMessage.transformCallLogMessage)(rawMessage, _roomStore.store.getState().chatSettingStore.user?.xmppUsername || '');
|
|
62
89
|
const roomJID = stanza.attrs.from.split('/')[0];
|
|
63
90
|
_roomStore.store.dispatch((0, _roomsSlice.addRoomMessage)({
|
|
64
91
|
roomJID,
|
|
@@ -70,8 +97,8 @@ const onRealtimeMessage = async stanza => {
|
|
|
70
97
|
try {
|
|
71
98
|
const state = _roomStore.store.getState();
|
|
72
99
|
const currentUserWallet = (state.chatSettingStore.user?.walletAddress || '').toLowerCase();
|
|
73
|
-
const
|
|
74
|
-
if (currentUserWallet &&
|
|
100
|
+
const senderJIDLower = String(senderJID || '').toLowerCase();
|
|
101
|
+
if (currentUserWallet && senderJIDLower.includes(currentUserWallet)) {
|
|
75
102
|
return message; // own message, skip toast
|
|
76
103
|
}
|
|
77
104
|
const room = state.rooms.rooms[roomJID];
|
|
@@ -137,14 +164,35 @@ const onMessageHistory = async stanza => {
|
|
|
137
164
|
}
|
|
138
165
|
// console.log(stanza.attrs.from);
|
|
139
166
|
|
|
140
|
-
|
|
167
|
+
// Mirror the realtime path's tolerance: don't hard-require
|
|
168
|
+
// senderFirstName/senderLastName/senderJID on <data> — the web SDK's
|
|
169
|
+
// translate-tagged send path doesn't stamp any of them, and this used
|
|
170
|
+
// to drop those messages out of MAM backfill entirely (so they never
|
|
171
|
+
// appeared even after a restart). The inner forwarded <message>'s own
|
|
172
|
+
// `from` is the full MUC occupant jid (room@conference/nick), exactly
|
|
173
|
+
// what senderJID would have held — fall back to it. createMessageFromXml
|
|
174
|
+
// already derives a display name from the jid when senderFirstName/
|
|
175
|
+
// senderLastName are absent.
|
|
176
|
+
const innerFrom = stanza.getChild('result')?.getChild('forwarded')?.getChild('message')?.attrs?.from || stanza.attrs.from;
|
|
177
|
+
const senderJID = data?.attrs?.senderJID || innerFrom;
|
|
178
|
+
if (!data?.attrs || !senderJID) {
|
|
141
179
|
// console.log(
|
|
142
180
|
// "Missing sender information in message history.",
|
|
143
181
|
// stanza.toString()
|
|
144
182
|
// );
|
|
145
183
|
return;
|
|
146
184
|
}
|
|
147
|
-
const
|
|
185
|
+
const mergedAttrs = {
|
|
186
|
+
...data.attrs
|
|
187
|
+
};
|
|
188
|
+
if (!mergedAttrs.senderJID) {
|
|
189
|
+
mergedAttrs.senderJID = senderJID;
|
|
190
|
+
}
|
|
191
|
+
const rawMessage = await (0, _createMessageFromXml.createMessageFromXml)(mergedAttrs, body, id, stanza.attrs.from, !!deleted);
|
|
192
|
+
|
|
193
|
+
// Same call-log transform as the realtime path, applied to archived
|
|
194
|
+
// history so calls received while offline still render as log entries.
|
|
195
|
+
const message = (0, _callLogMessage.transformCallLogMessage)(rawMessage, _roomStore.store.getState().chatSettingStore.user?.xmppUsername || '');
|
|
148
196
|
_roomStore.store.dispatch((0, _roomsSlice.addRoomMessage)({
|
|
149
197
|
roomJID: stanza.attrs.from,
|
|
150
198
|
message
|
|
@@ -266,6 +314,25 @@ const onGetMembers = stanza => {
|
|
|
266
314
|
roomMembers
|
|
267
315
|
}
|
|
268
316
|
}));
|
|
317
|
+
|
|
318
|
+
// Also feed the identity cache Message.tsx reads sender names from
|
|
319
|
+
// (state.rooms.usersSet). Keyed by both the bare local part and the
|
|
320
|
+
// full jid since a message's `user.id` can be either depending on
|
|
321
|
+
// how it was parsed (see createUserNameFromSetUser).
|
|
322
|
+
const usersSetUpdates = {};
|
|
323
|
+
for (const member of roomMembers) {
|
|
324
|
+
if (!member.jid) {
|
|
325
|
+
continue;
|
|
326
|
+
}
|
|
327
|
+
const local = member.jid.split('@')[0];
|
|
328
|
+
usersSetUpdates[local] = member;
|
|
329
|
+
usersSetUpdates[member.jid] = member;
|
|
330
|
+
}
|
|
331
|
+
if (Object.keys(usersSetUpdates).length > 0) {
|
|
332
|
+
_roomStore.store.dispatch((0, _roomsSlice.mergeUsersSet)({
|
|
333
|
+
members: usersSetUpdates
|
|
334
|
+
}));
|
|
335
|
+
}
|
|
269
336
|
} catch (err) {
|
|
270
337
|
console.warn('onGetMembers parse failed', err);
|
|
271
338
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_roomStore","require","_roomsSlice","_createMessageFromXml","_getDataFromXml","_chatSettingsSlice","_messageNotificationManager","onRealtimeMessage","stanza","getChild","is","attrs","id","body","archived","data","deleted","console","log","toString","senderJID","parsed","getDataFromXml","pData","pId","pBody","pRest","message","createMessageFromXml","isDeleted","roomJID","from","split","store","dispatch","addRoomMessage","state","getState","currentUserWallet","chatSettingStore","user","walletAddress","toLowerCase","String","includes","room","rooms","roomName","title","name","senderName","senderFirstName","senderLastName","filter","Boolean","join","trim","messageNotificationManager","showNotification","err","warn","exports","onDeleteMessage","stanzaId","deleteRoomMessage","by","messageId","setDeleteModal","isDeleteModal","onEditMessage","replace","editRoomMessage","text","onMessageHistory","children","xmlns","delay","handleComposing","currentUser","composingUser","norm","s","senderLocal","selfUser","selfXmppUsername","xmppUsername","selfWallet","isSelf","chatJID","composingList","push","fullName","pop","setComposing","composing","onPresenceInRoom","startsWith","role","setRoomRole","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","updateRoom","updates","onGetRoomInfo","onGetLastMessageArchive","_xmpp","onNewRoomCreated","xmpp","setCurrentRoom","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","addRoom","error","e","onMessageError","_stanza","onReactionMessage","onReactionHistory","onRoomKicked"],"sourceRoot":"../../../src","sources":["networking/stanzaHandlers.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_roomStore","require","_roomsSlice","_createMessageFromXml","_getDataFromXml","_chatSettingsSlice","_messageNotificationManager","_callLogMessage","onRealtimeMessage","stanza","getChild","is","attrs","id","body","archived","data","deleted","console","log","toString","senderJID","from","parsed","getDataFromXml","pData","pId","pBody","pRest","mergedData","rawMessage","createMessageFromXml","isDeleted","message","transformCallLogMessage","store","getState","chatSettingStore","user","xmppUsername","roomJID","split","dispatch","addRoomMessage","state","currentUserWallet","walletAddress","toLowerCase","senderJIDLower","String","includes","room","rooms","roomName","title","name","senderName","senderFirstName","senderLastName","filter","Boolean","join","trim","messageNotificationManager","showNotification","err","warn","exports","onDeleteMessage","stanzaId","deleteRoomMessage","by","messageId","setDeleteModal","isDeleteModal","onEditMessage","replace","editRoomMessage","text","onMessageHistory","children","xmlns","delay","innerFrom","mergedAttrs","handleComposing","currentUser","composingUser","norm","s","senderLocal","selfUser","selfXmppUsername","selfWallet","isSelf","chatJID","composingList","push","fullName","pop","setComposing","composing","onPresenceInRoom","startsWith","role","setRoomRole","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","updateRoom","updates","usersSetUpdates","member","local","Object","keys","mergeUsersSet","members","onGetRoomInfo","onGetLastMessageArchive","_xmpp","onNewRoomCreated","xmpp","setCurrentRoom","onGetChatRooms","Array","isArray","forEach","result","currentChatRooms","isRoomAlreadyAdded","values","some","element","roomData","usersCnt","users_cnt","messages","isLoading","roomBg","room_background","icon","room_thumbnail","unreadMessages","lastViewedTimestamp","addRoom","error","e","onMessageError","_stanza","onReactionMessage","onReactionHistory","onRoomKicked"],"sourceRoot":"../../../src","sources":["networking/stanzaHandlers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,23 +5,59 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.handleStanza = handleStanza;
|
|
7
7
|
var _stanzaHandlers = require("../stanzaHandlers");
|
|
8
|
+
var _callTokenStanza = require("../callTokenStanza");
|
|
9
|
+
/**
|
|
10
|
+
* Unwrap a mucsub event wrapper so the chat handlers see the real inner
|
|
11
|
+
* `<message>` (the one carrying `<data senderJID=…>` and `<body>`).
|
|
12
|
+
*
|
|
13
|
+
* We subscribe every room to `urn:xmpp:mucsub:nodes:messages` (see
|
|
14
|
+
* subscribeToRoomMessages / pushSubscriptionService), so ejabberd pushes
|
|
15
|
+
* room traffic as:
|
|
16
|
+
*
|
|
17
|
+
* <message from="room@conference/…">
|
|
18
|
+
* <event xmlns="http://jabber.org/protocol/pubsub#event">
|
|
19
|
+
* <items node="urn:xmpp:mucsub:nodes:messages">
|
|
20
|
+
* <item><message …><data senderJID=…/><body>…</body></message></item>
|
|
21
|
+
*
|
|
22
|
+
* Without unwrapping, onRealtimeMessage reads `<data>` off the OUTER
|
|
23
|
+
* wrapper, finds nothing, logs "Missing data elements in real-time
|
|
24
|
+
* message" and drops the stanza — so live messages never render and only
|
|
25
|
+
* surface later through the MAM history fetch (i.e. after an app restart
|
|
26
|
+
* or re-opening the room). Mirrors the web SDK's handleStanza.
|
|
27
|
+
*/
|
|
28
|
+
const unwrapMucsubMessage = stanza => {
|
|
29
|
+
const inner = stanza?.getChild?.('event', 'http://jabber.org/protocol/pubsub#event')?.getChild?.('items')?.getChild?.('item')?.getChild?.('message');
|
|
30
|
+
return inner || stanza;
|
|
31
|
+
};
|
|
8
32
|
function handleStanza(stanza, xmppWs) {
|
|
9
33
|
if (stanza?.attrs?.type === 'headline') {
|
|
10
34
|
return;
|
|
11
35
|
}
|
|
36
|
+
|
|
37
|
+
// Call signaling is swallowed before any chat handler sees it. A
|
|
38
|
+
// `<data type="call-*">` frame is not user-visible content, and letting
|
|
39
|
+
// it through renders bubbles reading "Deleted User: call-state" and
|
|
40
|
+
// fires new-message notifications for a call that never happened.
|
|
41
|
+
// Returns false for server call-LOGS, which do belong in the chat.
|
|
42
|
+
if (stanza?.name === 'message' && (0, _callTokenStanza.onCallTokenMessage)(stanza)) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
12
45
|
switch (stanza.name) {
|
|
13
46
|
case 'message':
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
47
|
+
{
|
|
48
|
+
const unwrapped = unwrapMucsubMessage(stanza);
|
|
49
|
+
(0, _stanzaHandlers.onMessageError)(unwrapped, xmppWs);
|
|
50
|
+
(0, _stanzaHandlers.onReactionMessage)(unwrapped);
|
|
51
|
+
(0, _stanzaHandlers.onReactionHistory)(unwrapped);
|
|
52
|
+
(0, _stanzaHandlers.onDeleteMessage)(unwrapped);
|
|
53
|
+
(0, _stanzaHandlers.onEditMessage)(unwrapped);
|
|
54
|
+
(0, _stanzaHandlers.onChatInvite)(unwrapped, xmppWs);
|
|
55
|
+
(0, _stanzaHandlers.onRealtimeMessage)(unwrapped);
|
|
56
|
+
(0, _stanzaHandlers.onMessageHistory)(unwrapped);
|
|
57
|
+
(0, _stanzaHandlers.handleComposing)(unwrapped, xmppWs.username);
|
|
58
|
+
(0, _stanzaHandlers.onPresenceInRoom)(unwrapped);
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
25
61
|
case 'presence':
|
|
26
62
|
(0, _stanzaHandlers.onRoomKicked)(stanza);
|
|
27
63
|
(0, _stanzaHandlers.onPresenceInRoom)(stanza);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_stanzaHandlers","require","
|
|
1
|
+
{"version":3,"names":["_stanzaHandlers","require","_callTokenStanza","unwrapMucsubMessage","stanza","inner","getChild","handleStanza","xmppWs","attrs","type","name","onCallTokenMessage","unwrapped","onMessageError","onReactionMessage","onReactionHistory","onDeleteMessage","onEditMessage","onChatInvite","onRealtimeMessage","onMessageHistory","handleComposing","username","onPresenceInRoom","onRoomKicked","onGetChatRooms","onGetMembers","onGetRoomInfo","onGetLastMessageArchive","onNewRoomCreated","console","log"],"sourceRoot":"../../../../src","sources":["networking/xmpp/handleStanzas.xmpp.ts"],"mappings":";;;;;;AACA,IAAAA,eAAA,GAAAC,OAAA;AAmBA,IAAAC,gBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,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;AAEM,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,IAAI,IAAAC,mCAAkB,EAACR,MAAM,CAAC,EAAE;IAC5D;EACF;EAEA,QAAQA,MAAM,CAACO,IAAI;IACjB,KAAK,SAAS;MAAE;QACd,MAAME,SAAS,GAAGV,mBAAmB,CAACC,MAAM,CAAC;QAC7C,IAAAU,8BAAc,EAACD,SAAS,EAAEL,MAAM,CAAC;QACjC,IAAAO,iCAAiB,EAACF,SAAS,CAAC;QAC5B,IAAAG,iCAAiB,EAACH,SAAS,CAAC;QAC5B,IAAAI,+BAAe,EAACJ,SAAS,CAAC;QAC1B,IAAAK,6BAAa,EAACL,SAAS,CAAC;QACxB,IAAAM,4BAAY,EAACN,SAAS,EAAEL,MAAM,CAAC;QAC/B,IAAAY,iCAAiB,EAACP,SAAS,CAAC;QAC5B,IAAAQ,gCAAgB,EAACR,SAAS,CAAC;QAC3B,IAAAS,+BAAe,EAACT,SAAS,EAAEL,MAAM,CAACe,QAAQ,CAAC;QAC3C,IAAAC,gCAAgB,EAACX,SAAS,CAAC;QAC3B;MACF;IACA,KAAK,UAAU;MACb,IAAAY,4BAAY,EAACrB,MAAM,CAAC;MACpB,IAAAoB,gCAAgB,EAACpB,MAAM,CAAC;MACxB;IACF,KAAK,IAAI;MACP,IAAAsB,8BAAc,EAACtB,MAAM,EAAEI,MAAM,CAAC;MAC9B,IAAAY,iCAAiB,EAAChB,MAAM,CAAC;MACzB,IAAAoB,gCAAgB,EAACpB,MAAM,CAAC;MACxB,IAAAuB,4BAAY,EAACvB,MAAM,CAAC;MACpB,IAAAwB,6BAAa,EAACxB,MAAM,CAAC;MACrB,IAAAyB,uCAAuB,EAACzB,MAAM,EAAEI,MAAM,CAAC;MACvC;IACF,KAAK,aAAa;MAChB,IAAAsB,gCAAgB,EAAC1B,MAAM,EAAEI,MAAM,CAAC;MAChC;IACF;MACEuB,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAE5B,MAAM,CAACO,IAAI,CAAC;EACtD;AACF","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.sendTextMessage = void 0;
|
|
6
|
+
exports.toServiceXmlns = exports.sendTextMessage = void 0;
|
|
7
7
|
var _client = require("@xmpp/client");
|
|
8
8
|
// Local monotonic counter — see comment in id construction below.
|
|
9
9
|
let _sendTextSeq = 0;
|
|
@@ -37,6 +37,7 @@ const toServiceXmlns = (devServer, client) => {
|
|
|
37
37
|
// Bare host → wss://<host>/ws
|
|
38
38
|
return `wss://${ds.replace(/^\/+|\/+$/g, '')}/ws`;
|
|
39
39
|
};
|
|
40
|
+
exports.toServiceXmlns = toServiceXmlns;
|
|
40
41
|
const sendTextMessage = (client, roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, devServer, customId) => {
|
|
41
42
|
// Same monotonic-counter pattern as useSendMessage.nextStanzaId, to
|
|
42
43
|
// protect direct callers that don't supply a customId from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_client","require","_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","xml","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"
|
|
1
|
+
{"version":3,"names":["_client","require","_sendTextSeq","toServiceXmlns","devServer","client","clientService","options","service","test","ds","trim","includes","replace","exports","sendTextMessage","roomJID","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","id","Date","now","dataXmlns","message","xml","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":[]}
|
|
@@ -5,22 +5,59 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.sendTextMessageWithTranslateTag = void 0;
|
|
7
7
|
var _client = require("@xmpp/client");
|
|
8
|
+
var _sendTextMessage = require("./sendTextMessage.xmpp");
|
|
9
|
+
/**
|
|
10
|
+
* Same wire message as `sendTextMessage`, plus a `<translate source="xx"/>`
|
|
11
|
+
* child that DECLARES the message's source language so the backend can
|
|
12
|
+
* translate it for readers in other languages. No pre-translation happens
|
|
13
|
+
* client-side.
|
|
14
|
+
*
|
|
15
|
+
* The `<data>` element MUST be built identically to `sendTextMessage`
|
|
16
|
+
* (correct `xmlns` = the `wss://<host>/ws` service URL, and the
|
|
17
|
+
* `senderFirstName` / `senderLastName` / `senderJID` / `roomJid` attr
|
|
18
|
+
* names the server + parser expect). An earlier version spread a loose
|
|
19
|
+
* `stanzaMessage` bag into `<data>` with no xmlns and mismatched attr
|
|
20
|
+
* names — the server silently dropped those stanzas, so no echo came back
|
|
21
|
+
* and every sent message stayed stuck in the "pending" state. Keep this in
|
|
22
|
+
* lockstep with sendTextMessage.xmpp.ts.
|
|
23
|
+
*/
|
|
8
24
|
const sendTextMessageWithTranslateTag = (client, stanzaMessage, source, customId) => {
|
|
9
|
-
const id = customId || `
|
|
25
|
+
const id = customId || `send-text-message-${Date.now()}`;
|
|
10
26
|
try {
|
|
27
|
+
const dataXmlns = (0, _sendTextMessage.toServiceXmlns)(stanzaMessage.devServer, client);
|
|
11
28
|
const message = (0, _client.xml)('message', {
|
|
12
29
|
to: stanzaMessage.roomJID,
|
|
13
30
|
type: 'groupchat',
|
|
14
|
-
id
|
|
31
|
+
id
|
|
15
32
|
}, (0, _client.xml)('data', {
|
|
16
|
-
|
|
33
|
+
xmlns: dataXmlns,
|
|
34
|
+
senderFirstName: stanzaMessage.firstName,
|
|
35
|
+
senderLastName: stanzaMessage.lastName,
|
|
36
|
+
fullName: `${stanzaMessage.firstName} ${stanzaMessage.lastName}`,
|
|
37
|
+
photoURL: stanzaMessage.photo,
|
|
38
|
+
senderJID: client.jid?.toString(),
|
|
39
|
+
senderWalletAddress: stanzaMessage.walletAddress,
|
|
40
|
+
roomJid: stanzaMessage.roomJID,
|
|
41
|
+
isSystemMessage: false,
|
|
42
|
+
tokenAmount: 0,
|
|
43
|
+
quickReplies: '',
|
|
44
|
+
notDisplayedValue: '',
|
|
45
|
+
showInChannel: stanzaMessage.showInChannel || false,
|
|
46
|
+
isReply: stanzaMessage.isReply || false,
|
|
47
|
+
mainMessage: stanzaMessage.mainMessage || '',
|
|
17
48
|
push: 'true'
|
|
18
|
-
}), (0, _client.xml)('body', {}, stanzaMessage.userMessage),
|
|
19
|
-
|
|
49
|
+
}), (0, _client.xml)('body', {}, stanzaMessage.userMessage),
|
|
50
|
+
// `<translate source>` only DECLARES the language this text is in; it
|
|
51
|
+
// costs nothing to send and is what lets each reader translate the
|
|
52
|
+
// message into their own language on their side.
|
|
53
|
+
(0, _client.xml)('translate', {
|
|
54
|
+
source
|
|
20
55
|
}));
|
|
21
56
|
client.send(message);
|
|
57
|
+
return true;
|
|
22
58
|
} catch (error) {
|
|
23
59
|
console.error('An error occurred while sending message:', error);
|
|
60
|
+
return false;
|
|
24
61
|
}
|
|
25
62
|
};
|
|
26
63
|
exports.sendTextMessageWithTranslateTag = sendTextMessageWithTranslateTag;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_client","require","sendTextMessageWithTranslateTag","client","stanzaMessage","source","customId","id","Date","now","
|
|
1
|
+
{"version":3,"names":["_client","require","_sendTextMessage","sendTextMessageWithTranslateTag","client","stanzaMessage","source","customId","id","Date","now","dataXmlns","toServiceXmlns","devServer","message","xml","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","exports"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAME,+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,GAAG,IAAAC,+BAAc,EAACP,aAAa,CAACQ,SAAS,EAAET,MAAM,CAAC;IACjE,MAAMU,OAAO,GAAG,IAAAC,WAAG,EACjB,SAAS,EACT;MACEC,EAAE,EAAEX,aAAa,CAACY,OAAO;MACzBC,IAAI,EAAE,WAAW;MACjBV;IACF,CAAC,EACD,IAAAO,WAAG,EAAC,MAAM,EAAE;MACVI,KAAK,EAAER,SAAS;MAChBS,eAAe,EAAEf,aAAa,CAACgB,SAAS;MACxCC,cAAc,EAAEjB,aAAa,CAACkB,QAAQ;MACtCC,QAAQ,EAAE,GAAGnB,aAAa,CAACgB,SAAS,IAAIhB,aAAa,CAACkB,QAAQ,EAAE;MAChEE,QAAQ,EAAEpB,aAAa,CAACqB,KAAK;MAC7BC,SAAS,EAAEvB,MAAM,CAACwB,GAAG,EAAEC,QAAQ,CAAC,CAAC;MACjCC,mBAAmB,EAAEzB,aAAa,CAAC0B,aAAa;MAChDC,OAAO,EAAE3B,aAAa,CAACY,OAAO;MAC9BgB,eAAe,EAAE,KAAK;MACtBC,WAAW,EAAE,CAAC;MACdC,YAAY,EAAE,EAAE;MAChBC,iBAAiB,EAAE,EAAE;MACrBC,aAAa,EAAEhC,aAAa,CAACgC,aAAa,IAAI,KAAK;MACnDC,OAAO,EAAEjC,aAAa,CAACiC,OAAO,IAAI,KAAK;MACvCC,WAAW,EAAElC,aAAa,CAACkC,WAAW,IAAI,EAAE;MAC5CC,IAAI,EAAE;IACR,CAAC,CAAC,EACF,IAAAzB,WAAG,EAAC,MAAM,EAAE,CAAC,CAAC,EAAEV,aAAa,CAACoC,WAAW,CAAC;IAC1C;IACA;IACA;IACA,IAAA1B,WAAG,EAAC,WAAW,EAAE;MAAET;IAAO,CAAC,CAC7B,CAAC;IAEDF,MAAM,CAACsC,IAAI,CAAC5B,OAAO,CAAC;IACpB,OAAO,IAAI;EACb,CAAC,CAAC,OAAO6B,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,0CAA0C,EAAEA,KAAK,CAAC;IAChE,OAAO,KAAK;EACd;AACF,CAAC;AAACE,OAAA,CAAA1C,+BAAA,GAAAA,+BAAA","ignoreList":[]}
|
|
@@ -14,6 +14,7 @@ var _sendTypingRequest = require("./xmpp/sendTypingRequest.xmpp");
|
|
|
14
14
|
var _sendPing = require("./xmpp/sendPing.xmpp");
|
|
15
15
|
var _getHistory = require("./xmpp/getHistory.xmpp");
|
|
16
16
|
var _sendTextMessage = require("./xmpp/sendTextMessage.xmpp");
|
|
17
|
+
var _sendTextMessageWithTranslateTag = require("./xmpp/sendTextMessageWithTranslateTag.xmpp");
|
|
17
18
|
var _deleteMessage = require("./xmpp/deleteMessage.xmpp");
|
|
18
19
|
var _presenceInRoom = require("./xmpp/presenceInRoom.xmpp");
|
|
19
20
|
var _getLastMessageArchive = require("./xmpp/getLastMessageArchive.xmpp");
|
|
@@ -35,6 +36,33 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
35
36
|
// Canonical production XMPP WSS endpoint (standard wss/443, no port suffix).
|
|
36
37
|
const DEFAULT_DEV_SERVER = 'xmpp.chat.ethora.com';
|
|
37
38
|
|
|
39
|
+
// How long to wait for the old client's stop() during a reconnect before
|
|
40
|
+
// giving up on it. Short on purpose: we are already tearing this client
|
|
41
|
+
// down, and a socket that hasn't closed in 3s is exactly the dead one we
|
|
42
|
+
// must not block on. See the call site in reconnect().
|
|
43
|
+
const STOP_TIMEOUT_MS = 3000;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Resolve when `promise` settles or when `ms` elapses, whichever is first.
|
|
47
|
+
* Never rejects: a teardown that fails or hangs must not break the caller's
|
|
48
|
+
* control flow (that is the whole point of using it around stop()).
|
|
49
|
+
*/
|
|
50
|
+
function withTimeout(promise, ms) {
|
|
51
|
+
return new Promise(resolve => {
|
|
52
|
+
let settled = false;
|
|
53
|
+
const done = () => {
|
|
54
|
+
if (settled) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
settled = true;
|
|
58
|
+
clearTimeout(timer);
|
|
59
|
+
resolve();
|
|
60
|
+
};
|
|
61
|
+
const timer = setTimeout(done, ms);
|
|
62
|
+
Promise.resolve(promise).then(done, done);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
|
|
38
66
|
// @xmpp/client surfaces SASL/stream errors in a few shapes depending on
|
|
39
67
|
// where it fails — XMPPError on stream:error, SASLError on SASL bind, or
|
|
40
68
|
// a generic Error whose message contains "not-authorized". Match all of
|
|
@@ -650,9 +678,17 @@ class XmppClient {
|
|
|
650
678
|
const old = this.client;
|
|
651
679
|
if (old) {
|
|
652
680
|
this.detachEventListeners();
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
681
|
+
// NEVER await a bare stop(): on a half-dead socket (the exact case
|
|
682
|
+
// we're reconnecting for) @xmpp/client's stop() can hang forever
|
|
683
|
+
// waiting on a close handshake that never lands. That leaves this
|
|
684
|
+
// function parked before `finally`, so `reconnecting` stays true and
|
|
685
|
+
// EVERY later reconnect — watchdog, NetInfo, AppState — silently
|
|
686
|
+
// returns at the single-flight guard. The client then never comes
|
|
687
|
+
// back until the app is killed, which reads as "new messages just
|
|
688
|
+
// stop arriving". Cap the teardown and move on: initializeClient()
|
|
689
|
+
// replaces `this.client` anyway, and the old one's listeners are
|
|
690
|
+
// already detached above, so a late-settling stop() is harmless.
|
|
691
|
+
await withTimeout(old.stop(), STOP_TIMEOUT_MS);
|
|
656
692
|
}
|
|
657
693
|
this.initializeClient();
|
|
658
694
|
} finally {
|
|
@@ -712,12 +748,14 @@ class XmppClient {
|
|
|
712
748
|
// handshake can't re-enter handleStanza and dispatch into a store
|
|
713
749
|
// that's being wiped (or, on re-login, the new session's store).
|
|
714
750
|
this.detachEventListeners();
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
751
|
+
// Bounded like the reconnect teardown: a stop() that never settles on
|
|
752
|
+
// a dead socket would otherwise hang logout (the LOGOUT_EVENT handler
|
|
753
|
+
// awaits this) and leave the app wedged on the sign-out screen. The
|
|
754
|
+
// rejection is still logged — only the *waiting* is capped.
|
|
755
|
+
await withTimeout(Promise.resolve(this.client.stop()).catch(error => {
|
|
719
756
|
console.error('Error closing the xmpp client:', error);
|
|
720
|
-
}
|
|
757
|
+
}), STOP_TIMEOUT_MS);
|
|
758
|
+
console.log('XMPP client connection closed.');
|
|
721
759
|
}
|
|
722
760
|
this.status = 'offline';
|
|
723
761
|
this.presencesReady = false;
|
|
@@ -901,14 +939,38 @@ class XmppClient {
|
|
|
901
939
|
sendMessageReactionStanza(_messageId, _roomJid, _reactionsList, _reactionSymbol) {
|
|
902
940
|
console.warn('sendMessageReactionStanza: not implemented in RN xmpp client');
|
|
903
941
|
}
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
942
|
+
|
|
943
|
+
// Sends a groupchat message carrying a `<translate source="xx"/>` tag so
|
|
944
|
+
// the backend knows the message's source language and can translate it
|
|
945
|
+
// for each reader (mirrors the web SDK's send path). `langSource` is the
|
|
946
|
+
// sender's own language; it only DECLARES the source, no pre-translation
|
|
947
|
+
// happens client-side. Structure mirrors `sendMessage`: buffer + replay
|
|
948
|
+
// when the stream isn't ready so a reconnect flush re-sends it, and
|
|
949
|
+
// forward `customId` so the optimistic bubble reconciles with the echo.
|
|
950
|
+
sendTextMessageWithTranslateTagStanza(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, langSource, customId) {
|
|
951
|
+
const source = langSource || 'en';
|
|
952
|
+
if (!this.isStreamReady()) {
|
|
953
|
+
(0, _outboundQueue.enqueueOutboundSend)({
|
|
954
|
+
optimisticId: customId || `send-text-message-${Date.now()}`,
|
|
955
|
+
roomJID,
|
|
956
|
+
enqueuedAt: Date.now(),
|
|
957
|
+
send: c => c.sendTextMessageWithTranslateTagStanza(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, langSource, customId)
|
|
958
|
+
});
|
|
959
|
+
return false;
|
|
960
|
+
}
|
|
961
|
+
return (0, _sendTextMessageWithTranslateTag.sendTextMessageWithTranslateTag)(this.client, {
|
|
962
|
+
roomJID,
|
|
963
|
+
firstName,
|
|
964
|
+
lastName,
|
|
965
|
+
photo,
|
|
966
|
+
walletAddress,
|
|
967
|
+
userMessage,
|
|
968
|
+
notDisplayedValue,
|
|
969
|
+
isReply,
|
|
970
|
+
showInChannel,
|
|
971
|
+
mainMessage,
|
|
972
|
+
devServer: this.devServer || DEFAULT_DEV_SERVER
|
|
973
|
+
}, source, customId);
|
|
912
974
|
}
|
|
913
975
|
}
|
|
914
976
|
exports.XmppClient = XmppClient;
|