@onairos/react-native 3.1.11 → 3.1.13
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/lib/commonjs/api/index.js +75 -1
- package/lib/commonjs/api/index.js.map +1 -1
- package/lib/commonjs/assets/fonts/EBGaramond-VariableFont_wght.ttf +0 -0
- package/lib/commonjs/assets/fonts/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
- package/lib/commonjs/assets/icons/Facebookicon.png +0 -0
- package/lib/commonjs/assets/icons/Gmail.png +0 -0
- package/lib/commonjs/assets/icons/Linkedinicon.png +0 -0
- package/lib/commonjs/assets/icons/Redditicon.png +0 -0
- package/lib/commonjs/assets/icons/YouTubeicon2.png +0 -0
- package/lib/commonjs/assets/icons/YouTubeicon3.png +0 -0
- package/lib/commonjs/assets/icons/farcaster.png +0 -0
- package/lib/commonjs/assets/icons/instagram.png +0 -0
- package/lib/commonjs/assets/icons/pinterest.png +0 -0
- package/lib/commonjs/assets/icons/swerv_logo.png +0 -0
- package/lib/commonjs/assets/icons/twitter.jpg +0 -0
- package/lib/commonjs/assets/images/Checkbox.svg +3 -0
- package/lib/commonjs/assets/images/EnochE.svg +19 -0
- package/lib/commonjs/assets/images/Enochicon1.png +0 -0
- package/lib/commonjs/assets/images/Face_ID_logo.png +0 -0
- package/lib/commonjs/assets/images/Facebookicon.png +0 -0
- package/lib/commonjs/assets/images/Gmail.png +0 -0
- package/lib/commonjs/assets/images/Googlelogo.png +0 -0
- package/lib/commonjs/assets/images/Linkedinicon.png +0 -0
- package/lib/commonjs/assets/images/Onairoslogo.png +0 -0
- package/lib/commonjs/assets/images/Personalityprofile.svg +3 -0
- package/lib/commonjs/assets/images/Personalitytraits.svg +3 -0
- package/lib/commonjs/assets/images/Redditicon.png +0 -0
- package/lib/commonjs/assets/images/Userpreferences.svg +3 -0
- package/lib/commonjs/assets/images/YouTubeicon3.png +0 -0
- package/lib/commonjs/assets/images/arrow.svg +20 -0
- package/lib/commonjs/assets/images/basicproficon.svg +43 -0
- package/lib/commonjs/assets/images/basicprofile.svg +3 -0
- package/lib/commonjs/assets/images/checkmark.svg +4 -0
- package/lib/commonjs/assets/images/contentanalysis.svg +3 -0
- package/lib/commonjs/assets/images/contenticon.svg +23 -0
- package/lib/commonjs/assets/images/persona1.png +0 -0
- package/lib/commonjs/assets/images/persona2.png +0 -0
- package/lib/commonjs/assets/images/persona3.png +0 -0
- package/lib/commonjs/assets/images/persona4.png +0 -0
- package/lib/commonjs/assets/images/persona5.png +0 -0
- package/lib/commonjs/assets/images/personalityicon.svg +18 -0
- package/lib/commonjs/assets/images/x-close.svg +3 -0
- package/lib/commonjs/components/BodyText.js +27 -0
- package/lib/commonjs/components/BodyText.js.map +1 -0
- package/lib/commonjs/components/BrandMark.js +44 -0
- package/lib/commonjs/components/BrandMark.js.map +1 -0
- package/lib/commonjs/components/CodeInput.js +30 -0
- package/lib/commonjs/components/CodeInput.js.map +1 -0
- package/lib/commonjs/components/EmailInput.js +30 -0
- package/lib/commonjs/components/EmailInput.js.map +1 -0
- package/lib/commonjs/components/ExistingUserDataConfirmation.js +474 -0
- package/lib/commonjs/components/ExistingUserDataConfirmation.js.map +1 -0
- package/lib/commonjs/components/GoogleButton.js +55 -0
- package/lib/commonjs/components/GoogleButton.js.map +1 -0
- package/lib/commonjs/components/HeadingGroup.js +43 -0
- package/lib/commonjs/components/HeadingGroup.js.map +1 -0
- package/lib/commonjs/components/ModalHeader.js +99 -0
- package/lib/commonjs/components/ModalHeader.js.map +1 -0
- package/lib/commonjs/components/ModalSheet.js +41 -0
- package/lib/commonjs/components/ModalSheet.js.map +1 -0
- package/lib/commonjs/components/Onairos.js +1 -3
- package/lib/commonjs/components/Onairos.js.map +1 -1
- package/lib/commonjs/components/OnairosButton.js +171 -190
- package/lib/commonjs/components/OnairosButton.js.map +1 -1
- package/lib/commonjs/components/OnairosSignInButton.js +169 -0
- package/lib/commonjs/components/OnairosSignInButton.js.map +1 -0
- package/lib/commonjs/components/Overlay.js +5 -5
- package/lib/commonjs/components/Overlay.js.map +1 -1
- package/lib/commonjs/components/PersonaImage.js +60 -0
- package/lib/commonjs/components/PersonaImage.js.map +1 -0
- package/lib/commonjs/components/PersonaLoadingScreen.js +156 -0
- package/lib/commonjs/components/PersonaLoadingScreen.js.map +1 -0
- package/lib/commonjs/components/PersonalizationConsentScreen.js +316 -0
- package/lib/commonjs/components/PersonalizationConsentScreen.js.map +1 -0
- package/lib/commonjs/components/PinCreationScreen.js +393 -0
- package/lib/commonjs/components/PinCreationScreen.js.map +1 -0
- package/lib/commonjs/components/PinInput.js +282 -120
- package/lib/commonjs/components/PinInput.js.map +1 -1
- package/lib/commonjs/components/PlatformConnectorsStep.js +828 -0
- package/lib/commonjs/components/PlatformConnectorsStep.js.map +1 -0
- package/lib/commonjs/components/PlatformToggle.js +180 -0
- package/lib/commonjs/components/PlatformToggle.js.map +1 -0
- package/lib/commonjs/components/PrimaryButton.js +180 -0
- package/lib/commonjs/components/PrimaryButton.js.map +1 -0
- package/lib/commonjs/components/SignInMatchAnimation.js +197 -0
- package/lib/commonjs/components/SignInMatchAnimation.js.map +1 -0
- package/lib/commonjs/components/SignInStep.js +179 -0
- package/lib/commonjs/components/SignInStep.js.map +1 -0
- package/lib/commonjs/components/TrainingModal.js +808 -563
- package/lib/commonjs/components/TrainingModal.js.map +1 -1
- package/lib/commonjs/components/UniversalOnboarding.js +2304 -1283
- package/lib/commonjs/components/UniversalOnboarding.js.map +1 -1
- package/lib/commonjs/components/VerificationStep.js +154 -0
- package/lib/commonjs/components/VerificationStep.js.map +1 -0
- package/lib/commonjs/components/WelcomeScreen.js +385 -0
- package/lib/commonjs/components/WelcomeScreen.js.map +1 -0
- package/lib/commonjs/components/icons/Basicproficon.js +37 -0
- package/lib/commonjs/components/icons/Basicproficon.js.map +1 -0
- package/lib/commonjs/components/icons/Basicprofile.js +21 -0
- package/lib/commonjs/components/icons/Basicprofile.js.map +1 -0
- package/lib/commonjs/components/icons/Checkbox.js +21 -0
- package/lib/commonjs/components/icons/Checkbox.js.map +1 -0
- package/lib/commonjs/components/icons/Checkmark.js +27 -0
- package/lib/commonjs/components/icons/Checkmark.js.map +1 -0
- package/lib/commonjs/components/icons/Contentanalysis.js +21 -0
- package/lib/commonjs/components/icons/Contentanalysis.js.map +1 -0
- package/lib/commonjs/components/icons/Contenticon.js +39 -0
- package/lib/commonjs/components/icons/Contenticon.js.map +1 -0
- package/lib/commonjs/components/icons/EnochE.js +41 -0
- package/lib/commonjs/components/icons/EnochE.js.map +1 -0
- package/lib/commonjs/components/icons/Personalityicon.js +30 -0
- package/lib/commonjs/components/icons/Personalityicon.js.map +1 -0
- package/lib/commonjs/components/icons/Personalityprofile.js +21 -0
- package/lib/commonjs/components/icons/Personalityprofile.js.map +1 -0
- package/lib/commonjs/components/icons/Personalitytraits.js +21 -0
- package/lib/commonjs/components/icons/Personalitytraits.js.map +1 -0
- package/lib/commonjs/components/icons/Userpreferences.js +21 -0
- package/lib/commonjs/components/icons/Userpreferences.js.map +1 -0
- package/lib/commonjs/components/icons/index.js +84 -0
- package/lib/commonjs/components/icons/index.js.map +1 -0
- package/lib/commonjs/components/onboarding/OAuthWebView.js +134 -743
- package/lib/commonjs/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/commonjs/config/api.js +34 -0
- package/lib/commonjs/config/api.js.map +1 -0
- package/lib/commonjs/context/AuthContext.js +345 -0
- package/lib/commonjs/context/AuthContext.js.map +1 -0
- package/lib/commonjs/hooks/useConnectedAccounts.js +111 -0
- package/lib/commonjs/hooks/useConnectedAccounts.js.map +1 -0
- package/lib/commonjs/hooks/useConnections.js +120 -125
- package/lib/commonjs/hooks/useConnections.js.map +1 -1
- package/lib/commonjs/hooks/useUserConnections.js +148 -0
- package/lib/commonjs/hooks/useUserConnections.js.map +1 -0
- package/lib/commonjs/index.js +149 -27
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/services/apiClient.js +302 -0
- package/lib/commonjs/services/apiClient.js.map +1 -0
- package/lib/commonjs/services/authService.js +935 -0
- package/lib/commonjs/services/authService.js.map +1 -0
- package/lib/commonjs/services/biometricPinService.js +184 -0
- package/lib/commonjs/services/biometricPinService.js.map +1 -0
- package/lib/commonjs/services/connectedAccountsService.js +268 -0
- package/lib/commonjs/services/connectedAccountsService.js.map +1 -0
- package/lib/commonjs/services/googleAuthService.js +268 -0
- package/lib/commonjs/services/googleAuthService.js.map +1 -0
- package/lib/commonjs/services/imageCompressionService.js +260 -0
- package/lib/commonjs/services/imageCompressionService.js.map +1 -0
- package/lib/commonjs/services/jwtStorageService.js +256 -0
- package/lib/commonjs/services/jwtStorageService.js.map +1 -0
- package/lib/commonjs/services/mobileTrainingService.js +185 -0
- package/lib/commonjs/services/mobileTrainingService.js.map +1 -0
- package/lib/commonjs/services/pinEncryptionService.js +84 -0
- package/lib/commonjs/services/pinEncryptionService.js.map +1 -0
- package/lib/commonjs/services/pinStorageUtils.js +105 -0
- package/lib/commonjs/services/pinStorageUtils.js.map +1 -0
- package/lib/commonjs/services/platformAuthService.js +956 -722
- package/lib/commonjs/services/platformAuthService.js.map +1 -1
- package/lib/commonjs/services/storageService.js +404 -0
- package/lib/commonjs/services/storageService.js.map +1 -0
- package/lib/commonjs/services/trainingApiHelpers.js +73 -0
- package/lib/commonjs/services/trainingApiHelpers.js.map +1 -0
- package/lib/commonjs/services/userConnectionsService.js +486 -0
- package/lib/commonjs/services/userConnectionsService.js.map +1 -0
- package/lib/commonjs/services/youtubeMigrationService.js +415 -0
- package/lib/commonjs/services/youtubeMigrationService.js.map +1 -0
- package/lib/commonjs/theme/index.js +249 -0
- package/lib/commonjs/theme/index.js.map +1 -0
- package/lib/commonjs/utils/eventUtils.js +288 -0
- package/lib/commonjs/utils/eventUtils.js.map +1 -0
- package/lib/commonjs/utils/haptics.js +66 -0
- package/lib/commonjs/utils/haptics.js.map +1 -0
- package/lib/commonjs/utils/imagePreloader.js +6 -0
- package/lib/commonjs/utils/imagePreloader.js.map +1 -0
- package/lib/module/api/index.js +72 -0
- package/lib/module/api/index.js.map +1 -1
- package/lib/module/assets/fonts/EBGaramond-VariableFont_wght.ttf +0 -0
- package/lib/module/assets/fonts/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
- package/lib/module/assets/icons/Facebookicon.png +0 -0
- package/lib/module/assets/icons/Gmail.png +0 -0
- package/lib/module/assets/icons/Linkedinicon.png +0 -0
- package/lib/module/assets/icons/Redditicon.png +0 -0
- package/lib/module/assets/icons/YouTubeicon2.png +0 -0
- package/lib/module/assets/icons/YouTubeicon3.png +0 -0
- package/lib/module/assets/icons/farcaster.png +0 -0
- package/lib/module/assets/icons/instagram.png +0 -0
- package/lib/module/assets/icons/pinterest.png +0 -0
- package/lib/module/assets/icons/swerv_logo.png +0 -0
- package/lib/module/assets/icons/twitter.jpg +0 -0
- package/lib/module/assets/images/Checkbox.svg +3 -0
- package/lib/module/assets/images/EnochE.svg +19 -0
- package/lib/module/assets/images/Enochicon1.png +0 -0
- package/lib/module/assets/images/Face_ID_logo.png +0 -0
- package/lib/module/assets/images/Facebookicon.png +0 -0
- package/lib/module/assets/images/Gmail.png +0 -0
- package/lib/module/assets/images/Googlelogo.png +0 -0
- package/lib/module/assets/images/Linkedinicon.png +0 -0
- package/lib/module/assets/images/Onairoslogo.png +0 -0
- package/lib/module/assets/images/Personalityprofile.svg +3 -0
- package/lib/module/assets/images/Personalitytraits.svg +3 -0
- package/lib/module/assets/images/Redditicon.png +0 -0
- package/lib/module/assets/images/Userpreferences.svg +3 -0
- package/lib/module/assets/images/YouTubeicon3.png +0 -0
- package/lib/module/assets/images/arrow.svg +20 -0
- package/lib/module/assets/images/basicproficon.svg +43 -0
- package/lib/module/assets/images/basicprofile.svg +3 -0
- package/lib/module/assets/images/checkmark.svg +4 -0
- package/lib/module/assets/images/contentanalysis.svg +3 -0
- package/lib/module/assets/images/contenticon.svg +23 -0
- package/lib/module/assets/images/persona1.png +0 -0
- package/lib/module/assets/images/persona2.png +0 -0
- package/lib/module/assets/images/persona3.png +0 -0
- package/lib/module/assets/images/persona4.png +0 -0
- package/lib/module/assets/images/persona5.png +0 -0
- package/lib/module/assets/images/personalityicon.svg +18 -0
- package/lib/module/assets/images/x-close.svg +3 -0
- package/lib/module/components/BodyText.js +20 -0
- package/lib/module/components/BodyText.js.map +1 -0
- package/lib/module/components/BrandMark.js +37 -0
- package/lib/module/components/BrandMark.js.map +1 -0
- package/lib/module/components/CodeInput.js +23 -0
- package/lib/module/components/CodeInput.js.map +1 -0
- package/lib/module/components/EmailInput.js +23 -0
- package/lib/module/components/EmailInput.js.map +1 -0
- package/lib/module/components/ExistingUserDataConfirmation.js +465 -0
- package/lib/module/components/ExistingUserDataConfirmation.js.map +1 -0
- package/lib/module/components/GoogleButton.js +48 -0
- package/lib/module/components/GoogleButton.js.map +1 -0
- package/lib/module/components/HeadingGroup.js +36 -0
- package/lib/module/components/HeadingGroup.js.map +1 -0
- package/lib/module/components/ModalHeader.js +92 -0
- package/lib/module/components/ModalHeader.js.map +1 -0
- package/lib/module/components/ModalSheet.js +34 -0
- package/lib/module/components/ModalSheet.js.map +1 -0
- package/lib/module/components/Onairos.js +1 -3
- package/lib/module/components/Onairos.js.map +1 -1
- package/lib/module/components/OnairosButton.js +172 -192
- package/lib/module/components/OnairosButton.js.map +1 -1
- package/lib/module/components/OnairosSignInButton.js +160 -0
- package/lib/module/components/OnairosSignInButton.js.map +1 -0
- package/lib/module/components/Overlay.js +5 -5
- package/lib/module/components/Overlay.js.map +1 -1
- package/lib/module/components/PersonaImage.js +53 -0
- package/lib/module/components/PersonaImage.js.map +1 -0
- package/lib/module/components/PersonaLoadingScreen.js +148 -0
- package/lib/module/components/PersonaLoadingScreen.js.map +1 -0
- package/lib/module/components/PersonalizationConsentScreen.js +309 -0
- package/lib/module/components/PersonalizationConsentScreen.js.map +1 -0
- package/lib/module/components/PinCreationScreen.js +386 -0
- package/lib/module/components/PinCreationScreen.js.map +1 -0
- package/lib/module/components/PinInput.js +283 -120
- package/lib/module/components/PinInput.js.map +1 -1
- package/lib/module/components/PlatformConnectorsStep.js +820 -0
- package/lib/module/components/PlatformConnectorsStep.js.map +1 -0
- package/lib/module/components/PlatformToggle.js +173 -0
- package/lib/module/components/PlatformToggle.js.map +1 -0
- package/lib/module/components/PrimaryButton.js +172 -0
- package/lib/module/components/PrimaryButton.js.map +1 -0
- package/lib/module/components/SignInMatchAnimation.js +189 -0
- package/lib/module/components/SignInMatchAnimation.js.map +1 -0
- package/lib/module/components/SignInStep.js +171 -0
- package/lib/module/components/SignInStep.js.map +1 -0
- package/lib/module/components/TrainingModal.js +809 -565
- package/lib/module/components/TrainingModal.js.map +1 -1
- package/lib/module/components/UniversalOnboarding.js +2307 -1284
- package/lib/module/components/UniversalOnboarding.js.map +1 -1
- package/lib/module/components/VerificationStep.js +146 -0
- package/lib/module/components/VerificationStep.js.map +1 -0
- package/lib/module/components/WelcomeScreen.js +378 -0
- package/lib/module/components/WelcomeScreen.js.map +1 -0
- package/lib/module/components/icons/Basicproficon.js +30 -0
- package/lib/module/components/icons/Basicproficon.js.map +1 -0
- package/lib/module/components/icons/Basicprofile.js +14 -0
- package/lib/module/components/icons/Basicprofile.js.map +1 -0
- package/lib/module/components/icons/Checkbox.js +14 -0
- package/lib/module/components/icons/Checkbox.js.map +1 -0
- package/lib/module/components/icons/Checkmark.js +20 -0
- package/lib/module/components/icons/Checkmark.js.map +1 -0
- package/lib/module/components/icons/Contentanalysis.js +14 -0
- package/lib/module/components/icons/Contentanalysis.js.map +1 -0
- package/lib/module/components/icons/Contenticon.js +32 -0
- package/lib/module/components/icons/Contenticon.js.map +1 -0
- package/lib/module/components/icons/EnochE.js +34 -0
- package/lib/module/components/icons/EnochE.js.map +1 -0
- package/lib/module/components/icons/Personalityicon.js +23 -0
- package/lib/module/components/icons/Personalityicon.js.map +1 -0
- package/lib/module/components/icons/Personalityprofile.js +14 -0
- package/lib/module/components/icons/Personalityprofile.js.map +1 -0
- package/lib/module/components/icons/Personalitytraits.js +14 -0
- package/lib/module/components/icons/Personalitytraits.js.map +1 -0
- package/lib/module/components/icons/Userpreferences.js +14 -0
- package/lib/module/components/icons/Userpreferences.js.map +1 -0
- package/lib/module/components/icons/index.js +13 -0
- package/lib/module/components/icons/index.js.map +1 -0
- package/lib/module/components/onboarding/OAuthWebView.js +136 -744
- package/lib/module/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/module/config/api.js +26 -0
- package/lib/module/config/api.js.map +1 -0
- package/lib/module/context/AuthContext.js +335 -0
- package/lib/module/context/AuthContext.js.map +1 -0
- package/lib/module/hooks/useConnectedAccounts.js +106 -0
- package/lib/module/hooks/useConnectedAccounts.js.map +1 -0
- package/lib/module/hooks/useConnections.js +119 -125
- package/lib/module/hooks/useConnections.js.map +1 -1
- package/lib/module/hooks/useUserConnections.js +140 -0
- package/lib/module/hooks/useUserConnections.js.map +1 -0
- package/lib/module/index.js +51 -15
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/apiClient.js +298 -0
- package/lib/module/services/apiClient.js.map +1 -0
- package/lib/module/services/authService.js +905 -0
- package/lib/module/services/authService.js.map +1 -0
- package/lib/module/services/biometricPinService.js +173 -0
- package/lib/module/services/biometricPinService.js.map +1 -0
- package/lib/module/services/connectedAccountsService.js +255 -0
- package/lib/module/services/connectedAccountsService.js.map +1 -0
- package/lib/module/services/googleAuthService.js +258 -0
- package/lib/module/services/googleAuthService.js.map +1 -0
- package/lib/module/services/imageCompressionService.js +250 -0
- package/lib/module/services/imageCompressionService.js.map +1 -0
- package/lib/module/services/jwtStorageService.js +239 -0
- package/lib/module/services/jwtStorageService.js.map +1 -0
- package/lib/module/services/mobileTrainingService.js +172 -0
- package/lib/module/services/mobileTrainingService.js.map +1 -0
- package/lib/module/services/pinEncryptionService.js +75 -0
- package/lib/module/services/pinEncryptionService.js.map +1 -0
- package/lib/module/services/pinStorageUtils.js +93 -0
- package/lib/module/services/pinStorageUtils.js.map +1 -0
- package/lib/module/services/platformAuthService.js +943 -704
- package/lib/module/services/platformAuthService.js.map +1 -1
- package/lib/module/services/storageService.js +383 -0
- package/lib/module/services/storageService.js.map +1 -0
- package/lib/module/services/trainingApiHelpers.js +67 -0
- package/lib/module/services/trainingApiHelpers.js.map +1 -0
- package/lib/module/services/userConnectionsService.js +476 -0
- package/lib/module/services/userConnectionsService.js.map +1 -0
- package/lib/module/services/youtubeMigrationService.js +404 -0
- package/lib/module/services/youtubeMigrationService.js.map +1 -0
- package/lib/module/theme/index.js +244 -0
- package/lib/module/theme/index.js.map +1 -0
- package/lib/module/utils/eventUtils.js +270 -0
- package/lib/module/utils/eventUtils.js.map +1 -0
- package/lib/module/utils/haptics.js +59 -0
- package/lib/module/utils/haptics.js.map +1 -0
- package/lib/module/utils/imagePreloader.js +3 -0
- package/lib/module/utils/imagePreloader.js.map +1 -0
- package/lib/typescript/api/index.d.ts +8 -0
- package/lib/typescript/api/index.d.ts.map +1 -1
- package/lib/typescript/components/BodyText.d.ts +10 -0
- package/lib/typescript/components/BodyText.d.ts.map +1 -0
- package/lib/typescript/components/BrandMark.d.ts +11 -0
- package/lib/typescript/components/BrandMark.d.ts.map +1 -0
- package/lib/typescript/components/CodeInput.d.ts +10 -0
- package/lib/typescript/components/CodeInput.d.ts.map +1 -0
- package/lib/typescript/components/EmailInput.d.ts +8 -0
- package/lib/typescript/components/EmailInput.d.ts.map +1 -0
- package/lib/typescript/components/ExistingUserDataConfirmation.d.ts +12 -0
- package/lib/typescript/components/ExistingUserDataConfirmation.d.ts.map +1 -0
- package/lib/typescript/components/GoogleButton.d.ts +11 -0
- package/lib/typescript/components/GoogleButton.d.ts.map +1 -0
- package/lib/typescript/components/HeadingGroup.d.ts +11 -0
- package/lib/typescript/components/HeadingGroup.d.ts.map +1 -0
- package/lib/typescript/components/ModalHeader.d.ts +11 -0
- package/lib/typescript/components/ModalHeader.d.ts.map +1 -0
- package/lib/typescript/components/ModalSheet.d.ts +13 -0
- package/lib/typescript/components/ModalSheet.d.ts.map +1 -0
- package/lib/typescript/components/Onairos.d.ts.map +1 -1
- package/lib/typescript/components/OnairosButton.d.ts +29 -4
- package/lib/typescript/components/OnairosButton.d.ts.map +1 -1
- package/lib/typescript/components/OnairosSignInButton.d.ts +14 -0
- package/lib/typescript/components/OnairosSignInButton.d.ts.map +1 -0
- package/lib/typescript/components/PersonaImage.d.ts +8 -0
- package/lib/typescript/components/PersonaImage.d.ts.map +1 -0
- package/lib/typescript/components/PersonaLoadingScreen.d.ts +10 -0
- package/lib/typescript/components/PersonaLoadingScreen.d.ts.map +1 -0
- package/lib/typescript/components/PersonalizationConsentScreen.d.ts +10 -0
- package/lib/typescript/components/PersonalizationConsentScreen.d.ts.map +1 -0
- package/lib/typescript/components/PinCreationScreen.d.ts +10 -0
- package/lib/typescript/components/PinCreationScreen.d.ts.map +1 -0
- package/lib/typescript/components/PinInput.d.ts +11 -1
- package/lib/typescript/components/PinInput.d.ts.map +1 -1
- package/lib/typescript/components/PlatformConnectorsStep.d.ts +11 -0
- package/lib/typescript/components/PlatformConnectorsStep.d.ts.map +1 -0
- package/lib/typescript/components/PlatformToggle.d.ts +20 -0
- package/lib/typescript/components/PlatformToggle.d.ts.map +1 -0
- package/lib/typescript/components/PrimaryButton.d.ts +22 -0
- package/lib/typescript/components/PrimaryButton.d.ts.map +1 -0
- package/lib/typescript/components/SignInMatchAnimation.d.ts +9 -0
- package/lib/typescript/components/SignInMatchAnimation.d.ts.map +1 -0
- package/lib/typescript/components/SignInStep.d.ts +12 -0
- package/lib/typescript/components/SignInStep.d.ts.map +1 -0
- package/lib/typescript/components/TrainingModal.d.ts +12 -1
- package/lib/typescript/components/TrainingModal.d.ts.map +1 -1
- package/lib/typescript/components/UniversalOnboarding.d.ts +14 -1
- package/lib/typescript/components/UniversalOnboarding.d.ts.map +1 -1
- package/lib/typescript/components/VerificationStep.d.ts +13 -0
- package/lib/typescript/components/VerificationStep.d.ts.map +1 -0
- package/lib/typescript/components/WelcomeScreen.d.ts +9 -0
- package/lib/typescript/components/WelcomeScreen.d.ts.map +1 -0
- package/lib/typescript/components/icons/Basicproficon.d.ts +5 -0
- package/lib/typescript/components/icons/Basicproficon.d.ts.map +1 -0
- package/lib/typescript/components/icons/Basicprofile.d.ts +5 -0
- package/lib/typescript/components/icons/Basicprofile.d.ts.map +1 -0
- package/lib/typescript/components/icons/Checkbox.d.ts +5 -0
- package/lib/typescript/components/icons/Checkbox.d.ts.map +1 -0
- package/lib/typescript/components/icons/Checkmark.d.ts +5 -0
- package/lib/typescript/components/icons/Checkmark.d.ts.map +1 -0
- package/lib/typescript/components/icons/Contentanalysis.d.ts +5 -0
- package/lib/typescript/components/icons/Contentanalysis.d.ts.map +1 -0
- package/lib/typescript/components/icons/Contenticon.d.ts +5 -0
- package/lib/typescript/components/icons/Contenticon.d.ts.map +1 -0
- package/lib/typescript/components/icons/EnochE.d.ts +5 -0
- package/lib/typescript/components/icons/EnochE.d.ts.map +1 -0
- package/lib/typescript/components/icons/Personalityicon.d.ts +5 -0
- package/lib/typescript/components/icons/Personalityicon.d.ts.map +1 -0
- package/lib/typescript/components/icons/Personalityprofile.d.ts +5 -0
- package/lib/typescript/components/icons/Personalityprofile.d.ts.map +1 -0
- package/lib/typescript/components/icons/Personalitytraits.d.ts +5 -0
- package/lib/typescript/components/icons/Personalitytraits.d.ts.map +1 -0
- package/lib/typescript/components/icons/Userpreferences.d.ts +5 -0
- package/lib/typescript/components/icons/Userpreferences.d.ts.map +1 -0
- package/lib/typescript/components/icons/index.d.ts +12 -0
- package/lib/typescript/components/icons/index.d.ts.map +1 -0
- package/lib/typescript/components/onboarding/OAuthWebView.d.ts.map +1 -1
- package/lib/typescript/config/api.d.ts +24 -0
- package/lib/typescript/config/api.d.ts.map +1 -0
- package/lib/typescript/context/AuthContext.d.ts +34 -0
- package/lib/typescript/context/AuthContext.d.ts.map +1 -0
- package/lib/typescript/hooks/useConnectedAccounts.d.ts +11 -0
- package/lib/typescript/hooks/useConnectedAccounts.d.ts.map +1 -0
- package/lib/typescript/hooks/useConnections.d.ts +10 -5
- package/lib/typescript/hooks/useConnections.d.ts.map +1 -1
- package/lib/typescript/hooks/useUserConnections.d.ts +12 -0
- package/lib/typescript/hooks/useUserConnections.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +24 -6
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/services/apiClient.d.ts +91 -0
- package/lib/typescript/services/apiClient.d.ts.map +1 -0
- package/lib/typescript/services/authService.d.ts +216 -0
- package/lib/typescript/services/authService.d.ts.map +1 -0
- package/lib/typescript/services/biometricPinService.d.ts +29 -0
- package/lib/typescript/services/biometricPinService.d.ts.map +1 -0
- package/lib/typescript/services/connectedAccountsService.d.ts +56 -0
- package/lib/typescript/services/connectedAccountsService.d.ts.map +1 -0
- package/lib/typescript/services/googleAuthService.d.ts +63 -0
- package/lib/typescript/services/googleAuthService.d.ts.map +1 -0
- package/lib/typescript/services/imageCompressionService.d.ts +37 -0
- package/lib/typescript/services/imageCompressionService.d.ts.map +1 -0
- package/lib/typescript/services/jwtStorageService.d.ts +86 -0
- package/lib/typescript/services/jwtStorageService.d.ts.map +1 -0
- package/lib/typescript/services/mobileTrainingService.d.ts +45 -0
- package/lib/typescript/services/mobileTrainingService.d.ts.map +1 -0
- package/lib/typescript/services/pinEncryptionService.d.ts +17 -0
- package/lib/typescript/services/pinEncryptionService.d.ts.map +1 -0
- package/lib/typescript/services/pinStorageUtils.d.ts +25 -0
- package/lib/typescript/services/pinStorageUtils.d.ts.map +1 -0
- package/lib/typescript/services/platformAuthService.d.ts +34 -109
- package/lib/typescript/services/platformAuthService.d.ts.map +1 -1
- package/lib/typescript/services/storageService.d.ts +128 -0
- package/lib/typescript/services/storageService.d.ts.map +1 -0
- package/lib/typescript/services/trainingApiHelpers.d.ts +38 -0
- package/lib/typescript/services/trainingApiHelpers.d.ts.map +1 -0
- package/lib/typescript/services/userConnectionsService.d.ts +90 -0
- package/lib/typescript/services/userConnectionsService.d.ts.map +1 -0
- package/lib/typescript/services/youtubeMigrationService.d.ts +12 -0
- package/lib/typescript/services/youtubeMigrationService.d.ts.map +1 -0
- package/lib/typescript/theme/index.d.ts +416 -0
- package/lib/typescript/theme/index.d.ts.map +1 -0
- package/lib/typescript/types/index.d.ts +39 -0
- package/lib/typescript/types/index.d.ts.map +1 -1
- package/lib/typescript/utils/eventUtils.d.ts +108 -0
- package/lib/typescript/utils/eventUtils.d.ts.map +1 -0
- package/lib/typescript/utils/haptics.d.ts +11 -0
- package/lib/typescript/utils/haptics.d.ts.map +1 -0
- package/lib/typescript/utils/imagePreloader.d.ts +2 -0
- package/lib/typescript/utils/imagePreloader.d.ts.map +1 -0
- package/package.json +158 -145
- package/src/api/index.ts +41 -0
- package/src/assets/fonts/EBGaramond-VariableFont_wght.ttf +0 -0
- package/src/assets/fonts/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
- package/src/assets/icons/Facebookicon.png +0 -0
- package/src/assets/icons/Gmail.png +0 -0
- package/src/assets/icons/Linkedinicon.png +0 -0
- package/src/assets/icons/Redditicon.png +0 -0
- package/src/assets/icons/YouTubeicon2.png +0 -0
- package/src/assets/icons/YouTubeicon3.png +0 -0
- package/src/assets/icons/farcaster.png +0 -0
- package/src/assets/icons/instagram.png +0 -0
- package/src/assets/icons/pinterest.png +0 -0
- package/src/assets/icons/swerv_logo.png +0 -0
- package/src/assets/icons/twitter.jpg +0 -0
- package/src/assets/images/Checkbox.svg +3 -0
- package/src/assets/images/EnochE.svg +19 -0
- package/src/assets/images/Enochicon1.png +0 -0
- package/src/assets/images/Face_ID_logo.png +0 -0
- package/src/assets/images/Facebookicon.png +0 -0
- package/src/assets/images/Gmail.png +0 -0
- package/src/assets/images/Googlelogo.png +0 -0
- package/src/assets/images/Linkedinicon.png +0 -0
- package/src/assets/images/Onairoslogo.png +0 -0
- package/src/assets/images/Personalityprofile.svg +3 -0
- package/src/assets/images/Personalitytraits.svg +3 -0
- package/src/assets/images/Redditicon.png +0 -0
- package/src/assets/images/Userpreferences.svg +3 -0
- package/src/assets/images/YouTubeicon3.png +0 -0
- package/src/assets/images/arrow.svg +20 -0
- package/src/assets/images/basicproficon.svg +43 -0
- package/src/assets/images/basicprofile.svg +3 -0
- package/src/assets/images/checkmark.svg +4 -0
- package/src/assets/images/contentanalysis.svg +3 -0
- package/src/assets/images/contenticon.svg +23 -0
- package/src/assets/images/persona1.png +0 -0
- package/src/assets/images/persona2.png +0 -0
- package/src/assets/images/persona3.png +0 -0
- package/src/assets/images/persona4.png +0 -0
- package/src/assets/images/persona5.png +0 -0
- package/src/assets/images/personalityicon.svg +18 -0
- package/src/assets/images/x-close.svg +3 -0
- package/src/components/BodyText.tsx +33 -0
- package/src/components/BrandMark.tsx +62 -0
- package/src/components/CodeInput.tsx +32 -0
- package/src/components/EmailInput.tsx +31 -0
- package/src/components/ExistingUserDataConfirmation.tsx +507 -0
- package/src/components/GoogleButton.tsx +55 -0
- package/src/components/HeadingGroup.tsx +49 -0
- package/src/components/ModalHeader.tsx +125 -0
- package/src/components/ModalSheet.tsx +57 -0
- package/src/components/Onairos.tsx +422 -424
- package/src/components/OnairosButton.tsx +339 -359
- package/src/components/OnairosSignInButton.tsx +166 -0
- package/src/components/Overlay.tsx +506 -506
- package/src/components/PersonaImage.tsx +79 -0
- package/src/components/PersonaLoadingScreen.tsx +201 -0
- package/src/components/PersonalizationConsentScreen.tsx +410 -0
- package/src/components/PinCreationScreen.tsx +492 -0
- package/src/components/PinInput.tsx +555 -343
- package/src/components/PlatformConnectorsStep.tsx +892 -0
- package/src/components/PlatformToggle.tsx +226 -0
- package/src/components/PrimaryButton.tsx +214 -0
- package/src/components/SignInMatchAnimation.tsx +225 -0
- package/src/components/SignInStep.tsx +217 -0
- package/src/components/TrainingModal.tsx +1047 -737
- package/src/components/UniversalOnboarding.tsx +2888 -1820
- package/src/components/VerificationStep.tsx +198 -0
- package/src/components/WelcomeScreen.tsx +473 -0
- package/src/components/icons/Basicproficon.tsx +30 -0
- package/src/components/icons/Basicprofile.tsx +17 -0
- package/src/components/icons/Checkbox.tsx +17 -0
- package/src/components/icons/Checkmark.tsx +24 -0
- package/src/components/icons/Contentanalysis.tsx +17 -0
- package/src/components/icons/Contenticon.tsx +30 -0
- package/src/components/icons/EnochE.tsx +39 -0
- package/src/components/icons/Personalityicon.tsx +22 -0
- package/src/components/icons/Personalityprofile.tsx +17 -0
- package/src/components/icons/Personalitytraits.tsx +17 -0
- package/src/components/icons/Userpreferences.tsx +17 -0
- package/src/components/icons/index.ts +12 -0
- package/src/components/onboarding/OAuthWebView.tsx +232 -838
- package/src/config/api.ts +25 -0
- package/src/context/AuthContext.tsx +393 -0
- package/src/hooks/useConnectedAccounts.ts +139 -0
- package/src/hooks/useConnections.ts +129 -131
- package/src/hooks/useUserConnections.ts +166 -0
- package/src/index.ts +94 -49
- package/src/services/apiClient.ts +337 -0
- package/src/services/authService.ts +1008 -0
- package/src/services/biometricPinService.ts +193 -0
- package/src/services/connectedAccountsService.ts +290 -0
- package/src/services/googleAuthService.ts +279 -0
- package/src/services/imageCompressionService.ts +303 -0
- package/src/services/jwtStorageService.ts +257 -0
- package/src/services/mobileTrainingService.ts +204 -0
- package/src/services/pinEncryptionService.ts +76 -0
- package/src/services/pinStorageUtils.ts +97 -0
- package/src/services/platformAuthService.ts +1346 -1113
- package/src/services/storageService.ts +452 -0
- package/src/services/trainingApiHelpers.ts +67 -0
- package/src/services/userConnectionsService.ts +557 -0
- package/src/services/youtubeMigrationService.ts +454 -0
- package/src/theme/index.ts +239 -0
- package/src/types/index.ts +265 -238
- package/src/utils/eventUtils.ts +303 -0
- package/src/utils/haptics.ts +59 -0
- package/src/utils/imagePreloader.ts +2 -0
- package/README.md +0 -375
- package/lib/commonjs/assets/images/email.png +0 -0
- package/lib/commonjs/assets/images/linkedin.png +0 -0
- package/lib/commonjs/assets/images/reddit.png +0 -0
- package/lib/commonjs/assets/images/youtube.png +0 -0
- package/lib/commonjs/components/UniversalOnboarding.tsx.new +0 -455
- package/lib/module/assets/images/email.png +0 -0
- package/lib/module/assets/images/linkedin.png +0 -0
- package/lib/module/assets/images/reddit.png +0 -0
- package/lib/module/assets/images/youtube.png +0 -0
- package/lib/module/components/UniversalOnboarding.tsx.new +0 -455
- package/src/assets/images/email.png +0 -0
- package/src/assets/images/linkedin.png +0 -0
- package/src/assets/images/reddit.png +0 -0
- package/src/assets/images/youtube.png +0 -0
- package/src/components/UniversalOnboarding.tsx.new +0 -455
|
@@ -1,163 +1,161 @@
|
|
|
1
1
|
import { useState, useCallback } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
2
|
+
import { initiateOAuth, initiateNativeAuth, exchangeCodeForToken } from '../services/platformAuthService';
|
|
3
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
4
|
+
import { getOnairosUsername } from '../services/authService';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
try {
|
|
12
|
-
// This import might fail in Expo Go or environments without native modules
|
|
13
|
-
Keychain = require('react-native-keychain');
|
|
14
|
-
} catch (error) {
|
|
15
|
-
console.warn('react-native-keychain module not available in useConnections, using mock storage');
|
|
6
|
+
export interface ConnectionStatus {
|
|
7
|
+
[key: string]: {
|
|
8
|
+
userName: string;
|
|
9
|
+
connected: boolean;
|
|
10
|
+
};
|
|
16
11
|
}
|
|
17
12
|
|
|
18
|
-
// Check if Keychain is properly initialized and available
|
|
19
|
-
const isKeychainAvailable = () => {
|
|
20
|
-
try {
|
|
21
|
-
return Keychain && typeof Keychain.getGenericPassword === 'function';
|
|
22
|
-
} catch (e) {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
|
|
27
13
|
export const useConnections = () => {
|
|
14
|
+
const [connections, setConnections] = useState<ConnectionStatus>({});
|
|
28
15
|
const [isConnecting, setIsConnecting] = useState(false);
|
|
29
16
|
|
|
30
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Connect a platform using OAuth or native SDK
|
|
19
|
+
*/
|
|
20
|
+
const connectPlatform = useCallback(async (platform: string, username: string): Promise<boolean> => {
|
|
31
21
|
try {
|
|
32
|
-
|
|
22
|
+
setIsConnecting(true);
|
|
23
|
+
|
|
24
|
+
// Determine if we should use native SDK or OAuth
|
|
25
|
+
const useNativeSDK = platform === 'youtube' || platform === 'instagram';
|
|
26
|
+
|
|
27
|
+
let success = false;
|
|
28
|
+
|
|
29
|
+
if (useNativeSDK) {
|
|
30
|
+
// Use native SDK
|
|
31
|
+
success = await initiateNativeAuth(platform, username);
|
|
32
|
+
} else {
|
|
33
|
+
// For demo purposes, we'll simulate a successful connection
|
|
34
|
+
await new Promise(resolve => setTimeout(() => resolve(undefined), 1000));
|
|
35
|
+
success = true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (success) {
|
|
39
|
+
// Update connections state locally
|
|
40
|
+
setConnections(prev => ({
|
|
41
|
+
...prev,
|
|
42
|
+
[platform]: { userName: username, connected: true }
|
|
43
|
+
}));
|
|
44
|
+
|
|
45
|
+
// Update user account info via API
|
|
33
46
|
try {
|
|
34
|
-
const
|
|
35
|
-
|
|
47
|
+
const token = await AsyncStorage.getItem('auth_token');
|
|
48
|
+
// Get the stored Onairos username for API calls
|
|
49
|
+
const storedUsername = await getOnairosUsername();
|
|
50
|
+
const apiUsername = storedUsername || username;
|
|
51
|
+
|
|
52
|
+
console.log(`🔗 Using username for ${platform} API call:`, {
|
|
53
|
+
providedUsername: username,
|
|
54
|
+
storedUsername,
|
|
55
|
+
finalApiUsername: apiUsername
|
|
36
56
|
});
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
57
|
+
|
|
58
|
+
if (token) {
|
|
59
|
+
const response = await fetch('https://api2.onairos.uk/enoch/users/update', {
|
|
60
|
+
method: 'POST',
|
|
61
|
+
headers: {
|
|
62
|
+
'Content-Type': 'application/json',
|
|
63
|
+
'Authorization': token
|
|
64
|
+
},
|
|
65
|
+
body: JSON.stringify({
|
|
66
|
+
UpdateType: 'connection',
|
|
67
|
+
updateType: 'Add',
|
|
68
|
+
connection: platform,
|
|
69
|
+
username: apiUsername // Use stored Onairos username
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
console.log(`Platform connection update response for ${platform}:`, response.status);
|
|
51
74
|
}
|
|
75
|
+
} catch (apiError) {
|
|
76
|
+
console.warn(`Error updating user connections for ${platform}, but continuing:`, apiError);
|
|
77
|
+
// Continue even if the API call fails
|
|
52
78
|
}
|
|
79
|
+
|
|
80
|
+
return true;
|
|
53
81
|
}
|
|
54
82
|
|
|
55
|
-
|
|
56
|
-
const mockData = mockConnectionStorage[STORAGE_KEYS.connections] || {};
|
|
57
|
-
console.log('Using mock connection storage:', mockData);
|
|
58
|
-
return mockData;
|
|
59
|
-
} catch (error) {
|
|
60
|
-
console.error('Error getting connection status:', error);
|
|
61
|
-
|
|
62
|
-
// Always return empty object as safe fallback
|
|
63
|
-
console.log('Returning empty connections due to error');
|
|
64
|
-
return {};
|
|
65
|
-
}
|
|
66
|
-
}, []);
|
|
67
|
-
|
|
68
|
-
const saveConnectionStatus = useCallback(async (status: ConnectionStatus) => {
|
|
69
|
-
try {
|
|
70
|
-
if (isKeychainAvailable()) {
|
|
71
|
-
await Keychain.setGenericPassword(
|
|
72
|
-
'connections',
|
|
73
|
-
JSON.stringify(status),
|
|
74
|
-
{ service: STORAGE_KEYS.connections }
|
|
75
|
-
);
|
|
76
|
-
} else {
|
|
77
|
-
// Use in-memory mock storage if Keychain is not available
|
|
78
|
-
mockConnectionStorage[STORAGE_KEYS.connections] = status;
|
|
79
|
-
}
|
|
83
|
+
return false;
|
|
80
84
|
} catch (error) {
|
|
81
|
-
console.error(
|
|
82
|
-
|
|
83
|
-
|
|
85
|
+
console.error(`Error connecting platform ${platform}:`, error);
|
|
86
|
+
return false;
|
|
87
|
+
} finally {
|
|
88
|
+
setIsConnecting(false);
|
|
84
89
|
}
|
|
85
90
|
}, []);
|
|
86
91
|
|
|
87
|
-
|
|
88
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Disconnect a platform
|
|
94
|
+
*/
|
|
95
|
+
const disconnectPlatform = useCallback(async (platform: string, username?: string): Promise<boolean> => {
|
|
89
96
|
try {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
97
|
+
// Update local state
|
|
98
|
+
setConnections(prev => {
|
|
99
|
+
const newConnections = { ...prev };
|
|
100
|
+
delete newConnections[platform];
|
|
101
|
+
return newConnections;
|
|
95
102
|
});
|
|
96
103
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
} catch (error) {
|
|
132
|
-
console.error(`Error disconnecting ${platform}:`, error);
|
|
133
|
-
// Don't throw in development mode
|
|
134
|
-
if (!__DEV__) {
|
|
135
|
-
throw error;
|
|
104
|
+
// Update user account info via API
|
|
105
|
+
try {
|
|
106
|
+
const token = await AsyncStorage.getItem('auth_token');
|
|
107
|
+
// Get the stored Onairos username for API calls
|
|
108
|
+
const storedUsername = await getOnairosUsername();
|
|
109
|
+
const apiUsername = storedUsername || username || 'user';
|
|
110
|
+
|
|
111
|
+
console.log(`🔗 Using username for ${platform} disconnect API call:`, {
|
|
112
|
+
providedUsername: username,
|
|
113
|
+
storedUsername,
|
|
114
|
+
finalApiUsername: apiUsername
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
if (token) {
|
|
118
|
+
const response = await fetch('https://api2.onairos.uk/enoch/users/update', {
|
|
119
|
+
method: 'POST',
|
|
120
|
+
headers: {
|
|
121
|
+
'Content-Type': 'application/json',
|
|
122
|
+
'Authorization': token
|
|
123
|
+
},
|
|
124
|
+
body: JSON.stringify({
|
|
125
|
+
UpdateType: 'connection',
|
|
126
|
+
updateType: 'Remove',
|
|
127
|
+
connection: platform,
|
|
128
|
+
username: apiUsername // Use stored Onairos username
|
|
129
|
+
})
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
console.log(`Platform disconnection update response for ${platform}:`, response.status);
|
|
133
|
+
}
|
|
134
|
+
} catch (apiError) {
|
|
135
|
+
console.warn(`Error updating user connections for ${platform}, but continuing:`, apiError);
|
|
136
|
+
// Continue even if the API call fails
|
|
136
137
|
}
|
|
137
|
-
|
|
138
|
-
}, [getConnectionStatus, saveConnectionStatus]);
|
|
139
|
-
|
|
140
|
-
const handleOAuthCallback = useCallback(async (platform: string, data: any) => {
|
|
141
|
-
try {
|
|
142
|
-
console.log(`[Mock] Handling callback for ${platform}`);
|
|
143
|
-
const status = await getConnectionStatus();
|
|
144
|
-
status[platform] = {
|
|
145
|
-
userName: data.userName || `Mock User (${platform})`,
|
|
146
|
-
connected: true
|
|
147
|
-
};
|
|
148
|
-
await saveConnectionStatus(status);
|
|
138
|
+
|
|
149
139
|
return true;
|
|
150
140
|
} catch (error) {
|
|
151
|
-
console.error(
|
|
141
|
+
console.error(`Error disconnecting platform ${platform}:`, error);
|
|
152
142
|
return false;
|
|
153
143
|
}
|
|
154
|
-
}, [
|
|
144
|
+
}, []);
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Get current connection status
|
|
148
|
+
*/
|
|
149
|
+
const getConnectionStatus = useCallback(async (): Promise<ConnectionStatus> => {
|
|
150
|
+
// In a real app, you might fetch this from storage or API
|
|
151
|
+
return connections;
|
|
152
|
+
}, [connections]);
|
|
155
153
|
|
|
156
154
|
return {
|
|
157
|
-
|
|
155
|
+
connections,
|
|
158
156
|
connectPlatform,
|
|
159
157
|
disconnectPlatform,
|
|
160
158
|
getConnectionStatus,
|
|
161
|
-
|
|
159
|
+
isConnecting
|
|
162
160
|
};
|
|
163
|
-
};
|
|
161
|
+
};
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
getUserConnections,
|
|
4
|
+
getUserConnectionsByUsername,
|
|
5
|
+
getUserConnectionsByUserId,
|
|
6
|
+
uploadProfilePicture,
|
|
7
|
+
Connection
|
|
8
|
+
} from '../services/userConnectionsService';
|
|
9
|
+
import { getAuthToken } from '../services/authService';
|
|
10
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
11
|
+
|
|
12
|
+
export interface UseUserConnectionsResult {
|
|
13
|
+
connections: Connection[];
|
|
14
|
+
isLoading: boolean;
|
|
15
|
+
error: string | null;
|
|
16
|
+
refreshConnections: () => Promise<void>;
|
|
17
|
+
getConnectionsByUsername: (username: string) => Promise<Connection[]>;
|
|
18
|
+
getConnectionsByUserId: (userId: string) => Promise<Connection[]>;
|
|
19
|
+
uploadUserProfilePicture: (imageData: string, fileType?: string) => Promise<boolean>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const useUserConnections = (): UseUserConnectionsResult => {
|
|
23
|
+
const [connections, setConnections] = useState<Connection[]>([]);
|
|
24
|
+
const [isLoading, setIsLoading] = useState<boolean>(true);
|
|
25
|
+
const [error, setError] = useState<string | null>(null);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Load connections from API with authentication validation
|
|
29
|
+
*/
|
|
30
|
+
const loadConnections = useCallback(async () => {
|
|
31
|
+
try {
|
|
32
|
+
setIsLoading(true);
|
|
33
|
+
setError(null);
|
|
34
|
+
|
|
35
|
+
// ✅ CRITICAL: Validate authentication before making API calls
|
|
36
|
+
const authToken = await getAuthToken();
|
|
37
|
+
|
|
38
|
+
// Check for demo mode (reviewer bypass)
|
|
39
|
+
const reviewerToken = await AsyncStorage.getItem('onairos_jwt_token');
|
|
40
|
+
const isDemoMode = reviewerToken === 'reviewer-bypass-token';
|
|
41
|
+
|
|
42
|
+
if (!authToken && !isDemoMode) {
|
|
43
|
+
console.warn('⚠️ [CONNECTIONS HOOK] No authentication token available for connections refresh');
|
|
44
|
+
console.warn('⚠️ [CONNECTIONS HOOK] Skipping API call to prevent unauthenticated requests');
|
|
45
|
+
setConnections([]);
|
|
46
|
+
setError('Authentication required for connections');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (isDemoMode) {
|
|
51
|
+
console.log('🎯 [DEMO MODE] Reviewer bypass detected - skipping API call for demo');
|
|
52
|
+
// For demo mode, return empty connections - ResultsScreen will use fallback data
|
|
53
|
+
setConnections([]);
|
|
54
|
+
setError(null);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// At this point, authToken must be valid (not null) because we've checked both cases above
|
|
59
|
+
if (!authToken) {
|
|
60
|
+
console.error('❌ [CONNECTIONS HOOK] Unexpected null token after validation');
|
|
61
|
+
setConnections([]);
|
|
62
|
+
setError('Authentication error');
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
console.log('🔄 Loading user connections with authentication...');
|
|
67
|
+
console.log('🔑 [CONNECTIONS HOOK] Using auth token:', `${authToken.substring(0, 20)}...`);
|
|
68
|
+
|
|
69
|
+
const fetchedConnections = await getUserConnections();
|
|
70
|
+
|
|
71
|
+
setConnections(fetchedConnections);
|
|
72
|
+
console.log('✅ Connections loaded:', fetchedConnections.length);
|
|
73
|
+
|
|
74
|
+
} catch (err) {
|
|
75
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to load connections';
|
|
76
|
+
console.error('❌ Error loading connections:', errorMessage);
|
|
77
|
+
setError(errorMessage);
|
|
78
|
+
|
|
79
|
+
// Set empty array on error - screens will handle their own fallbacks
|
|
80
|
+
setConnections([]);
|
|
81
|
+
|
|
82
|
+
} finally {
|
|
83
|
+
setIsLoading(false);
|
|
84
|
+
}
|
|
85
|
+
}, []);
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Refresh connections with authentication validation
|
|
89
|
+
*/
|
|
90
|
+
const refreshConnections = useCallback(async () => {
|
|
91
|
+
console.log('🔄 [CONNECTIONS HOOK] Refreshing connections...');
|
|
92
|
+
await loadConnections();
|
|
93
|
+
console.log('✅ [CONNECTIONS HOOK] Connections refresh completed');
|
|
94
|
+
}, [loadConnections]);
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Get connections by username with authentication validation
|
|
98
|
+
*/
|
|
99
|
+
const getConnectionsByUsername = useCallback(async (username: string): Promise<Connection[]> => {
|
|
100
|
+
try {
|
|
101
|
+
// ✅ Validate authentication before making API calls
|
|
102
|
+
const authToken = await getAuthToken();
|
|
103
|
+
if (!authToken) {
|
|
104
|
+
console.warn('⚠️ [CONNECTIONS HOOK] No authentication token available for username connections');
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
console.log('🔍 Fetching connections by username:', username);
|
|
109
|
+
console.log('🔑 [CONNECTIONS HOOK] Using auth token:', `${authToken.substring(0, 20)}...`);
|
|
110
|
+
return await getUserConnectionsByUsername(username);
|
|
111
|
+
} catch (error) {
|
|
112
|
+
console.error('❌ Error fetching connections by username:', error);
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
}, []);
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Get connections by user ID with authentication validation
|
|
119
|
+
*/
|
|
120
|
+
const getConnectionsByUserId = useCallback(async (userId: string): Promise<Connection[]> => {
|
|
121
|
+
try {
|
|
122
|
+
// ✅ Validate authentication before making API calls
|
|
123
|
+
const authToken = await getAuthToken();
|
|
124
|
+
if (!authToken) {
|
|
125
|
+
console.warn('⚠️ [CONNECTIONS HOOK] No authentication token available for user ID connections');
|
|
126
|
+
return [];
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
console.log('🔍 Fetching connections by userId:', userId);
|
|
130
|
+
console.log('🔑 [CONNECTIONS HOOK] Using auth token:', `${authToken.substring(0, 20)}...`);
|
|
131
|
+
return await getUserConnectionsByUserId(userId);
|
|
132
|
+
} catch (error) {
|
|
133
|
+
console.error('❌ Error fetching connections by userId:', error);
|
|
134
|
+
return [];
|
|
135
|
+
}
|
|
136
|
+
}, []);
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Upload profile picture
|
|
140
|
+
*/
|
|
141
|
+
const uploadUserProfilePicture = useCallback(async (imageData: string, fileType: string = 'jpg'): Promise<boolean> => {
|
|
142
|
+
try {
|
|
143
|
+
console.log('📷 Uploading profile picture for user:');
|
|
144
|
+
const result = await uploadProfilePicture(imageData, fileType);
|
|
145
|
+
return result.success;
|
|
146
|
+
} catch (error) {
|
|
147
|
+
console.error('❌ Error uploading profile picture:', error);
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
}, []);
|
|
151
|
+
|
|
152
|
+
// Load connections on mount
|
|
153
|
+
useEffect(() => {
|
|
154
|
+
loadConnections();
|
|
155
|
+
}, [loadConnections]);
|
|
156
|
+
|
|
157
|
+
return {
|
|
158
|
+
connections,
|
|
159
|
+
isLoading,
|
|
160
|
+
error,
|
|
161
|
+
refreshConnections,
|
|
162
|
+
getConnectionsByUsername,
|
|
163
|
+
getConnectionsByUserId,
|
|
164
|
+
uploadUserProfilePicture
|
|
165
|
+
};
|
|
166
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -1,50 +1,95 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Onairos React Native SDK
|
|
3
|
-
* A React Native implementation for Onairos personalized data integration
|
|
4
|
-
*
|
|
5
|
-
* PUBLIC API -
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// Essential Types
|
|
9
|
-
export type {
|
|
10
|
-
OnairosButtonProps,
|
|
11
|
-
OnairosProps,
|
|
12
|
-
DataTier,
|
|
13
|
-
OnairosConfig,
|
|
14
|
-
TestModeOptions,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
export {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
} from './
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
export {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
//
|
|
41
|
-
export {
|
|
42
|
-
|
|
43
|
-
//
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
export default
|
|
48
|
-
|
|
49
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Onairos React Native SDK v4.0.0
|
|
3
|
+
* A React Native implementation for Onairos personalized data integration
|
|
4
|
+
*
|
|
5
|
+
* PUBLIC API - Complete redesigned UI and enhanced functionality
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// Essential Types
|
|
9
|
+
export type {
|
|
10
|
+
OnairosButtonProps,
|
|
11
|
+
OnairosProps,
|
|
12
|
+
DataTier,
|
|
13
|
+
OnairosConfig,
|
|
14
|
+
TestModeOptions,
|
|
15
|
+
UniversalOnboardingProps,
|
|
16
|
+
ConnectionStatus,
|
|
17
|
+
PlatformConfig,
|
|
18
|
+
} from './types';
|
|
19
|
+
|
|
20
|
+
// Core Components - Redesigned UI
|
|
21
|
+
export { OnairosButton } from './components/OnairosButton';
|
|
22
|
+
export { Onairos } from './components/Onairos';
|
|
23
|
+
export { UniversalOnboarding } from './components/UniversalOnboarding';
|
|
24
|
+
|
|
25
|
+
// New UI Components - Complete Welcome Flow
|
|
26
|
+
export { default as WelcomeScreen } from './components/WelcomeScreen';
|
|
27
|
+
export { PrimaryButton } from './components/PrimaryButton';
|
|
28
|
+
export { ModalSheet } from './components/ModalSheet';
|
|
29
|
+
export { ModalHeader } from './components/ModalHeader';
|
|
30
|
+
export { BrandMark } from './components/BrandMark';
|
|
31
|
+
export { HeadingGroup } from './components/HeadingGroup';
|
|
32
|
+
export { BodyText } from './components/BodyText';
|
|
33
|
+
export { SignInStep } from './components/SignInStep';
|
|
34
|
+
export { VerificationStep } from './components/VerificationStep';
|
|
35
|
+
export { default as PlatformConnectorsStep } from './components/PlatformConnectorsStep';
|
|
36
|
+
export { PersonalizationConsentScreen } from './components/PersonalizationConsentScreen';
|
|
37
|
+
export { PinCreationScreen } from './components/PinCreationScreen';
|
|
38
|
+
|
|
39
|
+
// Enhanced Hooks - Temporarily commented out for build
|
|
40
|
+
// export { useConnections } from './hooks/useConnections';
|
|
41
|
+
// export { useUserConnections } from './hooks/useUserConnections';
|
|
42
|
+
// export { useConnectedAccounts } from './hooks/useConnectedAccounts';
|
|
43
|
+
// export { useAuth } from './context/AuthContext';
|
|
44
|
+
|
|
45
|
+
// Temporarily commented out components with missing dependencies
|
|
46
|
+
export { default as PersonaImage } from './components/PersonaImage';
|
|
47
|
+
// export { default as PlatformToggle } from './components/PlatformToggle';
|
|
48
|
+
// export { default as PersonaLoadingScreen } from './components/PersonaLoadingScreen';
|
|
49
|
+
|
|
50
|
+
// SDK Initialization & Services
|
|
51
|
+
export {
|
|
52
|
+
initializeApiKey,
|
|
53
|
+
ADMIN_API_KEY,
|
|
54
|
+
extractUsernameFromJWT,
|
|
55
|
+
extractUserDataFromJWT,
|
|
56
|
+
decodeJWTPayload,
|
|
57
|
+
} from './services/apiKeyService';
|
|
58
|
+
|
|
59
|
+
// Authentication & Enhanced Services - Temporarily limited for build
|
|
60
|
+
export {
|
|
61
|
+
getOnairosUsername,
|
|
62
|
+
} from './services/authService';
|
|
63
|
+
|
|
64
|
+
export {
|
|
65
|
+
initiateOAuth,
|
|
66
|
+
initiateNativeAuth,
|
|
67
|
+
hasNativeSDK,
|
|
68
|
+
isOAuthCallback,
|
|
69
|
+
} from './services/platformAuthService';
|
|
70
|
+
|
|
71
|
+
export {
|
|
72
|
+
updateGoogleClientIds,
|
|
73
|
+
} from './services/googleAuthService';
|
|
74
|
+
|
|
75
|
+
// Enhanced API Client
|
|
76
|
+
export { ApiClient } from './services/apiClient';
|
|
77
|
+
|
|
78
|
+
// Programmatic Function (for custom buttons) - Temporarily commented out
|
|
79
|
+
// export { executeOnairosFlow } from './utils/programmaticFlow';
|
|
80
|
+
|
|
81
|
+
// Context Provider - Temporarily commented out for build
|
|
82
|
+
// export { AuthProvider } from './context/AuthContext';
|
|
83
|
+
|
|
84
|
+
// Default export for convenience
|
|
85
|
+
import { OnairosButton } from './components/OnairosButton';
|
|
86
|
+
import { Onairos } from './components/Onairos';
|
|
87
|
+
import { UniversalOnboarding } from './components/UniversalOnboarding';
|
|
88
|
+
import WelcomeScreen from './components/WelcomeScreen';
|
|
89
|
+
|
|
90
|
+
export default {
|
|
91
|
+
OnairosButton,
|
|
92
|
+
Onairos,
|
|
93
|
+
UniversalOnboarding,
|
|
94
|
+
WelcomeScreen,
|
|
50
95
|
};
|