@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
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { store } from '../roomStore';
|
|
4
|
-
import { addRoom, addRoomMessage, deleteRoomMessage, editRoomMessage, setComposing, setCurrentRoom, setRoomRole, updateRoom } from '../roomStore/roomsSlice';
|
|
4
|
+
import { addRoom, addRoomMessage, deleteRoomMessage, editRoomMessage, setComposing, setCurrentRoom, setRoomRole, updateRoom, mergeUsersSet } from '../roomStore/roomsSlice';
|
|
5
5
|
import { createMessageFromXml } from '../helpers/createMessageFromXml';
|
|
6
6
|
import { getDataFromXml } from '../helpers/getDataFromXml';
|
|
7
7
|
import { setDeleteModal } from '../roomStore/chatSettingsSlice';
|
|
8
8
|
import { messageNotificationManager } from '../utils/messageNotificationManager';
|
|
9
|
+
import { transformCallLogMessage } from '../helpers/callLogMessage';
|
|
9
10
|
|
|
10
11
|
// TO DO: we are thinking to refactor this code in the following way:
|
|
11
12
|
// each stanza will be parsed for 'type'
|
|
@@ -28,9 +29,22 @@ const onRealtimeMessage = async stanza => {
|
|
|
28
29
|
console.log('Missing data elements in real-time message.');
|
|
29
30
|
return;
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
+
|
|
33
|
+
// Not every sender stamps `senderJID` onto `<data>` — the web SDK's
|
|
34
|
+
// translate-tagged send path in particular builds `<data>` from a
|
|
35
|
+
// differently-named attr bag (roomJID/firstName/userMessage/…) that
|
|
36
|
+
// has no senderJID at all. This used to hard-drop the message here —
|
|
37
|
+
// live AND, via the identical check in onMessageHistory, in the MAM
|
|
38
|
+
// backfill too — so anything sent through that path just never
|
|
39
|
+
// appeared, on this device or after a restart. The stanza's own
|
|
40
|
+
// `from` is always the full MUC occupant jid (`room@conference/nick`,
|
|
41
|
+
// exactly what senderJID would have held), so fall back to it instead
|
|
42
|
+
// of dropping the message. Web's own onRealtimeMessage only requires
|
|
43
|
+
// `<data>` to exist at all — no senderJID check — so this brings RN
|
|
44
|
+
// to the same tolerance.
|
|
45
|
+
const senderJID = data.attrs.senderJID || stanza.attrs.from;
|
|
46
|
+
if (!senderJID) {
|
|
32
47
|
console.log(stanza.toString());
|
|
33
|
-
console.log(data.attrs.senderJID);
|
|
34
48
|
console.log('Missing sender information in real-time message.');
|
|
35
49
|
return;
|
|
36
50
|
}
|
|
@@ -46,16 +60,29 @@ const onRealtimeMessage = async stanza => {
|
|
|
46
60
|
body: pBody,
|
|
47
61
|
...pRest
|
|
48
62
|
} = parsed ?? {};
|
|
63
|
+
const mergedData = {
|
|
64
|
+
...(pData || data.attrs)
|
|
65
|
+
};
|
|
66
|
+
if (!mergedData.senderJID) {
|
|
67
|
+
mergedData.senderJID = senderJID;
|
|
68
|
+
}
|
|
49
69
|
// Cast at the call site: createMessageFromXml accepts the merged
|
|
50
70
|
// wrapped/positional shape; IUser type drift between models prevents
|
|
51
71
|
// a narrower type here without a wider refactor.
|
|
52
|
-
const
|
|
53
|
-
data:
|
|
72
|
+
const rawMessage = await createMessageFromXml({
|
|
73
|
+
data: mergedData,
|
|
54
74
|
id: pId || id,
|
|
55
75
|
body: pBody ?? '',
|
|
56
76
|
...pRest,
|
|
57
77
|
isDeleted: !!deleted || !!pRest?.deleted
|
|
58
78
|
});
|
|
79
|
+
|
|
80
|
+
// Turn server call-state stanzas into a friendly call-log entry
|
|
81
|
+
// ("Outgoing call · 12 sec" / "Missed call"). Non-call messages pass
|
|
82
|
+
// through unchanged. Without this the raw message keeps body
|
|
83
|
+
// "call-state" and gets dropped by the call-signal filter in
|
|
84
|
+
// roomsSlice, so call history silently disappears.
|
|
85
|
+
const message = transformCallLogMessage(rawMessage, store.getState().chatSettingStore.user?.xmppUsername || '');
|
|
59
86
|
const roomJID = stanza.attrs.from.split('/')[0];
|
|
60
87
|
store.dispatch(addRoomMessage({
|
|
61
88
|
roomJID,
|
|
@@ -67,8 +94,8 @@ const onRealtimeMessage = async stanza => {
|
|
|
67
94
|
try {
|
|
68
95
|
const state = store.getState();
|
|
69
96
|
const currentUserWallet = (state.chatSettingStore.user?.walletAddress || '').toLowerCase();
|
|
70
|
-
const
|
|
71
|
-
if (currentUserWallet &&
|
|
97
|
+
const senderJIDLower = String(senderJID || '').toLowerCase();
|
|
98
|
+
if (currentUserWallet && senderJIDLower.includes(currentUserWallet)) {
|
|
72
99
|
return message; // own message, skip toast
|
|
73
100
|
}
|
|
74
101
|
const room = state.rooms.rooms[roomJID];
|
|
@@ -131,14 +158,35 @@ const onMessageHistory = async stanza => {
|
|
|
131
158
|
}
|
|
132
159
|
// console.log(stanza.attrs.from);
|
|
133
160
|
|
|
134
|
-
|
|
161
|
+
// Mirror the realtime path's tolerance: don't hard-require
|
|
162
|
+
// senderFirstName/senderLastName/senderJID on <data> — the web SDK's
|
|
163
|
+
// translate-tagged send path doesn't stamp any of them, and this used
|
|
164
|
+
// to drop those messages out of MAM backfill entirely (so they never
|
|
165
|
+
// appeared even after a restart). The inner forwarded <message>'s own
|
|
166
|
+
// `from` is the full MUC occupant jid (room@conference/nick), exactly
|
|
167
|
+
// what senderJID would have held — fall back to it. createMessageFromXml
|
|
168
|
+
// already derives a display name from the jid when senderFirstName/
|
|
169
|
+
// senderLastName are absent.
|
|
170
|
+
const innerFrom = stanza.getChild('result')?.getChild('forwarded')?.getChild('message')?.attrs?.from || stanza.attrs.from;
|
|
171
|
+
const senderJID = data?.attrs?.senderJID || innerFrom;
|
|
172
|
+
if (!data?.attrs || !senderJID) {
|
|
135
173
|
// console.log(
|
|
136
174
|
// "Missing sender information in message history.",
|
|
137
175
|
// stanza.toString()
|
|
138
176
|
// );
|
|
139
177
|
return;
|
|
140
178
|
}
|
|
141
|
-
const
|
|
179
|
+
const mergedAttrs = {
|
|
180
|
+
...data.attrs
|
|
181
|
+
};
|
|
182
|
+
if (!mergedAttrs.senderJID) {
|
|
183
|
+
mergedAttrs.senderJID = senderJID;
|
|
184
|
+
}
|
|
185
|
+
const rawMessage = await createMessageFromXml(mergedAttrs, body, id, stanza.attrs.from, !!deleted);
|
|
186
|
+
|
|
187
|
+
// Same call-log transform as the realtime path, applied to archived
|
|
188
|
+
// history so calls received while offline still render as log entries.
|
|
189
|
+
const message = transformCallLogMessage(rawMessage, store.getState().chatSettingStore.user?.xmppUsername || '');
|
|
142
190
|
store.dispatch(addRoomMessage({
|
|
143
191
|
roomJID: stanza.attrs.from,
|
|
144
192
|
message
|
|
@@ -256,6 +304,25 @@ const onGetMembers = stanza => {
|
|
|
256
304
|
roomMembers
|
|
257
305
|
}
|
|
258
306
|
}));
|
|
307
|
+
|
|
308
|
+
// Also feed the identity cache Message.tsx reads sender names from
|
|
309
|
+
// (state.rooms.usersSet). Keyed by both the bare local part and the
|
|
310
|
+
// full jid since a message's `user.id` can be either depending on
|
|
311
|
+
// how it was parsed (see createUserNameFromSetUser).
|
|
312
|
+
const usersSetUpdates = {};
|
|
313
|
+
for (const member of roomMembers) {
|
|
314
|
+
if (!member.jid) {
|
|
315
|
+
continue;
|
|
316
|
+
}
|
|
317
|
+
const local = member.jid.split('@')[0];
|
|
318
|
+
usersSetUpdates[local] = member;
|
|
319
|
+
usersSetUpdates[member.jid] = member;
|
|
320
|
+
}
|
|
321
|
+
if (Object.keys(usersSetUpdates).length > 0) {
|
|
322
|
+
store.dispatch(mergeUsersSet({
|
|
323
|
+
members: usersSetUpdates
|
|
324
|
+
}));
|
|
325
|
+
}
|
|
259
326
|
} catch (err) {
|
|
260
327
|
console.warn('onGetMembers parse failed', err);
|
|
261
328
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["store","addRoom","addRoomMessage","deleteRoomMessage","editRoomMessage","setComposing","setCurrentRoom","setRoomRole","updateRoom","createMessageFromXml","getDataFromXml","setDeleteModal","messageNotificationManager","onRealtimeMessage","stanza","getChild","is","attrs","id","body","archived","data","deleted","console","log","toString","senderJID","parsed","pData","pId","pBody","pRest","message","isDeleted","roomJID","from","split","dispatch","state","getState","currentUserWallet","chatSettingStore","user","walletAddress","toLowerCase","String","includes","room","rooms","roomName","title","name","senderName","senderFirstName","senderLastName","filter","Boolean","join","trim","showNotification","err","warn","onDeleteMessage","stanzaId","by","messageId","isDeleteModal","onEditMessage","replace","text","onMessageHistory","children","xmlns","delay","handleComposing","currentUser","composingUser","norm","s","senderLocal","selfUser","selfXmppUsername","xmppUsername","selfWallet","isSelf","chatJID","composingList","push","fullName","pop","composing","onPresenceInRoom","startsWith","role","onChatInvite","client","type","chatId","xEls","getChildren","el","child","chat","presenceInRoomStanza","getRoomsStanza","onGetMembers","queries","activities","roomJid","q","acts","a","jid","activeRoomJID","length","existingRoom","existingMembers","roomMembers","existingByJid","Map","m","map","memberJid","existing","get","undefined","firstName","lastName","_id","ban_status","last_active","Number","updates","onGetRoomInfo","onGetLastMessageArchive","_xmpp","onNewRoomCreated","xmpp","onGetChatRooms","Array","isArray","forEach","result","currentChatRooms","isRoomAlreadyAdded","Object","values","some","element","roomData","usersCnt","users_cnt","messages","isLoading","roomBg","room_background","icon","room_thumbnail","unreadMessages","lastViewedTimestamp","error","e","onMessageError","_stanza","onReactionMessage","onReactionHistory","onRoomKicked"],"sourceRoot":"../../../src","sources":["networking/stanzaHandlers.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["store","addRoom","addRoomMessage","deleteRoomMessage","editRoomMessage","setComposing","setCurrentRoom","setRoomRole","updateRoom","mergeUsersSet","createMessageFromXml","getDataFromXml","setDeleteModal","messageNotificationManager","transformCallLogMessage","onRealtimeMessage","stanza","getChild","is","attrs","id","body","archived","data","deleted","console","log","toString","senderJID","from","parsed","pData","pId","pBody","pRest","mergedData","rawMessage","isDeleted","message","getState","chatSettingStore","user","xmppUsername","roomJID","split","dispatch","state","currentUserWallet","walletAddress","toLowerCase","senderJIDLower","String","includes","room","rooms","roomName","title","name","senderName","senderFirstName","senderLastName","filter","Boolean","join","trim","showNotification","err","warn","onDeleteMessage","stanzaId","by","messageId","isDeleteModal","onEditMessage","replace","text","onMessageHistory","children","xmlns","delay","innerFrom","mergedAttrs","handleComposing","currentUser","composingUser","norm","s","senderLocal","selfUser","selfXmppUsername","selfWallet","isSelf","chatJID","composingList","push","fullName","pop","composing","onPresenceInRoom","startsWith","role","onChatInvite","client","type","chatId","xEls","getChildren","el","child","chat","presenceInRoomStanza","getRoomsStanza","onGetMembers","queries","activities","roomJid","q","acts","a","jid","activeRoomJID","length","existingRoom","existingMembers","roomMembers","existingByJid","Map","m","map","memberJid","existing","get","undefined","firstName","lastName","_id","ban_status","last_active","Number","updates","usersSetUpdates","member","local","Object","keys","members","onGetRoomInfo","onGetLastMessageArchive","_xmpp","onNewRoomCreated","xmpp","onGetChatRooms","Array","isArray","forEach","result","currentChatRooms","isRoomAlreadyAdded","values","some","element","roomData","usersCnt","users_cnt","messages","isLoading","roomBg","room_background","icon","room_thumbnail","unreadMessages","lastViewedTimestamp","error","e","onMessageError","_stanza","onReactionMessage","onReactionHistory","onRoomKicked"],"sourceRoot":"../../../src","sources":["networking/stanzaHandlers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,23 +1,60 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { onDeleteMessage, onEditMessage, onRealtimeMessage, onMessageHistory, onGetLastMessageArchive, handleComposing, onChatInvite, onPresenceInRoom, onGetChatRooms, onGetMembers, onGetRoomInfo, onNewRoomCreated, onReactionMessage, onReactionHistory, onRoomKicked, onMessageError } from '../stanzaHandlers';
|
|
4
|
+
import { onCallTokenMessage } from '../callTokenStanza';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Unwrap a mucsub event wrapper so the chat handlers see the real inner
|
|
8
|
+
* `<message>` (the one carrying `<data senderJID=…>` and `<body>`).
|
|
9
|
+
*
|
|
10
|
+
* We subscribe every room to `urn:xmpp:mucsub:nodes:messages` (see
|
|
11
|
+
* subscribeToRoomMessages / pushSubscriptionService), so ejabberd pushes
|
|
12
|
+
* room traffic as:
|
|
13
|
+
*
|
|
14
|
+
* <message from="room@conference/…">
|
|
15
|
+
* <event xmlns="http://jabber.org/protocol/pubsub#event">
|
|
16
|
+
* <items node="urn:xmpp:mucsub:nodes:messages">
|
|
17
|
+
* <item><message …><data senderJID=…/><body>…</body></message></item>
|
|
18
|
+
*
|
|
19
|
+
* Without unwrapping, onRealtimeMessage reads `<data>` off the OUTER
|
|
20
|
+
* wrapper, finds nothing, logs "Missing data elements in real-time
|
|
21
|
+
* message" and drops the stanza — so live messages never render and only
|
|
22
|
+
* surface later through the MAM history fetch (i.e. after an app restart
|
|
23
|
+
* or re-opening the room). Mirrors the web SDK's handleStanza.
|
|
24
|
+
*/
|
|
25
|
+
const unwrapMucsubMessage = stanza => {
|
|
26
|
+
const inner = stanza?.getChild?.('event', 'http://jabber.org/protocol/pubsub#event')?.getChild?.('items')?.getChild?.('item')?.getChild?.('message');
|
|
27
|
+
return inner || stanza;
|
|
28
|
+
};
|
|
4
29
|
export function handleStanza(stanza, xmppWs) {
|
|
5
30
|
if (stanza?.attrs?.type === 'headline') {
|
|
6
31
|
return;
|
|
7
32
|
}
|
|
33
|
+
|
|
34
|
+
// Call signaling is swallowed before any chat handler sees it. A
|
|
35
|
+
// `<data type="call-*">` frame is not user-visible content, and letting
|
|
36
|
+
// it through renders bubbles reading "Deleted User: call-state" and
|
|
37
|
+
// fires new-message notifications for a call that never happened.
|
|
38
|
+
// Returns false for server call-LOGS, which do belong in the chat.
|
|
39
|
+
if (stanza?.name === 'message' && onCallTokenMessage(stanza)) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
8
42
|
switch (stanza.name) {
|
|
9
43
|
case 'message':
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
44
|
+
{
|
|
45
|
+
const unwrapped = unwrapMucsubMessage(stanza);
|
|
46
|
+
onMessageError(unwrapped, xmppWs);
|
|
47
|
+
onReactionMessage(unwrapped);
|
|
48
|
+
onReactionHistory(unwrapped);
|
|
49
|
+
onDeleteMessage(unwrapped);
|
|
50
|
+
onEditMessage(unwrapped);
|
|
51
|
+
onChatInvite(unwrapped, xmppWs);
|
|
52
|
+
onRealtimeMessage(unwrapped);
|
|
53
|
+
onMessageHistory(unwrapped);
|
|
54
|
+
handleComposing(unwrapped, xmppWs.username);
|
|
55
|
+
onPresenceInRoom(unwrapped);
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
21
58
|
case 'presence':
|
|
22
59
|
onRoomKicked(stanza);
|
|
23
60
|
onPresenceInRoom(stanza);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["onDeleteMessage","onEditMessage","onRealtimeMessage","onMessageHistory","onGetLastMessageArchive","handleComposing","onChatInvite","onPresenceInRoom","onGetChatRooms","onGetMembers","onGetRoomInfo","onNewRoomCreated","onReactionMessage","onReactionHistory","onRoomKicked","onMessageError","
|
|
1
|
+
{"version":3,"names":["onDeleteMessage","onEditMessage","onRealtimeMessage","onMessageHistory","onGetLastMessageArchive","handleComposing","onChatInvite","onPresenceInRoom","onGetChatRooms","onGetMembers","onGetRoomInfo","onNewRoomCreated","onReactionMessage","onReactionHistory","onRoomKicked","onMessageError","onCallTokenMessage","unwrapMucsubMessage","stanza","inner","getChild","handleStanza","xmppWs","attrs","type","name","unwrapped","username","console","log"],"sourceRoot":"../../../../src","sources":["networking/xmpp/handleStanzas.xmpp.ts"],"mappings":";;AACA,SACEA,eAAe,EACfC,aAAa,EACbC,iBAAiB,EACjBC,gBAAgB,EAChBC,uBAAuB,EACvBC,eAAe,EACfC,YAAY,EACZC,gBAAgB,EAChBC,cAAc,EACdC,YAAY,EACZC,aAAa,EACbC,gBAAgB,EAChBC,iBAAiB,EACjBC,iBAAiB,EACjBC,YAAY,EACZC,cAAc,QACT,mBAAmB;AAE1B,SAASC,kBAAkB,QAAQ,oBAAoB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,mBAAmB,GAAIC,MAAe,IAAc;EACxD,MAAMC,KAAK,GAAID,MAAM,EACjBE,QAAQ,GAAG,OAAO,EAAE,yCAAyC,CAAC,EAC9DA,QAAQ,GAAG,OAAO,CAAC,EACnBA,QAAQ,GAAG,MAAM,CAAC,EAClBA,QAAQ,GAAG,SAAS,CAAC;EACzB,OAAQD,KAAK,IAAgBD,MAAM;AACrC,CAAC;AAED,OAAO,SAASG,YAAYA,CAACH,MAAe,EAAEI,MAAkB,EAAE;EAChE,IAAIJ,MAAM,EAAEK,KAAK,EAAEC,IAAI,KAAK,UAAU,EAAE;IAAC;EAAO;;EAEhD;EACA;EACA;EACA;EACA;EACA,IAAIN,MAAM,EAAEO,IAAI,KAAK,SAAS,IAAIT,kBAAkB,CAACE,MAAM,CAAC,EAAE;IAC5D;EACF;EAEA,QAAQA,MAAM,CAACO,IAAI;IACjB,KAAK,SAAS;MAAE;QACd,MAAMC,SAAS,GAAGT,mBAAmB,CAACC,MAAM,CAAC;QAC7CH,cAAc,CAACW,SAAS,EAAEJ,MAAM,CAAC;QACjCV,iBAAiB,CAACc,SAAS,CAAC;QAC5Bb,iBAAiB,CAACa,SAAS,CAAC;QAC5B1B,eAAe,CAAC0B,SAAS,CAAC;QAC1BzB,aAAa,CAACyB,SAAS,CAAC;QACxBpB,YAAY,CAACoB,SAAS,EAAEJ,MAAM,CAAC;QAC/BpB,iBAAiB,CAACwB,SAAS,CAAC;QAC5BvB,gBAAgB,CAACuB,SAAS,CAAC;QAC3BrB,eAAe,CAACqB,SAAS,EAAEJ,MAAM,CAACK,QAAQ,CAAC;QAC3CpB,gBAAgB,CAACmB,SAAS,CAAC;QAC3B;MACF;IACA,KAAK,UAAU;MACbZ,YAAY,CAACI,MAAM,CAAC;MACpBX,gBAAgB,CAACW,MAAM,CAAC;MACxB;IACF,KAAK,IAAI;MACPV,cAAc,CAACU,MAAM,EAAEI,MAAM,CAAC;MAC9BpB,iBAAiB,CAACgB,MAAM,CAAC;MACzBX,gBAAgB,CAACW,MAAM,CAAC;MACxBT,YAAY,CAACS,MAAM,CAAC;MACpBR,aAAa,CAACQ,MAAM,CAAC;MACrBd,uBAAuB,CAACc,MAAM,EAAEI,MAAM,CAAC;MACvC;IACF,KAAK,aAAa;MAChBX,gBAAgB,CAACO,MAAM,EAAEI,MAAM,CAAC;MAChC;IACF;MACEM,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAEX,MAAM,CAACO,IAAI,CAAC;EACtD;AACF","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@ let _sendTextSeq = 0;
|
|
|
14
14
|
*
|
|
15
15
|
* Mirrors web's `SERVICE` derivation (utils/runtimeHostConfig.ts).
|
|
16
16
|
*/
|
|
17
|
-
const toServiceXmlns = (devServer, client) => {
|
|
17
|
+
export const toServiceXmlns = (devServer, client) => {
|
|
18
18
|
// Prefer the URL the client is actually connected to — guaranteed to
|
|
19
19
|
// be the one the server expects.
|
|
20
20
|
const clientService = client?.options?.service;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["xml","_sendTextSeq","toServiceXmlns","devServer","client","clientService","options","service","test","ds","trim","includes","replace","sendTextMessage","roomJID","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","id","Date","now","dataXmlns","message","to","type","xmlns","senderFirstName","senderLastName","fullName","photoURL","senderJID","jid","toString","senderWalletAddress","roomJid","isSystemMessage","tokenAmount","quickReplies","push","sendResult","send","then","console","log","catch","err","error","name","stack"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendTextMessage.xmpp.ts"],"mappings":";;AAAA,SAAiBA,GAAG,QAAQ,cAAc;;AAE1C;AACA,IAAIC,YAAY,GAAG,CAAC;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAGA,CAACC,SAA6B,EAAEC,MAAc,KAAa;
|
|
1
|
+
{"version":3,"names":["xml","_sendTextSeq","toServiceXmlns","devServer","client","clientService","options","service","test","ds","trim","includes","replace","sendTextMessage","roomJID","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","id","Date","now","dataXmlns","message","to","type","xmlns","senderFirstName","senderLastName","fullName","photoURL","senderJID","jid","toString","senderWalletAddress","roomJid","isSystemMessage","tokenAmount","quickReplies","push","sendResult","send","then","console","log","catch","err","error","name","stack"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendTextMessage.xmpp.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,22 +1,60 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { xml } from '@xmpp/client';
|
|
4
|
+
import { toServiceXmlns } from './sendTextMessage.xmpp';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Same wire message as `sendTextMessage`, plus a `<translate source="xx"/>`
|
|
8
|
+
* child that DECLARES the message's source language so the backend can
|
|
9
|
+
* translate it for readers in other languages. No pre-translation happens
|
|
10
|
+
* client-side.
|
|
11
|
+
*
|
|
12
|
+
* The `<data>` element MUST be built identically to `sendTextMessage`
|
|
13
|
+
* (correct `xmlns` = the `wss://<host>/ws` service URL, and the
|
|
14
|
+
* `senderFirstName` / `senderLastName` / `senderJID` / `roomJid` attr
|
|
15
|
+
* names the server + parser expect). An earlier version spread a loose
|
|
16
|
+
* `stanzaMessage` bag into `<data>` with no xmlns and mismatched attr
|
|
17
|
+
* names — the server silently dropped those stanzas, so no echo came back
|
|
18
|
+
* and every sent message stayed stuck in the "pending" state. Keep this in
|
|
19
|
+
* lockstep with sendTextMessage.xmpp.ts.
|
|
20
|
+
*/
|
|
4
21
|
export const sendTextMessageWithTranslateTag = (client, stanzaMessage, source, customId) => {
|
|
5
|
-
const id = customId || `
|
|
22
|
+
const id = customId || `send-text-message-${Date.now()}`;
|
|
6
23
|
try {
|
|
24
|
+
const dataXmlns = toServiceXmlns(stanzaMessage.devServer, client);
|
|
7
25
|
const message = xml('message', {
|
|
8
26
|
to: stanzaMessage.roomJID,
|
|
9
27
|
type: 'groupchat',
|
|
10
|
-
id
|
|
28
|
+
id
|
|
11
29
|
}, xml('data', {
|
|
12
|
-
|
|
30
|
+
xmlns: dataXmlns,
|
|
31
|
+
senderFirstName: stanzaMessage.firstName,
|
|
32
|
+
senderLastName: stanzaMessage.lastName,
|
|
33
|
+
fullName: `${stanzaMessage.firstName} ${stanzaMessage.lastName}`,
|
|
34
|
+
photoURL: stanzaMessage.photo,
|
|
35
|
+
senderJID: client.jid?.toString(),
|
|
36
|
+
senderWalletAddress: stanzaMessage.walletAddress,
|
|
37
|
+
roomJid: stanzaMessage.roomJID,
|
|
38
|
+
isSystemMessage: false,
|
|
39
|
+
tokenAmount: 0,
|
|
40
|
+
quickReplies: '',
|
|
41
|
+
notDisplayedValue: '',
|
|
42
|
+
showInChannel: stanzaMessage.showInChannel || false,
|
|
43
|
+
isReply: stanzaMessage.isReply || false,
|
|
44
|
+
mainMessage: stanzaMessage.mainMessage || '',
|
|
13
45
|
push: 'true'
|
|
14
|
-
}), xml('body', {}, stanzaMessage.userMessage),
|
|
15
|
-
|
|
46
|
+
}), xml('body', {}, stanzaMessage.userMessage),
|
|
47
|
+
// `<translate source>` only DECLARES the language this text is in; it
|
|
48
|
+
// costs nothing to send and is what lets each reader translate the
|
|
49
|
+
// message into their own language on their side.
|
|
50
|
+
xml('translate', {
|
|
51
|
+
source
|
|
16
52
|
}));
|
|
17
53
|
client.send(message);
|
|
54
|
+
return true;
|
|
18
55
|
} catch (error) {
|
|
19
56
|
console.error('An error occurred while sending message:', error);
|
|
57
|
+
return false;
|
|
20
58
|
}
|
|
21
59
|
};
|
|
22
60
|
//# sourceMappingURL=sendTextMessageWithTranslateTag.xmpp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["xml","sendTextMessageWithTranslateTag","client","stanzaMessage","source","customId","id","Date","now","
|
|
1
|
+
{"version":3,"names":["xml","toServiceXmlns","sendTextMessageWithTranslateTag","client","stanzaMessage","source","customId","id","Date","now","dataXmlns","devServer","message","to","roomJID","type","xmlns","senderFirstName","firstName","senderLastName","lastName","fullName","photoURL","photo","senderJID","jid","toString","senderWalletAddress","walletAddress","roomJid","isSystemMessage","tokenAmount","quickReplies","notDisplayedValue","showInChannel","isReply","mainMessage","push","userMessage","send","error","console"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts"],"mappings":";;AAAA,SAAiBA,GAAG,QAAQ,cAAc;AAE1C,SAASC,cAAc,QAAQ,wBAAwB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,+BAA+B,GAAGA,CAC7CC,MAAc,EACdC,aAYC,EACDC,MAAqB,EACrBC,QAAiB,KACL;EACZ,MAAMC,EAAE,GAAGD,QAAQ,IAAI,qBAAqBE,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;EAExD,IAAI;IACF,MAAMC,SAAS,GAAGT,cAAc,CAACG,aAAa,CAACO,SAAS,EAAER,MAAM,CAAC;IACjE,MAAMS,OAAO,GAAGZ,GAAG,CACjB,SAAS,EACT;MACEa,EAAE,EAAET,aAAa,CAACU,OAAO;MACzBC,IAAI,EAAE,WAAW;MACjBR;IACF,CAAC,EACDP,GAAG,CAAC,MAAM,EAAE;MACVgB,KAAK,EAAEN,SAAS;MAChBO,eAAe,EAAEb,aAAa,CAACc,SAAS;MACxCC,cAAc,EAAEf,aAAa,CAACgB,QAAQ;MACtCC,QAAQ,EAAE,GAAGjB,aAAa,CAACc,SAAS,IAAId,aAAa,CAACgB,QAAQ,EAAE;MAChEE,QAAQ,EAAElB,aAAa,CAACmB,KAAK;MAC7BC,SAAS,EAAErB,MAAM,CAACsB,GAAG,EAAEC,QAAQ,CAAC,CAAC;MACjCC,mBAAmB,EAAEvB,aAAa,CAACwB,aAAa;MAChDC,OAAO,EAAEzB,aAAa,CAACU,OAAO;MAC9BgB,eAAe,EAAE,KAAK;MACtBC,WAAW,EAAE,CAAC;MACdC,YAAY,EAAE,EAAE;MAChBC,iBAAiB,EAAE,EAAE;MACrBC,aAAa,EAAE9B,aAAa,CAAC8B,aAAa,IAAI,KAAK;MACnDC,OAAO,EAAE/B,aAAa,CAAC+B,OAAO,IAAI,KAAK;MACvCC,WAAW,EAAEhC,aAAa,CAACgC,WAAW,IAAI,EAAE;MAC5CC,IAAI,EAAE;IACR,CAAC,CAAC,EACFrC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAEI,aAAa,CAACkC,WAAW,CAAC;IAC1C;IACA;IACA;IACAtC,GAAG,CAAC,WAAW,EAAE;MAAEK;IAAO,CAAC,CAC7B,CAAC;IAEDF,MAAM,CAACoC,IAAI,CAAC3B,OAAO,CAAC;IACpB,OAAO,IAAI;EACb,CAAC,CAAC,OAAO4B,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,0CAA0C,EAAEA,KAAK,CAAC;IAChE,OAAO,KAAK;EACd;AACF,CAAC","ignoreList":[]}
|
|
@@ -10,6 +10,7 @@ import { sendTypingRequest } from './xmpp/sendTypingRequest.xmpp';
|
|
|
10
10
|
import { sendPing } from './xmpp/sendPing.xmpp';
|
|
11
11
|
import { getHistory } from './xmpp/getHistory.xmpp';
|
|
12
12
|
import { sendTextMessage } from './xmpp/sendTextMessage.xmpp';
|
|
13
|
+
import { sendTextMessageWithTranslateTag } from './xmpp/sendTextMessageWithTranslateTag.xmpp';
|
|
13
14
|
import { deleteMessage } from './xmpp/deleteMessage.xmpp';
|
|
14
15
|
import { presenceInRoom } from './xmpp/presenceInRoom.xmpp';
|
|
15
16
|
import { getLastMessage } from './xmpp/getLastMessageArchive.xmpp';
|
|
@@ -31,6 +32,33 @@ import { clearOutboundSends, enqueueOutboundSend, flushOutboundSends } from './o
|
|
|
31
32
|
// Canonical production XMPP WSS endpoint (standard wss/443, no port suffix).
|
|
32
33
|
const DEFAULT_DEV_SERVER = 'xmpp.chat.ethora.com';
|
|
33
34
|
|
|
35
|
+
// How long to wait for the old client's stop() during a reconnect before
|
|
36
|
+
// giving up on it. Short on purpose: we are already tearing this client
|
|
37
|
+
// down, and a socket that hasn't closed in 3s is exactly the dead one we
|
|
38
|
+
// must not block on. See the call site in reconnect().
|
|
39
|
+
const STOP_TIMEOUT_MS = 3000;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Resolve when `promise` settles or when `ms` elapses, whichever is first.
|
|
43
|
+
* Never rejects: a teardown that fails or hangs must not break the caller's
|
|
44
|
+
* control flow (that is the whole point of using it around stop()).
|
|
45
|
+
*/
|
|
46
|
+
function withTimeout(promise, ms) {
|
|
47
|
+
return new Promise(resolve => {
|
|
48
|
+
let settled = false;
|
|
49
|
+
const done = () => {
|
|
50
|
+
if (settled) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
settled = true;
|
|
54
|
+
clearTimeout(timer);
|
|
55
|
+
resolve();
|
|
56
|
+
};
|
|
57
|
+
const timer = setTimeout(done, ms);
|
|
58
|
+
Promise.resolve(promise).then(done, done);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
|
|
34
62
|
// @xmpp/client surfaces SASL/stream errors in a few shapes depending on
|
|
35
63
|
// where it fails — XMPPError on stream:error, SASLError on SASL bind, or
|
|
36
64
|
// a generic Error whose message contains "not-authorized". Match all of
|
|
@@ -646,9 +674,17 @@ export class XmppClient {
|
|
|
646
674
|
const old = this.client;
|
|
647
675
|
if (old) {
|
|
648
676
|
this.detachEventListeners();
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
677
|
+
// NEVER await a bare stop(): on a half-dead socket (the exact case
|
|
678
|
+
// we're reconnecting for) @xmpp/client's stop() can hang forever
|
|
679
|
+
// waiting on a close handshake that never lands. That leaves this
|
|
680
|
+
// function parked before `finally`, so `reconnecting` stays true and
|
|
681
|
+
// EVERY later reconnect — watchdog, NetInfo, AppState — silently
|
|
682
|
+
// returns at the single-flight guard. The client then never comes
|
|
683
|
+
// back until the app is killed, which reads as "new messages just
|
|
684
|
+
// stop arriving". Cap the teardown and move on: initializeClient()
|
|
685
|
+
// replaces `this.client` anyway, and the old one's listeners are
|
|
686
|
+
// already detached above, so a late-settling stop() is harmless.
|
|
687
|
+
await withTimeout(old.stop(), STOP_TIMEOUT_MS);
|
|
652
688
|
}
|
|
653
689
|
this.initializeClient();
|
|
654
690
|
} finally {
|
|
@@ -708,12 +744,14 @@ export class XmppClient {
|
|
|
708
744
|
// handshake can't re-enter handleStanza and dispatch into a store
|
|
709
745
|
// that's being wiped (or, on re-login, the new session's store).
|
|
710
746
|
this.detachEventListeners();
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
747
|
+
// Bounded like the reconnect teardown: a stop() that never settles on
|
|
748
|
+
// a dead socket would otherwise hang logout (the LOGOUT_EVENT handler
|
|
749
|
+
// awaits this) and leave the app wedged on the sign-out screen. The
|
|
750
|
+
// rejection is still logged — only the *waiting* is capped.
|
|
751
|
+
await withTimeout(Promise.resolve(this.client.stop()).catch(error => {
|
|
715
752
|
console.error('Error closing the xmpp client:', error);
|
|
716
|
-
}
|
|
753
|
+
}), STOP_TIMEOUT_MS);
|
|
754
|
+
console.log('XMPP client connection closed.');
|
|
717
755
|
}
|
|
718
756
|
this.status = 'offline';
|
|
719
757
|
this.presencesReady = false;
|
|
@@ -897,14 +935,38 @@ export class XmppClient {
|
|
|
897
935
|
sendMessageReactionStanza(_messageId, _roomJid, _reactionsList, _reactionSymbol) {
|
|
898
936
|
console.warn('sendMessageReactionStanza: not implemented in RN xmpp client');
|
|
899
937
|
}
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
938
|
+
|
|
939
|
+
// Sends a groupchat message carrying a `<translate source="xx"/>` tag so
|
|
940
|
+
// the backend knows the message's source language and can translate it
|
|
941
|
+
// for each reader (mirrors the web SDK's send path). `langSource` is the
|
|
942
|
+
// sender's own language; it only DECLARES the source, no pre-translation
|
|
943
|
+
// happens client-side. Structure mirrors `sendMessage`: buffer + replay
|
|
944
|
+
// when the stream isn't ready so a reconnect flush re-sends it, and
|
|
945
|
+
// forward `customId` so the optimistic bubble reconciles with the echo.
|
|
946
|
+
sendTextMessageWithTranslateTagStanza(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, langSource, customId) {
|
|
947
|
+
const source = langSource || 'en';
|
|
948
|
+
if (!this.isStreamReady()) {
|
|
949
|
+
enqueueOutboundSend({
|
|
950
|
+
optimisticId: customId || `send-text-message-${Date.now()}`,
|
|
951
|
+
roomJID,
|
|
952
|
+
enqueuedAt: Date.now(),
|
|
953
|
+
send: c => c.sendTextMessageWithTranslateTagStanza(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, langSource, customId)
|
|
954
|
+
});
|
|
955
|
+
return false;
|
|
956
|
+
}
|
|
957
|
+
return sendTextMessageWithTranslateTag(this.client, {
|
|
958
|
+
roomJID,
|
|
959
|
+
firstName,
|
|
960
|
+
lastName,
|
|
961
|
+
photo,
|
|
962
|
+
walletAddress,
|
|
963
|
+
userMessage,
|
|
964
|
+
notDisplayedValue,
|
|
965
|
+
isReply,
|
|
966
|
+
showInChannel,
|
|
967
|
+
mainMessage,
|
|
968
|
+
devServer: this.devServer || DEFAULT_DEV_SERVER
|
|
969
|
+
}, source, customId);
|
|
908
970
|
}
|
|
909
971
|
}
|
|
910
972
|
export default XmppClient;
|