@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
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Optional-dependency bridge for the LiveKit React Native SDK.
|
|
5
|
+
*
|
|
6
|
+
* Calls are opt-in (`config.videoCalls.enabled`), and the LiveKit packages
|
|
7
|
+
* are NATIVE modules: they need a dev build, they cannot run in Expo Go,
|
|
8
|
+
* and they add camera/microphone entitlements to whatever app installs
|
|
9
|
+
* them. Most hosts embedding this chat SDK don't want calls at all, so
|
|
10
|
+
* `@livekit/react-native` and `@livekit/react-native-webrtc` are declared
|
|
11
|
+
* as OPTIONAL peer dependencies.
|
|
12
|
+
*
|
|
13
|
+
* That means a plain top-level `import ... from '@livekit/react-native'`
|
|
14
|
+
* is not allowed anywhere in the SDK: Metro resolves imports at bundle
|
|
15
|
+
* time, so a chat-only host would fail to build over a feature it never
|
|
16
|
+
* switched on. Everything call-related goes through `loadLiveKit()`, which
|
|
17
|
+
* requires the modules lazily at call time and returns null when they
|
|
18
|
+
* aren't installed. Callers surface that as a friendly config error rather
|
|
19
|
+
* than a redbox.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
let cached;
|
|
23
|
+
export const isLiveKitAvailable = () => loadLiveKit() !== null;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the LiveKit runtime, or null when the optional native packages
|
|
27
|
+
* aren't installed in the host app. Result is memoised (including the
|
|
28
|
+
* failure) so a missing dependency doesn't re-throw on every render.
|
|
29
|
+
*/
|
|
30
|
+
export const loadLiveKit = () => {
|
|
31
|
+
if (cached !== undefined) {
|
|
32
|
+
return cached;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
36
|
+
const rn = require('@livekit/react-native');
|
|
37
|
+
// `livekit-client` is a hard dependency of @livekit/react-native, so
|
|
38
|
+
// if the first require succeeded this one will too. Read the enums
|
|
39
|
+
// from it rather than from the RN wrapper: the wrapper re-exports a
|
|
40
|
+
// moving subset across versions, the core package does not.
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
42
|
+
const core = require('livekit-client');
|
|
43
|
+
cached = {
|
|
44
|
+
Room: core.Room,
|
|
45
|
+
RoomEvent: core.RoomEvent,
|
|
46
|
+
Track: core.Track,
|
|
47
|
+
ConnectionState: core.ConnectionState,
|
|
48
|
+
VideoTrack: rn.VideoTrack,
|
|
49
|
+
AudioSession: rn.AudioSession,
|
|
50
|
+
registerGlobals: rn.registerGlobals
|
|
51
|
+
};
|
|
52
|
+
} catch {
|
|
53
|
+
cached = null;
|
|
54
|
+
}
|
|
55
|
+
return cached;
|
|
56
|
+
};
|
|
57
|
+
let globalsRegistered = false;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* `registerGlobals()` patches RTCPeerConnection / MediaStream / navigator
|
|
61
|
+
* .mediaDevices onto the JS global scope so livekit-client (written for
|
|
62
|
+
* browsers) works on React Native. It must run exactly once per JS
|
|
63
|
+
* context, before the first `new Room()`. Calling it repeatedly is
|
|
64
|
+
* harmless in current versions but has thrown in older ones, so guard it.
|
|
65
|
+
*/
|
|
66
|
+
export const ensureLiveKitGlobals = runtime => {
|
|
67
|
+
if (globalsRegistered) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
runtime.registerGlobals?.();
|
|
72
|
+
} catch {
|
|
73
|
+
// Already registered by the host app (it may use LiveKit elsewhere).
|
|
74
|
+
}
|
|
75
|
+
globalsRegistered = true;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
/** Reset memoised state. Test seam only. */
|
|
79
|
+
export const __resetLiveKitRuntimeForTests = () => {
|
|
80
|
+
cached = undefined;
|
|
81
|
+
globalsRegistered = false;
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=livekitRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["cached","isLiveKitAvailable","loadLiveKit","undefined","rn","require","core","Room","RoomEvent","Track","ConnectionState","VideoTrack","AudioSession","registerGlobals","globalsRegistered","ensureLiveKitGlobals","runtime","__resetLiveKitRuntimeForTests"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/livekitRuntime.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmBA,IAAIA,MAAyC;AAE7C,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAeC,WAAW,CAAC,CAAC,KAAK,IAAI;;AAEvE;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAAW,GAAGA,CAAA,KAA6B;EACtD,IAAIF,MAAM,KAAKG,SAAS,EAAE;IACxB,OAAOH,MAAM;EACf;EAEA,IAAI;IACF;IACA,MAAMI,EAAE,GAAGC,OAAO,CAAC,uBAAuB,CAAC;IAC3C;IACA;IACA;IACA;IACA;IACA,MAAMC,IAAI,GAAGD,OAAO,CAAC,gBAAgB,CAAC;IAEtCL,MAAM,GAAG;MACPO,IAAI,EAAED,IAAI,CAACC,IAAI;MACfC,SAAS,EAAEF,IAAI,CAACE,SAAS;MACzBC,KAAK,EAAEH,IAAI,CAACG,KAAK;MACjBC,eAAe,EAAEJ,IAAI,CAACI,eAAe;MACrCC,UAAU,EAAEP,EAAE,CAACO,UAAU;MACzBC,YAAY,EAAER,EAAE,CAACQ,YAAY;MAC7BC,eAAe,EAAET,EAAE,CAACS;IACtB,CAAC;EACH,CAAC,CAAC,MAAM;IACNb,MAAM,GAAG,IAAI;EACf;EAEA,OAAOA,MAAM;AACf,CAAC;AAED,IAAIc,iBAAiB,GAAG,KAAK;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAIC,OAAuB,IAAW;EACrE,IAAIF,iBAAiB,EAAE;IAAC;EAAO;EAC/B,IAAI;IACFE,OAAO,CAACH,eAAe,GAAG,CAAC;EAC7B,CAAC,CAAC,MAAM;IACN;EAAA;EAEFC,iBAAiB,GAAG,IAAI;AAC1B,CAAC;;AAED;AACA,OAAO,MAAMG,6BAA6B,GAAGA,CAAA,KAAY;EACvDjB,MAAM,GAAGG,SAAS;EAClBW,iBAAiB,GAAG,KAAK;AAC3B,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useMemo, useRef } from 'react';
|
|
4
|
+
import { Platform } from 'react-native';
|
|
5
|
+
import { useDispatch, useSelector } from 'react-redux';
|
|
6
|
+
import { store } from '../../roomStore';
|
|
7
|
+
import { acceptIncomingCall, declineIncomingCall } from '../../roomStore/callSlice';
|
|
8
|
+
import { sendCallStateSignal } from '../../networking/callTokenStanza';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Native incoming-call UI (Android ConnectionService / iOS CallKit) via
|
|
12
|
+
* the optional `react-native-callkeep` package.
|
|
13
|
+
*
|
|
14
|
+
* Why optional: CallKeep pulls a telecom-framework dependency into the
|
|
15
|
+
* host app and, on iOS, is only half a solution without PushKit. It is
|
|
16
|
+
* loaded lazily exactly like the LiveKit packages, so hosts that don't
|
|
17
|
+
* install it get the plain in-app ring screen and nothing breaks.
|
|
18
|
+
*
|
|
19
|
+
* Platform reality, stated plainly:
|
|
20
|
+
* - Android: full value. A ConnectionService call shows the system
|
|
21
|
+
* incoming-call screen over the lock screen.
|
|
22
|
+
* - iOS: this only fires while the app is running. A CallKit screen from
|
|
23
|
+
* a killed app requires a VoIP push over PushKit, which needs a
|
|
24
|
+
* separate Apple VoIP certificate and a separate send path on the
|
|
25
|
+
* backend (not FCM). Until that exists, iOS falls back to the regular
|
|
26
|
+
* data push and the in-app ring screen.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
let cachedCallKeep;
|
|
30
|
+
export const loadCallKeep = () => {
|
|
31
|
+
if (cachedCallKeep !== undefined) {
|
|
32
|
+
return cachedCallKeep;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
// The JS package being installed does NOT mean the native side is
|
|
36
|
+
// linked: a host can `npm i react-native-callkeep` and skip
|
|
37
|
+
// `pod install`, or (very common in this repo) node_modules can carry
|
|
38
|
+
// it over from another branch whose build did link it. In that state
|
|
39
|
+
// requiring the package builds a `new NativeEventEmitter(null)` at
|
|
40
|
+
// module scope, which throws an invariant that RN surfaces as an
|
|
41
|
+
// uncaught redbox on every render of the call overlay — the whole app
|
|
42
|
+
// becomes unusable over a feature the host never switched on.
|
|
43
|
+
// Probing NativeModules first keeps the optional dependency genuinely
|
|
44
|
+
// optional: no native module => behave exactly as if it isn't installed.
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
46
|
+
const {
|
|
47
|
+
NativeModules
|
|
48
|
+
} = require('react-native');
|
|
49
|
+
if (!NativeModules?.RNCallKeep) {
|
|
50
|
+
cachedCallKeep = null;
|
|
51
|
+
return cachedCallKeep;
|
|
52
|
+
}
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
54
|
+
const mod = require('react-native-callkeep');
|
|
55
|
+
cachedCallKeep = mod?.default || mod;
|
|
56
|
+
} catch {
|
|
57
|
+
cachedCallKeep = null;
|
|
58
|
+
}
|
|
59
|
+
return cachedCallKeep;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
// CallKeep identifies calls by UUID. Our callIds aren't UUIDs, so derive a
|
|
63
|
+
// stable v4-shaped string from the callId: same call always maps to the
|
|
64
|
+
// same UUID, which is what endCall() needs to dismiss the right screen.
|
|
65
|
+
const toUuid = seed => {
|
|
66
|
+
let hash = 0x811c9dc5;
|
|
67
|
+
const bytes = [];
|
|
68
|
+
for (let i = 0; i < 32; i++) {
|
|
69
|
+
const ch = seed.charCodeAt(i % Math.max(1, seed.length)) + i;
|
|
70
|
+
hash ^= ch;
|
|
71
|
+
hash = Math.imul(hash, 0x01000193) >>> 0;
|
|
72
|
+
bytes.push(hash & 0xff);
|
|
73
|
+
}
|
|
74
|
+
const hex = bytes.map(b => b.toString(16).padStart(2, '0')).join('');
|
|
75
|
+
return [hex.slice(0, 8), hex.slice(8, 12), '4' + hex.slice(13, 16), (parseInt(hex[16], 16) & 0x3 | 0x8).toString(16) + hex.slice(17, 20), hex.slice(20, 32)].join('-');
|
|
76
|
+
};
|
|
77
|
+
export const useCallKeep = () => {
|
|
78
|
+
const dispatch = useDispatch();
|
|
79
|
+
const call = useSelector(state => state.call);
|
|
80
|
+
const callKeep = useMemo(() => loadCallKeep(), []);
|
|
81
|
+
const activeUuidRef = useRef(null);
|
|
82
|
+
const readyRef = useRef(false);
|
|
83
|
+
|
|
84
|
+
// One-time native setup.
|
|
85
|
+
useEffect(() => {
|
|
86
|
+
if (!callKeep) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
let cancelled = false;
|
|
90
|
+
(async () => {
|
|
91
|
+
try {
|
|
92
|
+
await callKeep.setup({
|
|
93
|
+
ios: {
|
|
94
|
+
appName: 'Ethora',
|
|
95
|
+
supportsVideo: true
|
|
96
|
+
},
|
|
97
|
+
android: {
|
|
98
|
+
alertTitle: 'Permissions required',
|
|
99
|
+
alertDescription: 'This application needs to access your phone accounts to show incoming calls',
|
|
100
|
+
cancelButton: 'Cancel',
|
|
101
|
+
okButton: 'ok',
|
|
102
|
+
additionalPermissions: [],
|
|
103
|
+
foregroundService: {
|
|
104
|
+
channelId: 'com.ethora.chat.calls',
|
|
105
|
+
channelName: 'Incoming calls',
|
|
106
|
+
notificationTitle: 'Call in progress'
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
if (cancelled) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
callKeep.setAvailable?.(true);
|
|
114
|
+
readyRef.current = true;
|
|
115
|
+
} catch {
|
|
116
|
+
// Host didn't grant phone-account permission, or the module isn't
|
|
117
|
+
// linked. The in-app ring screen still works, so stay quiet.
|
|
118
|
+
readyRef.current = false;
|
|
119
|
+
}
|
|
120
|
+
})();
|
|
121
|
+
return () => {
|
|
122
|
+
cancelled = true;
|
|
123
|
+
};
|
|
124
|
+
}, [callKeep]);
|
|
125
|
+
|
|
126
|
+
// Bridge native answer/end actions back into Redux.
|
|
127
|
+
useEffect(() => {
|
|
128
|
+
if (!callKeep) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const onAnswer = () => {
|
|
132
|
+
// The user answered from the system screen, which on Android may
|
|
133
|
+
// mean the app was not even in the foreground.
|
|
134
|
+
callKeep.backToForeground?.();
|
|
135
|
+
if (store.getState().call.direction === 'incoming') {
|
|
136
|
+
dispatch(acceptIncomingCall());
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
const onEnd = () => {
|
|
140
|
+
const snapshot = store.getState().call;
|
|
141
|
+
if (snapshot.phase === 'idle') {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (snapshot.direction === 'incoming' && snapshot.phase === 'ringing-incoming') {
|
|
145
|
+
sendCallStateSignal('declined');
|
|
146
|
+
dispatch(declineIncomingCall());
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
callKeep.addEventListener('answerCall', onAnswer);
|
|
150
|
+
callKeep.addEventListener('endCall', onEnd);
|
|
151
|
+
return () => {
|
|
152
|
+
callKeep.removeEventListener('answerCall');
|
|
153
|
+
callKeep.removeEventListener('endCall');
|
|
154
|
+
};
|
|
155
|
+
}, [callKeep, dispatch]);
|
|
156
|
+
|
|
157
|
+
// Show / dismiss the native screen as the call state changes.
|
|
158
|
+
useEffect(() => {
|
|
159
|
+
if (!callKeep || !readyRef.current) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const isRinging = call.direction === 'incoming' && call.phase === 'ringing-incoming';
|
|
163
|
+
if (isRinging && !activeUuidRef.current) {
|
|
164
|
+
const uuid = toUuid(call.callId || call.roomJid || String(Date.now()));
|
|
165
|
+
activeUuidRef.current = uuid;
|
|
166
|
+
try {
|
|
167
|
+
callKeep.displayIncomingCall(uuid, call.peerXmppUsername || call.roomName || 'Ethora', call.roomName || undefined, 'generic', call.kind === 'video');
|
|
168
|
+
} catch {
|
|
169
|
+
activeUuidRef.current = null;
|
|
170
|
+
}
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// Any exit from ringing (answered in-app, declined, peer cancelled)
|
|
175
|
+
// must tear the system screen down or it hangs around ringing.
|
|
176
|
+
if (!isRinging && activeUuidRef.current && call.phase !== 'connecting' && call.phase !== 'in-call') {
|
|
177
|
+
try {
|
|
178
|
+
callKeep.endCall(activeUuidRef.current);
|
|
179
|
+
} catch {
|
|
180
|
+
// Screen already gone.
|
|
181
|
+
}
|
|
182
|
+
activeUuidRef.current = null;
|
|
183
|
+
}
|
|
184
|
+
if (call.phase === 'idle' && activeUuidRef.current) {
|
|
185
|
+
try {
|
|
186
|
+
callKeep.endCall(activeUuidRef.current);
|
|
187
|
+
} catch {
|
|
188
|
+
// noop
|
|
189
|
+
}
|
|
190
|
+
activeUuidRef.current = null;
|
|
191
|
+
}
|
|
192
|
+
}, [callKeep, call.direction, call.phase, call.callId, call.roomJid, call.roomName, call.peerXmppUsername, call.kind]);
|
|
193
|
+
|
|
194
|
+
// Nothing to clean up on unmount beyond the active screen: this hook
|
|
195
|
+
// lives for the lifetime of the provider.
|
|
196
|
+
useEffect(() => () => {
|
|
197
|
+
if (callKeep && activeUuidRef.current) {
|
|
198
|
+
try {
|
|
199
|
+
callKeep.endCall(activeUuidRef.current);
|
|
200
|
+
} catch {
|
|
201
|
+
// noop
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}, [callKeep]);
|
|
205
|
+
|
|
206
|
+
// iOS-only note kept as a runtime no-op so the import isn't unused when
|
|
207
|
+
// the platform check is tree-shaken in release builds.
|
|
208
|
+
void Platform.OS;
|
|
209
|
+
};
|
|
210
|
+
//# sourceMappingURL=useCallKeep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useRef","Platform","useDispatch","useSelector","store","acceptIncomingCall","declineIncomingCall","sendCallStateSignal","cachedCallKeep","loadCallKeep","undefined","NativeModules","require","RNCallKeep","mod","default","toUuid","seed","hash","bytes","i","ch","charCodeAt","Math","max","length","imul","push","hex","map","b","toString","padStart","join","slice","parseInt","useCallKeep","dispatch","call","state","callKeep","activeUuidRef","readyRef","cancelled","setup","ios","appName","supportsVideo","android","alertTitle","alertDescription","cancelButton","okButton","additionalPermissions","foregroundService","channelId","channelName","notificationTitle","setAvailable","current","onAnswer","backToForeground","getState","direction","onEnd","snapshot","phase","addEventListener","removeEventListener","isRinging","uuid","callId","roomJid","String","Date","now","displayIncomingCall","peerXmppUsername","roomName","kind","endCall","OS"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/useCallKeep.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import React, { useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { View, TouchableOpacity, Text, StyleSheet, ActivityIndicator, Platform } from 'react-native';
|
|
5
|
-
import {
|
|
5
|
+
import { createAudioPlayer, setAudioModeAsync } from 'expo-audio';
|
|
6
6
|
import * as FileSystem from 'expo-file-system/legacy';
|
|
7
7
|
import { WebView } from 'react-native-webview';
|
|
8
8
|
import { PauseIcon, PlayIcon } from '../../assets/icons';
|
|
@@ -124,11 +124,11 @@ const getContainerExtension = container => {
|
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
126
|
|
|
127
|
-
// AVFoundation (expo-
|
|
127
|
+
// AVFoundation (expo-audio) and the iOS WKWebView <audio> element cannot
|
|
128
128
|
// demux/decode WebM or Ogg Opus — only `AudioContext.decodeAudioData` can
|
|
129
129
|
// on iOS. So on iOS those two containers go through the WebView decoder.
|
|
130
130
|
// Everything else (mp3/m4a/aac/wav), and ALL of Android (ExoPlayer handles
|
|
131
|
-
// Opus natively), plays straight through expo-
|
|
131
|
+
// Opus natively), plays straight through expo-audio.
|
|
132
132
|
const requiresWebAudioDecode = container => Platform.OS === 'ios' && (container === 'webm' || container === 'ogg');
|
|
133
133
|
|
|
134
134
|
// The WebView is used ONLY as a decoder, never as a player. Two iOS facts
|
|
@@ -140,7 +140,7 @@ const requiresWebAudioDecode = container => Platform.OS === 'ios' && (container
|
|
|
140
140
|
// cannot supply, so both hang silently.
|
|
141
141
|
// Therefore the page decodes Opus → PCM, re-encodes to a WAV blob, and ships
|
|
142
142
|
// the bytes back to RN as base64. RN writes the WAV to cache and plays it
|
|
143
|
-
// through expo-
|
|
143
|
+
// through expo-audio (native, no gesture limits, real play/pause/seek).
|
|
144
144
|
const WEB_DECODER_HTML = `<!doctype html>
|
|
145
145
|
<html>
|
|
146
146
|
<head>
|
|
@@ -243,6 +243,10 @@ const AudioMessage = ({
|
|
|
243
243
|
config
|
|
244
244
|
} = useChatSettingState();
|
|
245
245
|
const soundRef = useRef(null);
|
|
246
|
+
// expo-audio delivers progress through an event subscription instead of
|
|
247
|
+
// expo-av's `onPlaybackStatusUpdate` callback argument, so the handle has
|
|
248
|
+
// to be held and removed alongside the player itself.
|
|
249
|
+
const statusSubRef = useRef(null);
|
|
246
250
|
const webViewRef = useRef(null);
|
|
247
251
|
const preparedRef = useRef(null);
|
|
248
252
|
const bridgeReadyRef = useRef(false);
|
|
@@ -263,6 +267,29 @@ const AudioMessage = ({
|
|
|
263
267
|
loadingTimerRef.current = null;
|
|
264
268
|
}
|
|
265
269
|
};
|
|
270
|
+
|
|
271
|
+
// expo-audio players are native shared objects: they are NOT garbage
|
|
272
|
+
// collected with the component, so every one we create has to be
|
|
273
|
+
// explicitly `remove()`d (expo-av's `unloadAsync` equivalent) and its
|
|
274
|
+
// status subscription torn down first.
|
|
275
|
+
const releasePlayer = () => {
|
|
276
|
+
statusSubRef.current?.remove();
|
|
277
|
+
statusSubRef.current = null;
|
|
278
|
+
const player = soundRef.current;
|
|
279
|
+
soundRef.current = null;
|
|
280
|
+
if (player) {
|
|
281
|
+
try {
|
|
282
|
+
player.pause();
|
|
283
|
+
} catch {
|
|
284
|
+
/* already released */
|
|
285
|
+
}
|
|
286
|
+
try {
|
|
287
|
+
player.remove();
|
|
288
|
+
} catch {
|
|
289
|
+
/* already released */
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
};
|
|
266
293
|
const fail = reason => {
|
|
267
294
|
clearLoadingGuard();
|
|
268
295
|
if (unmountedRef.current) {
|
|
@@ -285,7 +312,7 @@ const AudioMessage = ({
|
|
|
285
312
|
};
|
|
286
313
|
|
|
287
314
|
// Hard ceiling on the loading spinner — whatever stalls (a hung network
|
|
288
|
-
// request, a WebView that never decodes,
|
|
315
|
+
// request, a WebView that never decodes, a player that never loads)
|
|
289
316
|
// the control resolves to an error state instead of spinning forever
|
|
290
317
|
// (the customer-reported "stuck spinner").
|
|
291
318
|
const armLoadingGuard = () => {
|
|
@@ -397,49 +424,72 @@ const AudioMessage = ({
|
|
|
397
424
|
webViewRef.current.injectJavaScript(`window.__decodeAudio(${JSON.stringify(base64)}); true;`);
|
|
398
425
|
}
|
|
399
426
|
};
|
|
427
|
+
|
|
428
|
+
// expo-audio reports times in SECONDS (expo-av used milliseconds); the
|
|
429
|
+
// whole UI below is millisecond-based, so convert at this boundary and
|
|
430
|
+
// nowhere else.
|
|
400
431
|
const onPlaybackStatusUpdate = status => {
|
|
401
432
|
if (!status.isLoaded) {
|
|
402
|
-
if (status.error) {
|
|
403
|
-
logAudioDebug('playback status error', {
|
|
404
|
-
src,
|
|
405
|
-
error: status.error
|
|
406
|
-
});
|
|
407
|
-
}
|
|
408
433
|
return;
|
|
409
434
|
}
|
|
410
|
-
setPosition(status.
|
|
411
|
-
setDuration(status.
|
|
412
|
-
setIsPlaying(status.
|
|
435
|
+
setPosition(Math.max(0, status.currentTime * 1000));
|
|
436
|
+
setDuration(status.duration > 0 ? status.duration * 1000 : 0);
|
|
437
|
+
setIsPlaying(status.playing);
|
|
413
438
|
if (status.didJustFinish) {
|
|
414
439
|
didFinishRef.current = true;
|
|
415
440
|
setIsPlaying(false);
|
|
416
441
|
setPosition(0);
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
442
|
+
const player = soundRef.current;
|
|
443
|
+
if (player) {
|
|
444
|
+
player.pause();
|
|
445
|
+
void player.seekTo(0);
|
|
446
|
+
}
|
|
421
447
|
}
|
|
422
448
|
};
|
|
423
449
|
const startNativePlayback = async localUri => {
|
|
424
450
|
try {
|
|
425
|
-
await
|
|
426
|
-
|
|
451
|
+
await setAudioModeAsync({
|
|
452
|
+
playsInSilentMode: true
|
|
427
453
|
});
|
|
428
454
|
} catch {
|
|
429
455
|
/* non-fatal — still plays through the ringer channel */
|
|
430
456
|
}
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
457
|
+
// expo-audio has no awaitable `createAsync`: the player is constructed
|
|
458
|
+
// synchronously and loads in the background, reporting `isLoaded` via
|
|
459
|
+
// the status event. Wait for that first loaded status (same 12s budget
|
|
460
|
+
// expo-av's createAsync had) so the spinner still resolves to either
|
|
461
|
+
// real playback or the error state, never to a silent dead button.
|
|
462
|
+
const player = createAudioPlayer({
|
|
434
463
|
uri: localUri
|
|
435
464
|
}, {
|
|
436
|
-
|
|
437
|
-
}
|
|
465
|
+
updateInterval: 250
|
|
466
|
+
});
|
|
467
|
+
let settleLoaded = null;
|
|
468
|
+
const loaded = new Promise(resolve => {
|
|
469
|
+
settleLoaded = resolve;
|
|
470
|
+
});
|
|
471
|
+
const subscription = player.addListener('playbackStatusUpdate', status => {
|
|
472
|
+
if (status.isLoaded && settleLoaded) {
|
|
473
|
+
settleLoaded();
|
|
474
|
+
settleLoaded = null;
|
|
475
|
+
}
|
|
476
|
+
onPlaybackStatusUpdate(status);
|
|
477
|
+
});
|
|
478
|
+
try {
|
|
479
|
+
await withTimeout(loaded, 12000, 'audio_create_timeout');
|
|
480
|
+
} catch (error) {
|
|
481
|
+
subscription.remove();
|
|
482
|
+
player.remove();
|
|
483
|
+
throw error;
|
|
484
|
+
}
|
|
438
485
|
if (unmountedRef.current) {
|
|
439
|
-
|
|
486
|
+
subscription.remove();
|
|
487
|
+
player.remove();
|
|
440
488
|
return;
|
|
441
489
|
}
|
|
442
|
-
soundRef.current =
|
|
490
|
+
soundRef.current = player;
|
|
491
|
+
statusSubRef.current = subscription;
|
|
492
|
+
player.play();
|
|
443
493
|
clearLoadingGuard();
|
|
444
494
|
setIsLoading(false);
|
|
445
495
|
setPlaybackError(false);
|
|
@@ -509,14 +559,21 @@ const AudioMessage = ({
|
|
|
509
559
|
// decoded-WAV from the WebView path) → plain toggle.
|
|
510
560
|
if (soundRef.current) {
|
|
511
561
|
try {
|
|
562
|
+
// `play()` / `pause()` emit NO status event of their own (expo-av's
|
|
563
|
+
// playAsync/pauseAsync resolved with one). Playing state only ever
|
|
564
|
+
// reaches us through the periodic time observer, and that observer
|
|
565
|
+
// stops while paused — so without setting this here the button
|
|
566
|
+
// would latch on "pause" forever and never resume.
|
|
512
567
|
if (isPlaying) {
|
|
513
|
-
|
|
568
|
+
soundRef.current.pause();
|
|
569
|
+
setIsPlaying(false);
|
|
514
570
|
} else {
|
|
515
571
|
if (didFinishRef.current) {
|
|
516
|
-
await soundRef.current.
|
|
572
|
+
await soundRef.current.seekTo(0);
|
|
517
573
|
didFinishRef.current = false;
|
|
518
574
|
}
|
|
519
|
-
|
|
575
|
+
soundRef.current.play();
|
|
576
|
+
setIsPlaying(true);
|
|
520
577
|
}
|
|
521
578
|
} catch (error) {
|
|
522
579
|
fail(error);
|
|
@@ -552,7 +609,7 @@ const AudioMessage = ({
|
|
|
552
609
|
return () => {
|
|
553
610
|
unmountedRef.current = true;
|
|
554
611
|
clearLoadingGuard();
|
|
555
|
-
|
|
612
|
+
releasePlayer();
|
|
556
613
|
};
|
|
557
614
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
558
615
|
}, []);
|
|
@@ -560,8 +617,7 @@ const AudioMessage = ({
|
|
|
560
617
|
// Full reset whenever the source changes (component reused for a new
|
|
561
618
|
// message / re-render with a different src).
|
|
562
619
|
useEffect(() => {
|
|
563
|
-
|
|
564
|
-
soundRef.current = null;
|
|
620
|
+
releasePlayer();
|
|
565
621
|
preparedRef.current = null;
|
|
566
622
|
bridgeReadyRef.current = false;
|
|
567
623
|
injectedRef.current = false;
|
|
@@ -599,6 +655,8 @@ const AudioMessage = ({
|
|
|
599
655
|
}) : null, /*#__PURE__*/_jsxs(View, {
|
|
600
656
|
style: styles.container,
|
|
601
657
|
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
658
|
+
testID: "audio-play-button",
|
|
659
|
+
accessibilityLabel: "audio-play-button",
|
|
602
660
|
style: [styles.playButton, {
|
|
603
661
|
backgroundColor: primaryColor
|
|
604
662
|
}],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","View","TouchableOpacity","Text","StyleSheet","ActivityIndicator","Platform","Audio","FileSystem","WebView","PauseIcon","PlayIcon","useChatSettingState","getIosAudioPlaybackCacheExtension","pushLog","devPushLog","jsx","_jsx","jsxs","_jsxs","formatTime","millis","safe","Number","isFinite","totalSec","Math","floor","min","sec","toString","padStart","MAX_DECODE_BYTES","hashString","value","hash","i","length","charCodeAt","abs","withTimeout","promise","ms","label","timer","Promise","race","_","reject","setTimeout","Error","clearTimeout","logAudioDebug","message","details","__DEV__","console","log","B64_ALPHABET","decodeBase64Head","b64","maxBytes","out","buffer","bits","ch","idx","indexOf","push","detectContainer","bytes","getContainerExtension","container","requiresWebAudioDecode","OS","WEB_DECODER_HTML","AudioMessage","src","mimeType","fileName","originalName","config","soundRef","webViewRef","preparedRef","bridgeReadyRef","injectedRef","didFinishRef","unmountedRef","loadingTimerRef","isPlaying","setIsPlaying","isLoading","setIsLoading","playbackError","setPlaybackError","position","setPosition","duration","setDuration","webViewEnabled","setWebViewEnabled","primaryColor","colors","primary","clearLoadingGuard","current","fail","reason","error","name","String","armLoadingGuard","prepareSource","test","prepared","localUri","cacheDirectory","base","part","partInfo","getInfoAsync","exists","download","downloadAsync","uri","status","undefined","head","readAsStringAsync","encoding","EncodingType","Base64","base64","info","size","ext","mime","url","finalUri","finalInfo","deleteAsync","idempotent","catch","moveAsync","from","to","platform","decode","maybeInjectDecode","injectJavaScript","JSON","stringify","onPlaybackStatusUpdate","isLoaded","positionMillis","durationMillis","didJustFinish","setStatusAsync","shouldPlay","startNativePlayback","setAudioModeAsync","playsInSilentModeIOS","sound","Sound","createAsync","unloadAsync","onDecoded","wavBase64","wavUri","writeAsStringAsync","handleWebMessage","event","payload","parse","nativeEvent","data","type","wavBytes","togglePlayback","pauseAsync","setPositionAsync","playAsync","progress","style","styles","root","children","decoderHost","pointerEvents","ref","source","html","originWhitelist","onMessage","javaScriptEnabled","domStorageEnabled","scrollEnabled","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","hiddenWebView","playButton","backgroundColor","onPress","disabled","activeOpacity","color","iconWrap","width","height","progressContainer","progressTrack","progressFill","progressRow","time","create","top","left","overflow","opacity","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","maxWidth","borderRadius","justifyContent","marginLeft","flex","fontSize","fontWeight"],"sourceRoot":"../../../../src","sources":["components/styled/AudioMessage.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC1D,SACEC,IAAI,EACJC,gBAAgB,EAChBC,IAAI,EACJC,UAAU,EACVC,iBAAiB,EACjBC,QAAQ,QACH,cAAc;AACrB,SAASC,KAAK,QAA0B,SAAS;AACjD,OAAO,KAAKC,UAAU,MAAM,yBAAyB;AACrD,SAASC,OAAO,QAA6B,sBAAsB;AACnE,SAASC,SAAS,EAAEC,QAAQ,QAAQ,oBAAoB;AACxD,SAASC,mBAAmB,QAAQ,iCAAiC;AACrE,SAASC,iCAAiC,QAAQ,+BAA+B;AACjF,SAASC,OAAO,IAAIC,UAAU,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE9D,MAAMC,UAAU,GAAIC,MAAc,IAAK;EACrC,MAAMC,IAAI,GAAGC,MAAM,CAACC,QAAQ,CAACH,MAAM,CAAC,IAAIA,MAAM,GAAG,CAAC,GAAGA,MAAM,GAAG,CAAC;EAC/D,MAAMI,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAACL,IAAI,GAAG,IAAI,CAAC;EACxC,MAAMM,GAAG,GAAGF,IAAI,CAACC,KAAK,CAACF,QAAQ,GAAG,EAAE,CAAC;EACrC,MAAMI,GAAG,GAAGJ,QAAQ,GAAG,EAAE;EACzB,OAAO,GAAGG,GAAG,IAAIC,GAAG,CAACC,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AACpD,CAAC;AA+BD;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;AAEzC,MAAMC,UAAU,GAAIC,KAAa,IAAK;EACpC,IAAIC,IAAI,GAAG,CAAC;EACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,CAACG,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;IACxCD,IAAI,GAAIA,IAAI,GAAG,EAAE,GAAGD,KAAK,CAACI,UAAU,CAACF,CAAC,CAAC,GAAI,CAAC;EAC9C;EACA,OAAOV,IAAI,CAACa,GAAG,CAACJ,IAAI,CAAC,CAACL,QAAQ,CAAC,EAAE,CAAC;AACpC,CAAC;AAED,MAAMU,WAAW,GAAG,MAAAA,CAClBC,OAAmB,EACnBC,EAAU,EACVC,KAAa,KACV;EACH,IAAIC,KAA2C,GAAG,IAAI;EACtD,IAAI;IACF,OAAO,MAAMC,OAAO,CAACC,IAAI,CAAC,CACxBL,OAAO,EACP,IAAII,OAAO,CAAI,CAACE,CAAC,EAAEC,MAAM,KAAK;MAC5BJ,KAAK,GAAGK,UAAU,CAAC,MAAMD,MAAM,CAAC,IAAIE,KAAK,CAACP,KAAK,CAAC,CAAC,EAAED,EAAE,CAAC;IACxD,CAAC,CAAC,CACH,CAAC;EACJ,CAAC,SAAS;IACR,IAAIE,KAAK,EAAE;MACTO,YAAY,CAACP,KAAK,CAAC;IACrB;EACF;AACF,CAAC;AAED,MAAMQ,aAAa,GAAGA,CAACC,OAAe,EAAEC,OAAiC,KAAK;EAC5E,IAAI,OAAOC,OAAO,KAAK,WAAW,IAAIA,OAAO,EAAE;IAC7CxC,UAAU,CAAC,IAAI,EAAEsC,OAAO,EAAEC,OAAO,CAAC;IAClCE,OAAO,CAACC,GAAG,CAAC,gBAAgBJ,OAAO,EAAE,EAAEC,OAAO,IAAI,CAAC,CAAC,CAAC;EACvD;AACF,CAAC;AAED,MAAMI,YAAY,GAChB,kEAAkE;;AAEpE;AACA;AACA;AACA,MAAMC,gBAAgB,GAAGA,CAACC,GAAW,EAAEC,QAAgB,KAAe;EACpE,MAAMC,GAAa,GAAG,EAAE;EACxB,IAAIC,MAAM,GAAG,CAAC;EACd,IAAIC,IAAI,GAAG,CAAC;EACZ,KAAK,IAAI5B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwB,GAAG,CAACvB,MAAM,IAAIyB,GAAG,CAACzB,MAAM,GAAGwB,QAAQ,EAAEzB,CAAC,IAAI,CAAC,EAAE;IAC/D,MAAM6B,EAAE,GAAGL,GAAG,CAACxB,CAAC,CAAE;IAClB,IAAI6B,EAAE,KAAK,GAAG,EAAE;MACd;IACF;IACA,MAAMC,GAAG,GAAGR,YAAY,CAACS,OAAO,CAACF,EAAE,CAAC;IACpC,IAAIC,GAAG,KAAK,CAAC,CAAC,EAAE;MACd;IACF;IACAH,MAAM,GAAIA,MAAM,IAAI,CAAC,GAAIG,GAAG;IAC5BF,IAAI,IAAI,CAAC;IACT,IAAIA,IAAI,IAAI,CAAC,EAAE;MACbA,IAAI,IAAI,CAAC;MACTF,GAAG,CAACM,IAAI,CAAEL,MAAM,IAAIC,IAAI,GAAI,IAAI,CAAC;IACnC;EACF;EACA,OAAOF,GAAG;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMO,eAAe,GAAIC,KAAe,IAAqB;EAC3D,IAAIA,KAAK,CAACjC,MAAM,GAAG,CAAC,EAAE;IACpB,OAAO,SAAS;EAClB;EACA,IACEiC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EACjB;IACA,OAAO,MAAM;EACf;EACA,IACEA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EACjB;IACA,OAAO,KAAK;EACd;EACA,IACEA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,IAClBA,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,EAClB;IACA,OAAO,KAAK;EACd;EACA,IACEA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IACjBA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EACjB;IACA,OAAO,KAAK;EACd;EACA,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;IAC/D,OAAO,KAAK;EACd;EACA,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAACA,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;IACnD;IACA,OAAOA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK;EAC/D;EACA,OAAO,SAAS;AAClB,CAAC;AAED,MAAMC,qBAAqB,GAAIC,SAAyB,IAAK;EAC3D,QAAQA,SAAS;IACf,KAAK,MAAM;MACT,OAAO,OAAO;IAChB,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf;MACE,OAAO,MAAM;EACjB;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,GAAID,SAAyB,IACvDlE,QAAQ,CAACoE,EAAE,KAAK,KAAK,KAAKF,SAAS,KAAK,MAAM,IAAIA,SAAS,KAAK,KAAK,CAAC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,gBAAgB,GAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB3C,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","View","TouchableOpacity","Text","StyleSheet","ActivityIndicator","Platform","createAudioPlayer","setAudioModeAsync","FileSystem","WebView","PauseIcon","PlayIcon","useChatSettingState","getIosAudioPlaybackCacheExtension","pushLog","devPushLog","jsx","_jsx","jsxs","_jsxs","formatTime","millis","safe","Number","isFinite","totalSec","Math","floor","min","sec","toString","padStart","MAX_DECODE_BYTES","hashString","value","hash","i","length","charCodeAt","abs","withTimeout","promise","ms","label","timer","Promise","race","_","reject","setTimeout","Error","clearTimeout","logAudioDebug","message","details","__DEV__","console","log","B64_ALPHABET","decodeBase64Head","b64","maxBytes","out","buffer","bits","ch","idx","indexOf","push","detectContainer","bytes","getContainerExtension","container","requiresWebAudioDecode","OS","WEB_DECODER_HTML","AudioMessage","src","mimeType","fileName","originalName","config","soundRef","statusSubRef","webViewRef","preparedRef","bridgeReadyRef","injectedRef","didFinishRef","unmountedRef","loadingTimerRef","isPlaying","setIsPlaying","isLoading","setIsLoading","playbackError","setPlaybackError","position","setPosition","duration","setDuration","webViewEnabled","setWebViewEnabled","primaryColor","colors","primary","clearLoadingGuard","current","releasePlayer","remove","player","pause","fail","reason","error","name","String","armLoadingGuard","prepareSource","test","prepared","localUri","cacheDirectory","base","part","partInfo","getInfoAsync","exists","download","downloadAsync","uri","status","undefined","head","readAsStringAsync","encoding","EncodingType","Base64","base64","info","size","ext","mime","url","finalUri","finalInfo","deleteAsync","idempotent","catch","moveAsync","from","to","platform","decode","maybeInjectDecode","injectJavaScript","JSON","stringify","onPlaybackStatusUpdate","isLoaded","max","currentTime","playing","didJustFinish","seekTo","startNativePlayback","playsInSilentMode","updateInterval","settleLoaded","loaded","resolve","subscription","addListener","play","onDecoded","durationMillis","wavBase64","wavUri","writeAsStringAsync","handleWebMessage","event","payload","parse","nativeEvent","data","type","wavBytes","togglePlayback","progress","style","styles","root","children","decoderHost","pointerEvents","ref","source","html","originWhitelist","onMessage","javaScriptEnabled","domStorageEnabled","scrollEnabled","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","hiddenWebView","testID","accessibilityLabel","playButton","backgroundColor","onPress","disabled","activeOpacity","color","iconWrap","width","height","progressContainer","progressTrack","progressFill","progressRow","time","create","top","left","overflow","opacity","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","maxWidth","borderRadius","justifyContent","marginLeft","flex","fontSize","fontWeight"],"sourceRoot":"../../../../src","sources":["components/styled/AudioMessage.tsx"],"mappings":"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C,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;IAC/D,OAAO,KAAK;EACd;EACA,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAACA,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;IACnD;IACA,OAAOA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK;EAC/D;EACA,OAAO,SAAS;AAClB,CAAC;AAED,MAAMC,qBAAqB,GAAIC,SAAyB,IAAK;EAC3D,QAAQA,SAAS;IACf,KAAK,MAAM;MACT,OAAO,OAAO;IAChB,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf,KAAK,KAAK;MACR,OAAO,MAAM;IACf;MACE,OAAO,MAAM;EACjB;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,GAAID,SAAyB,IACvDnE,QAAQ,CAACqE,EAAE,KAAK,KAAK,KAAKF,SAAS,KAAK,MAAM,IAAIA,SAAS,KAAK,KAAK,CAAC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,gBAAgB,GAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB3C,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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","ignoreList":[]}
|