@onairos/react-native 3.1.17 → 3.2.0
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/README.md +374 -403
- package/lib/commonjs/api/index.js +1 -75
- package/lib/commonjs/api/index.js.map +1 -1
- 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/DataRequestModal.js.map +1 -1
- package/lib/commonjs/components/DataRequestScreen.js.map +1 -1
- package/lib/commonjs/components/EmailVerificationModal.js.map +1 -1
- package/lib/commonjs/components/Onairos.js +3 -1
- package/lib/commonjs/components/Onairos.js.map +1 -1
- package/lib/commonjs/components/OnairosButton.js +190 -171
- package/lib/commonjs/components/OnairosButton.js.map +1 -1
- package/lib/commonjs/components/Overlay.js +5 -5
- package/lib/commonjs/components/Overlay.js.map +1 -1
- package/lib/commonjs/components/PinInput.js +120 -282
- package/lib/commonjs/components/PinInput.js.map +1 -1
- package/lib/commonjs/components/PlatformList.js.map +1 -1
- package/lib/commonjs/components/TrainingModal.js +563 -808
- package/lib/commonjs/components/TrainingModal.js.map +1 -1
- package/lib/commonjs/components/UniversalOnboarding.js +1283 -2304
- package/lib/commonjs/components/UniversalOnboarding.js.map +1 -1
- package/lib/commonjs/components/UniversalOnboarding.tsx.new +455 -0
- package/lib/commonjs/components/onboarding/OAuthWebView.js +743 -134
- package/lib/commonjs/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/commonjs/components/onboarding/OnboardingHeader.js.map +1 -1
- package/lib/commonjs/components/onboarding/PinInput.js.map +1 -1
- package/lib/commonjs/components/onboarding/PlatformConnector.js.map +1 -1
- package/lib/commonjs/components/screens/ConnectorScreen.js.map +1 -1
- package/lib/commonjs/components/screens/LoadingScreen.js.map +1 -1
- package/lib/commonjs/components/screens/PinCreationScreen.js.map +1 -1
- package/lib/commonjs/constants/index.js.map +1 -1
- package/lib/commonjs/hooks/useConnections.js +125 -120
- package/lib/commonjs/hooks/useConnections.js.map +1 -1
- package/lib/commonjs/hooks/useCredentials.js.map +1 -1
- package/lib/commonjs/index.js +31 -193
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/services/apiKeyService.js +102 -101
- package/lib/commonjs/services/apiKeyService.js.map +1 -1
- package/lib/commonjs/services/oauthService.js.map +1 -1
- package/lib/commonjs/services/platformAuthService.js +722 -956
- package/lib/commonjs/services/platformAuthService.js.map +1 -1
- package/lib/commonjs/types/ambient.d.js.map +1 -1
- package/lib/commonjs/types/declarations.d.js.map +1 -1
- package/lib/commonjs/types/index.d.js.map +1 -1
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/commonjs/types/node-fix.d.js.map +1 -1
- package/lib/commonjs/types/node-override.d.js.map +1 -1
- package/lib/commonjs/types/opacity.d.js.map +1 -1
- package/lib/commonjs/types/types.d.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/Portal.js +4 -4
- package/lib/commonjs/utils/Portal.js.map +1 -1
- package/lib/commonjs/utils/api.js +24 -24
- package/lib/commonjs/utils/api.js.map +1 -1
- package/lib/commonjs/utils/auth.js +18 -18
- package/lib/commonjs/utils/auth.js.map +1 -1
- package/lib/commonjs/utils/crypto.js +13 -13
- package/lib/commonjs/utils/crypto.js.map +1 -1
- package/lib/commonjs/utils/debugHelper.js.map +1 -1
- package/lib/commonjs/utils/encryption.js +12 -12
- package/lib/commonjs/utils/encryption.js.map +1 -1
- package/lib/commonjs/utils/onairosApi.js.map +1 -1
- package/lib/commonjs/utils/programmaticFlow.js +16 -16
- package/lib/commonjs/utils/programmaticFlow.js.map +1 -1
- package/lib/commonjs/utils/retryHelper.js +27 -27
- package/lib/commonjs/utils/retryHelper.js.map +1 -1
- package/lib/commonjs/utils/secureStorage.js.map +1 -1
- package/lib/module/api/index.js +0 -72
- package/lib/module/api/index.js.map +1 -1
- 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/DataRequestModal.js.map +1 -1
- package/lib/module/components/DataRequestScreen.js.map +1 -1
- package/lib/module/components/EmailVerificationModal.js.map +1 -1
- package/lib/module/components/Onairos.js +3 -1
- package/lib/module/components/Onairos.js.map +1 -1
- package/lib/module/components/OnairosButton.js +192 -172
- package/lib/module/components/OnairosButton.js.map +1 -1
- package/lib/module/components/Overlay.js +5 -5
- package/lib/module/components/Overlay.js.map +1 -1
- package/lib/module/components/PinInput.js +120 -283
- package/lib/module/components/PinInput.js.map +1 -1
- package/lib/module/components/PlatformList.js.map +1 -1
- package/lib/module/components/TrainingModal.js +565 -809
- package/lib/module/components/TrainingModal.js.map +1 -1
- package/lib/module/components/UniversalOnboarding.js +1284 -2307
- package/lib/module/components/UniversalOnboarding.js.map +1 -1
- package/lib/module/components/UniversalOnboarding.tsx.new +455 -0
- package/lib/module/components/onboarding/OAuthWebView.js +744 -136
- package/lib/module/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/module/components/onboarding/OnboardingHeader.js.map +1 -1
- package/lib/module/components/onboarding/PinInput.js.map +1 -1
- package/lib/module/components/onboarding/PlatformConnector.js.map +1 -1
- package/lib/module/components/screens/ConnectorScreen.js.map +1 -1
- package/lib/module/components/screens/LoadingScreen.js.map +1 -1
- package/lib/module/components/screens/PinCreationScreen.js.map +1 -1
- package/lib/module/constants/index.js.map +1 -1
- package/lib/module/hooks/useConnections.js +125 -119
- package/lib/module/hooks/useConnections.js.map +1 -1
- package/lib/module/hooks/useCredentials.js.map +1 -1
- package/lib/module/index.js +15 -51
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/apiKeyService.js +102 -101
- package/lib/module/services/apiKeyService.js.map +1 -1
- package/lib/module/services/oauthService.js.map +1 -1
- package/lib/module/services/platformAuthService.js +704 -943
- package/lib/module/services/platformAuthService.js.map +1 -1
- package/lib/module/types/ambient.d.js.map +1 -1
- package/lib/module/types/declarations.d.js.map +1 -1
- package/lib/module/types/index.d.js.map +1 -1
- package/lib/module/types/index.js.map +1 -1
- package/lib/module/types/node-fix.d.js.map +1 -1
- package/lib/module/types/node-override.d.js.map +1 -1
- package/lib/module/types/opacity.d.js.map +1 -1
- package/lib/module/types/types.d.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/Portal.js +4 -4
- package/lib/module/utils/Portal.js.map +1 -1
- package/lib/module/utils/api.js +24 -24
- package/lib/module/utils/api.js.map +1 -1
- package/lib/module/utils/auth.js +18 -18
- package/lib/module/utils/auth.js.map +1 -1
- package/lib/module/utils/crypto.js +13 -13
- package/lib/module/utils/crypto.js.map +1 -1
- package/lib/module/utils/debugHelper.js.map +1 -1
- package/lib/module/utils/encryption.js +12 -12
- package/lib/module/utils/encryption.js.map +1 -1
- package/lib/module/utils/onairosApi.js.map +1 -1
- package/lib/module/utils/programmaticFlow.js +16 -16
- package/lib/module/utils/programmaticFlow.js.map +1 -1
- package/lib/module/utils/retryHelper.js +27 -27
- package/lib/module/utils/retryHelper.js.map +1 -1
- package/lib/module/utils/secureStorage.js.map +1 -1
- package/lib/typescript/api/index.d.ts +7 -15
- package/lib/typescript/api/index.d.ts.map +1 -1
- package/lib/typescript/components/DataRequestModal.d.ts +10 -10
- package/lib/typescript/components/DataRequestScreen.d.ts +10 -10
- package/lib/typescript/components/EmailVerificationModal.d.ts +10 -10
- package/lib/typescript/components/Onairos.d.ts +3 -3
- package/lib/typescript/components/Onairos.d.ts.map +1 -1
- package/lib/typescript/components/OnairosButton.d.ts +11 -36
- package/lib/typescript/components/OnairosButton.d.ts.map +1 -1
- package/lib/typescript/components/Overlay.d.ts +3 -3
- package/lib/typescript/components/PinInput.d.ts +3 -13
- package/lib/typescript/components/PinInput.d.ts.map +1 -1
- package/lib/typescript/components/PlatformList.d.ts +3 -3
- package/lib/typescript/components/TrainingModal.d.ts +3 -14
- package/lib/typescript/components/TrainingModal.d.ts.map +1 -1
- package/lib/typescript/components/UniversalOnboarding.d.ts +3 -16
- package/lib/typescript/components/UniversalOnboarding.d.ts.map +1 -1
- package/lib/typescript/components/onboarding/OAuthWebView.d.ts +9 -9
- package/lib/typescript/components/onboarding/OAuthWebView.d.ts.map +1 -1
- package/lib/typescript/components/onboarding/OnboardingHeader.d.ts +10 -10
- package/lib/typescript/components/onboarding/PinInput.d.ts +3 -3
- package/lib/typescript/components/onboarding/PlatformConnector.d.ts +12 -12
- package/lib/typescript/components/screens/ConnectorScreen.d.ts +8 -8
- package/lib/typescript/components/screens/LoadingScreen.d.ts +8 -8
- package/lib/typescript/components/screens/PinCreationScreen.d.ts +9 -9
- package/lib/typescript/constants/index.d.ts +52 -52
- package/lib/typescript/hooks/useConnections.d.ts +8 -13
- package/lib/typescript/hooks/useConnections.d.ts.map +1 -1
- package/lib/typescript/hooks/useCredentials.d.ts +8 -8
- package/lib/typescript/index.d.ts +17 -35
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/services/apiKeyService.d.ts +131 -131
- package/lib/typescript/services/apiKeyService.d.ts.map +1 -1
- package/lib/typescript/services/oauthService.d.ts +49 -49
- package/lib/typescript/services/platformAuthService.d.ts +143 -68
- package/lib/typescript/services/platformAuthService.d.ts.map +1 -1
- package/lib/typescript/types/index.d.ts +225 -264
- package/lib/typescript/types/index.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +266 -266
- package/lib/typescript/utils/Portal.d.ts +13 -13
- package/lib/typescript/utils/api.d.ts +5 -5
- package/lib/typescript/utils/auth.d.ts +5 -5
- package/lib/typescript/utils/crypto.d.ts +3 -3
- package/lib/typescript/utils/debugHelper.d.ts +28 -28
- package/lib/typescript/utils/encryption.d.ts +18 -18
- package/lib/typescript/utils/onairosApi.d.ts +86 -86
- package/lib/typescript/utils/programmaticFlow.d.ts +22 -22
- package/lib/typescript/utils/retryHelper.d.ts +68 -68
- package/lib/typescript/utils/secureStorage.d.ts +93 -93
- package/package.json +149 -163
- package/src/api/index.ts +110 -151
- 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/DataRequestScreen.tsx +355 -355
- package/src/components/EmailVerificationModal.tsx +363 -363
- package/src/components/Onairos.tsx +424 -422
- package/src/components/OnairosButton.tsx +359 -339
- package/src/components/Overlay.tsx +506 -506
- package/src/components/PinInput.tsx +343 -555
- package/src/components/PlatformList.tsx +144 -144
- package/src/components/TrainingModal.tsx +737 -1047
- package/src/components/UniversalOnboarding.tsx +1820 -2888
- package/src/components/UniversalOnboarding.tsx.new +455 -0
- package/src/components/onboarding/OAuthWebView.tsx +838 -232
- package/src/hooks/useConnections.ts +163 -161
- package/src/hooks/useCredentials.ts +174 -174
- package/src/index.js +14 -14
- package/src/index.ts +49 -94
- package/src/services/apiKeyService.ts +921 -919
- package/src/services/platformAuthService.ts +1113 -1346
- package/src/types/ambient.d.ts +28 -28
- package/src/types/index.ts +238 -265
- package/src/types/node-fix.d.ts +18 -18
- package/src/types/node-override.d.ts +23 -23
- package/src/types/opacity.d.ts +15 -15
- package/src/types/types.d.ts +17 -17
- package/src/utils/Portal.tsx +82 -82
- package/src/utils/api.js +111 -111
- package/src/utils/auth.js +103 -103
- package/src/utils/crypto.js +59 -59
- package/src/utils/encryption.ts +68 -68
- package/src/utils/programmaticFlow.ts +112 -112
- package/src/utils/retryHelper.ts +274 -274
- package/types/index.d.ts +213 -213
- package/types/node-env.d.ts +14 -14
- 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 +0 -3
- package/lib/commonjs/assets/images/EnochE.svg +0 -19
- 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 +0 -3
- package/lib/commonjs/assets/images/Personalitytraits.svg +0 -3
- package/lib/commonjs/assets/images/Redditicon.png +0 -0
- package/lib/commonjs/assets/images/Userpreferences.svg +0 -3
- package/lib/commonjs/assets/images/YouTubeicon3.png +0 -0
- package/lib/commonjs/assets/images/arrow.svg +0 -20
- package/lib/commonjs/assets/images/basicproficon.svg +0 -43
- package/lib/commonjs/assets/images/basicprofile.svg +0 -3
- package/lib/commonjs/assets/images/checkmark.svg +0 -4
- package/lib/commonjs/assets/images/contentanalysis.svg +0 -3
- package/lib/commonjs/assets/images/contenticon.svg +0 -23
- 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 +0 -18
- package/lib/commonjs/assets/images/x-close.svg +0 -3
- package/lib/commonjs/components/BodyText.js +0 -27
- package/lib/commonjs/components/BodyText.js.map +0 -1
- package/lib/commonjs/components/BrandMark.js +0 -44
- package/lib/commonjs/components/BrandMark.js.map +0 -1
- package/lib/commonjs/components/CodeInput.js +0 -30
- package/lib/commonjs/components/CodeInput.js.map +0 -1
- package/lib/commonjs/components/EmailInput.js +0 -30
- package/lib/commonjs/components/EmailInput.js.map +0 -1
- package/lib/commonjs/components/ExistingUserDataConfirmation.js +0 -474
- package/lib/commonjs/components/ExistingUserDataConfirmation.js.map +0 -1
- package/lib/commonjs/components/GoogleButton.js +0 -55
- package/lib/commonjs/components/GoogleButton.js.map +0 -1
- package/lib/commonjs/components/HeadingGroup.js +0 -43
- package/lib/commonjs/components/HeadingGroup.js.map +0 -1
- package/lib/commonjs/components/ModalHeader.js +0 -99
- package/lib/commonjs/components/ModalHeader.js.map +0 -1
- package/lib/commonjs/components/ModalSheet.js +0 -41
- package/lib/commonjs/components/ModalSheet.js.map +0 -1
- package/lib/commonjs/components/OnairosSignInButton.js +0 -127
- package/lib/commonjs/components/OnairosSignInButton.js.map +0 -1
- package/lib/commonjs/components/PersonaImage.js +0 -60
- package/lib/commonjs/components/PersonaImage.js.map +0 -1
- package/lib/commonjs/components/PersonaLoadingScreen.js +0 -156
- package/lib/commonjs/components/PersonaLoadingScreen.js.map +0 -1
- package/lib/commonjs/components/PersonalizationConsentScreen.js +0 -316
- package/lib/commonjs/components/PersonalizationConsentScreen.js.map +0 -1
- package/lib/commonjs/components/PinCreationScreen.js +0 -393
- package/lib/commonjs/components/PinCreationScreen.js.map +0 -1
- package/lib/commonjs/components/PlatformConnectorsStep.js +0 -828
- package/lib/commonjs/components/PlatformConnectorsStep.js.map +0 -1
- package/lib/commonjs/components/PlatformToggle.js +0 -180
- package/lib/commonjs/components/PlatformToggle.js.map +0 -1
- package/lib/commonjs/components/PrimaryButton.js +0 -180
- package/lib/commonjs/components/PrimaryButton.js.map +0 -1
- package/lib/commonjs/components/SignInMatchAnimation.js +0 -197
- package/lib/commonjs/components/SignInMatchAnimation.js.map +0 -1
- package/lib/commonjs/components/SignInStep.js +0 -179
- package/lib/commonjs/components/SignInStep.js.map +0 -1
- package/lib/commonjs/components/VerificationStep.js +0 -154
- package/lib/commonjs/components/VerificationStep.js.map +0 -1
- package/lib/commonjs/components/WelcomeScreen.js +0 -385
- package/lib/commonjs/components/WelcomeScreen.js.map +0 -1
- package/lib/commonjs/components/icons/Basicproficon.js +0 -37
- package/lib/commonjs/components/icons/Basicproficon.js.map +0 -1
- package/lib/commonjs/components/icons/Basicprofile.js +0 -21
- package/lib/commonjs/components/icons/Basicprofile.js.map +0 -1
- package/lib/commonjs/components/icons/Checkbox.js +0 -21
- package/lib/commonjs/components/icons/Checkbox.js.map +0 -1
- package/lib/commonjs/components/icons/Checkmark.js +0 -27
- package/lib/commonjs/components/icons/Checkmark.js.map +0 -1
- package/lib/commonjs/components/icons/Contentanalysis.js +0 -21
- package/lib/commonjs/components/icons/Contentanalysis.js.map +0 -1
- package/lib/commonjs/components/icons/Contenticon.js +0 -39
- package/lib/commonjs/components/icons/Contenticon.js.map +0 -1
- package/lib/commonjs/components/icons/EnochE.js +0 -41
- package/lib/commonjs/components/icons/EnochE.js.map +0 -1
- package/lib/commonjs/components/icons/Personalityicon.js +0 -30
- package/lib/commonjs/components/icons/Personalityicon.js.map +0 -1
- package/lib/commonjs/components/icons/Personalityprofile.js +0 -21
- package/lib/commonjs/components/icons/Personalityprofile.js.map +0 -1
- package/lib/commonjs/components/icons/Personalitytraits.js +0 -21
- package/lib/commonjs/components/icons/Personalitytraits.js.map +0 -1
- package/lib/commonjs/components/icons/Userpreferences.js +0 -21
- package/lib/commonjs/components/icons/Userpreferences.js.map +0 -1
- package/lib/commonjs/components/icons/index.js +0 -84
- package/lib/commonjs/components/icons/index.js.map +0 -1
- package/lib/commonjs/config/api.js +0 -34
- package/lib/commonjs/config/api.js.map +0 -1
- package/lib/commonjs/context/AuthContext.js +0 -345
- package/lib/commonjs/context/AuthContext.js.map +0 -1
- package/lib/commonjs/hooks/useConnectedAccounts.js +0 -111
- package/lib/commonjs/hooks/useConnectedAccounts.js.map +0 -1
- package/lib/commonjs/hooks/useUserConnections.js +0 -148
- package/lib/commonjs/hooks/useUserConnections.js.map +0 -1
- package/lib/commonjs/services/apiClient.js +0 -302
- package/lib/commonjs/services/apiClient.js.map +0 -1
- package/lib/commonjs/services/authService.js +0 -935
- package/lib/commonjs/services/authService.js.map +0 -1
- package/lib/commonjs/services/biometricPinService.js +0 -184
- package/lib/commonjs/services/biometricPinService.js.map +0 -1
- package/lib/commonjs/services/connectedAccountsService.js +0 -268
- package/lib/commonjs/services/connectedAccountsService.js.map +0 -1
- package/lib/commonjs/services/googleAuthService.js +0 -268
- package/lib/commonjs/services/googleAuthService.js.map +0 -1
- package/lib/commonjs/services/imageCompressionService.js +0 -260
- package/lib/commonjs/services/imageCompressionService.js.map +0 -1
- package/lib/commonjs/services/jwtStorageService.js +0 -256
- package/lib/commonjs/services/jwtStorageService.js.map +0 -1
- package/lib/commonjs/services/mobileTrainingService.js +0 -185
- package/lib/commonjs/services/mobileTrainingService.js.map +0 -1
- package/lib/commonjs/services/pinEncryptionService.js +0 -84
- package/lib/commonjs/services/pinEncryptionService.js.map +0 -1
- package/lib/commonjs/services/pinStorageUtils.js +0 -105
- package/lib/commonjs/services/pinStorageUtils.js.map +0 -1
- package/lib/commonjs/services/storageService.js +0 -404
- package/lib/commonjs/services/storageService.js.map +0 -1
- package/lib/commonjs/services/trainingApiHelpers.js +0 -73
- package/lib/commonjs/services/trainingApiHelpers.js.map +0 -1
- package/lib/commonjs/services/userConnectionsService.js +0 -486
- package/lib/commonjs/services/userConnectionsService.js.map +0 -1
- package/lib/commonjs/services/youtubeMigrationService.js +0 -415
- package/lib/commonjs/services/youtubeMigrationService.js.map +0 -1
- package/lib/commonjs/theme/index.js +0 -249
- package/lib/commonjs/theme/index.js.map +0 -1
- package/lib/commonjs/utils/eventUtils.js +0 -288
- package/lib/commonjs/utils/eventUtils.js.map +0 -1
- package/lib/commonjs/utils/haptics.js +0 -66
- package/lib/commonjs/utils/haptics.js.map +0 -1
- package/lib/commonjs/utils/imagePreloader.js +0 -6
- package/lib/commonjs/utils/imagePreloader.js.map +0 -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 +0 -3
- package/lib/module/assets/images/EnochE.svg +0 -19
- 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 +0 -3
- package/lib/module/assets/images/Personalitytraits.svg +0 -3
- package/lib/module/assets/images/Redditicon.png +0 -0
- package/lib/module/assets/images/Userpreferences.svg +0 -3
- package/lib/module/assets/images/YouTubeicon3.png +0 -0
- package/lib/module/assets/images/arrow.svg +0 -20
- package/lib/module/assets/images/basicproficon.svg +0 -43
- package/lib/module/assets/images/basicprofile.svg +0 -3
- package/lib/module/assets/images/checkmark.svg +0 -4
- package/lib/module/assets/images/contentanalysis.svg +0 -3
- package/lib/module/assets/images/contenticon.svg +0 -23
- 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 +0 -18
- package/lib/module/assets/images/x-close.svg +0 -3
- package/lib/module/components/BodyText.js +0 -20
- package/lib/module/components/BodyText.js.map +0 -1
- package/lib/module/components/BrandMark.js +0 -37
- package/lib/module/components/BrandMark.js.map +0 -1
- package/lib/module/components/CodeInput.js +0 -23
- package/lib/module/components/CodeInput.js.map +0 -1
- package/lib/module/components/EmailInput.js +0 -23
- package/lib/module/components/EmailInput.js.map +0 -1
- package/lib/module/components/ExistingUserDataConfirmation.js +0 -465
- package/lib/module/components/ExistingUserDataConfirmation.js.map +0 -1
- package/lib/module/components/GoogleButton.js +0 -48
- package/lib/module/components/GoogleButton.js.map +0 -1
- package/lib/module/components/HeadingGroup.js +0 -36
- package/lib/module/components/HeadingGroup.js.map +0 -1
- package/lib/module/components/ModalHeader.js +0 -92
- package/lib/module/components/ModalHeader.js.map +0 -1
- package/lib/module/components/ModalSheet.js +0 -34
- package/lib/module/components/ModalSheet.js.map +0 -1
- package/lib/module/components/OnairosSignInButton.js +0 -118
- package/lib/module/components/OnairosSignInButton.js.map +0 -1
- package/lib/module/components/PersonaImage.js +0 -53
- package/lib/module/components/PersonaImage.js.map +0 -1
- package/lib/module/components/PersonaLoadingScreen.js +0 -148
- package/lib/module/components/PersonaLoadingScreen.js.map +0 -1
- package/lib/module/components/PersonalizationConsentScreen.js +0 -309
- package/lib/module/components/PersonalizationConsentScreen.js.map +0 -1
- package/lib/module/components/PinCreationScreen.js +0 -386
- package/lib/module/components/PinCreationScreen.js.map +0 -1
- package/lib/module/components/PlatformConnectorsStep.js +0 -820
- package/lib/module/components/PlatformConnectorsStep.js.map +0 -1
- package/lib/module/components/PlatformToggle.js +0 -173
- package/lib/module/components/PlatformToggle.js.map +0 -1
- package/lib/module/components/PrimaryButton.js +0 -172
- package/lib/module/components/PrimaryButton.js.map +0 -1
- package/lib/module/components/SignInMatchAnimation.js +0 -189
- package/lib/module/components/SignInMatchAnimation.js.map +0 -1
- package/lib/module/components/SignInStep.js +0 -171
- package/lib/module/components/SignInStep.js.map +0 -1
- package/lib/module/components/VerificationStep.js +0 -146
- package/lib/module/components/VerificationStep.js.map +0 -1
- package/lib/module/components/WelcomeScreen.js +0 -378
- package/lib/module/components/WelcomeScreen.js.map +0 -1
- package/lib/module/components/icons/Basicproficon.js +0 -30
- package/lib/module/components/icons/Basicproficon.js.map +0 -1
- package/lib/module/components/icons/Basicprofile.js +0 -14
- package/lib/module/components/icons/Basicprofile.js.map +0 -1
- package/lib/module/components/icons/Checkbox.js +0 -14
- package/lib/module/components/icons/Checkbox.js.map +0 -1
- package/lib/module/components/icons/Checkmark.js +0 -20
- package/lib/module/components/icons/Checkmark.js.map +0 -1
- package/lib/module/components/icons/Contentanalysis.js +0 -14
- package/lib/module/components/icons/Contentanalysis.js.map +0 -1
- package/lib/module/components/icons/Contenticon.js +0 -32
- package/lib/module/components/icons/Contenticon.js.map +0 -1
- package/lib/module/components/icons/EnochE.js +0 -34
- package/lib/module/components/icons/EnochE.js.map +0 -1
- package/lib/module/components/icons/Personalityicon.js +0 -23
- package/lib/module/components/icons/Personalityicon.js.map +0 -1
- package/lib/module/components/icons/Personalityprofile.js +0 -14
- package/lib/module/components/icons/Personalityprofile.js.map +0 -1
- package/lib/module/components/icons/Personalitytraits.js +0 -14
- package/lib/module/components/icons/Personalitytraits.js.map +0 -1
- package/lib/module/components/icons/Userpreferences.js +0 -14
- package/lib/module/components/icons/Userpreferences.js.map +0 -1
- package/lib/module/components/icons/index.js +0 -13
- package/lib/module/components/icons/index.js.map +0 -1
- package/lib/module/config/api.js +0 -26
- package/lib/module/config/api.js.map +0 -1
- package/lib/module/context/AuthContext.js +0 -335
- package/lib/module/context/AuthContext.js.map +0 -1
- package/lib/module/hooks/useConnectedAccounts.js +0 -106
- package/lib/module/hooks/useConnectedAccounts.js.map +0 -1
- package/lib/module/hooks/useUserConnections.js +0 -140
- package/lib/module/hooks/useUserConnections.js.map +0 -1
- package/lib/module/services/apiClient.js +0 -298
- package/lib/module/services/apiClient.js.map +0 -1
- package/lib/module/services/authService.js +0 -905
- package/lib/module/services/authService.js.map +0 -1
- package/lib/module/services/biometricPinService.js +0 -173
- package/lib/module/services/biometricPinService.js.map +0 -1
- package/lib/module/services/connectedAccountsService.js +0 -255
- package/lib/module/services/connectedAccountsService.js.map +0 -1
- package/lib/module/services/googleAuthService.js +0 -258
- package/lib/module/services/googleAuthService.js.map +0 -1
- package/lib/module/services/imageCompressionService.js +0 -250
- package/lib/module/services/imageCompressionService.js.map +0 -1
- package/lib/module/services/jwtStorageService.js +0 -239
- package/lib/module/services/jwtStorageService.js.map +0 -1
- package/lib/module/services/mobileTrainingService.js +0 -172
- package/lib/module/services/mobileTrainingService.js.map +0 -1
- package/lib/module/services/pinEncryptionService.js +0 -75
- package/lib/module/services/pinEncryptionService.js.map +0 -1
- package/lib/module/services/pinStorageUtils.js +0 -93
- package/lib/module/services/pinStorageUtils.js.map +0 -1
- package/lib/module/services/storageService.js +0 -383
- package/lib/module/services/storageService.js.map +0 -1
- package/lib/module/services/trainingApiHelpers.js +0 -67
- package/lib/module/services/trainingApiHelpers.js.map +0 -1
- package/lib/module/services/userConnectionsService.js +0 -476
- package/lib/module/services/userConnectionsService.js.map +0 -1
- package/lib/module/services/youtubeMigrationService.js +0 -404
- package/lib/module/services/youtubeMigrationService.js.map +0 -1
- package/lib/module/theme/index.js +0 -244
- package/lib/module/theme/index.js.map +0 -1
- package/lib/module/utils/eventUtils.js +0 -270
- package/lib/module/utils/eventUtils.js.map +0 -1
- package/lib/module/utils/haptics.js +0 -59
- package/lib/module/utils/haptics.js.map +0 -1
- package/lib/module/utils/imagePreloader.js +0 -3
- package/lib/module/utils/imagePreloader.js.map +0 -1
- package/lib/typescript/components/BodyText.d.ts +0 -10
- package/lib/typescript/components/BodyText.d.ts.map +0 -1
- package/lib/typescript/components/BrandMark.d.ts +0 -11
- package/lib/typescript/components/BrandMark.d.ts.map +0 -1
- package/lib/typescript/components/CodeInput.d.ts +0 -10
- package/lib/typescript/components/CodeInput.d.ts.map +0 -1
- package/lib/typescript/components/EmailInput.d.ts +0 -8
- package/lib/typescript/components/EmailInput.d.ts.map +0 -1
- package/lib/typescript/components/ExistingUserDataConfirmation.d.ts +0 -12
- package/lib/typescript/components/ExistingUserDataConfirmation.d.ts.map +0 -1
- package/lib/typescript/components/GoogleButton.d.ts +0 -11
- package/lib/typescript/components/GoogleButton.d.ts.map +0 -1
- package/lib/typescript/components/HeadingGroup.d.ts +0 -11
- package/lib/typescript/components/HeadingGroup.d.ts.map +0 -1
- package/lib/typescript/components/ModalHeader.d.ts +0 -11
- package/lib/typescript/components/ModalHeader.d.ts.map +0 -1
- package/lib/typescript/components/ModalSheet.d.ts +0 -13
- package/lib/typescript/components/ModalSheet.d.ts.map +0 -1
- package/lib/typescript/components/OnairosSignInButton.d.ts +0 -14
- package/lib/typescript/components/OnairosSignInButton.d.ts.map +0 -1
- package/lib/typescript/components/PersonaImage.d.ts +0 -8
- package/lib/typescript/components/PersonaImage.d.ts.map +0 -1
- package/lib/typescript/components/PersonaLoadingScreen.d.ts +0 -10
- package/lib/typescript/components/PersonaLoadingScreen.d.ts.map +0 -1
- package/lib/typescript/components/PersonalizationConsentScreen.d.ts +0 -10
- package/lib/typescript/components/PersonalizationConsentScreen.d.ts.map +0 -1
- package/lib/typescript/components/PinCreationScreen.d.ts +0 -10
- package/lib/typescript/components/PinCreationScreen.d.ts.map +0 -1
- package/lib/typescript/components/PlatformConnectorsStep.d.ts +0 -11
- package/lib/typescript/components/PlatformConnectorsStep.d.ts.map +0 -1
- package/lib/typescript/components/PlatformToggle.d.ts +0 -20
- package/lib/typescript/components/PlatformToggle.d.ts.map +0 -1
- package/lib/typescript/components/PrimaryButton.d.ts +0 -22
- package/lib/typescript/components/PrimaryButton.d.ts.map +0 -1
- package/lib/typescript/components/SignInMatchAnimation.d.ts +0 -9
- package/lib/typescript/components/SignInMatchAnimation.d.ts.map +0 -1
- package/lib/typescript/components/SignInStep.d.ts +0 -12
- package/lib/typescript/components/SignInStep.d.ts.map +0 -1
- package/lib/typescript/components/VerificationStep.d.ts +0 -13
- package/lib/typescript/components/VerificationStep.d.ts.map +0 -1
- package/lib/typescript/components/WelcomeScreen.d.ts +0 -9
- package/lib/typescript/components/WelcomeScreen.d.ts.map +0 -1
- package/lib/typescript/components/icons/Basicproficon.d.ts +0 -5
- package/lib/typescript/components/icons/Basicproficon.d.ts.map +0 -1
- package/lib/typescript/components/icons/Basicprofile.d.ts +0 -5
- package/lib/typescript/components/icons/Basicprofile.d.ts.map +0 -1
- package/lib/typescript/components/icons/Checkbox.d.ts +0 -5
- package/lib/typescript/components/icons/Checkbox.d.ts.map +0 -1
- package/lib/typescript/components/icons/Checkmark.d.ts +0 -5
- package/lib/typescript/components/icons/Checkmark.d.ts.map +0 -1
- package/lib/typescript/components/icons/Contentanalysis.d.ts +0 -5
- package/lib/typescript/components/icons/Contentanalysis.d.ts.map +0 -1
- package/lib/typescript/components/icons/Contenticon.d.ts +0 -5
- package/lib/typescript/components/icons/Contenticon.d.ts.map +0 -1
- package/lib/typescript/components/icons/EnochE.d.ts +0 -5
- package/lib/typescript/components/icons/EnochE.d.ts.map +0 -1
- package/lib/typescript/components/icons/Personalityicon.d.ts +0 -5
- package/lib/typescript/components/icons/Personalityicon.d.ts.map +0 -1
- package/lib/typescript/components/icons/Personalityprofile.d.ts +0 -5
- package/lib/typescript/components/icons/Personalityprofile.d.ts.map +0 -1
- package/lib/typescript/components/icons/Personalitytraits.d.ts +0 -5
- package/lib/typescript/components/icons/Personalitytraits.d.ts.map +0 -1
- package/lib/typescript/components/icons/Userpreferences.d.ts +0 -5
- package/lib/typescript/components/icons/Userpreferences.d.ts.map +0 -1
- package/lib/typescript/components/icons/index.d.ts +0 -12
- package/lib/typescript/components/icons/index.d.ts.map +0 -1
- package/lib/typescript/config/api.d.ts +0 -24
- package/lib/typescript/config/api.d.ts.map +0 -1
- package/lib/typescript/context/AuthContext.d.ts +0 -34
- package/lib/typescript/context/AuthContext.d.ts.map +0 -1
- package/lib/typescript/hooks/useConnectedAccounts.d.ts +0 -11
- package/lib/typescript/hooks/useConnectedAccounts.d.ts.map +0 -1
- package/lib/typescript/hooks/useUserConnections.d.ts +0 -12
- package/lib/typescript/hooks/useUserConnections.d.ts.map +0 -1
- package/lib/typescript/services/apiClient.d.ts +0 -91
- package/lib/typescript/services/apiClient.d.ts.map +0 -1
- package/lib/typescript/services/authService.d.ts +0 -216
- package/lib/typescript/services/authService.d.ts.map +0 -1
- package/lib/typescript/services/biometricPinService.d.ts +0 -29
- package/lib/typescript/services/biometricPinService.d.ts.map +0 -1
- package/lib/typescript/services/connectedAccountsService.d.ts +0 -56
- package/lib/typescript/services/connectedAccountsService.d.ts.map +0 -1
- package/lib/typescript/services/googleAuthService.d.ts +0 -63
- package/lib/typescript/services/googleAuthService.d.ts.map +0 -1
- package/lib/typescript/services/imageCompressionService.d.ts +0 -37
- package/lib/typescript/services/imageCompressionService.d.ts.map +0 -1
- package/lib/typescript/services/jwtStorageService.d.ts +0 -86
- package/lib/typescript/services/jwtStorageService.d.ts.map +0 -1
- package/lib/typescript/services/mobileTrainingService.d.ts +0 -45
- package/lib/typescript/services/mobileTrainingService.d.ts.map +0 -1
- package/lib/typescript/services/pinEncryptionService.d.ts +0 -17
- package/lib/typescript/services/pinEncryptionService.d.ts.map +0 -1
- package/lib/typescript/services/pinStorageUtils.d.ts +0 -25
- package/lib/typescript/services/pinStorageUtils.d.ts.map +0 -1
- package/lib/typescript/services/storageService.d.ts +0 -128
- package/lib/typescript/services/storageService.d.ts.map +0 -1
- package/lib/typescript/services/trainingApiHelpers.d.ts +0 -38
- package/lib/typescript/services/trainingApiHelpers.d.ts.map +0 -1
- package/lib/typescript/services/userConnectionsService.d.ts +0 -90
- package/lib/typescript/services/userConnectionsService.d.ts.map +0 -1
- package/lib/typescript/services/youtubeMigrationService.d.ts +0 -12
- package/lib/typescript/services/youtubeMigrationService.d.ts.map +0 -1
- package/lib/typescript/theme/index.d.ts +0 -416
- package/lib/typescript/theme/index.d.ts.map +0 -1
- package/lib/typescript/utils/eventUtils.d.ts +0 -108
- package/lib/typescript/utils/eventUtils.d.ts.map +0 -1
- package/lib/typescript/utils/haptics.d.ts +0 -11
- package/lib/typescript/utils/haptics.d.ts.map +0 -1
- package/lib/typescript/utils/imagePreloader.d.ts +0 -2
- package/lib/typescript/utils/imagePreloader.d.ts.map +0 -1
- 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 +0 -3
- package/src/assets/images/EnochE.svg +0 -19
- 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 +0 -3
- package/src/assets/images/Personalitytraits.svg +0 -3
- package/src/assets/images/Redditicon.png +0 -0
- package/src/assets/images/Userpreferences.svg +0 -3
- package/src/assets/images/YouTubeicon3.png +0 -0
- package/src/assets/images/arrow.svg +0 -20
- package/src/assets/images/basicproficon.svg +0 -43
- package/src/assets/images/basicprofile.svg +0 -3
- package/src/assets/images/checkmark.svg +0 -4
- package/src/assets/images/contentanalysis.svg +0 -3
- package/src/assets/images/contenticon.svg +0 -23
- 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 +0 -18
- package/src/assets/images/x-close.svg +0 -3
- package/src/components/BodyText.tsx +0 -33
- package/src/components/BrandMark.tsx +0 -62
- package/src/components/CodeInput.tsx +0 -32
- package/src/components/EmailInput.tsx +0 -31
- package/src/components/ExistingUserDataConfirmation.tsx +0 -507
- package/src/components/GoogleButton.tsx +0 -55
- package/src/components/HeadingGroup.tsx +0 -49
- package/src/components/ModalHeader.tsx +0 -125
- package/src/components/ModalSheet.tsx +0 -57
- package/src/components/OnairosSignInButton.tsx +0 -130
- package/src/components/PersonaImage.tsx +0 -79
- package/src/components/PersonaLoadingScreen.tsx +0 -201
- package/src/components/PersonalizationConsentScreen.tsx +0 -410
- package/src/components/PinCreationScreen.tsx +0 -492
- package/src/components/PlatformConnectorsStep.tsx +0 -892
- package/src/components/PlatformToggle.tsx +0 -226
- package/src/components/PrimaryButton.tsx +0 -214
- package/src/components/SignInMatchAnimation.tsx +0 -225
- package/src/components/SignInStep.tsx +0 -217
- package/src/components/VerificationStep.tsx +0 -198
- package/src/components/WelcomeScreen.tsx +0 -473
- package/src/components/icons/Basicproficon.tsx +0 -30
- package/src/components/icons/Basicprofile.tsx +0 -17
- package/src/components/icons/Checkbox.tsx +0 -17
- package/src/components/icons/Checkmark.tsx +0 -24
- package/src/components/icons/Contentanalysis.tsx +0 -17
- package/src/components/icons/Contenticon.tsx +0 -30
- package/src/components/icons/EnochE.tsx +0 -39
- package/src/components/icons/Personalityicon.tsx +0 -22
- package/src/components/icons/Personalityprofile.tsx +0 -17
- package/src/components/icons/Personalitytraits.tsx +0 -17
- package/src/components/icons/Userpreferences.tsx +0 -17
- package/src/components/icons/index.ts +0 -12
- package/src/config/api.ts +0 -25
- package/src/context/AuthContext.tsx +0 -393
- package/src/hooks/useConnectedAccounts.ts +0 -139
- package/src/hooks/useUserConnections.ts +0 -166
- package/src/services/apiClient.ts +0 -337
- package/src/services/authService.ts +0 -1008
- package/src/services/biometricPinService.ts +0 -193
- package/src/services/connectedAccountsService.ts +0 -290
- package/src/services/googleAuthService.ts +0 -279
- package/src/services/imageCompressionService.ts +0 -303
- package/src/services/jwtStorageService.ts +0 -257
- package/src/services/mobileTrainingService.ts +0 -204
- package/src/services/pinEncryptionService.ts +0 -76
- package/src/services/pinStorageUtils.ts +0 -97
- package/src/services/storageService.ts +0 -452
- package/src/services/trainingApiHelpers.ts +0 -67
- package/src/services/userConnectionsService.ts +0 -557
- package/src/services/youtubeMigrationService.ts +0 -454
- package/src/theme/index.ts +0 -239
- package/src/utils/eventUtils.ts +0 -303
- package/src/utils/haptics.ts +0 -59
- package/src/utils/imagePreloader.ts +0 -2
|
@@ -1,557 +0,0 @@
|
|
|
1
|
-
import { getAuthToken, getUserProfile, ensureAuthentication } from './authService';
|
|
2
|
-
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
3
|
-
import { compressProfilePicture } from './imageCompressionService';
|
|
4
|
-
import { API_CONFIG, getApiHeaders, getAuthHeaders } from '../config/api';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Get user identifier (ID or username) using multiple fallback methods
|
|
8
|
-
* Backend now supports both user IDs and usernames for profile picture uploads
|
|
9
|
-
* @returns Promise<string | null>
|
|
10
|
-
*/
|
|
11
|
-
const getUserIdWithFallbacks = async (): Promise<string | null> => {
|
|
12
|
-
try {
|
|
13
|
-
console.log('🔍 [USER ID] Attempting to get user identifier with multiple methods...');
|
|
14
|
-
|
|
15
|
-
// Method 1: Try getUserProfile first
|
|
16
|
-
try {
|
|
17
|
-
const userProfile = await getUserProfile();
|
|
18
|
-
if (userProfile?.id && userProfile.id !== 'fallback_user') {
|
|
19
|
-
console.log('✅ [USER ID] Got user ID from getUserProfile:', userProfile.id);
|
|
20
|
-
return userProfile.id;
|
|
21
|
-
} else {
|
|
22
|
-
console.warn('⚠️ [USER ID] getUserProfile returned invalid/fallback ID:', userProfile?.id);
|
|
23
|
-
}
|
|
24
|
-
} catch (error) {
|
|
25
|
-
console.warn('⚠️ [USER ID] getUserProfile failed:', error);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// Method 2: Check AsyncStorage for stored user ID (but validate it)
|
|
29
|
-
const storedUserId = await AsyncStorage.getItem('user_id');
|
|
30
|
-
if (storedUserId && storedUserId !== 'marker' && storedUserId !== 'fallback_user' && storedUserId.length > 10) {
|
|
31
|
-
console.log('✅ [USER ID] Got user ID from AsyncStorage:', storedUserId);
|
|
32
|
-
return storedUserId;
|
|
33
|
-
} else if (storedUserId) {
|
|
34
|
-
console.warn('⚠️ [USER ID] Invalid stored user ID found:', storedUserId);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// Method 3: Try stored username (backend now supports usernames!)
|
|
38
|
-
const storedUsername = await AsyncStorage.getItem('onairos_username');
|
|
39
|
-
if (storedUsername && storedUsername.length > 2 && storedUsername !== 'marker') {
|
|
40
|
-
console.log('✅ [USER ID] Got username from AsyncStorage (backend supports usernames):', storedUsername);
|
|
41
|
-
return storedUsername;
|
|
42
|
-
} else if (storedUsername) {
|
|
43
|
-
console.warn('⚠️ [USER ID] Invalid stored username found:', storedUsername);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Method 4: Try stored email as username fallback
|
|
47
|
-
const storedEmail = await AsyncStorage.getItem('user_email');
|
|
48
|
-
if (storedEmail && storedEmail.includes('@') && storedEmail.length > 5) {
|
|
49
|
-
console.log('✅ [USER ID] Got email from AsyncStorage (backend supports usernames):', storedEmail);
|
|
50
|
-
return storedEmail;
|
|
51
|
-
} else if (storedEmail) {
|
|
52
|
-
console.warn('⚠️ [USER ID] Invalid stored email found:', storedEmail);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// Method 5: Check JWT token for user info (but don't decode, just log)
|
|
56
|
-
try {
|
|
57
|
-
const token = await getAuthToken();
|
|
58
|
-
if (token && token.split('.').length === 3) {
|
|
59
|
-
console.log('🔍 [USER ID] JWT token found but no local user identifier - backend should handle via token');
|
|
60
|
-
// Don't try to decode JWT here - let the backend handle it
|
|
61
|
-
}
|
|
62
|
-
} catch (error) {
|
|
63
|
-
console.warn('⚠️ [USER ID] JWT token access failed:', error);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
console.error('❌ [USER ID] No valid user identifier found');
|
|
67
|
-
return null;
|
|
68
|
-
|
|
69
|
-
} catch (error) {
|
|
70
|
-
console.error('❌ [USER ID] Error getting user identifier:', error);
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
// Import images for fallback connections
|
|
76
|
-
const samImage = require('../assets/images/persona1.png');
|
|
77
|
-
const anandImage = require('../assets/images/persona2.png');
|
|
78
|
-
const chrisImage = require('../assets/images/persona3.png');
|
|
79
|
-
const katieImage = require('../assets/images/persona4.png');
|
|
80
|
-
const yanniImage = require('../assets/images/persona5.png');
|
|
81
|
-
|
|
82
|
-
const API_BASE_URL = API_CONFIG.BASE_URL;
|
|
83
|
-
|
|
84
|
-
// Interface for API connection response - updated to match actual backend format
|
|
85
|
-
export interface APIConnection {
|
|
86
|
-
id: string;
|
|
87
|
-
name: string;
|
|
88
|
-
description: string;
|
|
89
|
-
photo: string;
|
|
90
|
-
bio: string;
|
|
91
|
-
interests: string[];
|
|
92
|
-
mutualConnections: number;
|
|
93
|
-
compatibility: number;
|
|
94
|
-
conversationStarters: string[];
|
|
95
|
-
// UI REQUIRED FIELDS - These are actually rendered in ProfileDetailScreen
|
|
96
|
-
sharedPassions?: string[];
|
|
97
|
-
complementaryQualities?: string[];
|
|
98
|
-
meaningfulCoincidences?: Array<{
|
|
99
|
-
type: string;
|
|
100
|
-
description: string;
|
|
101
|
-
rarity: string;
|
|
102
|
-
}>;
|
|
103
|
-
mutualConnectionsList?: Array<{
|
|
104
|
-
name: string;
|
|
105
|
-
photo: string;
|
|
106
|
-
context: string;
|
|
107
|
-
}>;
|
|
108
|
-
// Optional metadata fields
|
|
109
|
-
status?: string;
|
|
110
|
-
connectionType?: string;
|
|
111
|
-
similarityScore?: number;
|
|
112
|
-
commonPreferences?: string[];
|
|
113
|
-
eventCode?: string;
|
|
114
|
-
matchedAt?: string;
|
|
115
|
-
_id?: string;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// Interface for API response
|
|
119
|
-
export interface UserConnectionsResponse {
|
|
120
|
-
success: boolean;
|
|
121
|
-
connections: APIConnection[];
|
|
122
|
-
source: 'database' | 'samples';
|
|
123
|
-
count: number;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// Interface for the transformed connection used by UI
|
|
127
|
-
export interface Connection {
|
|
128
|
-
id: number;
|
|
129
|
-
name: string;
|
|
130
|
-
description: string;
|
|
131
|
-
photo: any; // Image source (can be URL string or require() object)
|
|
132
|
-
bio: string;
|
|
133
|
-
interests: string[];
|
|
134
|
-
mutualConnections: number;
|
|
135
|
-
compatibility: number;
|
|
136
|
-
conversationStarters: string[];
|
|
137
|
-
sharedPassions: string[];
|
|
138
|
-
complementaryQualities: string[];
|
|
139
|
-
meaningfulCoincidences: Array<{
|
|
140
|
-
type: string;
|
|
141
|
-
description: string;
|
|
142
|
-
rarity: string;
|
|
143
|
-
}>;
|
|
144
|
-
mutualConnectionsList?: Array<{
|
|
145
|
-
name: string;
|
|
146
|
-
photo: any;
|
|
147
|
-
context: string;
|
|
148
|
-
}>;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Transform API connection to UI connection format
|
|
153
|
-
*/
|
|
154
|
-
const transformAPIConnection = (apiConnection: APIConnection): Connection => {
|
|
155
|
-
console.log('🔄 Transforming API connection:', {
|
|
156
|
-
id: apiConnection.id,
|
|
157
|
-
name: apiConnection.name,
|
|
158
|
-
description: apiConnection.description,
|
|
159
|
-
hasPhoto: !!apiConnection.photo,
|
|
160
|
-
photoLength: apiConnection.photo?.length,
|
|
161
|
-
interests: apiConnection.interests,
|
|
162
|
-
sharedPassions: apiConnection.sharedPassions,
|
|
163
|
-
complementaryQualities: apiConnection.complementaryQualities,
|
|
164
|
-
compatibility: apiConnection.compatibility
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
return {
|
|
168
|
-
id: parseInt(apiConnection.id) || parseInt(apiConnection._id || '') || Math.random() * 1000, // Try id first, then _id, then random
|
|
169
|
-
name: apiConnection.name || 'Unknown User',
|
|
170
|
-
description: apiConnection.description || 'Looking to connect',
|
|
171
|
-
photo: apiConnection.photo || '', // This will be a URL string from API, or empty string
|
|
172
|
-
bio: apiConnection.bio || '',
|
|
173
|
-
interests: apiConnection.interests || [],
|
|
174
|
-
mutualConnections: apiConnection.mutualConnections || 0,
|
|
175
|
-
compatibility: apiConnection.compatibility || 0,
|
|
176
|
-
conversationStarters: apiConnection.conversationStarters || ['Hi! Nice to meet you.'],
|
|
177
|
-
// UI REQUIRED FIELDS - These are actually rendered in ProfileDetailScreen
|
|
178
|
-
sharedPassions: apiConnection.sharedPassions || [], // Don't fallback to interests since we now have separate Interests section
|
|
179
|
-
complementaryQualities: apiConnection.complementaryQualities || [],
|
|
180
|
-
meaningfulCoincidences: apiConnection.meaningfulCoincidences || [],
|
|
181
|
-
mutualConnectionsList: apiConnection.mutualConnectionsList?.map(mutual => ({
|
|
182
|
-
name: mutual.name,
|
|
183
|
-
photo: mutual.photo, // URL string from API
|
|
184
|
-
context: mutual.context
|
|
185
|
-
})) || []
|
|
186
|
-
};
|
|
187
|
-
};
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Get user connections by username
|
|
191
|
-
* @param username - Username to fetch connections for
|
|
192
|
-
* @returns Promise<Connection[]>
|
|
193
|
-
*/
|
|
194
|
-
export const getUserConnectionsByUsername = async (username: string): Promise<Connection[]> => {
|
|
195
|
-
try {
|
|
196
|
-
console.log('🔍 Fetching connections for username:', username);
|
|
197
|
-
|
|
198
|
-
const token = await getAuthToken();
|
|
199
|
-
|
|
200
|
-
// Enhanced token validation and warning
|
|
201
|
-
if (!token) {
|
|
202
|
-
console.warn('⚠️ [CONNECTIONS API] No authentication token available for connections request');
|
|
203
|
-
console.warn('⚠️ [CONNECTIONS API] This may result in limited or cached data from backend');
|
|
204
|
-
return []; // Return empty array instead of making unauthenticated request
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
console.log('✅ [CONNECTIONS API] Using authenticated request with token:', `${token.substring(0, 20)}...`);
|
|
208
|
-
|
|
209
|
-
// Use the same pattern as other working APIs - import and call with token
|
|
210
|
-
// const { getUserConnectionsByUsername: apiCall } = await import('../../services/api'); // Commented out - path issue
|
|
211
|
-
const response = { success: false, message: 'API function not available', connections: [], source: 'mock' };
|
|
212
|
-
|
|
213
|
-
console.log('✅ API connections fetched by username:', {
|
|
214
|
-
success: response.success,
|
|
215
|
-
connectionsCount: response.connections?.length || 0,
|
|
216
|
-
source: response.source,
|
|
217
|
-
firstConnection: response.connections?.[0] ? {
|
|
218
|
-
id: response.connections[0].id,
|
|
219
|
-
name: response.connections[0].name,
|
|
220
|
-
description: response.connections[0].description
|
|
221
|
-
} : null
|
|
222
|
-
});
|
|
223
|
-
|
|
224
|
-
if (response.success && response.connections && response.connections.length > 0) {
|
|
225
|
-
const transformedConnections = response.connections.map(transformAPIConnection);
|
|
226
|
-
console.log('🔄 Transformed connections by username:', transformedConnections.length);
|
|
227
|
-
return transformedConnections;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
return [];
|
|
231
|
-
|
|
232
|
-
} catch (error) {
|
|
233
|
-
console.log('❌ Error fetching connections by username:', error);
|
|
234
|
-
console.log('❌ [NETWORK ERROR] Full error details:', JSON.stringify(error, Object.getOwnPropertyNames(error)));
|
|
235
|
-
return [];
|
|
236
|
-
}
|
|
237
|
-
};
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* Get user connections by user ID
|
|
241
|
-
* @param userId - User ID to fetch connections for
|
|
242
|
-
* @returns Promise<Connection[]>
|
|
243
|
-
*/
|
|
244
|
-
export const getUserConnectionsByUserId = async (userId: string): Promise<Connection[]> => {
|
|
245
|
-
try {
|
|
246
|
-
console.log('🔍 Fetching connections for userId:', userId);
|
|
247
|
-
|
|
248
|
-
const token = await getAuthToken();
|
|
249
|
-
|
|
250
|
-
if (!token) {
|
|
251
|
-
console.warn('⚠️ [CONNECTIONS API] No authentication token available for user ID connections request');
|
|
252
|
-
return []; // Return empty array instead of making unauthenticated request
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
console.log('✅ [CONNECTIONS API] Using authenticated request with token:', `${token.substring(0, 20)}...`);
|
|
256
|
-
|
|
257
|
-
// Use the same pattern as other working APIs - import and call with token
|
|
258
|
-
// const { getUserConnections: apiCall } = await import('../../services/api'); // Commented out - path issue
|
|
259
|
-
const response = { success: false, message: 'API function not available', connections: [], source: 'mock' };
|
|
260
|
-
|
|
261
|
-
console.log('✅ API connections fetched by userId:', {
|
|
262
|
-
success: response.success,
|
|
263
|
-
connectionsCount: response.connections?.length || 0,
|
|
264
|
-
source: response.source,
|
|
265
|
-
firstConnection: response.connections?.[0] ? {
|
|
266
|
-
id: response.connections[0].id,
|
|
267
|
-
name: response.connections[0].name,
|
|
268
|
-
description: response.connections[0].description
|
|
269
|
-
} : null
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
if (response.success && response.connections && response.connections.length > 0) {
|
|
273
|
-
const transformedConnections = response.connections.map(transformAPIConnection);
|
|
274
|
-
console.log('🔄 Transformed connections by userId:', transformedConnections.length);
|
|
275
|
-
return transformedConnections;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
return [];
|
|
279
|
-
|
|
280
|
-
} catch (error) {
|
|
281
|
-
console.log('❌ Error fetching connections by userId:', error);
|
|
282
|
-
console.log('❌ [NETWORK ERROR FALLBACK] Full error details:', JSON.stringify(error, Object.getOwnPropertyNames(error)));
|
|
283
|
-
return [];
|
|
284
|
-
}
|
|
285
|
-
};
|
|
286
|
-
|
|
287
|
-
/**
|
|
288
|
-
* Get user connections with automatic detection of user info
|
|
289
|
-
* PRIORITIZES the working email/username endpoint over the failing user ID endpoint
|
|
290
|
-
* @returns Promise<Connection[]>
|
|
291
|
-
*/
|
|
292
|
-
export const getUserConnections = async (): Promise<Connection[]> => {
|
|
293
|
-
try {
|
|
294
|
-
// ENHANCED DEBUG: Check authentication status first
|
|
295
|
-
await ensureAuthentication('USER_CONNECTIONS');
|
|
296
|
-
|
|
297
|
-
// ENHANCED DEBUG: Check what user data we actually have available
|
|
298
|
-
console.log('🔍 [USER DEBUG] Checking all available user data sources...');
|
|
299
|
-
|
|
300
|
-
// Check AsyncStorage for user data
|
|
301
|
-
const storedUsername = await AsyncStorage.getItem('onairos_username');
|
|
302
|
-
const storedEmail = await AsyncStorage.getItem('user_email');
|
|
303
|
-
const storedUserId = await AsyncStorage.getItem('user_id');
|
|
304
|
-
const authToken = await AsyncStorage.getItem('auth_token');
|
|
305
|
-
|
|
306
|
-
console.log('🔍 [USER DEBUG] AsyncStorage data:', {
|
|
307
|
-
storedUsername,
|
|
308
|
-
storedEmail,
|
|
309
|
-
storedUserId,
|
|
310
|
-
hasAuthToken: !!authToken,
|
|
311
|
-
authTokenPreview: authToken ? `${authToken.substring(0, 20)}...` : 'none'
|
|
312
|
-
});
|
|
313
|
-
|
|
314
|
-
// First try to get user profile to determine username/userId
|
|
315
|
-
const userProfile = await getUserProfile();
|
|
316
|
-
console.log('🎯 getUserConnections - User profile:', {
|
|
317
|
-
hasId: !!userProfile?.id,
|
|
318
|
-
hasEmail: !!userProfile?.email,
|
|
319
|
-
email: userProfile?.email,
|
|
320
|
-
id: userProfile?.id
|
|
321
|
-
});
|
|
322
|
-
|
|
323
|
-
// FALLBACK: If getUserProfile fails, try to use stored data directly
|
|
324
|
-
let userEmail = userProfile?.email;
|
|
325
|
-
let userId = userProfile?.id;
|
|
326
|
-
|
|
327
|
-
if (!userEmail && storedUsername) {
|
|
328
|
-
console.log('🔄 [USER DEBUG] Using stored username as email fallback:', storedUsername);
|
|
329
|
-
userEmail = storedUsername;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
if (!userEmail && storedEmail) {
|
|
333
|
-
console.log('🔄 [USER DEBUG] Using stored email as fallback:', storedEmail);
|
|
334
|
-
userEmail = storedEmail;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
if (!userId && storedUserId) {
|
|
338
|
-
console.log('🔄 [USER DEBUG] Using stored user ID as fallback:', storedUserId);
|
|
339
|
-
userId = storedUserId;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
console.log('🎯 [USER DEBUG] Final user identifiers to use:', {
|
|
343
|
-
userEmail,
|
|
344
|
-
userId,
|
|
345
|
-
willTryEmail: !!userEmail,
|
|
346
|
-
willTryUserId: !!userId
|
|
347
|
-
});
|
|
348
|
-
|
|
349
|
-
// PRIORITY 1: Try by email/username first (this endpoint is working!)
|
|
350
|
-
if (userEmail) {
|
|
351
|
-
console.log('🎯 PRIORITY: Attempting to fetch connections by email (working endpoint):', userEmail);
|
|
352
|
-
const connections = await getUserConnectionsByUsername(userEmail);
|
|
353
|
-
if (connections.length > 0) {
|
|
354
|
-
console.log('✅ Successfully got connections by email:', connections.length);
|
|
355
|
-
return connections;
|
|
356
|
-
}
|
|
357
|
-
console.log('⚠️ No connections found by email, trying user ID...');
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
// PRIORITY 2: Try by user ID only if email fails (this endpoint has ObjectId issues)
|
|
361
|
-
if (userId) {
|
|
362
|
-
console.log('🎯 FALLBACK: Attempting to fetch connections by user ID:', userId);
|
|
363
|
-
const connections = await getUserConnectionsByUserId(userId);
|
|
364
|
-
if (connections.length > 0) {
|
|
365
|
-
console.log('✅ Successfully got connections by user ID:', connections.length);
|
|
366
|
-
return connections;
|
|
367
|
-
}
|
|
368
|
-
console.log('⚠️ No connections found by user ID');
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
console.log('⚠️ No user identifier available or no connections found');
|
|
372
|
-
return [];
|
|
373
|
-
|
|
374
|
-
} catch (error) {
|
|
375
|
-
console.log('❌ Error in getUserConnections:', error);
|
|
376
|
-
return [];
|
|
377
|
-
}
|
|
378
|
-
};
|
|
379
|
-
|
|
380
|
-
/**
|
|
381
|
-
* Upload profile picture using base64 data with compression
|
|
382
|
-
* The backend identifies the user from the JWT token, no need for user ID in URL
|
|
383
|
-
* @param imageUri - Image URI (file:// or base64)
|
|
384
|
-
* @param fileType - File type (jpg, png) - optional, will be extracted from imageUri if not provided
|
|
385
|
-
* @returns Promise<{ success: boolean; photoUrl?: string; error?: string }>
|
|
386
|
-
*/
|
|
387
|
-
export const uploadProfilePicture = async (
|
|
388
|
-
imageUri: string,
|
|
389
|
-
fileType?: string
|
|
390
|
-
): Promise<{ success: boolean; photoUrl?: string; error?: string }> => {
|
|
391
|
-
try {
|
|
392
|
-
console.log('🔍 [UPLOAD] Starting profile picture upload process...');
|
|
393
|
-
console.log('🔍 [UPLOAD] Input parameters:', {
|
|
394
|
-
imageUri: imageUri.substring(0, 100) + '...', // Show first 100 chars
|
|
395
|
-
imageUriLength: imageUri.length,
|
|
396
|
-
providedFileType: fileType,
|
|
397
|
-
isFileUri: imageUri.startsWith('file://'),
|
|
398
|
-
isHttpUri: imageUri.startsWith('http'),
|
|
399
|
-
isBase64: !imageUri.startsWith('file://') && !imageUri.startsWith('http')
|
|
400
|
-
});
|
|
401
|
-
|
|
402
|
-
const token = await getAuthToken();
|
|
403
|
-
|
|
404
|
-
if (!token) {
|
|
405
|
-
console.error('❌ [UPLOAD] No authentication token available');
|
|
406
|
-
throw new Error('No authentication token available');
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
console.log('✅ [UPLOAD] Authentication token found:', `${token.substring(0, 20)}...`);
|
|
410
|
-
|
|
411
|
-
// Log token details for debugging
|
|
412
|
-
console.log('🔍 [UPLOAD] Token details:', {
|
|
413
|
-
tokenLength: token.length,
|
|
414
|
-
tokenPreview: `${token.substring(0, 20)}...`,
|
|
415
|
-
hasBearer: token.startsWith('eyJ'),
|
|
416
|
-
isJWT: token.split('.').length === 3
|
|
417
|
-
});
|
|
418
|
-
|
|
419
|
-
let imageData: string;
|
|
420
|
-
let finalFileType: string;
|
|
421
|
-
|
|
422
|
-
// Extract file type from imageUri if not provided
|
|
423
|
-
if (!fileType) {
|
|
424
|
-
if (imageUri.startsWith('file://') || imageUri.startsWith('http')) {
|
|
425
|
-
// Extract file extension from file path or URL
|
|
426
|
-
const urlParts = imageUri.split('.');
|
|
427
|
-
const extension = urlParts[urlParts.length - 1].toLowerCase();
|
|
428
|
-
|
|
429
|
-
// Handle common image extensions
|
|
430
|
-
if (['jpg', 'jpeg', 'png', 'gif', 'webp'].includes(extension)) {
|
|
431
|
-
finalFileType = extension === 'jpeg' ? 'jpg' : extension;
|
|
432
|
-
} else {
|
|
433
|
-
finalFileType = 'jpg'; // Default fallback
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
console.log('🔍 [UPLOAD] Extracted file type from URI:', finalFileType, 'from', imageUri.substring(0, 100));
|
|
437
|
-
} else {
|
|
438
|
-
finalFileType = 'jpg'; // Default for base64 data
|
|
439
|
-
console.log('🔍 [UPLOAD] Using default file type for base64 data:', finalFileType);
|
|
440
|
-
}
|
|
441
|
-
} else {
|
|
442
|
-
// Clean up provided file type
|
|
443
|
-
finalFileType = fileType.toLowerCase().replace('.', '');
|
|
444
|
-
console.log('🔍 [UPLOAD] Using provided file type:', finalFileType);
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
// Prepare image data
|
|
448
|
-
if (!imageUri.startsWith('file://') && !imageUri.startsWith('http')) {
|
|
449
|
-
// Assume it's already base64 data
|
|
450
|
-
console.log('📸 [UPLOAD] Using provided base64 data');
|
|
451
|
-
|
|
452
|
-
// Validate that it looks like base64 image data
|
|
453
|
-
if (imageUri.length < 100 || !/^[A-Za-z0-9+/]/.test(imageUri)) {
|
|
454
|
-
console.error('❌ [UPLOAD] Invalid base64 data detected:', {
|
|
455
|
-
length: imageUri.length,
|
|
456
|
-
preview: imageUri.substring(0, 50),
|
|
457
|
-
looksLikeBase64: /^[A-Za-z0-9+/]/.test(imageUri)
|
|
458
|
-
});
|
|
459
|
-
throw new Error('Invalid image data provided - expected base64 encoded image');
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
imageData = imageUri;
|
|
463
|
-
} else {
|
|
464
|
-
// It's a file URI, need to compress and convert to base64
|
|
465
|
-
console.log('📸 [UPLOAD] Converting file URI to base64...');
|
|
466
|
-
const compressedResult = await compressProfilePicture(imageUri);
|
|
467
|
-
|
|
468
|
-
// Check if compression was successful
|
|
469
|
-
if (!compressedResult.success || !compressedResult.base64) {
|
|
470
|
-
console.error('❌ [UPLOAD] Image compression failed:', compressedResult.error);
|
|
471
|
-
throw new Error(compressedResult.error || 'Failed to compress image');
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
console.log(`✅ [UPLOAD] Image compressed: ${compressedResult.sizeKB}KB (${compressedResult.compressionRatio?.toFixed(2)}x compression)`);
|
|
475
|
-
imageData = compressedResult.base64;
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
// Final validation of image data and file type
|
|
479
|
-
console.log('🔍 [UPLOAD] Final upload data:', {
|
|
480
|
-
imageDataLength: imageData.length,
|
|
481
|
-
imageDataPreview: imageData.substring(0, 50) + '...',
|
|
482
|
-
fileType: finalFileType,
|
|
483
|
-
isValidBase64: /^[A-Za-z0-9+/]/.test(imageData),
|
|
484
|
-
hasValidLength: imageData.length > 1000 // Should be substantial for an image
|
|
485
|
-
});
|
|
486
|
-
|
|
487
|
-
// Now try to upload using the correct backend endpoint
|
|
488
|
-
console.log('📤 [UPLOAD] Trying user-specific profile picture endpoint (backend supports usernames)...');
|
|
489
|
-
|
|
490
|
-
// Get the user identifier (could be username or user ID - backend now supports both)
|
|
491
|
-
const userIdentifier = await getUserIdWithFallbacks();
|
|
492
|
-
if (!userIdentifier) {
|
|
493
|
-
console.error('❌ [UPLOAD] Cannot determine user identifier');
|
|
494
|
-
throw new Error('Unable to determine user identifier - please ensure you are logged in properly');
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
console.log('📸 [UPLOAD] Uploading profile picture for user identifier:', userIdentifier);
|
|
498
|
-
|
|
499
|
-
const response = await fetch(`${API_BASE_URL}/enoch/users/${userIdentifier}/profile-picture/base64`, {
|
|
500
|
-
method: 'POST',
|
|
501
|
-
headers: getAuthHeaders(token),
|
|
502
|
-
body: JSON.stringify({
|
|
503
|
-
imageData,
|
|
504
|
-
fileType: finalFileType
|
|
505
|
-
})
|
|
506
|
-
});
|
|
507
|
-
|
|
508
|
-
const responseData = await response.json();
|
|
509
|
-
console.log('📡 [UPLOAD] Backend response:', {
|
|
510
|
-
status: response.status,
|
|
511
|
-
success: responseData.success,
|
|
512
|
-
photoUrl: responseData.photoUrl,
|
|
513
|
-
error: responseData.error,
|
|
514
|
-
userIdentifier: userIdentifier
|
|
515
|
-
});
|
|
516
|
-
|
|
517
|
-
if (response.ok && responseData.success) {
|
|
518
|
-
console.log('✅ [UPLOAD] Profile picture uploaded successfully');
|
|
519
|
-
return {
|
|
520
|
-
success: true,
|
|
521
|
-
photoUrl: responseData.photoUrl || responseData.url
|
|
522
|
-
};
|
|
523
|
-
} else {
|
|
524
|
-
console.error('❌ [UPLOAD] Profile picture upload failed:', responseData.error || 'Unknown error');
|
|
525
|
-
|
|
526
|
-
// Enhanced error logging for debugging
|
|
527
|
-
if (response.status === 403) {
|
|
528
|
-
console.error('🚫 [UPLOAD] 403 Forbidden - Authentication issue detected');
|
|
529
|
-
console.error('🔍 [UPLOAD] Debug info:', {
|
|
530
|
-
userIdentifier: userIdentifier,
|
|
531
|
-
tokenPreview: `${token.substring(0, 20)}...`,
|
|
532
|
-
tokenLength: token.length,
|
|
533
|
-
responseError: responseData.error
|
|
534
|
-
});
|
|
535
|
-
} else if (response.status === 400) {
|
|
536
|
-
console.error('🚫 [UPLOAD] 400 Bad Request - Data format issue detected');
|
|
537
|
-
console.error('🔍 [UPLOAD] Debug info:', {
|
|
538
|
-
imageDataLength: imageData.length,
|
|
539
|
-
fileType: finalFileType,
|
|
540
|
-
responseError: responseData.error
|
|
541
|
-
});
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
return {
|
|
545
|
-
success: false,
|
|
546
|
-
error: responseData.error || `HTTP ${response.status}: ${response.statusText}`
|
|
547
|
-
};
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
} catch (error) {
|
|
551
|
-
console.error('❌ [UPLOAD] Error uploading profile picture:', error);
|
|
552
|
-
return {
|
|
553
|
-
success: false,
|
|
554
|
-
error: error instanceof Error ? error.message : 'Unknown error occurred'
|
|
555
|
-
};
|
|
556
|
-
}
|
|
557
|
-
};
|