@onairos/react-native 3.7.2 → 3.7.3
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 +219 -9
- package/lib/commonjs/components/BodyText.js +27 -9
- package/lib/commonjs/components/BrandMark.js +111 -10
- package/lib/commonjs/components/CodeInput.js +116 -9
- package/lib/commonjs/components/EmailInput.js +30 -8
- package/lib/commonjs/components/GoogleButton.js +56 -9
- package/lib/commonjs/components/HeadingGroup.js +43 -9
- package/lib/commonjs/components/LLMDataInputModal.js +664 -14
- package/lib/commonjs/components/ModalHeader.js +99 -9
- package/lib/commonjs/components/ModalSheet.js +47 -9
- package/lib/commonjs/components/Onairos.js +380 -14
- package/lib/commonjs/components/OnairosButton.js +313 -13
- package/lib/commonjs/components/OnairosSignInButton.js +130 -12
- package/lib/commonjs/components/Overlay.js +465 -13
- package/lib/commonjs/components/PersonaImage.js +137 -10
- package/lib/commonjs/components/PersonaLoadingScreen.js +318 -12
- package/lib/commonjs/components/PersonalizationConsentScreen.js +467 -13
- package/lib/commonjs/components/PinCreationScreen.js +403 -12
- package/lib/commonjs/components/PinInput.js +464 -9
- package/lib/commonjs/components/PlatformConnectorsStep.js +1311 -23
- package/lib/commonjs/components/PlatformList.js +137 -10
- package/lib/commonjs/components/PlatformToggle.js +180 -9
- package/lib/commonjs/components/PrimaryButton.js +180 -10
- package/lib/commonjs/components/SignInMatchAnimation.js +197 -9
- package/lib/commonjs/components/SignInStep.js +345 -12
- package/lib/commonjs/components/UniversalOnboarding.js +2780 -30
- package/lib/commonjs/components/VerificationStep.js +176 -11
- package/lib/commonjs/components/WelcomeScreen.js +461 -22
- package/lib/commonjs/components/icons/Basicproficon.js +37 -8
- package/lib/commonjs/components/icons/Basicprofile.js +21 -8
- package/lib/commonjs/components/icons/Checkbox.js +21 -8
- package/lib/commonjs/components/icons/Checkmark.js +27 -8
- package/lib/commonjs/components/icons/Contentanalysis.js +21 -8
- package/lib/commonjs/components/icons/Contenticon.js +39 -8
- package/lib/commonjs/components/icons/EnochE.js +41 -8
- package/lib/commonjs/components/icons/Personalityicon.js +30 -8
- package/lib/commonjs/components/icons/Personalityprofile.js +21 -8
- package/lib/commonjs/components/icons/Personalitytraits.js +21 -8
- package/lib/commonjs/components/icons/Userpreferences.js +21 -8
- package/lib/commonjs/components/icons/index.js +84 -17
- package/lib/commonjs/components/onboarding/OAuthWebView.js +1754 -18
- package/lib/commonjs/components/onboarding/OnboardingHeader.js +74 -10
- package/lib/commonjs/components/onboarding/PinInput.js +283 -10
- package/lib/commonjs/components/onboarding/PlatformConnector.js +249 -11
- package/lib/commonjs/config/PLATFORM_APIS.md +849 -0
- package/lib/commonjs/config/api.js +56 -7
- package/lib/commonjs/constants/index.js +120 -7
- package/lib/commonjs/context/AuthContext.js +345 -10
- package/lib/commonjs/hooks/useConnectedAccounts.js +111 -9
- package/lib/commonjs/hooks/useConnections.js +102 -8
- package/lib/commonjs/hooks/useCredentials.js +178 -10
- package/lib/commonjs/hooks/useUserConnections.js +148 -10
- package/lib/commonjs/index.js +439 -34
- package/lib/commonjs/services/apiClient.js +298 -8
- package/lib/commonjs/services/biometricPinService.js +180 -8
- package/lib/commonjs/services/chatGPTConversationExtractor.js +155 -8
- package/lib/commonjs/services/chatGPTConversationService.js +275 -9
- package/lib/commonjs/services/claudeConversationExtractor.js +103 -8
- package/lib/commonjs/services/claudeConversationService.js +158 -9
- package/lib/commonjs/services/connectedAccountsService.js +310 -10
- package/lib/commonjs/services/googleAuthService.js +252 -11
- package/lib/commonjs/services/hingeDataExtractor.js +105 -8
- package/lib/commonjs/services/hingeDataService.js +150 -9
- package/lib/commonjs/services/imageCompressionService.js +260 -7
- package/lib/commonjs/services/instagramDataExtractor.js +126 -8
- package/lib/commonjs/services/instagramDataService.js +163 -9
- package/lib/commonjs/services/jwtStorageService.js +276 -7
- package/lib/commonjs/services/linkedinDOMExtractor.js +245 -7
- package/lib/commonjs/services/linkedinProfileService.js +222 -9
- package/lib/commonjs/services/linkedinScrapingService.js +230 -8
- package/lib/commonjs/services/llmDataStorage.js +294 -8
- package/lib/commonjs/services/mobileTrainingService.js +186 -8
- package/lib/commonjs/services/netflixDataExtractor.js +120 -8
- package/lib/commonjs/services/netflixDataService.js +198 -9
- package/lib/commonjs/services/pinEncryptionService.js +84 -8
- package/lib/commonjs/services/pinStorageUtils.js +105 -7
- package/lib/commonjs/services/platformAuthService.js +1484 -12
- package/lib/commonjs/services/sephoraDataExtractor.js +140 -8
- package/lib/commonjs/services/sephoraDataService.js +200 -9
- package/lib/commonjs/services/spotifyDataExtractor.js +148 -8
- package/lib/commonjs/services/spotifyDataService.js +241 -9
- package/lib/commonjs/services/storageService.js +404 -8
- package/lib/commonjs/services/telegramDataExtractor.js +115 -8
- package/lib/commonjs/services/telegramDataService.js +499 -9
- package/lib/commonjs/services/trainingApiHelpers.js +73 -7
- package/lib/commonjs/services/userConnectionsService.js +340 -10
- package/lib/commonjs/services/youtubeMigrationService.js +416 -10
- package/lib/commonjs/theme/index.js +250 -7
- package/lib/commonjs/types/ambient.d.js +2 -1
- package/lib/commonjs/types/declarations.d.js +2 -1
- package/lib/commonjs/types/index.js +6 -1
- package/lib/commonjs/types/node-fix.d.js +2 -1
- package/lib/commonjs/types/node-override.d.js +2 -1
- package/lib/commonjs/types/opacity.d.js +2 -1
- package/lib/commonjs/types.js +14 -1
- package/lib/commonjs/utils/Portal.js +98 -8
- package/lib/commonjs/utils/api.js +130 -9
- package/lib/commonjs/utils/assetRegistry.js +210 -35
- package/lib/commonjs/utils/auth.js +112 -9
- package/lib/commonjs/utils/connectorTests.js +613 -29
- package/lib/commonjs/utils/crypto.js +62 -8
- package/lib/commonjs/utils/debugHelper.js +64 -1
- package/lib/commonjs/utils/encryption.js +76 -7
- package/lib/commonjs/utils/eventUtils.js +288 -1
- package/lib/commonjs/utils/haptics.js +66 -9
- package/lib/commonjs/utils/imagePreloader.js +6 -1
- package/lib/commonjs/utils/networkDiagnostics.js +226 -8
- package/lib/commonjs/utils/onairosApi.js +350 -9
- package/lib/commonjs/utils/programmaticFlow.js +117 -9
- package/lib/commonjs/utils/retryHelper.js +220 -1
- package/lib/commonjs/utils/secureStorage.js +349 -10
- package/lib/commonjs/utils/webviewScripts/chatgpt.js +551 -1
- package/lib/commonjs/utils/webviewScripts/claude.js +376 -1
- package/lib/commonjs/utils/webviewScripts/hinge.js +411 -1
- package/lib/commonjs/utils/webviewScripts/index.js +698 -15
- package/lib/commonjs/utils/webviewScripts/instagram.js +454 -1
- package/lib/commonjs/utils/webviewScripts/linkedin.js +880 -1
- package/lib/commonjs/utils/webviewScripts/netflix.js +382 -1
- package/lib/commonjs/utils/webviewScripts/sephora.js +516 -1
- package/lib/commonjs/utils/webviewScripts/spotify.js +419 -1
- package/lib/commonjs/utils/webviewScripts/telegram.js +678 -1
- package/lib/module/api/index.js +211 -1
- package/lib/module/components/BodyText.js +20 -1
- package/lib/module/components/BrandMark.js +104 -1
- package/lib/module/components/CodeInput.js +109 -1
- package/lib/module/components/EmailInput.js +23 -1
- package/lib/module/components/GoogleButton.js +49 -1
- package/lib/module/components/HeadingGroup.js +36 -1
- package/lib/module/components/LLMDataInputModal.js +656 -7
- package/lib/module/components/ModalHeader.js +92 -1
- package/lib/module/components/ModalSheet.js +39 -1
- package/lib/module/components/Onairos.js +373 -1
- package/lib/module/components/OnairosButton.js +305 -1
- package/lib/module/components/OnairosSignInButton.js +121 -1
- package/lib/module/components/Overlay.js +456 -1
- package/lib/module/components/PersonaImage.js +129 -1
- package/lib/module/components/PersonaLoadingScreen.js +310 -1
- package/lib/module/components/PersonalizationConsentScreen.js +460 -1
- package/lib/module/components/PinCreationScreen.js +396 -1
- package/lib/module/components/PinInput.js +456 -1
- package/lib/module/components/PlatformConnectorsStep.js +1302 -6
- package/lib/module/components/PlatformList.js +129 -1
- package/lib/module/components/PlatformToggle.js +173 -1
- package/lib/module/components/PrimaryButton.js +172 -1
- package/lib/module/components/SignInMatchAnimation.js +189 -1
- package/lib/module/components/SignInStep.js +338 -1
- package/lib/module/components/UniversalOnboarding.js +2770 -1
- package/lib/module/components/VerificationStep.js +168 -1
- package/lib/module/components/WelcomeScreen.js +453 -1
- package/lib/module/components/icons/Basicproficon.js +30 -1
- package/lib/module/components/icons/Basicprofile.js +14 -1
- package/lib/module/components/icons/Checkbox.js +14 -1
- package/lib/module/components/icons/Checkmark.js +20 -1
- package/lib/module/components/icons/Contentanalysis.js +14 -1
- package/lib/module/components/icons/Contenticon.js +32 -1
- package/lib/module/components/icons/EnochE.js +34 -1
- package/lib/module/components/icons/Personalityicon.js +23 -1
- package/lib/module/components/icons/Personalityprofile.js +14 -1
- package/lib/module/components/icons/Personalitytraits.js +14 -1
- package/lib/module/components/icons/Userpreferences.js +14 -1
- package/lib/module/components/icons/index.js +13 -1
- package/lib/module/components/onboarding/OAuthWebView.js +1746 -1
- package/lib/module/components/onboarding/OnboardingHeader.js +66 -1
- package/lib/module/components/onboarding/PinInput.js +274 -1
- package/lib/module/components/onboarding/PlatformConnector.js +240 -1
- package/lib/module/config/PLATFORM_APIS.md +849 -0
- package/lib/module/config/api.js +47 -1
- package/lib/module/constants/index.js +114 -1
- package/lib/module/context/AuthContext.js +335 -1
- package/lib/module/hooks/useConnectedAccounts.js +106 -1
- package/lib/module/hooks/useConnections.js +95 -1
- package/lib/module/hooks/useCredentials.js +171 -6
- package/lib/module/hooks/useUserConnections.js +140 -1
- package/lib/module/index.js +172 -1
- package/lib/module/services/apiClient.js +295 -1
- package/lib/module/services/biometricPinService.js +169 -1
- package/lib/module/services/chatGPTConversationExtractor.js +149 -1
- package/lib/module/services/chatGPTConversationService.js +268 -1
- package/lib/module/services/claudeConversationExtractor.js +97 -1
- package/lib/module/services/claudeConversationService.js +151 -1
- package/lib/module/services/connectedAccountsService.js +293 -1
- package/lib/module/services/googleAuthService.js +241 -1
- package/lib/module/services/hingeDataExtractor.js +99 -1
- package/lib/module/services/hingeDataService.js +143 -1
- package/lib/module/services/imageCompressionService.js +250 -1
- package/lib/module/services/instagramDataExtractor.js +120 -1
- package/lib/module/services/instagramDataService.js +156 -1
- package/lib/module/services/jwtStorageService.js +257 -1
- package/lib/module/services/linkedinDOMExtractor.js +234 -1
- package/lib/module/services/linkedinProfileService.js +210 -1
- package/lib/module/services/linkedinScrapingService.js +219 -1
- package/lib/module/services/llmDataStorage.js +277 -1
- package/lib/module/services/mobileTrainingService.js +173 -1
- package/lib/module/services/netflixDataExtractor.js +114 -1
- package/lib/module/services/netflixDataService.js +191 -1
- package/lib/module/services/pinEncryptionService.js +74 -6
- package/lib/module/services/pinStorageUtils.js +93 -1
- package/lib/module/services/platformAuthService.js +1461 -1
- package/lib/module/services/sephoraDataExtractor.js +134 -1
- package/lib/module/services/sephoraDataService.js +193 -1
- package/lib/module/services/spotifyDataExtractor.js +142 -1
- package/lib/module/services/spotifyDataService.js +234 -1
- package/lib/module/services/storageService.js +383 -1
- package/lib/module/services/telegramDataExtractor.js +109 -1
- package/lib/module/services/telegramDataService.js +493 -1
- package/lib/module/services/trainingApiHelpers.js +67 -1
- package/lib/module/services/userConnectionsService.js +329 -1
- package/lib/module/services/youtubeMigrationService.js +405 -1
- package/lib/module/theme/index.js +245 -1
- package/lib/module/types.js +10 -1
- package/lib/module/utils/Portal.js +90 -1
- package/lib/module/utils/api.js +118 -1
- package/lib/module/utils/assetRegistry.js +200 -34
- package/lib/module/utils/auth.js +100 -1
- package/lib/module/utils/connectorTests.js +600 -27
- package/lib/module/utils/crypto.js +54 -1
- package/lib/module/utils/debugHelper.js +54 -1
- package/lib/module/utils/encryption.js +67 -1
- package/lib/module/utils/eventUtils.js +270 -1
- package/lib/module/utils/haptics.js +59 -8
- package/lib/module/utils/imagePreloader.js +3 -1
- package/lib/module/utils/networkDiagnostics.js +217 -1
- package/lib/module/utils/onairosApi.js +333 -1
- package/lib/module/utils/programmaticFlow.js +111 -1
- package/lib/module/utils/retryHelper.js +211 -1
- package/lib/module/utils/secureStorage.js +330 -6
- package/lib/module/utils/webviewScripts/chatgpt.js +545 -1
- package/lib/module/utils/webviewScripts/claude.js +370 -1
- package/lib/module/utils/webviewScripts/hinge.js +405 -1
- package/lib/module/utils/webviewScripts/index.js +434 -1
- package/lib/module/utils/webviewScripts/instagram.js +448 -1
- package/lib/module/utils/webviewScripts/linkedin.js +874 -1
- package/lib/module/utils/webviewScripts/netflix.js +376 -1
- package/lib/module/utils/webviewScripts/sephora.js +510 -1
- package/lib/module/utils/webviewScripts/spotify.js +413 -1
- package/lib/module/utils/webviewScripts/telegram.js +672 -1
- package/package.json +2 -2
|
@@ -1,23 +1,1311 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Object[_0x1dbb(0x0)](exports,_0x1dbb(0x1),{'value':!![]}),exports['default']=exports['MODEL_REFRESH_OPTIONS']=void 0x0;var _react=_interopRequireWildcard(__ONAIROS_REQ_FUNC__(0x0)),_reactNative=__ONAIROS_REQ_FUNC__(0x1),_theme=__ONAIROS_REQ_FUNC__(0x2),_haptics=__ONAIROS_REQ_FUNC__(0x3),_PersonaImage=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x4)),_PrimaryButton=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x5)),_PersonalizationConsentScreen=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x6)),_PinCreationScreen=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x7)),_PersonaLoadingScreen=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x8)),_useConnections=__ONAIROS_REQ_FUNC__(0x9),_connectedAccountsService=__ONAIROS_REQ_FUNC__(0xa),_platformAuthService=__ONAIROS_REQ_FUNC__(0xb),_OAuthWebView=__ONAIROS_REQ_FUNC__(0xc),_webviewScripts=__ONAIROS_REQ_FUNC__(0xd),_pinStorageUtils=__ONAIROS_REQ_FUNC__(0xe),_asyncStorage=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0xf));function _interopRequireDefault(_0x338e93){return _0x338e93&&_0x338e93[_0x1dbb(0x1)]?_0x338e93:{'default':_0x338e93};}function _0x59c1(){const _0x49b430=['defineProperty','__esModule','linkedin','object','VwmtF','default','function','bYwCs','fYddj','cwHPw','RKAyu','has','set','parse','connected','includes','aCeED','log','✅\x20[PLATFORMS]\x20Loaded\x20LinkedIn\x20connection','BosTi','hasOwnProperty','getOwnPropertyDescriptor','get','MODEL_REFRESH_OPTIONS','daily','Daily','weekly','Weekly','Balanced\x20freshness\x20and\x20efficiency.','Biweekly','Less\x20frequent,\x20more\x20efficient.','iijpi','QXweu','fMkQU','✅\x20[PLATFORMS]\x20Updated\x20connectedPlatforms\x20state\x20with:','❌\x20[PLATFORMS]\x20Error\x20loading\x20connected\x20platforms\x20from\x20storage:','hdMDr','kQjhv','✅\x20[PLATFORMS]\x20Loaded\x20from\x20user_connected_platforms:','platform_account_details','SugdD','chatgpt','claude','gemini','grok','FfHno','OVQiq','YgfVf','xJAtd','LPyDC','onairos_username','cVAcx','KEGgq','https://www.linkedin.com/login','SEmhN','yITxZ','evPsA','❌\x20[TOGGLE]\x20No\x20username\x20available\x20-\x20cannot\x20proceed\x20with\x20OAuth','FGltH','NULL','iMSkR','hBDLv','ezuBZ','BKEjV','❌\x20[STORAGE]\x20Error\x20removing\x20from\x20user_connected_platforms:','@onairos:linkedin_connected','iVJuG','BYpWF','qnTDl','Ydvkq','IAJJN','brpfh','clnpG','❌\x20[REFRESH]\x20Error\x20saving\x20refresh\x20frequency:','❌\x20[STORAGE]\x20Error\x20saving\x20to\x20user_connected_platforms:','jzAHF','qzLGq','SIXaH','SET\x20(','...)','alIei','VVjlR','mWzdm','FMPvX','MVlAu','SLegM','youtube','yBxwp','piJwW','vytQE','https://privacy.onairos.io/','KiwlF','contain','✅\x20[PLATFORMS]\x20Loaded\x20from\x20platform_account_details:','Initializing...','YouTube','reddit','Pinterest','Gmail','Use\x20your\x20email\x20information\x20to\x20enrich\x20your\x20model.','Use\x20your\x20ChatGPT\x20conversations\x20and\x20memories\x20to\x20enrich\x20your\x20model.','Use\x20your\x20Gemini\x20conversations\x20to\x20enrich\x20your\x20model.','Use\x20your\x20Grok\x20conversations\x20from\x20X\x20to\x20enrich\x20your\x20model.','iBbhV','zbwKG','normal','Model\x20Refresh\x20Frequency','How\x20often\x20should\x20your\x20model\x20be\x20refreshed\x20from\x20platforms?','useState','Animated','Value','useRef','current','useConnections','useEffect','SBLxL','keVRM','length','qAODs','fLsqh','LzhWG','add','forEach','CVfhy','ytVlI','push','vKbzA','EMeqN','yoshJ','rUZjy','UrQkC','BzRlU','DDbZS','biJbH','JKGbj','RtUqy','qbFYk','ZBZKI','edEMX','rmZGB','VtdjU','orGbN','mrvlw','getItem','user_connected_platforms','zANfe','LFMjN','dzQtF','qzIje','error','vIVCN','platform','lyqRV','toLowerCase','map','giSiK','@onairos:llm_connected:','triggerHaptic','HapticType','BUTTON_PRESS','WekwT','✅\x20[PLATFORMS]\x20Loaded\x20LLM\x20platform:\x20','fczov','xvLfz','zTuge','YYhBo','cAbxE','PkgCm','uYNCG','SUCCESS','✅\x20[PERSONA]\x20Applied\x20pending\x20connection:\x20','SYjLQ','from','xEbAt','gTfBO','ySvHI','RTtjT','QjYtv','yqzqn','szwxM','wFmni','MPMYg','sfsvB','DAvqI','QKoTq','LVxuP','HqyaV','email','split','DThTk','name','user_','floor','random','MNzZQ','vVFtC','dnuNT','mobile_user_','LfWbn','JaSNS','setItem','loop','sequence','timing','start','PRDQA','ZvAWI','LvDoa','useCallback','XuoQM','OVOBQ','aPhxT','UBoxG','nativeEvent','contentOffset','layoutMeasurement','width','contentSize','jhZoP','WBozv','msDmr','getPlatformIcon','xSzIk','Use\x20your\x20watch\x20history,\x20likes,\x20and\x20subscriptions\x20to\x20enrich\x20your\x20model.','pinterest','uykRy','FYOif','UJgtO','gmail','yEUAU','GsMEN','ImzTl','VHujp','eQdjU','TjCcl','yBDvR','fjRfJ','find','filter','xCTEf','CPYMO','Nbful','cTQgm','WQubd','NbAte','🔄\x20[TOGGLE]\x20Platform\x20toggle:\x20','\x20=\x20','WhOLI','tdyLT','psMSd','bigFq','👤\x20[TOGGLE]\x20Username\x20check\x20-\x20stored:\x20\x22','\x22,\x20state:\x20\x22','\x22,\x20valid:\x20\x22','qlOPc','kIvcE','WaERP','kFiyd','isChatPlatform','isLLMPlatform','🤖\x20[LLM]\x20Opening\x20WebView\x20for\x20','\x20login\x20and\x20export...','GEScS','connecting','getLLMPlatformUrl','🌐\x20[LLM]\x20Opening\x20','\x20URL:','ERROR','isLinkedInPlatform','ybMnD','AmmGN','SwFNc','🌐\x20[LINKEDIN]\x20Opening\x20LinkedIn\x20URL:','hasNativeSDK','rWdPu','JKuAQ','EYsWR','WOMZK','BsOoN','GoPUD','disconnected','🌐\x20[TOGGLE]\x20Starting\x20OAuth\x20flow\x20for\x20','...','initiateOAuth','substring','QuyJp','ejuGr','❌\x20[TOGGLE]\x20OAuth\x20failed\x20for\x20','\x20-\x20no\x20URL\x20returned','delete','oNVLj','AmeWL','KInTH','Error\x20toggling\x20platform\x20','fsOXR','AxYiz','trbBZ','stringify','✅\x20[STORAGE]\x20Removed\x20','\x20from\x20user_connected_platforms:','dsxRB','removeItem','fnYov','zjEnU','FwEHk','lLayz','mhcPD','FExTJ','ihkxA','💼\x20[LINKEDIN]\x20Opening\x20WebView\x20for\x20LinkedIn\x20login...','OUZDJ','ocgRm','nBzYS','Zxxcw','thfWY','hxYxh','COJtz','fzHra','jlqnk','iTawW','MLTOm','Vibration','vibrate','yUmiC','BPYNq','APoLL','CQqLF','nYYGv','OFxgw','jhoBe','XOgsN','qLdpL','BKNba','HXCWV','XqVEM','fHLSs','call','jnEzr','wUkDs','JnzEa','DEuKL','PJBjL','✅\x20[TOGGLE]\x20Setting\x20WebView\x20state\x20-\x20showing\x20modal\x20for\x20','JHBGj','NWGQL','rLNjm','HHoTi','@onairos:model_refresh_frequency','✅\x20[REFRESH]\x20Model\x20refresh\x20frequency\x20set\x20to:\x20','Cdfno','EMJsf','EZaYQ','Linking','openURL','NKpaK','lsRzV','kIoEX','UcccA','❌\x20[LLM]\x20No\x20URL\x20configured\x20for\x20platform:\x20','DRyeT','XYRPw','success','WfKYk','nQWku','uxClZ','NfgWf','\x20to\x20user_connected_platforms:','toISOString','✅\x20[LLM]\x20','uOAxa','AvdQu',',\x20oauthUrl:\x20','DGJmn','fsREN','BtCDu','OQEEP','oEeQJ','paIjp','hmlrY','seUcn','kQmzg','ycfpY','Ivhww','EDhPo','jRBoN','createElement','TouchableOpacity','platformIconButton','Image','icon','platformIcon','youtubeIcon','jTCKr','eBgSG','pinterestIcon','IfNlB','gmailIcon','Qcray','chatgptIcon','DkqcD','tcBJS','grokIcon','View','connectedDot','jjCeJ','RAzWp','znuhe','KKxfT','ZCSzt','xIbKB','setValue','QvmcB','📊\x20[STATE]\x20WebView\x20state\x20changed\x20-\x20showOAuthWebView:\x20','afFfk','min','max','MAohZ','JuSRz','rMbRT','✅\x20[WEBVIEW]\x20Rendering\x20OAuthWebView\x20for\x20','\x20with\x20URL:\x20','OAuthWebView','eJDtn','EFncY','LaohY','AiKQs','kRTSG','container','ScrollView','scrollContent','backButton','Text','backButtonText','headingContainer','title','Build\x20your\x20persona','subtitle','vwrlk','personaContainer','largePersona','platformIconsScrollContent','platformIconsCentered','miLlm','platformIconButtonSelected','mzJWP','bcdZu','claudeIcon','opvGI','vCeIj','connectingDot','pageIndicatorContainer','scrollBarTrack','scrollBarThumb','amkui','scrollIndicator','interpolate','scrollIndicatorText','cardContainer','VpQCT','platformCard','cardHeader','platformCardTitle','recommendedBadge','Highly\x20Recommended','#10B981','platformCardDescription','description','refreshFrequencySection','refreshFrequencyTitle','KtvIx','refreshFrequencyDescription','dEpvD','refreshSegmentedControl','value','refreshSegmentSelected','refreshSegmentText','label','JgfFm','bottomButtonContainer','buttonWrapper','rmksO','EfrzU','size','buttonOverlay','xUxtp','UBPKB','xsNmt','holdProgressBar','100%','skipButtonText','Skip','StyleSheet','COLORS','#F0F0F3','center','#1C1C1E','IBM\x20Plex\x20Sans','700','left','400','relative','absolute','#FFFFFF','transparent','#000','#FFA500','surface','SPACING','row','space-between','600','grey800','#2563EB','auto','grey600','Inter','#F5F5F7','#E0E0E4','#8E8E93','#E8E8ED','500','#E5E7EB','hidden','grey300','grey500','bold'];_0x59c1=function(){return _0x49b430;};return _0x59c1();}function _0x1dbb(_0x59c1f8,_0x1dbb85){_0x59c1f8=_0x59c1f8-0x0;const _0x3bc837=_0x59c1();let _0x203e62=_0x3bc837[_0x59c1f8];return _0x203e62;}function _interopRequireWildcard(_0x3d476a,_0x5851f9){const _0x11b47f={'aCeED':_0x1dbb(0x2),'fYddj':function(_0x273185,_0x49e44d){return _0x273185===_0x49e44d;},'cwHPw':function(_0x1130a2,_0x503dac){return _0x1130a2!=_0x503dac;},'EuBoy':_0x1dbb(0x3),'RKAyu':_0x1dbb(0x4),'rjoEu':function(_0x6e348d,_0xfb4044){return _0x6e348d!==_0xfb4044;},'BosTi':_0x1dbb(0x5),'rsmqx':function(_0x5ad05c,_0x268cab,_0x1e320c,_0x3c2d65){return _0x5ad05c(_0x268cab,_0x1e320c,_0x3c2d65);},'bYwCs':function(_0x4670be,_0x43ed75){return _0x4670be==_0x43ed75;},'NrSYS':_0x1dbb(0x6)};if(_0x11b47f[_0x1dbb(0x7)](_0x11b47f['NrSYS'],typeof WeakMap))var _0x3ea8ef=new WeakMap(),_0x5d0dda=new WeakMap();return(_interopRequireWildcard=function(_0x252401,_0x22eb73){if(!_0x22eb73&&_0x252401&&_0x252401[_0x1dbb(0x1)])return _0x252401;var _0x23a186,_0x3722ea,_0x403696={'__proto__':null,'default':_0x252401};if(_0x11b47f[_0x1dbb(0x8)](null,_0x252401)||_0x11b47f[_0x1dbb(0x9)](_0x11b47f['EuBoy'],typeof _0x252401)&&_0x11b47f['cwHPw'](_0x1dbb(0x6),typeof _0x252401))return _0x403696;if(_0x23a186=_0x22eb73?_0x5d0dda:_0x3ea8ef){if(_0x11b47f[_0x1dbb(0x8)](_0x11b47f[_0x1dbb(0xa)],_0x11b47f[_0x1dbb(0xa)])){if(_0x23a186[_0x1dbb(0xb)](_0x252401))return _0x23a186['get'](_0x252401);_0x23a186[_0x1dbb(0xc)](_0x252401,_0x403696);}else{const _0x1506bb=_0x3c626a[_0x1dbb(0xd)](_0x3cb3cd);_0x1506bb[_0x1dbb(0xe)]&&!_0x4beed9[_0x1dbb(0xf)](_0x11b47f[_0x1dbb(0x10)])&&(_0x17b904['push'](_0x11b47f[_0x1dbb(0x10)]),_0x3eb7d8[_0x1dbb(0x11)](_0x1dbb(0x12)));}}for(const _0x96e8fe in _0x252401)_0x11b47f['rjoEu'](_0x11b47f[_0x1dbb(0x13)],_0x96e8fe)&&{}[_0x1dbb(0x14)]['call'](_0x252401,_0x96e8fe)&&((_0x3722ea=(_0x23a186=Object[_0x1dbb(0x0)])&&Object[_0x1dbb(0x15)](_0x252401,_0x96e8fe))&&(_0x3722ea[_0x1dbb(0x16)]||_0x3722ea[_0x1dbb(0xc)])?_0x11b47f['rsmqx'](_0x23a186,_0x403696,_0x96e8fe,_0x3722ea):_0x403696[_0x96e8fe]=_0x252401[_0x96e8fe]);return _0x403696;})(_0x3d476a,_0x5851f9);}const MODEL_REFRESH_OPTIONS=exports[_0x1dbb(0x17)]=[{'value':_0x1dbb(0x18),'label':_0x1dbb(0x19),'description':'Always\x20up-to-date\x20data.'},{'value':_0x1dbb(0x1a),'label':_0x1dbb(0x1b),'description':_0x1dbb(0x1c)},{'value':'biweekly','label':_0x1dbb(0x1d),'description':_0x1dbb(0x1e)}],PlatformConnectorsStep=({onUpdate:_0x3393fc,onSkip:_0x1d636f,loading:loading=![],onPinComplete:_0x5673f5,onReviewerBypass:_0x1956cf,onLogout:_0x234c9a,allowedPlatforms:_0x5c2207,recommendedPlatforms:_0x5761d6,initialConnectedPlatforms:_0x4212d0,onRefreshFrequencyChange:_0x128747,initialRefreshFrequency:initialRefreshFrequency=_0x1dbb(0x1a)})=>{const _0x13074a={'qAODs':function(_0x2a95bb,_0x376049){return _0x2a95bb===_0x376049;},'fLsqh':_0x1dbb(0x1f),'LzhWG':_0x1dbb(0x20),'omHew':_0x1dbb(0x21),'keVRM':function(_0x40abf5,_0x452c40){return _0x40abf5>_0x452c40;},'vKbzA':function(_0x1d9431,_0x3dd575){return _0x1d9431===_0x3dd575;},'VtdjU':function(_0x5a637a,_0x2fa322){return _0x5a637a(_0x2fa322);},'EMeqN':function(_0x3884ed,_0x38bd26,_0x2d6ad0){return _0x3884ed(_0x38bd26,_0x2d6ad0);},'ySvHI':_0x1dbb(0x22),'yoshJ':_0x1dbb(0x23),'rUZjy':_0x1dbb(0x24),'cYmMU':'Rwxvt','MRoBx':_0x1dbb(0x25),'UrQkC':_0x1dbb(0x26),'BzRlU':_0x1dbb(0x27),'yqzqn':function(_0x1a8968,_0x38635f){return _0x1a8968!==_0x38635f;},'DDbZS':_0x1dbb(0x28),'biJbH':_0x1dbb(0x29),'JKGbj':_0x1dbb(0x2a),'RtUqy':_0x1dbb(0x2b),'qbFYk':_0x1dbb(0x2c),'ZBZKI':_0x1dbb(0x2d),'edEMX':_0x1dbb(0x2e),'uykRy':_0x1dbb(0x2),'rmZGB':function(_0x2171a1,_0x1655ef){return _0x2171a1>_0x1655ef;},'szwxM':_0x1dbb(0x2f),'wFmni':_0x1dbb(0x30),'MPMYg':function(_0x3dbfe0,_0x5d9da6){return _0x3dbfe0===_0x5d9da6;},'sfsvB':_0x1dbb(0x31),'MNzZQ':_0x1dbb(0x32),'DAvqI':function(_0x5a9600,_0x202ec0){return _0x5a9600&&_0x202ec0;},'QKoTq':function(_0xf874ab,_0x4a084e){return _0xf874ab(_0x4a084e);},'LVxuP':function(_0x47aae8,_0x1e045d){return _0x47aae8&&_0x1e045d;},'HqyaV':function(_0x4d94b,_0x5be140){return _0x4d94b===_0x5be140;},'rkhME':function(_0x5da837,_0x24e075){return _0x5da837===_0x24e075;},'DThTk':function(_0x2fbd21,_0x2369d7){return _0x2fbd21===_0x2369d7;},'vVFtC':function(_0x3b2b37,_0x22db70){return _0x3b2b37===_0x22db70;},'dnuNT':_0x1dbb(0x33),'LfWbn':function(_0x4b966f,_0xddf006){return _0x4b966f*_0xddf006;},'JaSNS':function(_0x2fe15c,_0x5aa2c3){return _0x2fe15c(_0x5aa2c3);},'PRDQA':'Error\x20initializing\x20username:','gTfBO':function(_0x17d060,_0x2be70d){return _0x17d060(_0x2be70d);},'QjYtv':'RTtjT','ZvAWI':_0x1dbb(0x34),'LvDoa':'njNkB','amkui':function(_0x3587d5,_0x3153da){return _0x3587d5*_0x3153da;},'UBoxG':function(_0x5f18e1,_0x58433a){return _0x5f18e1(_0x58433a);},'XuoQM':function(_0x3f2252,_0x9dd47){return _0x3f2252===_0x9dd47;},'OVOBQ':'Zqvum','umlPz':function(_0x4f4422,_0xba26b3){return _0x4f4422-_0xba26b3;},'jhZoP':function(_0x5d834f,_0x5434e5){return _0x5d834f/_0x5434e5;},'WBozv':function(_0x2cbeca,_0x53eca1){return _0x2cbeca(_0x53eca1);},'CPYMO':function(_0x1cc202,_0x2d6486){return _0x1cc202(_0x2d6486);},'xCTEf':'gdTgB','WaERP':_0x1dbb(0x12),'SwFNc':function(_0x5f3d0c,_0xc9e535){return _0x5f3d0c(_0xc9e535);},'Nbful':function(_0x489d4a,_0x462f2c){return _0x489d4a(_0x462f2c);},'cTQgm':function(_0x3603f9,_0x30dbfb){return _0x3603f9===_0x30dbfb;},'WQubd':_0x1dbb(0x35),'NbAte':function(_0x36ef1c,_0x31aaf6){return _0x36ef1c(_0x31aaf6);},'WhOLI':_0x1dbb(0x36),'tdyLT':function(_0x277d7d,_0x46e877){return _0x277d7d!==_0x46e877;},'psMSd':_0x1dbb(0x37),'bigFq':function(_0x217988,_0x239bf2){return _0x217988||_0x239bf2;},'qlOPc':function(_0x252e21,_0x80e18e){return _0x252e21===_0x80e18e;},'AiKQs':function(_0x4d3445,_0x37caf9){return _0x4d3445!==_0x37caf9;},'kIvcE':_0x1dbb(0x38),'kFiyd':_0x1dbb(0x39),'GEScS':function(_0x11bd50,_0x185932){return _0x11bd50(_0x185932);},'ybMnD':'CBbUM','rWdPu':function(_0x5277fa,_0x483997){return _0x5277fa(_0x483997);},'JKuAQ':_0x1dbb(0x3a),'GPTNB':function(_0x24cb37,_0x4cc338){return _0x24cb37(_0x4cc338);},'WOMZK':function(_0x435cc4,_0x2c8900){return _0x435cc4!==_0x2c8900;},'BsOoN':'gSNRi','QuyJp':_0x1dbb(0x3b),'ejuGr':function(_0x44a6dd,_0x454e64){return _0x44a6dd(_0x454e64);},'oNVLj':function(_0x39dc7a,_0x6f4585){return _0x39dc7a===_0x6f4585;},'AmeWL':_0x1dbb(0x3c),'KInTH':_0x1dbb(0x3d),'fsOXR':'LmhWw','AxYiz':_0x1dbb(0x3e),'trbBZ':'user_connected_platforms','bSEQB':_0x1dbb(0x3f),'dsxRB':_0x1dbb(0x40),'fnYov':function(_0xeab6ee,_0x60a45e){return _0xeab6ee===_0x60a45e;},'zjEnU':'nDugG','FwEHk':'ypapu','rTigS':_0x1dbb(0x41),'FExTJ':function(_0x3bd694,_0x4e49ca){return _0x3bd694===_0x4e49ca;},'ihkxA':'QdkcY','eVkEK':'GWjHy','thfWY':function(_0x31f1c6,_0x5a962c){return _0x31f1c6(_0x5a962c);},'MLTOm':function(_0x10f0fb,_0x3f1c39,_0xcf06e1){return _0x10f0fb(_0x3f1c39,_0xcf06e1);},'BPYNq':function(_0x4edb6d,_0x26041f){return _0x4edb6d(_0x26041f);},'hxYxh':function(_0x39e277){return _0x39e277();},'COJtz':function(_0x53946e,_0x1cbf79){return _0x53946e(_0x1cbf79);},'fzHra':function(_0x4d7dbf,_0x344495){return _0x4d7dbf(_0x344495);},'jlqnk':function(_0x5ac88f,_0x2f85b9){return _0x5ac88f(_0x2f85b9);},'Guztm':_0x1dbb(0x42),'iTawW':'hdpdO','APoLL':function(_0x4c778b,_0x10e2c1){return _0x4c778b!==_0x10e2c1;},'CQqLF':_0x1dbb(0x43),'nmWga':_0x1dbb(0x3),'nYYGv':'function','OFxgw':'default','jhoBe':function(_0x3ff538,_0x9e9111,_0x2ed060,_0x5353f0){return _0x3ff538(_0x9e9111,_0x2ed060,_0x5353f0);},'XOgsN':function(_0x140496,_0x579a49){return _0x140496===_0x579a49;},'ceheJ':_0x1dbb(0x44),'qLdpL':'LnJdL','STuXi':function(_0x127055,_0x5aca23){return _0x127055===_0x5aca23;},'HXCWV':_0x1dbb(0x45),'wUkDs':function(_0x2683e1,_0x542059){return _0x2683e1===_0x542059;},'JnzEa':_0x1dbb(0x46),'DEuKL':function(_0x230c0f,_0x568b6a){return _0x230c0f(_0x568b6a);},'PJBjL':_0x1dbb(0x47),'iTZmy':function(_0x3a5164,_0x59cb34){return _0x3a5164(_0x59cb34);},'NWGQL':function(_0x20c81b,_0x53d013){return _0x20c81b===_0x53d013;},'HHoTi':_0x1dbb(0x48),'Cdfno':_0x1dbb(0x49),'gRtpe':_0x1dbb(0x4a),'EMJsf':_0x1dbb(0x4b),'EZaYQ':_0x1dbb(0x4c),'UwFwY':function(_0x845348,_0x48c70b){return _0x845348(_0x48c70b);},'kIoEX':function(_0x102f37,_0x3af913){return _0x102f37(_0x3af913);},'NKpaK':_0x1dbb(0x4d),'wUgLo':'MhMMf','lsRzV':function(_0x1c050a,_0x5598f0){return _0x1c050a(_0x5598f0);},'DGJmn':function(_0x3d5338,_0x42d522){return _0x3d5338+_0x42d522;},'fsREN':_0x1dbb(0x4e),'BtCDu':_0x1dbb(0x4f),'UcccA':_0x1dbb(0x50),'XYRPw':function(_0xff4670,_0x4d45ef){return _0xff4670===_0x4d45ef;},'WfKYk':'error','nQWku':_0x1dbb(0x51),'wDwXt':function(_0x2935c8,_0x17c2a7){return _0x2935c8(_0x17c2a7);},'uxClZ':_0x1dbb(0x52),'NfgWf':_0x1dbb(0x53),'uOAxa':function(_0xdb5cc,_0x19c7f8){return _0xdb5cc===_0x19c7f8;},'tWXpM':function(_0x17782,_0x5b4088){return _0x17782!==_0x5b4088;},'AvdQu':_0x1dbb(0x54),'OQEEP':_0x1dbb(0x55),'ESrGi':function(_0x487fea,_0x3d4eba){return _0x487fea(_0x3d4eba);},'qTGTp':function(_0xd325b7,_0x531ffb){return _0xd325b7(_0x531ffb);},'ycdYA':function(_0x4e9fff,_0x58c54c){return _0x4e9fff===_0x58c54c;},'xSzIk':_0x1dbb(0x56),'hmlrY':'pinterest','bcdZu':'gmail','kQmzg':'seUcn','ycfpY':function(_0x32c80b,_0x34eb66){return _0x32c80b(_0x34eb66);},'EFncY':function(_0xaeb809,_0x3c3b5f){return _0xaeb809!==_0x3c3b5f;},'oEeQJ':_0x1dbb(0x57),'paIjp':function(_0x215f7a,_0x1a84cf,_0x47cdfc){return _0x215f7a(_0x1a84cf,_0x47cdfc);},'ZCSzt':function(_0x2ffd47){return _0x2ffd47();},'KKxfT':function(_0x414674,_0x19267d){return _0x414674(_0x19267d);},'pgijl':function(_0x27e076){return _0x27e076();},'kGAPK':function(_0x15b76e,_0x2d9ebb){return _0x15b76e(_0x2d9ebb);},'xIbKB':_0x1dbb(0x58),'SMuCO':_0x1dbb(0x59),'UEHek':function(_0x20dd82,_0x14a2bf){return _0x20dd82(_0x14a2bf);},'QvmcB':function(_0x542733,_0x41a7e4){return _0x542733||_0x41a7e4;},'afFfk':function(_0x4b70c3,_0x256587){return _0x4b70c3+_0x256587;},'eJDtn':_0x1dbb(0x5a),'LaohY':_0x1dbb(0x5b),'mzJWP':function(_0x9b429a,_0x2345ca){return _0x9b429a===_0x2345ca;},'opvGI':function(_0x34aa69,_0x4e64e2){return _0x34aa69===_0x4e64e2;},'vCeIj':_0x1dbb(0x5c),'VpQCT':function(_0x89d0d4,_0x135dc7){return _0x89d0d4===_0x135dc7;},'uhuTc':'#9CA3AF','xUxtp':_0x1dbb(0x5d),'UBPKB':'XIpHZ','gZXiN':_0x1dbb(0x5e),'msDmr':_0x1dbb(0x5f),'iDXRq':_0x1dbb(0x60),'WFZEt':_0x1dbb(0x61),'FYOif':'LinkedIn','UJgtO':'Use\x20your\x20professional\x20network\x20and\x20career\x20interests\x20to\x20enrich\x20your\x20model.','yEUAU':_0x1dbb(0x62),'GsMEN':_0x1dbb(0x63),'ImzTl':_0x1dbb(0x64),'ZwoTf':'Claude','VHujp':'Use\x20your\x20Claude\x20conversations\x20to\x20enrich\x20your\x20model.','eQdjU':'Gemini','TjCcl':_0x1dbb(0x65),'yBDvR':'Grok','fjRfJ':_0x1dbb(0x66),'MAohZ':function(_0x5f7e16,_0x46b76c){return _0x5f7e16===_0x46b76c;},'JuSRz':'zETQa','rMbRT':function(_0xea607b,_0x404a89){return _0xea607b&&_0x404a89;},'NXJJy':_0x1dbb(0x67),'kRTSG':_0x1dbb(0x68),'vwrlk':'Connect\x20platforms\x20to\x20build\x20your\x20private\x20persona','KXlch':function(_0x558fe4,_0x25f089){return _0x558fe4<=_0x25f089;},'miLlm':_0x1dbb(0x69),'KtvIx':_0x1dbb(0x6a),'dEpvD':_0x1dbb(0x6b),'JgfFm':function(_0x2364c9,_0x21f88d){return _0x2364c9===_0x21f88d;},'rmksO':'Continue','EfrzU':function(_0x2d1ff4,_0x13d6c9){return _0x2d1ff4===_0x13d6c9;},'tDsMg':function(_0x3e1367,_0x1e2317){return _0x3e1367||_0x1e2317;}};var _0x45cf2b;const [_0x3dbef8,_0x220457]=(0x0,_react[_0x1dbb(0x6c)])(()=>new Set(_0x4212d0||[])),[_0x51feb4,_0x2c51cd]=(0x0,_react[_0x1dbb(0x6c)])(![]),[_0x4ee566,_0x4803ab]=(0x0,_react[_0x1dbb(0x6c)])(![]),[_0x36048a,_0x410a55]=(0x0,_react[_0x1dbb(0x6c)])(![]),[_0x3b87ab,_0x374ec4]=(0x0,_react[_0x1dbb(0x6c)])(''),[_0x54dfd0,_0x41d50b]=(0x0,_react[_0x1dbb(0x6c)])({}),[_0x1c06c0,_0x3026e0]=(0x0,_react[_0x1dbb(0x6c)])(![]),[_0x47c89d,_0xe468d4]=(0x0,_react[_0x1dbb(0x6c)])(''),[_0x29cd6c,_0x2c51af]=(0x0,_react[_0x1dbb(0x6c)])(''),[_0x291442,_0x453897]=(0x0,_react[_0x1dbb(0x6c)])(null),[_0x351039,_0x24d180]=(0x0,_react[_0x1dbb(0x6c)])(0x0),_0x852aca=(0x0,_react['useRef'])(new _reactNative[(_0x1dbb(0x6d))][(_0x1dbb(0x6e))](0x0))['current'],[_0x5a8b39,_0x9ae72e]=(0x0,_react[_0x1dbb(0x6c)])(''),_0x2478a9=(0x0,_react[_0x1dbb(0x6f)])(null),[_0x4b5fc3,_0x28017b]=(0x0,_react[_0x1dbb(0x6c)])(!![]),_0x42a6d1=(0x0,_react[_0x1dbb(0x6f)])(new _reactNative['Animated']['Value'](0x0))[_0x1dbb(0x70)],[_0x183db1,_0x3589e5]=(0x0,_react['useState'])(0x0),_0x54348f=(0x0,_react[_0x1dbb(0x6f)])(0x0),[_0x2bf149,_0x1c8d8b]=(0x0,_react['useState'])(''),[_0x587bb6,_0x71a70d]=(0x0,_react[_0x1dbb(0x6c)])(0x0),[_0x1904e1,_0x271d45]=(0x0,_react[_0x1dbb(0x6c)])(_0x13074a['gZXiN']),[_0x16dd13,_0x20e7d3]=(0x0,_react[_0x1dbb(0x6c)])(![]),[_0x12e35a,_0x4d6aca]=(0x0,_react[_0x1dbb(0x6c)])(![]),[_0x5aa6ad,_0x22c57e]=(0x0,_react[_0x1dbb(0x6c)])(null),[_0x45d59b,_0xdc7252]=(0x0,_react[_0x1dbb(0x6c)])(null),_0x3f2e72=(0x0,_react[_0x1dbb(0x6f)])(null),[_0x422f2d,_0x3e8778]=(0x0,_react[_0x1dbb(0x6c)])(![]),[_0x3fa518,_0x2ccb81]=(0x0,_react[_0x1dbb(0x6c)])(''),[_0x25a440,_0x410d0e]=(0x0,_react['useState'])(null),[_0x5dc198,_0x2a6730]=(0x0,_react[_0x1dbb(0x6c)])(![]),[_0x36022e,_0x599052]=(0x0,_react[_0x1dbb(0x6c)])(![]),[_0x4c31f4,_0x1399dd]=(0x0,_react[_0x1dbb(0x6c)])(null),[_0x4d8976,_0x5e5c16]=(0x0,_react[_0x1dbb(0x6c)])(initialRefreshFrequency),{connectPlatform:_0x344ad6,disconnectPlatform:_0x2ec82c,isConnecting:_0x392fa2}=(0x0,_useConnections[_0x1dbb(0x71)])(),_0x93a5b6=null;(0x0,_react[_0x1dbb(0x72)])(()=>{const _0x114250={'CVfhy':_0x13074a['omHew'],'ytVlI':_0x1dbb(0x73)};_0x4212d0&&_0x13074a[_0x1dbb(0x74)](_0x4212d0[_0x1dbb(0x75)],0x0)&&_0x220457(_0x3016fe=>{if(_0x13074a[_0x1dbb(0x76)](_0x13074a[_0x1dbb(0x77)],_0x13074a[_0x1dbb(0x78)])){const _0x2e33e1=new _0x3536a6(_0x2c7b44);return _0x2e33e1[_0x1dbb(0x79)](_0x20bf07),_0x2e33e1;}else{const _0x49d57a=new Set(_0x3016fe);let _0x4e530b=![];return _0x4212d0[_0x1dbb(0x7a)](_0x4bfa82=>{!_0x49d57a[_0x1dbb(0xb)](_0x4bfa82)&&(_0x114250[_0x1dbb(0x7b)]===_0x114250[_0x1dbb(0x7c)]?_0x4c843f[_0x1dbb(0x7d)](_0x323812):(_0x49d57a[_0x1dbb(0x79)](_0x4bfa82),_0x4e530b=!![]));}),_0x4e530b?_0x49d57a:_0x3016fe;}});},[_0x4212d0]),(0x0,_react['useEffect'])(()=>{const _0x5b398d={'lyqRV':function(_0x29ccc4,_0x12c1b3){return _0x13074a[_0x1dbb(0x7e)](_0x29ccc4,_0x12c1b3);},'WekwT':function(_0x264dae,_0x5b83d1){return _0x13074a['VtdjU'](_0x264dae,_0x5b83d1);},'YYhBo':function(_0x1e17b0,_0x4ef7c1,_0x9817b5){return _0x13074a[_0x1dbb(0x7f)](_0x1e17b0,_0x4ef7c1,_0x9817b5);},'SYjLQ':_0x13074a['ySvHI'],'xEbAt':_0x13074a[_0x1dbb(0x80)],'rHpvx':function(_0x1f5d08,_0x2a4d1d){return _0x1f5d08===_0x2a4d1d;},'orGbN':_0x13074a[_0x1dbb(0x81)],'GUEmA':_0x13074a['cYmMU'],'zANfe':function(_0x223cd7,_0xdd6e73){return _0x223cd7!==_0xdd6e73;},'ekREV':_0x13074a['MRoBx'],'LFMjN':_0x13074a[_0x1dbb(0x82)],'dzQtF':_0x13074a[_0x1dbb(0x83)],'tWpMe':function(_0x208efa,_0x4eb82e){return _0x13074a['yqzqn'](_0x208efa,_0x4eb82e);},'qzIje':_0x13074a[_0x1dbb(0x84)],'qLRBU':_0x13074a[_0x1dbb(0x85)],'oxQiT':_0x13074a[_0x1dbb(0x86)],'giSiK':_0x13074a[_0x1dbb(0x87)],'nUbvU':_0x13074a[_0x1dbb(0x88)],'PURuc':_0x13074a[_0x1dbb(0x89)],'Zsdzy':_0x13074a[_0x1dbb(0x8a)],'fczov':_0x13074a['uykRy'],'xvLfz':'✅\x20[PLATFORMS]\x20Loaded\x20LinkedIn\x20connection','zTuge':function(_0x177e8b,_0x30d020){return _0x13074a[_0x1dbb(0x8b)](_0x177e8b,_0x30d020);},'qHeWk':function(_0x32f9b5,_0x45162b){return _0x13074a[_0x1dbb(0x8c)](_0x32f9b5,_0x45162b);}},_0x2b7817=async()=>{const _0x405b6d={'mrvlw':function(_0x36f3a2,_0x5e4bb1){return _0x5b398d['WekwT'](_0x36f3a2,_0x5e4bb1);},'vIVCN':_0x5b398d['xEbAt']};try{if(_0x5b398d['rHpvx'](_0x5b398d[_0x1dbb(0x8d)],_0x5b398d['GUEmA']))_0x405b6d[_0x1dbb(0x8e)](_0x12fec9,![]);else{console[_0x1dbb(0x11)]('🔄\x20[PLATFORMS]\x20Loading\x20connected\x20platforms\x20from\x20storage...');const _0x3fa89a=[],_0x15d147=await _asyncStorage[_0x1dbb(0x5)][_0x1dbb(0x8f)](_0x1dbb(0x90));if(_0x15d147){const _0x42faec=JSON[_0x1dbb(0xd)](_0x15d147);Array['isArray'](_0x42faec)&&(_0x5b398d[_0x1dbb(0x91)](_0x5b398d['ekREV'],_0x5b398d['ekREV'])?!_0x18777c[_0x1dbb(0xb)](_0x1b579c)&&(_0x289834['add'](_0x3e58d5),_0x477818=!![]):(_0x3fa89a[_0x1dbb(0x7d)](..._0x42faec),console['log'](_0x5b398d[_0x1dbb(0x92)],_0x42faec)));}const _0x42c4b3=await _asyncStorage[_0x1dbb(0x5)][_0x1dbb(0x8f)](_0x5b398d[_0x1dbb(0x93)]);if(_0x42c4b3){if(_0x5b398d['tWpMe'](_0x5b398d[_0x1dbb(0x94)],_0x5b398d[_0x1dbb(0x94)]))_0x547838[_0x1dbb(0x95)](_0x405b6d[_0x1dbb(0x96)],_0x4003aa);else{const _0x4b8d76=JSON['parse'](_0x42c4b3);Array['isArray'](_0x4b8d76)&&(_0x4b8d76[_0x1dbb(0x7a)](_0x48e454=>{var _0x3ac7b8;const _0x4f2c5d=(_0x3ac7b8=_0x48e454[_0x1dbb(0x97)])===null||_0x5b398d[_0x1dbb(0x98)](_0x3ac7b8,void 0x0)?void 0x0:_0x3ac7b8[_0x1dbb(0x99)]();_0x4f2c5d&&!_0x3fa89a['includes'](_0x4f2c5d)&&_0x3fa89a[_0x1dbb(0x7d)](_0x4f2c5d);}),console[_0x1dbb(0x11)](_0x1dbb(0x5d),_0x4b8d76[_0x1dbb(0x9a)](_0x214f27=>_0x214f27[_0x1dbb(0x97)])));}}const _0x390d45=[_0x5b398d['qLRBU'],_0x5b398d['oxQiT'],_0x5b398d[_0x1dbb(0x9b)],_0x5b398d['nUbvU']];for(const _0x4c15b8 of _0x390d45){const _0x4f9413=await _asyncStorage[_0x1dbb(0x5)][_0x1dbb(0x8f)](_0x1dbb(0x9c)+_0x4c15b8);if(_0x4f9413){const _0x58031d=JSON[_0x1dbb(0xd)](_0x4f9413);_0x58031d['connected']&&!_0x3fa89a[_0x1dbb(0xf)](_0x4c15b8)&&(_0x5b398d['rHpvx'](_0x5b398d['PURuc'],_0x5b398d['Zsdzy'])?((0x0,_0x3104cd[_0x1dbb(0x9d)])(_0x317ba6[_0x1dbb(0x9e)][_0x1dbb(0x9f)]),_0x5b398d[_0x1dbb(0xa0)](_0x5d42cd,![])):(_0x3fa89a[_0x1dbb(0x7d)](_0x4c15b8),console[_0x1dbb(0x11)](_0x1dbb(0xa1)+_0x4c15b8)));}}const _0xb6490=await _asyncStorage[_0x1dbb(0x5)][_0x1dbb(0x8f)](_0x1dbb(0x41));if(_0xb6490){const _0x5028a3=JSON[_0x1dbb(0xd)](_0xb6490);_0x5028a3[_0x1dbb(0xe)]&&!_0x3fa89a['includes']('linkedin')&&(_0x3fa89a[_0x1dbb(0x7d)](_0x5b398d[_0x1dbb(0xa2)]),console[_0x1dbb(0x11)](_0x5b398d[_0x1dbb(0xa3)]));}_0x5b398d[_0x1dbb(0xa4)](_0x3fa89a[_0x1dbb(0x75)],0x0)&&_0x5b398d['qHeWk'](_0x220457,_0x53d3b6=>{const _0x1a2793={'ZpmNW':function(_0x41087e,_0x49103d){return _0x41087e(_0x49103d);},'Ykxpr':function(_0x37b238,_0x9c23cc,_0x5e222f){return _0x5b398d[_0x1dbb(0xa5)](_0x37b238,_0x9c23cc,_0x5e222f);},'cAbxE':function(_0x45b504,_0x2ce1fd){return _0x45b504===_0x2ce1fd;}},_0x4a1367=new Set(_0x53d3b6);let _0xe3825f=![];return _0x3fa89a[_0x1dbb(0x7a)](_0x32750b=>{const _0x215d24={'uYNCG':function(_0x48d7bd,_0x3a3526){return _0x1a2793['ZpmNW'](_0x48d7bd,_0x3a3526);},'xfuvm':function(_0x34453d,_0x1beb04,_0x91f7f4){return _0x1a2793['Ykxpr'](_0x34453d,_0x1beb04,_0x91f7f4);}};if(!_0x4a1367[_0x1dbb(0xb)](_0x32750b)){if(_0x1a2793[_0x1dbb(0xa6)]('rJBhq',_0x1dbb(0xa7))){const _0x1d0310=_0x215d24['xfuvm'](_0x569d6e,()=>{_0x215d24[_0x1dbb(0xa8)](_0x4e8447,_0x14f836=>{const _0x22e399=new _0xe4f72f(_0x14f836);return _0x22e399['add'](_0x280633),_0x22e399;}),(0x0,_0x5a9e7a[_0x1dbb(0x9d)])(_0x58b895[_0x1dbb(0x9e)][_0x1dbb(0xa9)]),_0x14b6c1[_0x1dbb(0x11)](_0x1dbb(0xaa)+_0x2a5e36),_0x27ad24(null);},0x12c);return()=>_0x4ee2a2(_0x1d0310);}else _0x4a1367[_0x1dbb(0x79)](_0x32750b),_0xe3825f=!![];}}),_0xe3825f&&console['log'](_0x5b398d[_0x1dbb(0xab)],Array[_0x1dbb(0xac)](_0x4a1367)),_0xe3825f?_0x4a1367:_0x53d3b6;});}}catch(_0x17f54e){console[_0x1dbb(0x95)](_0x5b398d[_0x1dbb(0xad)],_0x17f54e);}};_0x2b7817();},[]),(0x0,_react[_0x1dbb(0x72)])(()=>{const _0x5b7bea={'UeMyl':function(_0x14917b,_0x2ceb14){return _0x13074a[_0x1dbb(0xae)](_0x14917b,_0x2ceb14);},'pNDfg':_0x13074a[_0x1dbb(0xaf)]};if(_0x1dbb(0xb0)===_0x13074a[_0x1dbb(0xb1)]){const _0x473f3c=async()=>{if(_0x13074a[_0x1dbb(0xb2)](_0x13074a[_0x1dbb(0xb3)],_0x13074a[_0x1dbb(0xb4)]))try{if(_0x13074a[_0x1dbb(0xb5)](_0x13074a[_0x1dbb(0xb6)],'LPyDC')){const _0x1c4ecb=await _asyncStorage[_0x1dbb(0x5)][_0x1dbb(0x8f)](_0x13074a['MNzZQ']);if(_0x13074a[_0x1dbb(0xb7)](_0x1c4ecb,!_0x2bf149)){_0x13074a[_0x1dbb(0xb8)](_0x1c8d8b,_0x1c4ecb);return;}if(_0x13074a[_0x1dbb(0xb9)](_0x93a5b6,!_0x2bf149)){var _0x1f8f6c;const _0x41fdd6=(_0x13074a[_0x1dbb(0xba)](_0x93a5b6,null)||_0x13074a['rkhME'](_0x93a5b6,void 0x0)||_0x13074a[_0x1dbb(0xb5)](_0x1f8f6c=_0x93a5b6[_0x1dbb(0xbb)],null)||_0x1f8f6c===void 0x0?void 0x0:_0x1f8f6c[_0x1dbb(0xbc)]('@')[0x0])||(_0x13074a['qAODs'](_0x93a5b6,null)||_0x13074a[_0x1dbb(0xbd)](_0x93a5b6,void 0x0)?void 0x0:_0x93a5b6[_0x1dbb(0xbe)])||_0x1dbb(0xbf)+Math[_0x1dbb(0xc0)](Math[_0x1dbb(0xc1)]()*0x2710);_0x13074a['VtdjU'](_0x1c8d8b,_0x41fdd6),await _asyncStorage[_0x1dbb(0x5)]['setItem'](_0x13074a[_0x1dbb(0xc2)],_0x41fdd6);return;}if(!_0x2bf149){if(_0x13074a[_0x1dbb(0xc3)]('cVAcx',_0x13074a[_0x1dbb(0xc4)])){const _0x54173e=_0x1dbb(0xc5)+Math[_0x1dbb(0xc0)](_0x13074a[_0x1dbb(0xc6)](Math[_0x1dbb(0xc1)](),0x2710));_0x13074a[_0x1dbb(0xc7)](_0x1c8d8b,_0x54173e),await _asyncStorage[_0x1dbb(0x5)][_0x1dbb(0xc8)](_0x13074a[_0x1dbb(0xc2)],_0x54173e);}else _0x5d3d9a&&_0xf1520e[_0x1dbb(0x6d)][_0x1dbb(0xc9)](_0x405dda['Animated'][_0x1dbb(0xca)]([_0x4d3770['Animated'][_0x1dbb(0xcb)](_0x16fc0f,{'toValue':0x1,'duration':0x3e8,'useNativeDriver':!![]}),_0x2f080f[_0x1dbb(0x6d)]['timing'](_0xf86280,{'toValue':0x0,'duration':0x3e8,'useNativeDriver':!![]})]))[_0x1dbb(0xcc)]();}}else _0x5b7bea['UeMyl'](_0x1cb42d,_0x591046);}catch(_0x5b2aa9){console[_0x1dbb(0x95)](_0x13074a[_0x1dbb(0xcd)],_0x5b2aa9);const _0x1bcda0='user_'+Math[_0x1dbb(0xc0)](_0x13074a['LfWbn'](Math[_0x1dbb(0xc1)](),0x2710));_0x13074a[_0x1dbb(0x8c)](_0x1c8d8b,_0x1bcda0);}else _0xf6680e['log'](_0x5b7bea['pNDfg'],_0x643bed[_0x1dbb(0xac)](_0x406375));};_0x473f3c();}else{if(_0x48a5df['has'](_0x28f730))return _0x5a863e[_0x1dbb(0x16)](_0x51887b);_0x29955a['set'](_0x537911,_0x27d233);}},[_0x93a5b6,_0x2bf149]),(0x0,_react[_0x1dbb(0x72)])(()=>{_0x4b5fc3&&(_0x13074a[_0x1dbb(0xb2)](_0x13074a[_0x1dbb(0xce)],_0x13074a[_0x1dbb(0xcf)])?_reactNative[_0x1dbb(0x6d)][_0x1dbb(0xc9)](_reactNative['Animated'][_0x1dbb(0xca)]([_reactNative[_0x1dbb(0x6d)][_0x1dbb(0xcb)](_0x42a6d1,{'toValue':0x1,'duration':0x3e8,'useNativeDriver':!![]}),_reactNative[_0x1dbb(0x6d)][_0x1dbb(0xcb)](_0x42a6d1,{'toValue':0x0,'duration':0x3e8,'useNativeDriver':!![]})]))[_0x1dbb(0xcc)]():_0xe9255&&_0x2d0819(_0xfbb97d));},[_0x4b5fc3]);const _0x33821f=(0x0,_react[_0x1dbb(0xd0)])(_0x2c620d=>{if(_0x13074a[_0x1dbb(0xd1)](_0x13074a[_0x1dbb(0xd2)],_0x1dbb(0xd3))){_0x3e4a58[_0x1dbb(0x95)](_0x13074a[_0x1dbb(0xcd)],_0x361b9e);const _0xd8239b=_0x1dbb(0xbf)+_0x305972[_0x1dbb(0xc0)](_0x13074a['amkui'](_0x2b8021[_0x1dbb(0xc1)](),0x2710));_0x13074a[_0x1dbb(0xd4)](_0xacbb3e,_0xd8239b);}else{const _0x26ae94=_0x2c620d[_0x1dbb(0xd5)][_0x1dbb(0xd6)]['x'],_0x15b6da=_0x2c620d[_0x1dbb(0xd5)][_0x1dbb(0xd7)][_0x1dbb(0xd8)],_0x123143=_0x2c620d[_0x1dbb(0xd5)][_0x1dbb(0xd9)]['width'];_0x54348f[_0x1dbb(0x70)]=_0x26ae94;const _0x5938be=_0x13074a['umlPz'](_0x123143,_0x15b6da),_0x4d059c=_0x13074a[_0x1dbb(0x74)](_0x5938be,0x0)?_0x13074a[_0x1dbb(0xda)](_0x26ae94,_0x5938be):0x0;_0x13074a[_0x1dbb(0xdb)](_0x3589e5,_0x4d059c),_0x26ae94>0xa&&_0x4b5fc3&&_0x28017b(![]);}},[_0x4b5fc3]),_0x52f3c6=[{'id':_0x13074a['xSzIk'],'name':_0x13074a[_0x1dbb(0xdc)],'icon':(0x0,_connectedAccountsService[_0x1dbb(0xdd)])(_0x13074a[_0x1dbb(0xde)]),'description':_0x1dbb(0xdf),'isChatPlatform':![]},{'id':_0x13074a['iDXRq'],'name':'Reddit','icon':(0x0,_connectedAccountsService[_0x1dbb(0xdd)])(_0x13074a['iDXRq']),'description':'Use\x20your\x20posts\x20and\x20comments\x20to\x20enrich\x20your\x20model.','isChatPlatform':![]},{'id':_0x1dbb(0xe0),'name':_0x13074a['WFZEt'],'icon':(0x0,_connectedAccountsService['getPlatformIcon'])(_0x13074a['hmlrY']),'description':'Use\x20your\x20pins,\x20boards,\x20and\x20interests\x20to\x20enrich\x20your\x20model.','isChatPlatform':![]},{'id':_0x13074a[_0x1dbb(0xe1)],'name':_0x13074a[_0x1dbb(0xe2)],'icon':(0x0,_connectedAccountsService[_0x1dbb(0xdd)])(_0x13074a[_0x1dbb(0xe1)]),'description':_0x13074a[_0x1dbb(0xe3)],'isChatPlatform':![]},{'id':_0x1dbb(0xe4),'name':_0x13074a[_0x1dbb(0xe5)],'icon':(0x0,_connectedAccountsService[_0x1dbb(0xdd)])(_0x1dbb(0xe4)),'description':_0x13074a[_0x1dbb(0xe6)],'isChatPlatform':![]},{'id':_0x13074a[_0x1dbb(0x85)],'name':'ChatGPT','icon':(0x0,_connectedAccountsService[_0x1dbb(0xdd)])(_0x13074a[_0x1dbb(0x85)]),'description':_0x13074a[_0x1dbb(0xe7)],'isChatPlatform':!![]},{'id':_0x1dbb(0x2a),'name':_0x13074a['ZwoTf'],'icon':(0x0,_connectedAccountsService[_0x1dbb(0xdd)])(_0x13074a[_0x1dbb(0x86)]),'description':_0x13074a[_0x1dbb(0xe8)],'isChatPlatform':!![]},{'id':_0x1dbb(0x2b),'name':_0x13074a[_0x1dbb(0xe9)],'icon':(0x0,_connectedAccountsService[_0x1dbb(0xdd)])(_0x13074a[_0x1dbb(0x87)]),'description':_0x13074a[_0x1dbb(0xea)],'isChatPlatform':!![]},{'id':_0x13074a['qbFYk'],'name':_0x13074a[_0x1dbb(0xeb)],'icon':(0x0,_connectedAccountsService[_0x1dbb(0xdd)])(_0x13074a['qbFYk']),'description':_0x13074a[_0x1dbb(0xec)],'isChatPlatform':!![]}],_0x40780b=_0x5c2207?_0x5c2207['map'](_0x3bb157=>_0x52f3c6[_0x1dbb(0xed)](_0xa71ab6=>_0xa71ab6['id']===_0x3bb157))[_0x1dbb(0xee)](_0x5991e5=>_0x5991e5!==undefined):_0x52f3c6;(0x0,_react[_0x1dbb(0x72)])(()=>{if(_0x13074a[_0x1dbb(0x8b)](_0x40780b[_0x1dbb(0x75)],0x0)){const _0x473389=_0x40780b[0x0]['id'];(!_0x5a8b39||!_0x40780b['find'](_0x520368=>_0x520368['id']===_0x5a8b39))&&(_0x13074a[_0x1dbb(0xef)]===_0x13074a[_0x1dbb(0xef)]?_0x13074a[_0x1dbb(0xf0)](_0x9ae72e,_0x473389):_0x13074a[_0x1dbb(0xf0)](_0xcbe8ac,![]));}},[_0x5c2207,_0x40780b['length']]);const _0x27305a=async(_0x373b96,_0x2b52e7)=>{const _0x4b393a={'AmmGN':_0x13074a[_0x1dbb(0xaf)],'EYsWR':function(_0x3aae38,_0x327653){return _0x3aae38(_0x327653);},'GoPUD':function(_0x4c01a6,_0x192ade){return _0x4c01a6(_0x192ade);},'cjEan':function(_0x480621,_0x48be8b){return _0x13074a['SwFNc'](_0x480621,_0x48be8b);},'zNvqF':function(_0xf84bb,_0x37322d){return _0x13074a[_0x1dbb(0xf1)](_0xf84bb,_0x37322d);},'lLayz':function(_0xe30230,_0x56dc65){return _0x13074a[_0x1dbb(0xf2)](_0xe30230,_0x56dc65);},'mhcPD':function(_0x41724a,_0x2215b7){return _0x13074a[_0x1dbb(0x76)](_0x41724a,_0x2215b7);},'OUZDJ':function(_0x820ec8,_0x51de22){return _0x13074a[_0x1dbb(0xae)](_0x820ec8,_0x51de22);},'ocgRm':_0x13074a[_0x1dbb(0xf3)],'nBzYS':function(_0x504b2a,_0xe77eb6){return _0x13074a[_0x1dbb(0x8c)](_0x504b2a,_0xe77eb6);},'Zxxcw':function(_0x47cacc,_0x4028b9){return _0x13074a[_0x1dbb(0xf4)](_0x47cacc,_0x4028b9);}};(0x0,_haptics[_0x1dbb(0x9d)])(_haptics[_0x1dbb(0x9e)][_0x1dbb(0x9f)]),console[_0x1dbb(0x11)](_0x1dbb(0xf5)+_0x373b96+_0x1dbb(0xf6)+_0x2b52e7);try{if(_0x13074a['yqzqn'](_0x13074a[_0x1dbb(0xf7)],_0x13074a['WhOLI']))return _0x502d4a&&_0x5702ff[_0x1dbb(0x1)]?_0x1ecf61:{'default':_0x344f7a};else{if(_0x2b52e7){if(_0x13074a[_0x1dbb(0xf8)](_0x13074a[_0x1dbb(0xf9)],'oeJcJ')){const _0x557876=await _asyncStorage[_0x1dbb(0x5)][_0x1dbb(0x8f)](_0x13074a[_0x1dbb(0xc2)]),_0x4efb28=_0x13074a[_0x1dbb(0xfa)](_0x557876,_0x2bf149);console[_0x1dbb(0x11)](_0x1dbb(0xfb)+_0x557876+_0x1dbb(0xfc)+_0x2bf149+_0x1dbb(0xfd)+_0x4efb28+'\x22');if(!_0x4efb28||_0x13074a[_0x1dbb(0xfe)](_0x4efb28['trim'](),'')){if(_0x13074a['AiKQs'](_0x13074a[_0x1dbb(0xff)],_0x13074a['kIvcE']))_0x5bce98[_0x1dbb(0x7d)](_0x1dbb(0x2)),_0x19bc48['log'](_0x13074a[_0x1dbb(0x100)]);else{console[_0x1dbb(0x95)](_0x13074a[_0x1dbb(0x101)]);return;}}const _0x54752e=_0x52f3c6[_0x1dbb(0xed)](_0x4f3e7a=>_0x4f3e7a['id']===_0x373b96),_0x3d7af8=(_0x54752e===null||_0x54752e===void 0x0?void 0x0:_0x54752e[_0x1dbb(0x102)])||(0x0,_webviewScripts[_0x1dbb(0x103)])(_0x373b96);if(_0x3d7af8){console[_0x1dbb(0x11)](_0x1dbb(0x104)+_0x373b96+_0x1dbb(0x105)),_0x13074a[_0x1dbb(0x106)](_0x2c51af,_0x373b96),_0x13074a['gTfBO'](_0x41d50b,_0x37dd11=>({..._0x37dd11,[_0x373b96]:_0x1dbb(0x107)}));const _0x2893b8=(0x0,_webviewScripts[_0x1dbb(0x108)])(_0x373b96);_0x2893b8?(console['log'](_0x1dbb(0x109)+_0x373b96+_0x1dbb(0x10a),_0x2893b8),_0xe468d4(_0x2893b8),_0x13074a[_0x1dbb(0x8c)](_0x3026e0,!![])):(console[_0x1dbb(0x95)]('❌\x20[LLM]\x20No\x20URL\x20configured\x20for\x20platform:\x20'+_0x373b96),_0x41d50b(_0x2b0494=>({..._0x2b0494,[_0x373b96]:'error'})),(0x0,_haptics[_0x1dbb(0x9d)])(_haptics[_0x1dbb(0x9e)][_0x1dbb(0x10b)]));return;}if((0x0,_webviewScripts[_0x1dbb(0x10c)])(_0x373b96)){if(_0x13074a['yqzqn'](_0x13074a['ybMnD'],_0x13074a[_0x1dbb(0x10d)])){const _0x3dec35=new _0x3ad713(_0x46c425);let _0x219f26=![];return _0x1aeb5a[_0x1dbb(0x7a)](_0x538f04=>{!_0x3dec35['has'](_0x538f04)&&(_0x3dec35[_0x1dbb(0x79)](_0x538f04),_0x219f26=!![]);}),_0x219f26&&_0x3228d5[_0x1dbb(0x11)](_0x4b393a[_0x1dbb(0x10e)],_0x52ea21[_0x1dbb(0xac)](_0x3dec35)),_0x219f26?_0x3dec35:_0x367b2b;}else{console['log']('💼\x20[LINKEDIN]\x20Opening\x20WebView\x20for\x20LinkedIn\x20login...'),_0x13074a[_0x1dbb(0x10f)](_0x2c51af,_0x373b96),_0x13074a[_0x1dbb(0xf0)](_0x41d50b,_0x292ab1=>({..._0x292ab1,[_0x373b96]:'connecting'}));const _0x11dfe9='https://www.linkedin.com/login';console[_0x1dbb(0x11)](_0x1dbb(0x110),_0x11dfe9),_0x13074a[_0x1dbb(0xf1)](_0xe468d4,_0x11dfe9),_0x13074a[_0x1dbb(0xf0)](_0x3026e0,!![]);return;}}if((0x0,_platformAuthService[_0x1dbb(0x111)])(_0x373b96)){_0x13074a[_0x1dbb(0x106)](_0x2c51af,_0x373b96),_0x13074a[_0x1dbb(0x112)](_0x41d50b,_0x177c5c=>({..._0x177c5c,[_0x373b96]:_0x1dbb(0x107)}));const _0x5ece51=await(0x0,_platformAuthService['initiateNativeAuth'])(_0x373b96,_0x4efb28);if(_0x5ece51){if(_0x13074a[_0x1dbb(0xfe)](_0x13074a[_0x1dbb(0x113)],_0x13074a[_0x1dbb(0x113)])){const _0x4c3f35=new Set(_0x3dbef8);_0x4c3f35['add'](_0x373b96),_0x13074a[_0x1dbb(0xd4)](_0x220457,_0x4c3f35),_0x13074a[_0x1dbb(0xdb)](_0x41d50b,_0x1da674=>({..._0x1da674,[_0x373b96]:_0x1dbb(0xe)})),(0x0,_haptics[_0x1dbb(0x9d)])(_haptics[_0x1dbb(0x9e)][_0x1dbb(0xa9)]);}else _0x4b393a[_0x1dbb(0x114)](_0x44bcea,![]),_0x1dd5e4(!![]);}else _0x13074a['GPTNB'](_0x41d50b,_0xab85ba=>({..._0xab85ba,[_0x373b96]:_0x1dbb(0x95)})),(0x0,_haptics[_0x1dbb(0x9d)])(_haptics['HapticType'][_0x1dbb(0x10b)]);}else{if(_0x13074a[_0x1dbb(0x115)](_0x13074a['BsOoN'],_0x13074a[_0x1dbb(0x116)]))_0x4b393a[_0x1dbb(0x117)](_0x436154,![]),_0x4b393a[_0x1dbb(0x114)](_0x1ba367,''),_0x36b99e&&_0x5d1a62(_0x3cc676=>({..._0x3cc676,[_0x54a610]:_0x1dbb(0x118)})),_0x4b393a['cjEan'](_0x1743cd,'');else{console[_0x1dbb(0x11)](_0x1dbb(0x119)+_0x373b96+_0x1dbb(0x11a)),_0x13074a[_0x1dbb(0xf1)](_0x2c51af,_0x373b96),_0x13074a['QKoTq'](_0x41d50b,_0xedad6d=>({..._0xedad6d,[_0x373b96]:'connecting'}));const _0x42b001=await(0x0,_platformAuthService[_0x1dbb(0x11b)])(_0x373b96,_0x4efb28);console[_0x1dbb(0x11)]('🔗\x20[TOGGLE]\x20OAuth\x20URL\x20result\x20for\x20'+_0x373b96+':',_0x42b001?_0x42b001[_0x1dbb(0x11c)](0x0,0x32)+'...':_0x13074a[_0x1dbb(0x11d)]),_0x42b001?(console['log']('✅\x20[TOGGLE]\x20Setting\x20WebView\x20state\x20-\x20showing\x20modal\x20for\x20'+_0x373b96),_0xe468d4(_0x42b001),_0x13074a[_0x1dbb(0x11e)](_0x3026e0,!![])):(console['error'](_0x1dbb(0x11f)+_0x373b96+_0x1dbb(0x120)),_0x13074a[_0x1dbb(0xb8)](_0x41d50b,_0x4e55aa=>({..._0x4e55aa,[_0x373b96]:_0x1dbb(0x95)})),(0x0,_haptics[_0x1dbb(0x9d)])(_haptics[_0x1dbb(0x9e)][_0x1dbb(0x10b)]));}}}else _0x35f859['Animated'][_0x1dbb(0xc9)](_0x102cd8[_0x1dbb(0x6d)][_0x1dbb(0xca)]([_0x2f2669[_0x1dbb(0x6d)][_0x1dbb(0xcb)](_0x119b6a,{'toValue':0x1,'duration':0x3e8,'useNativeDriver':!![]}),_0x4d2a67['Animated'][_0x1dbb(0xcb)](_0x5a6612,{'toValue':0x0,'duration':0x3e8,'useNativeDriver':!![]})]))['start']();}else{await _0x13074a[_0x1dbb(0xae)](_0x2ec82c,_0x373b96);const _0x3d928b=new Set(_0x3dbef8);_0x3d928b[_0x1dbb(0x121)](_0x373b96),_0x13074a['VtdjU'](_0x220457,_0x3d928b),_0x41d50b(_0x1cc05b=>({..._0x1cc05b,[_0x373b96]:_0x1dbb(0x118)})),(0x0,_haptics[_0x1dbb(0x9d)])(_haptics['HapticType']['BUTTON_PRESS']);try{if(_0x13074a[_0x1dbb(0x122)](_0x13074a[_0x1dbb(0x123)],_0x13074a[_0x1dbb(0x124)]))_0x469e5e['error'](_0x1dbb(0x125)+_0x3bf4a1+':',_0x4e402d),_0x13074a[_0x1dbb(0xdb)](_0x22cd3a,_0x5d971c=>({..._0x5d971c,[_0x337a1d]:'error'})),(0x0,_0x54d29d[_0x1dbb(0x9d)])(_0x5c16fa[_0x1dbb(0x9e)][_0x1dbb(0x10b)]);else{const _0x191523=await _asyncStorage[_0x1dbb(0x5)][_0x1dbb(0x8f)]('user_connected_platforms');if(_0x191523){if(_0x13074a[_0x1dbb(0x126)]!==_0x13074a[_0x1dbb(0x127)]){const _0x1e5a1a=JSON[_0x1dbb(0xd)](_0x191523),_0x3e7242=_0x1e5a1a[_0x1dbb(0xee)](_0x15719d=>_0x15719d['toLowerCase']()!==_0x373b96[_0x1dbb(0x99)]());await _asyncStorage[_0x1dbb(0x5)]['setItem'](_0x13074a[_0x1dbb(0x128)],JSON[_0x1dbb(0x129)](_0x3e7242)),console['log'](_0x1dbb(0x12a)+_0x373b96+_0x1dbb(0x12b),_0x3e7242);}else _0x4b393a['zNvqF'](_0x2e94a3,_0x66b692);}}}catch(_0x9cd09){_0x13074a['bSEQB']!=='dYtvR'?console[_0x1dbb(0x95)](_0x13074a[_0x1dbb(0x12c)],_0x9cd09):_0x13074a['CPYMO'](_0x5b58de,![]);}await _asyncStorage['default'][_0x1dbb(0x12d)](_0x1dbb(0x9c)+_0x373b96);if(_0x13074a[_0x1dbb(0x76)](_0x373b96['toLowerCase'](),'linkedin')){if(_0x13074a[_0x1dbb(0x12e)](_0x13074a[_0x1dbb(0x12f)],_0x13074a[_0x1dbb(0x130)])){var _0x4312cb;const _0x35cc49=_0x4b393a[_0x1dbb(0x131)](_0x4312cb=_0x27a351['platform'],null)||_0x4b393a[_0x1dbb(0x132)](_0x4312cb,void 0x0)?void 0x0:_0x4312cb[_0x1dbb(0x99)]();_0x35cc49&&!_0x26c807[_0x1dbb(0xf)](_0x35cc49)&&_0x571b5f[_0x1dbb(0x7d)](_0x35cc49);}else await _asyncStorage[_0x1dbb(0x5)][_0x1dbb(0x12d)](_0x13074a['rTigS']);}}}}catch(_0x263dda){if(_0x13074a[_0x1dbb(0x133)](_0x13074a[_0x1dbb(0x134)],_0x13074a['eVkEK'])){_0xac4e3d[_0x1dbb(0x11)](_0x1dbb(0x135)),_0x4b393a[_0x1dbb(0x136)](_0x440241,_0x5ef43c),_0x4b393a['OUZDJ'](_0x246aea,_0x2740e2=>({..._0x2740e2,[_0x16c53e]:_0x1dbb(0x107)}));const _0x4afb7f=_0x4b393a[_0x1dbb(0x137)];_0x531c3a[_0x1dbb(0x11)]('🌐\x20[LINKEDIN]\x20Opening\x20LinkedIn\x20URL:',_0x4afb7f),_0x4b393a[_0x1dbb(0x138)](_0x2eb259,_0x4afb7f),_0x4b393a[_0x1dbb(0x139)](_0x3246e1,!![]);return;}else console[_0x1dbb(0x95)]('Error\x20toggling\x20platform\x20'+_0x373b96+':',_0x263dda),_0x13074a[_0x1dbb(0x13a)](_0x41d50b,_0x100536=>({..._0x100536,[_0x373b96]:_0x1dbb(0x95)})),(0x0,_haptics[_0x1dbb(0x9d)])(_haptics['HapticType'][_0x1dbb(0x10b)]);}},_0x42495b=async()=>{const _0x494c60={'yUmiC':function(_0xa5dd7e){return _0x13074a[_0x1dbb(0x13b)](_0xa5dd7e);},'ZhnMd':function(_0x1ed924,_0x4e6de6){return _0x13074a[_0x1dbb(0x13c)](_0x1ed924,_0x4e6de6);},'nwXuN':function(_0x4bd504,_0x389cb9){return _0x13074a[_0x1dbb(0x13d)](_0x4bd504,_0x389cb9);},'woKzn':function(_0xd5f531,_0x3010f0){return _0x13074a[_0x1dbb(0x13e)](_0xd5f531,_0x3010f0);}};if(_0x13074a['rkhME'](_0x13074a['Guztm'],_0x13074a[_0x1dbb(0x13f)])){_0x382444[_0x1dbb(0x6d)][_0x1dbb(0xcb)](_0x213be1,{'toValue':0x1,'duration':0xfa0,'useNativeDriver':![]})['start']();const _0x41404d=_0x13074a[_0x1dbb(0x140)](_0x567b0e,()=>{(0x0,_0x55203b[_0x1dbb(0x9d)])(_0x4e0533[_0x1dbb(0x9e)]['SUCCESS']),_0x3ae679[_0x1dbb(0x141)][_0x1dbb(0x142)]([0x0,0x64,0x32,0x64]),_0x494c60[_0x1dbb(0x143)](_0x2afb70);},0xfa0);_0x13074a[_0x1dbb(0x144)](_0x47d148,_0x41404d);}else{(0x0,_haptics[_0x1dbb(0x9d)])(_haptics[_0x1dbb(0x9e)][_0x1dbb(0x9f)]),_0x13074a[_0x1dbb(0x10f)](_0x2a6730,!![]);try{_0x4803ab(!![]);}finally{if(_0x13074a[_0x1dbb(0x145)](_0x13074a[_0x1dbb(0x146)],_0x13074a[_0x1dbb(0x146)])){_0x688c01[_0x1dbb(0x11)]('🤖\x20[LLM]\x20Opening\x20WebView\x20for\x20'+_0x37e1c9+_0x1dbb(0x105)),_0x494c60['ZhnMd'](_0x134586,_0x2ef65a),_0x494c60['nwXuN'](_0x1d72c1,_0x3f7697=>({..._0x3f7697,[_0x2ff48f]:_0x1dbb(0x107)}));const _0x45eea3=(0x0,_0x2fae5e[_0x1dbb(0x108)])(_0xe59cd);_0x45eea3?(_0x4f6c2e[_0x1dbb(0x11)](_0x1dbb(0x109)+_0x482105+'\x20URL:',_0x45eea3),_0x39b600(_0x45eea3),_0x494c60['woKzn'](_0x366dbf,!![])):(_0x38da33['error']('❌\x20[LLM]\x20No\x20URL\x20configured\x20for\x20platform:\x20'+_0x11468a),_0x494c60['nwXuN'](_0x4937db,_0x498e30=>({..._0x498e30,[_0x59e2a2]:_0x1dbb(0x95)})),(0x0,_0x5e3b1f[_0x1dbb(0x9d)])(_0x131c5c[_0x1dbb(0x9e)][_0x1dbb(0x10b)]));return;}else _0x13074a[_0x1dbb(0x13a)](_0x2a6730,![]);}}},_0x1edb2e=()=>{const _0x2d396f={'BKNba':function(_0x46990d,_0x2bd041){return _0x46990d(_0x2bd041);},'NuUXM':function(_0xdc74f9,_0xcb7594){return _0x13074a['qlOPc'](_0xdc74f9,_0xcb7594);},'phUPA':_0x13074a['nmWga'],'XqVEM':function(_0x416077,_0x5e69de){return _0x416077!=_0x5e69de;},'qKYPH':_0x13074a[_0x1dbb(0x147)],'fHLSs':_0x13074a[_0x1dbb(0x148)],'jnEzr':function(_0x4a8641,_0x27da8e,_0x57a919,_0x46d524){return _0x13074a[_0x1dbb(0x149)](_0x4a8641,_0x27da8e,_0x57a919,_0x46d524);}};if(_0x13074a[_0x1dbb(0x14a)](_0x13074a['ceheJ'],_0x13074a[_0x1dbb(0x14b)])){(0x0,_0x4a680a[_0x1dbb(0x9d)])(_0x1fce2a['HapticType'][_0x1dbb(0x9f)]),_0x2d396f['BKNba'](_0x1d2706,!![]);try{_0x2d396f[_0x1dbb(0x14c)](_0x5d6066,!![]);}finally{_0x5019f2(![]);}}else{(0x0,_haptics[_0x1dbb(0x9d)])(_haptics[_0x1dbb(0x9e)][_0x1dbb(0x9f)]);if(_0x1d636f){if(_0x13074a['STuXi'](_0x1dbb(0x45),_0x13074a[_0x1dbb(0x14d)]))_0x1d636f();else{if(!_0x52b28e&&_0x583045&&_0x2da097['__esModule'])return _0x411884;var _0x5f4956,_0x42b890,_0x9682dc={'__proto__':null,'default':_0x4b8da1};if(_0x2d396f['NuUXM'](null,_0x16abcf)||_0x2d396f['phUPA']!=typeof _0x417fd9&&_0x2d396f[_0x1dbb(0x14e)](_0x2d396f['qKYPH'],typeof _0x27c02d))return _0x9682dc;if(_0x5f4956=_0x31aa20?_0x2190fe:_0x383ea3){if(_0x5f4956[_0x1dbb(0xb)](_0x47f335))return _0x5f4956[_0x1dbb(0x16)](_0x50a8e6);_0x5f4956[_0x1dbb(0xc)](_0x381d53,_0x9682dc);}for(const _0x2c2745 in _0x172e35)_0x2d396f[_0x1dbb(0x14f)]!==_0x2c2745&&{}[_0x1dbb(0x14)][_0x1dbb(0x150)](_0x22beda,_0x2c2745)&&((_0x42b890=(_0x5f4956=_0x147f84[_0x1dbb(0x0)])&&_0x4d95eb[_0x1dbb(0x15)](_0x5b6541,_0x2c2745))&&(_0x42b890[_0x1dbb(0x16)]||_0x42b890[_0x1dbb(0xc)])?_0x2d396f[_0x1dbb(0x151)](_0x5f4956,_0x9682dc,_0x2c2745,_0x42b890):_0x9682dc[_0x2c2745]=_0x23ca21[_0x2c2745]);return _0x9682dc;}}}},_0x25207c=async()=>{const _0x12832f={'JHBGj':function(_0x34b04c,_0x3a82e7){return _0x34b04c(_0x3a82e7);}};if(_0x13074a[_0x1dbb(0x152)](_0x13074a[_0x1dbb(0x153)],_0x13074a[_0x1dbb(0x153)])){(0x0,_haptics['triggerHaptic'])(_haptics[_0x1dbb(0x9e)][_0x1dbb(0x9f)]),_0x13074a[_0x1dbb(0x154)](_0x599052,!![]),await new Promise(_0x345f7d=>setTimeout(_0x345f7d,0x32));try{if(_0x5673f5){if(_0x13074a[_0x1dbb(0xb5)](_0x13074a[_0x1dbb(0x155)],_0x1dbb(0x47)))await _0x13074a['iTZmy'](_0x5673f5,_0x3b87ab);else{const _0x4639e0=_0x1bbcfa[0x0]['id'];(!_0x40ffef||!_0x44de0f[_0x1dbb(0xed)](_0x318753=>_0x318753['id']===_0x2b9b54))&&_0x44ca87(_0x4639e0);}}else await _0x13074a[_0x1dbb(0x112)](_0x3393fc,Array['from'](_0x3dbef8));}finally{_0x599052(![]);}}else _0x1fe906[_0x1dbb(0x11)](_0x1dbb(0x156)+_0x254821),_0x12832f[_0x1dbb(0x157)](_0x48a95b,_0x2bf21a),_0x12832f[_0x1dbb(0x157)](_0x343c3a,!![]);},_0x4552fc=()=>{(0x0,_haptics['triggerHaptic'])(_haptics[_0x1dbb(0x9e)][_0x1dbb(0x9f)]),_0x13074a[_0x1dbb(0xc7)](_0x2c51cd,![]);},_0x443094=async _0x31edad=>{if(_0x13074a[_0x1dbb(0x158)](_0x1dbb(0x159),_0x13074a[_0x1dbb(0x15a)]))_0x13074a[_0x1dbb(0xc7)](_0x28adff,_0x5a404d=>({..._0x5a404d,[_0x5f10f8]:_0x1dbb(0x95)})),(0x0,_0x7dac1f[_0x1dbb(0x9d)])(_0x42d96f['HapticType']['ERROR']);else{(0x0,_haptics['triggerHaptic'])(_haptics[_0x1dbb(0x9e)]['BUTTON_PRESS']),_0x5e5c16(_0x31edad);try{await _asyncStorage['default'][_0x1dbb(0xc8)](_0x1dbb(0x15b),_0x31edad),console[_0x1dbb(0x11)](_0x1dbb(0x15c)+_0x31edad);}catch(_0x3407dd){console['error'](_0x13074a[_0x1dbb(0x15d)],_0x3407dd);}_0x128747&&_0x128747(_0x31edad);}},_0x4e38bd=()=>{if(_0x13074a[_0x1dbb(0xb2)](_0x13074a[_0x1dbb(0x15e)],_0x13074a[_0x1dbb(0x15f)])){const Linking=__ONAIROS_REQ_FUNC__(0x10)[_0x1dbb(0x160)];Linking[_0x1dbb(0x161)](_0x1dbb(0x5a));}else _0x344e59[_0x1dbb(0x95)](_0x13074a['gRtpe'],_0x57cc71);},_0x130f23=async _0x4243a0=>{_0x13074a['UwFwY'](_0x374ec4,_0x4243a0),(0x0,_pinStorageUtils['setTemporaryPin'])(_0x4243a0),_0x13074a['iTZmy'](_0x4803ab,![]),_0x410a55(!![]);},_0x5b229d=()=>{_0x13074a[_0x1dbb(0x162)]!==_0x13074a['wUgLo']?(_0x13074a[_0x1dbb(0x11e)](_0x410a55,![]),_0x13074a[_0x1dbb(0x163)](_0x2c51cd,!![])):_0x13074a[_0x1dbb(0x164)](_0x3d7a57,_0x465d9c=>({..._0x465d9c,[_0x85c6a7]:_0x1dbb(0x118)}));},_0x4d4452=async _0x319df9=>{const _0x31a133={'DRyeT':function(_0x4d8ac4,_0x424cd9){return _0x13074a['fzHra'](_0x4d8ac4,_0x424cd9);}};if(_0x29cd6c){if(_0x13074a['APoLL'](_0x1dbb(0x50),_0x13074a[_0x1dbb(0x165)]))_0x2ff610['error'](_0x1dbb(0x166)+_0x1c9ac4),_0x31a133[_0x1dbb(0x167)](_0x302304,_0x52dd4b=>({..._0x52dd4b,[_0x4eba98]:_0x1dbb(0x95)})),(0x0,_0x4ecdca[_0x1dbb(0x9d)])(_0x13dfb5['HapticType'][_0x1dbb(0x10b)]);else{if(_0x13074a[_0x1dbb(0x168)](_0x319df9,_0x1dbb(0x169))||_0x13074a[_0x1dbb(0xf8)](_0x319df9,_0x13074a[_0x1dbb(0x16a)])){if(_0x13074a[_0x1dbb(0x16b)]!==_0x13074a[_0x1dbb(0x16b)])_0x48ceaa(![]);else{_0x13074a[_0x1dbb(0xc7)](_0x1399dd,_0x29cd6c),_0x13074a['wDwXt'](_0x41d50b,_0x2dd860=>({..._0x2dd860,[_0x29cd6c]:_0x1dbb(0xe)}));try{const _0x2dba11=await _asyncStorage['default'][_0x1dbb(0x8f)]('user_connected_platforms'),_0x4e4f1a=_0x2dba11?JSON[_0x1dbb(0xd)](_0x2dba11):[];if(!_0x4e4f1a['includes'](_0x29cd6c[_0x1dbb(0x99)]())){if(_0x13074a['tdyLT'](_0x13074a[_0x1dbb(0x16c)],_0x13074a[_0x1dbb(0x16d)]))_0x4e4f1a[_0x1dbb(0x7d)](_0x29cd6c[_0x1dbb(0x99)]()),await _asyncStorage[_0x1dbb(0x5)][_0x1dbb(0xc8)](_0x1dbb(0x90),JSON[_0x1dbb(0x129)](_0x4e4f1a)),console[_0x1dbb(0x11)]('✅\x20[STORAGE]\x20Added\x20'+_0x29cd6c+_0x1dbb(0x16e),_0x4e4f1a);else{const _0x42d5ee=new _0x2040d2(_0x46033a);let _0x5921cc=![];return _0x4bc29d[_0x1dbb(0x7a)](_0x3b8784=>{!_0x42d5ee[_0x1dbb(0xb)](_0x3b8784)&&(_0x42d5ee[_0x1dbb(0x79)](_0x3b8784),_0x5921cc=!![]);}),_0x5921cc?_0x42d5ee:_0x260066;}}}catch(_0x2000ea){console[_0x1dbb(0x95)](_0x13074a['gRtpe'],_0x2000ea);}(0x0,_webviewScripts[_0x1dbb(0x103)])(_0x29cd6c)&&(await _asyncStorage[_0x1dbb(0x5)][_0x1dbb(0xc8)](_0x1dbb(0x9c)+_0x29cd6c,JSON[_0x1dbb(0x129)]({'connected':!![],'platform':_0x29cd6c,'connectedAt':new Date()[_0x1dbb(0x16f)]()})),console[_0x1dbb(0x11)](_0x1dbb(0x170)+_0x29cd6c+'\x20connection\x20stored\x20locally')),_0x13074a[_0x1dbb(0x171)](_0x29cd6c['toLowerCase'](),_0x13074a[_0x1dbb(0xe1)])&&(_0x13074a['tWXpM'](_0x13074a[_0x1dbb(0x172)],'lInna')?(await _asyncStorage[_0x1dbb(0x5)][_0x1dbb(0xc8)](_0x1dbb(0x41),JSON['stringify']({'connected':!![],'platform':'linkedin','connectedAt':new Date()[_0x1dbb(0x16f)]()})),console[_0x1dbb(0x11)]('✅\x20[LINKEDIN]\x20Connection\x20stored\x20locally')):_0x8f1c99[_0x1dbb(0x11)]('📊\x20[STATE]\x20WebView\x20state\x20changed\x20-\x20showOAuthWebView:\x20'+_0x574b53+_0x1dbb(0x173)+(_0x410659?_0x13074a[_0x1dbb(0x174)](_0x13074a[_0x1dbb(0x175)]+_0x3f4f7c[_0x1dbb(0x11c)](0x0,0x28),_0x13074a[_0x1dbb(0x176)]):_0x13074a[_0x1dbb(0x11d)])));}}else{if(_0x13074a[_0x1dbb(0x145)](_0x13074a[_0x1dbb(0x177)],_0x13074a[_0x1dbb(0x177)])){const _0xda2501=new _0x56fb73(_0x58e2a0);_0xda2501[_0x1dbb(0x79)](_0x252146),_0x13074a[_0x1dbb(0xc7)](_0x509161,_0xda2501),_0x13074a['VtdjU'](_0x1d8ec4,_0x34510d=>({..._0x34510d,[_0x17bbc3]:'connected'})),(0x0,_0x237fe5[_0x1dbb(0x9d)])(_0x5226d8[_0x1dbb(0x9e)]['SUCCESS']);}else _0x13074a[_0x1dbb(0x164)](_0x41d50b,_0x325bb3=>({..._0x325bb3,[_0x29cd6c]:_0x1dbb(0x95)})),(0x0,_haptics[_0x1dbb(0x9d)])(_haptics[_0x1dbb(0x9e)][_0x1dbb(0x10b)]);}}}_0x13074a['ESrGi'](_0x3026e0,![]),_0xe468d4(''),_0x13074a['qTGTp'](_0x2c51af,'');};(0x0,_react[_0x1dbb(0x72)])(()=>{const _0x58e043={'Ivhww':function(_0xb91af0,_0x3acbff){return _0x13074a['EFncY'](_0xb91af0,_0x3acbff);},'EDhPo':_0x13074a[_0x1dbb(0x178)],'jjCeJ':_0x13074a[_0x1dbb(0x101)]};if(_0x13074a[_0x1dbb(0xb7)](_0x4c31f4,!_0x1c06c0)){const _0x500b7d=_0x13074a[_0x1dbb(0x179)](setTimeout,()=>{const _0x4a0929={'jRBoN':function(_0x3d102e,_0x37e9c2){return _0x3d102e===_0x37e9c2;},'iDfTn':function(_0x44ce91,_0xf4a8db){return _0x13074a['ycdYA'](_0x44ce91,_0xf4a8db);},'MMYLb':'connecting','IfNlB':function(_0x199ced,_0xd5b7e1){return _0x13074a[_0x1dbb(0x158)](_0x199ced,_0xd5b7e1);},'MadPu':_0x13074a[_0x1dbb(0xde)],'jTCKr':function(_0x354bc2,_0x14b844){return _0x354bc2===_0x14b844;},'eBgSG':_0x13074a[_0x1dbb(0x17a)],'bUxmG':_0x13074a['bcdZu'],'Qcray':_0x13074a[_0x1dbb(0x85)],'DkqcD':function(_0x19021e,_0x35b38b){return _0x13074a['XuoQM'](_0x19021e,_0x35b38b);},'tcBJS':_0x13074a[_0x1dbb(0x88)]};if(_0x13074a['FExTJ'](_0x1dbb(0x17b),_0x13074a[_0x1dbb(0x17c)]))_0x13074a[_0x1dbb(0x17d)](_0x220457,_0xa6c349=>{if(_0x58e043[_0x1dbb(0x17e)](_0x58e043['EDhPo'],_0x58e043[_0x1dbb(0x17f)])){const _0x471438=_0x4a0929[_0x1dbb(0x180)](_0x23cc19,_0x5b32f0['id']),_0x3c754f=_0x149268[_0x1dbb(0xb)](_0x2a786a['id']),_0x1b0ad3=_0x4a0929['iDfTn'](_0x46b295[_0x3c9913['id']],_0x4a0929['MMYLb']);return _0x1f121d['default'][_0x1dbb(0x181)](_0x355377[_0x1dbb(0x182)],{'key':_0x220f66['id'],'style':[_0x53ec52[_0x1dbb(0x183)],_0x471438&&_0x57e675['platformIconButtonSelected']],'onPress':()=>{(0x0,_0x14bda8[_0x1dbb(0x9d)])(_0x1606a8[_0x1dbb(0x9e)][_0x1dbb(0x9f)]),_0x11598c(_0x2dba23['id']);},'activeOpacity':0.7},_0x4b58d1['default'][_0x1dbb(0x181)](_0x2ff352[_0x1dbb(0x184)],{'source':_0x58bb9e[_0x1dbb(0x185)],'style':[_0x4a8c11[_0x1dbb(0x186)],_0x4a0929['IfNlB'](_0x2b3a33['id'],_0x4a0929['MadPu'])&&_0x324176[_0x1dbb(0x187)],_0x4a0929[_0x1dbb(0x188)](_0x2b5ba3['id'],_0x4a0929[_0x1dbb(0x189)])&&_0x52b78d[_0x1dbb(0x18a)],_0x4a0929[_0x1dbb(0x18b)](_0x30cd1f['id'],_0x4a0929['bUxmG'])&&_0x7932c0[_0x1dbb(0x18c)],_0x4a0929['jRBoN'](_0xc44780['id'],_0x4a0929[_0x1dbb(0x18d)])&&_0x2a7053[_0x1dbb(0x18e)],_0x4a0929[_0x1dbb(0x18f)](_0x2d1ff5['id'],_0x1dbb(0x2a))&&_0x39031f['claudeIcon'],_0x54bc20['id']===_0x4a0929[_0x1dbb(0x190)]&&_0x2ba0e4[_0x1dbb(0x191)]],'resizeMode':_0x1dbb(0x5c)}),_0x1b0ad3&&_0x3828b2[_0x1dbb(0x5)][_0x1dbb(0x181)](_0xc0963['View'],{'style':_0x3b10b0['connectingDot']}),_0x3c754f&&_0x564d1a[_0x1dbb(0x5)][_0x1dbb(0x181)](_0x31f213[_0x1dbb(0x192)],{'style':_0x4e59fe[_0x1dbb(0x193)]}));}else{const _0xb4bf6f=new Set(_0xa6c349);return _0xb4bf6f[_0x1dbb(0x79)](_0x4c31f4),_0xb4bf6f;}}),(0x0,_haptics[_0x1dbb(0x9d)])(_haptics['HapticType'][_0x1dbb(0xa9)]),console['log'](_0x1dbb(0xaa)+_0x4c31f4),_0x1399dd(null);else{_0x20166d['error'](_0x58e043[_0x1dbb(0x194)]);return;}},0x12c);return()=>clearTimeout(_0x500b7d);}},[_0x4c31f4,_0x1c06c0]);const _0x439d4f=()=>{_0x13074a[_0x1dbb(0x115)](_0x1dbb(0x195),_0x1dbb(0x196))?(_0x13074a['Nbful'](_0x3026e0,![]),_0x13074a[_0x1dbb(0x197)](_0xe468d4,''),_0x29cd6c&&_0x41d50b(_0xc613e3=>({..._0xc613e3,[_0x29cd6c]:'disconnected'})),_0x2c51af('')):((0x0,_0x1b4a7f['triggerHaptic'])(_0x56fa7c[_0x1dbb(0x9e)][_0x1dbb(0xa9)]),_0x2356c6[_0x1dbb(0x141)][_0x1dbb(0x142)]([0x0,0x64,0x32,0x64]),_0x13074a[_0x1dbb(0x198)](_0x194ea9));},_0x5aafb5=()=>{_0x4803ab(![]);},_0x57858d=()=>{_0x1956cf&&_0x13074a['hxYxh'](_0x1956cf);},_0x4f4dbb=()=>{const _0x1bfbc4={'iUFMe':function(_0x4aca50){return _0x13074a['pgijl'](_0x4aca50);}};_reactNative[_0x1dbb(0x6d)][_0x1dbb(0xcb)](_0x852aca,{'toValue':0x1,'duration':0xfa0,'useNativeDriver':![]})[_0x1dbb(0xcc)]();const _0x1f3997=setTimeout(()=>{(0x0,_haptics['triggerHaptic'])(_haptics[_0x1dbb(0x9e)][_0x1dbb(0xa9)]),_reactNative[_0x1dbb(0x141)][_0x1dbb(0x142)]([0x0,0x64,0x32,0x64]),_0x1bfbc4['iUFMe'](_0x57858d);},0xfa0);_0x13074a['kGAPK'](_0x453897,_0x1f3997);},_0x44919c=()=>{_0x291442&&(_0x13074a[_0x1dbb(0x199)]===_0x13074a['SMuCO']?((0x0,_0x19c321['triggerHaptic'])(_0x57eb07[_0x1dbb(0x9e)][_0x1dbb(0x9f)]),_0x3db978&&_0x2296a6()):(_0x13074a[_0x1dbb(0x144)](clearTimeout,_0x291442),_0x13074a[_0x1dbb(0x13e)](_0x453897,null))),_0x852aca[_0x1dbb(0x19a)](0x0),_reactNative[_0x1dbb(0x6d)][_0x1dbb(0xcb)](_0x852aca,{'toValue':0x0,'duration':0xc8,'useNativeDriver':![]})['start']();};(0x0,_react['useEffect'])(()=>{return()=>{_0x291442&&_0x13074a['UEHek'](clearTimeout,_0x291442);};},[_0x291442]),(0x0,_react[_0x1dbb(0x72)])(()=>{_0x13074a[_0x1dbb(0x19b)](_0x1c06c0,_0x47c89d)&&console[_0x1dbb(0x11)](_0x1dbb(0x19c)+_0x1c06c0+_0x1dbb(0x173)+(_0x47c89d?_0x13074a[_0x1dbb(0x19d)](_0x13074a['DGJmn'](_0x13074a[_0x1dbb(0x175)],_0x47c89d['substring'](0x0,0x28)),_0x13074a[_0x1dbb(0x176)]):'NULL'));},[_0x1c06c0,_0x47c89d]);const _0x12b2c7=Math[_0x1dbb(0x19e)](0x5,Math[_0x1dbb(0x19f)](0x1,_0x3dbef8['size']+0x1)),_0x39a555=0x78,_0x3e1ec2=0x46;if(_0x4ee566)return _react['default'][_0x1dbb(0x181)](_PinCreationScreen[_0x1dbb(0x5)],{'visible':_0x4ee566,'onComplete':_0x130f23,'onBack':_0x5aafb5});if(_0x36048a){if(_0x13074a[_0x1dbb(0x1a0)](_0x13074a[_0x1dbb(0x1a1)],_0x13074a[_0x1dbb(0x1a1)]))return _react['default'][_0x1dbb(0x181)](_PersonaLoadingScreen[_0x1dbb(0x5)],{'visible':_0x36048a,'onComplete':_0x5b229d});else!_0x49444d['has'](_0x412329)&&(_0x49bcb7[_0x1dbb(0x79)](_0x136d61),_0x1e0ab2=!![]);}if(_0x13074a[_0x1dbb(0x1a2)](_0x1c06c0,_0x47c89d)){if(_0x13074a[_0x1dbb(0x133)](_0x13074a['NXJJy'],_0x13074a['NXJJy']))return console[_0x1dbb(0x11)](_0x1dbb(0x1a3)+_0x29cd6c+_0x1dbb(0x1a4)+_0x47c89d[_0x1dbb(0x11c)](0x0,0x3c)+_0x1dbb(0x11a)),_react[_0x1dbb(0x5)]['createElement'](_OAuthWebView[_0x1dbb(0x1a5)],{'url':_0x47c89d,'platform':_0x29cd6c,'onClose':_0x439d4f,'onSuccess':_0x4d4452,'onComplete':_0x439d4f,'username':_0x2bf149});else{const Linking=_0x13074a['UwFwY'](_0x1dd061,0x10)[_0x1dbb(0x160)];Linking[_0x1dbb(0x161)](_0x13074a[_0x1dbb(0x1a6)]);}}const _0xa7fa38=()=>{const _0xcccc66={'rIsPM':function(_0x328c3f){return _0x13074a[_0x1dbb(0x198)](_0x328c3f);}};_0x13074a[_0x1dbb(0x1a7)](_0x13074a[_0x1dbb(0x1a8)],_0x13074a['LaohY'])?_0x1b13e8&&_0xcccc66['rIsPM'](_0x972f71):((0x0,_haptics['triggerHaptic'])(_haptics[_0x1dbb(0x9e)]['BUTTON_PRESS']),_0x2c51cd(![]));};if(_0x51feb4){if(_0x13074a[_0x1dbb(0x1a9)](_0x13074a[_0x1dbb(0x1aa)],'vclDR'))return _react[_0x1dbb(0x5)]['createElement'](_PersonalizationConsentScreen[_0x1dbb(0x5)],{'visible':_0x51feb4,'onAccept':_0x25207c,'onDecline':_0x4552fc,'connectedPlatforms':Array[_0x1dbb(0xac)](_0x3dbef8),'onConnectMore':_0xa7fa38,'loading':_0x36022e});else _0x36113d['error'](_0x13074a['dsxRB'],_0x3b6aeb);}return _react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative['View'],{'style':styles[_0x1dbb(0x1ab)]},_react['default'][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x1ac)],{'style':styles[_0x1dbb(0x1ad)],'showsVerticalScrollIndicator':![],'bounces':!![]},_0x234c9a&&_react['default']['createElement'](_reactNative[_0x1dbb(0x182)],{'style':styles[_0x1dbb(0x1ae)],'onPress':_0x234c9a,'activeOpacity':0.7},_react[_0x1dbb(0x5)]['createElement'](_reactNative[_0x1dbb(0x1af)],{'style':styles[_0x1dbb(0x1b0)]},'‹')),_react['default']['createElement'](_reactNative[_0x1dbb(0x192)],{'style':styles[_0x1dbb(0x1b1)]},_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative['Text'],{'style':styles[_0x1dbb(0x1b2)]},_0x1dbb(0x1b3)),_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x1af)],{'style':styles[_0x1dbb(0x1b4)]},_0x13074a[_0x1dbb(0x1b5)])),_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x192)],{'style':styles[_0x1dbb(0x1b6)]},_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_PersonaImage['default'],{'level':_0x12b2c7,'style':styles[_0x1dbb(0x1b7)]}),_react[_0x1dbb(0x5)]['createElement'](_reactNative[_0x1dbb(0x1ac)],{'ref':_0x2478a9,'horizontal':!![],'style':[styles['platformIconsOverlay'],{'bottom':_0x39a555}],'contentContainerStyle':[styles[_0x1dbb(0x1b8)],_0x13074a['KXlch'](_0x40780b[_0x1dbb(0x75)],0x4)&&styles[_0x1dbb(0x1b9)]],'showsHorizontalScrollIndicator':![],'onScroll':_0x33821f,'scrollEventThrottle':0x10,'decelerationRate':_0x13074a[_0x1dbb(0x1ba)],'scrollEnabled':_0x13074a[_0x1dbb(0x8b)](_0x40780b['length'],0x4)},_0x40780b[_0x1dbb(0x9a)](_0x42c6e6=>{const _0x5e3c4e=_0x13074a['fnYov'](_0x5a8b39,_0x42c6e6['id']),_0x4bf0c7=_0x3dbef8[_0x1dbb(0xb)](_0x42c6e6['id']),_0x22bb37=_0x13074a[_0x1dbb(0xbd)](_0x54dfd0[_0x42c6e6['id']],_0x1dbb(0x107));return _react['default'][_0x1dbb(0x181)](_reactNative['TouchableOpacity'],{'key':_0x42c6e6['id'],'style':[styles[_0x1dbb(0x183)],_0x5e3c4e&&styles[_0x1dbb(0x1bb)]],'onPress':()=>{(0x0,_haptics[_0x1dbb(0x9d)])(_haptics['HapticType'][_0x1dbb(0x9f)]),_0x9ae72e(_0x42c6e6['id']);},'activeOpacity':0.7},_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x184)],{'source':_0x42c6e6[_0x1dbb(0x185)],'style':[styles[_0x1dbb(0x186)],_0x13074a[_0x1dbb(0x1bc)](_0x42c6e6['id'],_0x1dbb(0x56))&&styles[_0x1dbb(0x187)],_0x13074a['vVFtC'](_0x42c6e6['id'],_0x13074a[_0x1dbb(0x17a)])&&styles[_0x1dbb(0x18a)],_0x13074a[_0x1dbb(0x171)](_0x42c6e6['id'],_0x13074a[_0x1dbb(0x1bd)])&&styles[_0x1dbb(0x18c)],_0x42c6e6['id']==='chatgpt'&&styles[_0x1dbb(0x18e)],_0x13074a[_0x1dbb(0x122)](_0x42c6e6['id'],_0x13074a[_0x1dbb(0x86)])&&styles[_0x1dbb(0x1be)],_0x13074a[_0x1dbb(0x1bf)](_0x42c6e6['id'],_0x13074a['qbFYk'])&&styles['grokIcon']],'resizeMode':_0x13074a[_0x1dbb(0x1c0)]}),_0x22bb37&&_react['default'][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x192)],{'style':styles[_0x1dbb(0x1c1)]}),_0x4bf0c7&&_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative['View'],{'style':styles[_0x1dbb(0x193)]}));})),_0x40780b[_0x1dbb(0x75)]>0x4&&_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x192)],{'style':[styles[_0x1dbb(0x1c2)],{'bottom':_0x3e1ec2}]},_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x192)],{'style':styles[_0x1dbb(0x1c3)]},_react['default']['createElement'](_reactNative[_0x1dbb(0x192)],{'style':[styles[_0x1dbb(0x1c4)],{'left':_0x13074a[_0x1dbb(0x1c5)](_0x183db1,0x38)}]}))),_0x4b5fc3&&_0x13074a[_0x1dbb(0x74)](_0x40780b[_0x1dbb(0x75)],0x4)&&_react['default'][_0x1dbb(0x181)](_reactNative['Animated']['View'],{'style':[styles[_0x1dbb(0x1c6)],{'transform':[{'translateX':_0x42a6d1['interpolate']({'inputRange':[0x0,0x1],'outputRange':[0x0,0x8]})}],'opacity':_0x42a6d1[_0x1dbb(0x1c7)]({'inputRange':[0x0,0x1],'outputRange':[0.5,0x1]})}]},_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x1af)],{'style':styles[_0x1dbb(0x1c8)]},'›'))),_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative['View'],{'style':styles[_0x1dbb(0x1c9)]},_0x5a8b39&&((()=>{const _0x2e4d20=_0x40780b['find'](_0x446040=>_0x446040['id']===_0x5a8b39);if(!_0x2e4d20)return null;const _0x272e73=_0x3dbef8[_0x1dbb(0xb)](_0x5a8b39),_0x53c8ae=_0x54dfd0[_0x5a8b39]===_0x1dbb(0x107),_0x5d6c0c=_0x5761d6===null||_0x13074a[_0x1dbb(0x1ca)](_0x5761d6,void 0x0)?void 0x0:_0x5761d6['includes'](_0x5a8b39);return _react['default'][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x192)],{'style':styles[_0x1dbb(0x1cb)]},_react['default'][_0x1dbb(0x181)](_reactNative['View'],{'style':styles[_0x1dbb(0x1cc)]},_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative['Text'],{'style':styles[_0x1dbb(0x1cd)]},_0x2e4d20[_0x1dbb(0xbe)]),_0x5d6c0c&&_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x192)],{'style':styles[_0x1dbb(0x1ce)]},_react['default'][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x1af)],{'style':styles['recommendedBadgeText']},_0x1dbb(0x1cf))),_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x182)],{'activeOpacity':0.8,'onPress':()=>!_0x53c8ae&&_0x27305a(_0x5a8b39,!_0x272e73),'disabled':_0x53c8ae,'style':[styles['customToggleTrack'],{'backgroundColor':_0x272e73?_0x1dbb(0x1d0):_0x13074a['uhuTc']}]},_react[_0x1dbb(0x5)]['createElement'](_reactNative['View'],{'style':[styles['customToggleThumb'],{'transform':[{'translateX':_0x272e73?0x14:0x0}]}]}))),_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x192)],{'style':styles['descriptionContainer']},_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x1af)],{'style':styles[_0x1dbb(0x1d1)]},_0x2e4d20[_0x1dbb(0x1d2)])));})())),_react[_0x1dbb(0x5)]['createElement'](_reactNative['View'],{'style':styles[_0x1dbb(0x1d3)]},_react['default']['createElement'](_reactNative['Text'],{'style':styles[_0x1dbb(0x1d4)]},_0x13074a[_0x1dbb(0x1d5)]),_react['default'][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x1af)],{'style':styles[_0x1dbb(0x1d6)]},_0x13074a[_0x1dbb(0x1d7)]),_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x192)],{'style':styles[_0x1dbb(0x1d8)]},MODEL_REFRESH_OPTIONS[_0x1dbb(0x9a)](_0xe544fa=>_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x182)],{'key':_0xe544fa[_0x1dbb(0x1d9)],'style':[styles['refreshSegment'],_0x4d8976===_0xe544fa[_0x1dbb(0x1d9)]&&styles[_0x1dbb(0x1da)]],'onPress':()=>_0x443094(_0xe544fa['value']),'activeOpacity':0.7},_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative['Text'],{'style':[styles[_0x1dbb(0x1db)],_0x4d8976===_0xe544fa['value']&&styles['refreshSegmentTextSelected']]},_0xe544fa[_0x1dbb(0x1dc)])))),_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x1af)],{'style':styles['refreshFrequencyHint']},(_0x13074a[_0x1dbb(0x1dd)](_0x45cf2b=MODEL_REFRESH_OPTIONS[_0x1dbb(0xed)](_0x247e3c=>_0x247e3c[_0x1dbb(0x1d9)]===_0x4d8976),null)||_0x13074a[_0x1dbb(0xf2)](_0x45cf2b,void 0x0)?void 0x0:_0x45cf2b['description'])||'')),_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative['View'],{'style':styles[_0x1dbb(0x1de)]},_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x192)],{'style':styles[_0x1dbb(0x1df)]},_react['default'][_0x1dbb(0x181)](_PrimaryButton['default'],{'label':_0x13074a[_0x1dbb(0x1e0)],'onPress':_0x42495b,'disabled':loading||_0x13074a[_0x1dbb(0x1e1)](_0x3dbef8[_0x1dbb(0x1e2)],0x0)||_0x392fa2||_0x5dc198,'loading':_0x13074a['tDsMg'](loading,_0x392fa2)||_0x5dc198}),_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x182)],{'style':styles[_0x1dbb(0x1e3)],'activeOpacity':0x1,'onPressIn':_0x4f4dbb,'onPressOut':_0x44919c,'onPress':()=>{const _0x2eebdf={'QFiJC':function(_0x4331a4,_0x42ee2f){return _0x4331a4===_0x42ee2f;},'rIYzO':_0x13074a[_0x1dbb(0x1e4)]};_0x13074a['keVRM'](_0x3dbef8['size'],0x0)&&!loading&&!_0x392fa2&&!_0x5dc198&&(_0x13074a[_0x1dbb(0xb2)](_0x13074a[_0x1dbb(0x1e5)],_0x1dbb(0x1e6))?_0x42495b():(_0x3036eb[_0x1dbb(0x7a)](_0x8ef0eb=>{var _0x42a38d;const _0x2af93a=(_0x42a38d=_0x8ef0eb[_0x1dbb(0x97)])===null||_0x2eebdf['QFiJC'](_0x42a38d,void 0x0)?void 0x0:_0x42a38d['toLowerCase']();_0x2af93a&&!_0x50cb06[_0x1dbb(0xf)](_0x2af93a)&&_0x4031ef[_0x1dbb(0x7d)](_0x2af93a);}),_0x2fe293[_0x1dbb(0x11)](_0x2eebdf['rIYzO'],_0xfc94[_0x1dbb(0x9a)](_0x1cd8a8=>_0x1cd8a8[_0x1dbb(0x97)]))));}},_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x6d)]['View'],{'style':[styles[_0x1dbb(0x1e7)],{'width':_0x852aca[_0x1dbb(0x1c7)]({'inputRange':[0x0,0x1],'outputRange':['0%',_0x1dbb(0x1e8)]})}]}))),_0x1d636f&&_react[_0x1dbb(0x5)][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x182)],{'style':styles['skipButton'],'onPress':_0x1edb2e},_react['default'][_0x1dbb(0x181)](_reactNative[_0x1dbb(0x1af)],{'style':styles[_0x1dbb(0x1e9)]},_0x1dbb(0x1ea))))));},styles=_reactNative[_0x1dbb(0x1eb)]['create']({'container':{'flex':0x1,'backgroundColor':_theme[_0x1dbb(0x1ec)]['surface'],'paddingHorizontal':0x18},'backButton':{'width':0x20,'height':0x20,'borderRadius':0x10,'backgroundColor':_0x1dbb(0x1ed),'alignItems':_0x1dbb(0x1ee),'justifyContent':'center','marginBottom':0x2},'backButtonText':{'fontSize':0x16,'fontWeight':'600','color':_0x1dbb(0x1ef),'marginTop':-0x2},'scrollContent':{'flex':0x1},'headingContainer':{'width':_0x1dbb(0x1e8),'marginBottom':_theme['SPACING']['sm'],'paddingTop':0x0,'marginTop':0x0},'title':{'fontFamily':_0x1dbb(0x1f0),'fontWeight':_0x1dbb(0x1f1),'fontSize':0x18,'lineHeight':0x20,'color':_theme[_0x1dbb(0x1ec)]['grey800'],'textAlign':_0x1dbb(0x1f2),'marginBottom':0x4},'subtitle':{'fontFamily':'Inter','fontWeight':_0x1dbb(0x1f3),'fontSize':0x10,'lineHeight':0x18,'color':_theme['COLORS']['grey600'],'textAlign':_0x1dbb(0x1f2)},'personaContainer':{'alignItems':'center','position':_0x1dbb(0x1f4),'marginTop':-0x14,'marginBottom':-0x78,'height':0x1c2},'largePersona':{'width':0x1f4,'height':0x1f4},'platformIconsOverlay':{'position':_0x1dbb(0x1f5),'width':_0x1dbb(0x1e8),'height':0x46,'zIndex':0xa},'platformIconsScrollContent':{'flexDirection':'row','alignItems':'center','paddingHorizontal':0x14,'gap':0x18},'platformIconsCentered':{'flexGrow':0x1,'justifyContent':'center'},'platformIconButton':{'width':0x34,'height':0x34,'borderRadius':0x1a,'backgroundColor':_0x1dbb(0x1f6),'justifyContent':_0x1dbb(0x1ee),'alignItems':_0x1dbb(0x1ee),'borderWidth':0x3,'borderColor':_0x1dbb(0x1f7),'shadowColor':_0x1dbb(0x1f8),'shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.15,'shadowRadius':0x4,'elevation':0x4},'platformIconButtonSelected':{'borderColor':'#3B82F6','backgroundColor':'#EFF6FF'},'platformIcon':{'width':0x1e,'height':0x1e},'youtubeIcon':{'width':0x2a,'height':0x2a},'pinterestIcon':{'width':0x24,'height':0x24},'gmailIcon':{'width':0x24,'height':0x24},'chatgptIcon':{'width':0x1e,'height':0x1e},'claudeIcon':{'width':0x20,'height':0x20},'grokIcon':{'width':0x24,'height':0x24},'connectingDot':{'position':_0x1dbb(0x1f5),'top':0x2,'right':0x2,'width':0xc,'height':0xc,'borderRadius':0x6,'backgroundColor':_0x1dbb(0x1f9),'borderWidth':0x2,'borderColor':_theme['COLORS'][_0x1dbb(0x1fa)]},'connectedDot':{'position':_0x1dbb(0x1f5),'top':0x2,'right':0x2,'width':0xc,'height':0xc,'borderRadius':0x6,'backgroundColor':_0x1dbb(0x1d0),'borderWidth':0x2,'borderColor':_theme[_0x1dbb(0x1ec)]['surface']},'cardContainer':{'alignItems':'center','marginTop':0x10,'marginBottom':_theme[_0x1dbb(0x1fb)]['md']},'platformCard':{'width':0x147,'backgroundColor':_0x1dbb(0x1f6),'borderRadius':0x10,'padding':0x8,'shadowColor':_0x1dbb(0x1f8),'shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.1,'shadowRadius':0x8,'elevation':0x3,'gap':0xa},'cardHeader':{'flexDirection':_0x1dbb(0x1fc),'alignItems':_0x1dbb(0x1ee),'justifyContent':_0x1dbb(0x1fd)},'platformCardTitle':{'fontSize':0x10,'fontWeight':_0x1dbb(0x1fe),'color':_theme[_0x1dbb(0x1ec)][_0x1dbb(0x1ff)],'fontFamily':_0x1dbb(0x1f0)},'recommendedBadge':{'backgroundColor':'#EFF6FF','paddingHorizontal':0xc,'paddingVertical':0x6,'borderRadius':0x10,'marginLeft':0x8},'recommendedBadgeText':{'fontSize':0xc,'fontWeight':_0x1dbb(0x1fe),'color':_0x1dbb(0x200),'fontFamily':_0x1dbb(0x1f0)},'customToggleTrack':{'width':0x32,'height':0x1e,'borderRadius':0xf,'padding':0x2,'marginLeft':_0x1dbb(0x201),'marginRight':0x8,'justifyContent':_0x1dbb(0x1ee)},'customToggleThumb':{'width':0x1a,'height':0x1a,'borderRadius':0xd,'backgroundColor':_0x1dbb(0x1f6),'shadowColor':_0x1dbb(0x1f8),'shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.2,'shadowRadius':0x2,'elevation':0x2},'descriptionContainer':{'backgroundColor':'#F9FAFB','borderRadius':0x8,'padding':0x8},'platformCardDescription':{'fontSize':0xd,'lineHeight':0x12,'color':_theme[_0x1dbb(0x1ec)][_0x1dbb(0x202)],'fontFamily':_0x1dbb(0x203)},'refreshFrequencySection':{'paddingHorizontal':0x10,'paddingVertical':0x14,'marginTop':0xc,'backgroundColor':_0x1dbb(0x204),'borderRadius':0x10,'marginHorizontal':_theme[_0x1dbb(0x1fb)]['md'],'marginBottom':0x8,'borderWidth':0x1,'borderColor':_0x1dbb(0x205)},'refreshFrequencyTitle':{'fontSize':0x11,'fontWeight':'700','color':_0x1dbb(0x1ef),'fontFamily':'IBM\x20Plex\x20Sans','marginBottom':0x4},'refreshFrequencyDescription':{'fontSize':0xe,'color':_0x1dbb(0x206),'fontFamily':_0x1dbb(0x203),'fontWeight':'400','marginBottom':0x10},'refreshSegmentedControl':{'flexDirection':_0x1dbb(0x1fc),'backgroundColor':_0x1dbb(0x207),'borderRadius':0xc,'padding':0x3},'refreshSegment':{'flex':0x1,'paddingVertical':0xa,'alignItems':_0x1dbb(0x1ee),'justifyContent':_0x1dbb(0x1ee),'borderRadius':0xa},'refreshSegmentSelected':{'backgroundColor':_0x1dbb(0x1ef),'shadowColor':_0x1dbb(0x1f8),'shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.15,'shadowRadius':0x4,'elevation':0x3},'refreshSegmentText':{'fontSize':0xf,'fontFamily':_0x1dbb(0x203),'fontWeight':_0x1dbb(0x208),'color':'#8E8E93'},'refreshSegmentTextSelected':{'fontWeight':_0x1dbb(0x1f1),'color':_0x1dbb(0x1f6)},'refreshFrequencyHint':{'fontSize':0xd,'fontFamily':'Inter','fontWeight':'400','color':'#8E8E93','textAlign':_0x1dbb(0x1ee),'marginTop':0xc},'privacyLinkContainer':{'marginTop':0x10,'paddingTop':0x10,'borderTopWidth':0x1,'borderTopColor':_0x1dbb(0x209),'alignItems':_0x1dbb(0x1ee)},'privacyLinkText':{'fontSize':0xe,'color':'#8B5CF6','fontFamily':'Inter','fontWeight':'500'},'bottomButtonContainer':{'paddingTop':0x8,'paddingBottom':0x0,'paddingHorizontal':_theme['SPACING']['md']},'buttonWrapper':{'position':_0x1dbb(0x1f4)},'buttonOverlay':{'position':_0x1dbb(0x1f5),'top':0x0,'left':0x0,'right':0x0,'bottom':0x0,'borderRadius':0xc,'overflow':_0x1dbb(0x20a)},'holdProgressBar':{'position':_0x1dbb(0x1f5),'bottom':0x0,'left':0x0,'height':0x4,'backgroundColor':'#10B981','borderRadius':0x2},'skipButton':{'alignItems':'center','paddingVertical':0xa,'marginBottom':0x22},'skipButtonText':{'fontSize':0x10,'fontFamily':_0x1dbb(0x203),'fontWeight':_0x1dbb(0x208),'color':_theme[_0x1dbb(0x1ec)][_0x1dbb(0x202)]},'pageIndicatorContainer':{'position':_0x1dbb(0x1f5),'alignSelf':_0x1dbb(0x1ee),'zIndex':0xb},'scrollBarTrack':{'width':0x50,'height':0x4,'backgroundColor':_theme[_0x1dbb(0x1ec)][_0x1dbb(0x20b)],'borderRadius':0x2,'position':_0x1dbb(0x1f4),'overflow':'hidden'},'scrollBarThumb':{'position':_0x1dbb(0x1f5),'width':0x18,'height':0x4,'backgroundColor':_theme['COLORS'][_0x1dbb(0x202)],'borderRadius':0x2,'left':0x0},'scrollIndicator':{'position':'absolute','bottom':0x3c,'right':0x1e,'zIndex':0xc},'scrollIndicatorText':{'fontSize':0x20,'color':_theme[_0x1dbb(0x1ec)][_0x1dbb(0x20c)],'fontWeight':_0x1dbb(0x20d)}});var _default=exports[_0x1dbb(0x5)]=PlatformConnectorsStep;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.MODEL_REFRESH_OPTIONS = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _theme = require("../theme");
|
|
10
|
+
var _haptics = require("../utils/haptics");
|
|
11
|
+
var _PersonaImage = _interopRequireDefault(require("./PersonaImage"));
|
|
12
|
+
var _PrimaryButton = _interopRequireDefault(require("./PrimaryButton"));
|
|
13
|
+
var _PersonalizationConsentScreen = _interopRequireDefault(require("./PersonalizationConsentScreen"));
|
|
14
|
+
var _PinCreationScreen = _interopRequireDefault(require("./PinCreationScreen"));
|
|
15
|
+
var _PersonaLoadingScreen = _interopRequireDefault(require("./PersonaLoadingScreen"));
|
|
16
|
+
var _useConnections = require("../hooks/useConnections");
|
|
17
|
+
var _connectedAccountsService = require("../services/connectedAccountsService");
|
|
18
|
+
var _platformAuthService = require("../services/platformAuthService");
|
|
19
|
+
var _OAuthWebView = require("./onboarding/OAuthWebView");
|
|
20
|
+
var _webviewScripts = require("../utils/webviewScripts");
|
|
21
|
+
var _pinStorageUtils = require("../services/pinStorageUtils");
|
|
22
|
+
var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
|
|
23
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
24
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
25
|
+
// LLMDataInputModal removed - LLM platforms use same toggle as OAuth platforms
|
|
26
|
+
|
|
27
|
+
// useAuth removed - SDK doesn't have AuthProvider context
|
|
28
|
+
|
|
29
|
+
// Model refresh frequency options
|
|
30
|
+
|
|
31
|
+
const MODEL_REFRESH_OPTIONS = exports.MODEL_REFRESH_OPTIONS = [{
|
|
32
|
+
value: 'daily',
|
|
33
|
+
label: 'Daily',
|
|
34
|
+
description: 'Always up-to-date data.'
|
|
35
|
+
}, {
|
|
36
|
+
value: 'weekly',
|
|
37
|
+
label: 'Weekly',
|
|
38
|
+
description: 'Balanced freshness and efficiency.'
|
|
39
|
+
}, {
|
|
40
|
+
value: 'biweekly',
|
|
41
|
+
label: 'Biweekly',
|
|
42
|
+
description: 'Less frequent, more efficient.'
|
|
43
|
+
}];
|
|
44
|
+
const PlatformConnectorsStep = ({
|
|
45
|
+
onUpdate,
|
|
46
|
+
onSkip,
|
|
47
|
+
loading = false,
|
|
48
|
+
onPinComplete,
|
|
49
|
+
onReviewerBypass,
|
|
50
|
+
onLogout,
|
|
51
|
+
allowedPlatforms,
|
|
52
|
+
recommendedPlatforms,
|
|
53
|
+
initialConnectedPlatforms,
|
|
54
|
+
onRefreshFrequencyChange,
|
|
55
|
+
initialRefreshFrequency = 'weekly',
|
|
56
|
+
userEmail
|
|
57
|
+
}) => {
|
|
58
|
+
var _MODEL_REFRESH_OPTION;
|
|
59
|
+
// Initialize with initialConnectedPlatforms if provided (for returning users)
|
|
60
|
+
// Normalize to lowercase to prevent duplicates from case mismatches
|
|
61
|
+
const [connectedPlatforms, setConnectedPlatforms] = (0, _react.useState)(() => new Set((initialConnectedPlatforms || []).map(p => p.toLowerCase())));
|
|
62
|
+
const [showConsentScreen, setShowConsentScreen] = (0, _react.useState)(false);
|
|
63
|
+
const [showPinScreen, setShowPinScreen] = (0, _react.useState)(false);
|
|
64
|
+
const [showLoadingScreen, setShowLoadingScreen] = (0, _react.useState)(false);
|
|
65
|
+
// Track platforms at last consent view to detect if user added new ones
|
|
66
|
+
const platformsAtLastConsent = (0, _react.useRef)(new Set((initialConnectedPlatforms || []).map(p => p.toLowerCase())));
|
|
67
|
+
const [createdPin, setCreatedPin] = (0, _react.useState)('');
|
|
68
|
+
const [connectionStatuses, setConnectionStatuses] = (0, _react.useState)({});
|
|
69
|
+
const [showOAuthWebView, setShowOAuthWebView] = (0, _react.useState)(false);
|
|
70
|
+
const [oauthUrl, setOauthUrl] = (0, _react.useState)('');
|
|
71
|
+
const [currentPlatform, setCurrentPlatform] = (0, _react.useState)('');
|
|
72
|
+
const [longPressTimer, setLongPressTimer] = (0, _react.useState)(null);
|
|
73
|
+
const [holdProgress, setHoldProgress] = (0, _react.useState)(0);
|
|
74
|
+
const holdProgressAnim = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
|
|
75
|
+
const [selectedPlatformId, setSelectedPlatformId] = (0, _react.useState)('');
|
|
76
|
+
const scrollViewRef = (0, _react.useRef)(null);
|
|
77
|
+
const [showScrollIndicator, setShowScrollIndicator] = (0, _react.useState)(true);
|
|
78
|
+
const scrollIndicatorAnim = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
|
|
79
|
+
const [currentPage, setCurrentPage] = (0, _react.useState)(0);
|
|
80
|
+
const lastScrollX = (0, _react.useRef)(0);
|
|
81
|
+
|
|
82
|
+
// Training state
|
|
83
|
+
const [username, setUsername] = (0, _react.useState)('');
|
|
84
|
+
const [personaProgress, setPersonaProgress] = (0, _react.useState)(0);
|
|
85
|
+
const [personaStatus, setPersonaStatus] = (0, _react.useState)('Initializing...');
|
|
86
|
+
const [isPersonaComplete, setIsPersonaComplete] = (0, _react.useState)(false);
|
|
87
|
+
const [hasError, setHasError] = (0, _react.useState)(false);
|
|
88
|
+
const [userToken, setUserToken] = (0, _react.useState)(null);
|
|
89
|
+
const [userInfo, setUserInfo] = (0, _react.useState)(null);
|
|
90
|
+
const socketRef = (0, _react.useRef)(null);
|
|
91
|
+
const [isBackgroundTrainingStarted, setIsBackgroundTrainingStarted] = (0, _react.useState)(false);
|
|
92
|
+
const [backgroundTrainingProgress, setBackgroundTrainingProgress] = (0, _react.useState)('');
|
|
93
|
+
const [backgroundSocketId, setBackgroundSocketId] = (0, _react.useState)(null);
|
|
94
|
+
const [isContinueLoading, setIsContinueLoading] = (0, _react.useState)(false);
|
|
95
|
+
const [isConsentLoading, setIsConsentLoading] = (0, _react.useState)(false);
|
|
96
|
+
|
|
97
|
+
// 🎯 Pending connection - used to delay persona coloring until after WebView closes
|
|
98
|
+
const [pendingConnection, setPendingConnection] = (0, _react.useState)(null);
|
|
99
|
+
|
|
100
|
+
// Model refresh frequency state
|
|
101
|
+
const [refreshFrequency, setRefreshFrequency] = (0, _react.useState)(initialRefreshFrequency);
|
|
102
|
+
const {
|
|
103
|
+
connectPlatform,
|
|
104
|
+
disconnectPlatform,
|
|
105
|
+
isConnecting
|
|
106
|
+
} = (0, _useConnections.useConnections)();
|
|
107
|
+
// SDK doesn't have AuthProvider - user is null
|
|
108
|
+
const user = null;
|
|
109
|
+
|
|
110
|
+
// Sync initialConnectedPlatforms if provided after mount (e.g., async fetch for returning users)
|
|
111
|
+
(0, _react.useEffect)(() => {
|
|
112
|
+
if (initialConnectedPlatforms && initialConnectedPlatforms.length > 0) {
|
|
113
|
+
setConnectedPlatforms(prev => {
|
|
114
|
+
const newSet = new Set(prev);
|
|
115
|
+
let hasChanges = false;
|
|
116
|
+
initialConnectedPlatforms.forEach(platform => {
|
|
117
|
+
const normalized = platform.toLowerCase();
|
|
118
|
+
if (!newSet.has(normalized)) {
|
|
119
|
+
newSet.add(normalized);
|
|
120
|
+
hasChanges = true;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
return hasChanges ? newSet : prev;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}, [initialConnectedPlatforms]);
|
|
127
|
+
|
|
128
|
+
// 🔄 Load connected platforms from AsyncStorage on mount (for returning users)
|
|
129
|
+
// This ensures toggles reflect previously connected platforms even if initialConnectedPlatforms isn't passed
|
|
130
|
+
(0, _react.useEffect)(() => {
|
|
131
|
+
const loadConnectedPlatformsFromStorage = async () => {
|
|
132
|
+
try {
|
|
133
|
+
console.log('🔄 [PLATFORMS] Loading connected platforms from storage...');
|
|
134
|
+
const loadedPlatforms = [];
|
|
135
|
+
|
|
136
|
+
// 1. Load from user_connected_platforms (main storage for OAuth platforms)
|
|
137
|
+
const platformsJson = await _asyncStorage.default.getItem('user_connected_platforms');
|
|
138
|
+
if (platformsJson) {
|
|
139
|
+
const platforms = JSON.parse(platformsJson);
|
|
140
|
+
if (Array.isArray(platforms)) {
|
|
141
|
+
loadedPlatforms.push(...platforms);
|
|
142
|
+
console.log('✅ [PLATFORMS] Loaded from user_connected_platforms:', platforms);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// 2. Load from platform_account_details (detailed account info)
|
|
147
|
+
const accountDetailsJson = await _asyncStorage.default.getItem('platform_account_details');
|
|
148
|
+
if (accountDetailsJson) {
|
|
149
|
+
const accountDetails = JSON.parse(accountDetailsJson);
|
|
150
|
+
if (Array.isArray(accountDetails)) {
|
|
151
|
+
accountDetails.forEach(account => {
|
|
152
|
+
var _account$platform;
|
|
153
|
+
const platformId = (_account$platform = account.platform) === null || _account$platform === void 0 ? void 0 : _account$platform.toLowerCase();
|
|
154
|
+
if (platformId && !loadedPlatforms.includes(platformId)) {
|
|
155
|
+
loadedPlatforms.push(platformId);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
console.log('✅ [PLATFORMS] Loaded from platform_account_details:', accountDetails.map(a => a.platform));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// 3. Check LLM platforms individually
|
|
163
|
+
const llmPlatforms = ['chatgpt', 'claude', 'gemini', 'grok'];
|
|
164
|
+
for (const llmPlatform of llmPlatforms) {
|
|
165
|
+
const llmConnection = await _asyncStorage.default.getItem(`@onairos:llm_connected:${llmPlatform}`);
|
|
166
|
+
if (llmConnection) {
|
|
167
|
+
const parsed = JSON.parse(llmConnection);
|
|
168
|
+
if (parsed.connected && !loadedPlatforms.includes(llmPlatform)) {
|
|
169
|
+
loadedPlatforms.push(llmPlatform);
|
|
170
|
+
console.log(`✅ [PLATFORMS] Loaded LLM platform: ${llmPlatform}`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// 4. Check LinkedIn separately
|
|
176
|
+
const linkedinConnection = await _asyncStorage.default.getItem('@onairos:linkedin_connected');
|
|
177
|
+
if (linkedinConnection) {
|
|
178
|
+
const parsed = JSON.parse(linkedinConnection);
|
|
179
|
+
if (parsed.connected && !loadedPlatforms.includes('linkedin')) {
|
|
180
|
+
loadedPlatforms.push('linkedin');
|
|
181
|
+
console.log('✅ [PLATFORMS] Loaded LinkedIn connection');
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// 5. Fetch server-side connections (covers fresh sign-in after logout)
|
|
186
|
+
if (userEmail) {
|
|
187
|
+
try {
|
|
188
|
+
const serverAccounts = await (0, _connectedAccountsService.getConnectedAccountsLookup)(userEmail);
|
|
189
|
+
serverAccounts.forEach(account => {
|
|
190
|
+
const platformId = account.platform.toLowerCase();
|
|
191
|
+
if (!loadedPlatforms.includes(platformId)) {
|
|
192
|
+
loadedPlatforms.push(platformId);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
} catch (err) {
|
|
196
|
+
console.warn('⚠️ [PLATFORMS] Server lookup failed, using local only:', err);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Update state if we found any connected platforms
|
|
201
|
+
if (loadedPlatforms.length > 0) {
|
|
202
|
+
setConnectedPlatforms(prev => {
|
|
203
|
+
const newSet = new Set(prev);
|
|
204
|
+
let hasChanges = false;
|
|
205
|
+
loadedPlatforms.forEach(platform => {
|
|
206
|
+
const normalized = platform.toLowerCase();
|
|
207
|
+
if (!newSet.has(normalized)) {
|
|
208
|
+
newSet.add(normalized);
|
|
209
|
+
hasChanges = true;
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
if (hasChanges) {
|
|
213
|
+
console.log('✅ [PLATFORMS] Updated connectedPlatforms state with:', Array.from(newSet));
|
|
214
|
+
}
|
|
215
|
+
return hasChanges ? newSet : prev;
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
} catch (error) {
|
|
219
|
+
console.error('❌ [PLATFORMS] Error loading connected platforms from storage:', error);
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
loadConnectedPlatformsFromStorage();
|
|
223
|
+
}, [userEmail]);
|
|
224
|
+
|
|
225
|
+
// Initialize username
|
|
226
|
+
(0, _react.useEffect)(() => {
|
|
227
|
+
const initializeUsername = async () => {
|
|
228
|
+
try {
|
|
229
|
+
const storedUsername = await _asyncStorage.default.getItem('onairos_username');
|
|
230
|
+
if (storedUsername && !username) {
|
|
231
|
+
setUsername(storedUsername);
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
if (user && !username) {
|
|
235
|
+
var _user$email;
|
|
236
|
+
const initialUsername = (user === null || user === void 0 || (_user$email = user.email) === null || _user$email === void 0 ? void 0 : _user$email.split('@')[0]) || (user === null || user === void 0 ? void 0 : user.name) || `user_${Math.floor(Math.random() * 10000)}`;
|
|
237
|
+
setUsername(initialUsername);
|
|
238
|
+
await _asyncStorage.default.setItem('onairos_username', initialUsername);
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
if (!username) {
|
|
242
|
+
const fallbackUsername = `mobile_user_${Math.floor(Math.random() * 10000)}`;
|
|
243
|
+
setUsername(fallbackUsername);
|
|
244
|
+
await _asyncStorage.default.setItem('onairos_username', fallbackUsername);
|
|
245
|
+
}
|
|
246
|
+
} catch (error) {
|
|
247
|
+
console.error('Error initializing username:', error);
|
|
248
|
+
const fallbackUsername = `user_${Math.floor(Math.random() * 10000)}`;
|
|
249
|
+
setUsername(fallbackUsername);
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
initializeUsername();
|
|
253
|
+
}, [user, username]);
|
|
254
|
+
|
|
255
|
+
// Scroll indicator animation
|
|
256
|
+
(0, _react.useEffect)(() => {
|
|
257
|
+
if (showScrollIndicator) {
|
|
258
|
+
_reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.timing(scrollIndicatorAnim, {
|
|
259
|
+
toValue: 1,
|
|
260
|
+
duration: 1000,
|
|
261
|
+
useNativeDriver: true
|
|
262
|
+
}), _reactNative.Animated.timing(scrollIndicatorAnim, {
|
|
263
|
+
toValue: 0,
|
|
264
|
+
duration: 1000,
|
|
265
|
+
useNativeDriver: true
|
|
266
|
+
})])).start();
|
|
267
|
+
}
|
|
268
|
+
}, [showScrollIndicator]);
|
|
269
|
+
|
|
270
|
+
// Handle scroll
|
|
271
|
+
const handleScroll = (0, _react.useCallback)(event => {
|
|
272
|
+
const scrollX = event.nativeEvent.contentOffset.x;
|
|
273
|
+
const width = event.nativeEvent.layoutMeasurement.width;
|
|
274
|
+
const contentSize = event.nativeEvent.contentSize.width;
|
|
275
|
+
lastScrollX.current = scrollX;
|
|
276
|
+
const maxScroll = contentSize - width;
|
|
277
|
+
const scrollProgress = maxScroll > 0 ? scrollX / maxScroll : 0;
|
|
278
|
+
setCurrentPage(scrollProgress);
|
|
279
|
+
if (scrollX > 10 && showScrollIndicator) {
|
|
280
|
+
setShowScrollIndicator(false);
|
|
281
|
+
}
|
|
282
|
+
}, [showScrollIndicator]);
|
|
283
|
+
|
|
284
|
+
// Platform list with chat platforms
|
|
285
|
+
const platforms = [{
|
|
286
|
+
id: 'youtube',
|
|
287
|
+
name: 'YouTube',
|
|
288
|
+
icon: (0, _connectedAccountsService.getPlatformIcon)('youtube'),
|
|
289
|
+
description: 'Use your watch history, likes, and subscriptions to enrich your model.',
|
|
290
|
+
isChatPlatform: false
|
|
291
|
+
}, {
|
|
292
|
+
id: 'reddit',
|
|
293
|
+
name: 'Reddit',
|
|
294
|
+
icon: (0, _connectedAccountsService.getPlatformIcon)('reddit'),
|
|
295
|
+
description: 'Use your posts and comments to enrich your model.',
|
|
296
|
+
isChatPlatform: false
|
|
297
|
+
}, {
|
|
298
|
+
id: 'pinterest',
|
|
299
|
+
name: 'Pinterest',
|
|
300
|
+
icon: (0, _connectedAccountsService.getPlatformIcon)('pinterest'),
|
|
301
|
+
description: 'Use your pins, boards, and interests to enrich your model.',
|
|
302
|
+
isChatPlatform: false
|
|
303
|
+
}, {
|
|
304
|
+
id: 'linkedin',
|
|
305
|
+
name: 'LinkedIn',
|
|
306
|
+
icon: (0, _connectedAccountsService.getPlatformIcon)('linkedin'),
|
|
307
|
+
description: 'Use your professional network and career interests to enrich your model.',
|
|
308
|
+
isChatPlatform: false
|
|
309
|
+
}, {
|
|
310
|
+
id: 'gmail',
|
|
311
|
+
name: 'Gmail',
|
|
312
|
+
icon: (0, _connectedAccountsService.getPlatformIcon)('gmail'),
|
|
313
|
+
description: 'Use your email information to enrich your model.',
|
|
314
|
+
isChatPlatform: false
|
|
315
|
+
}, {
|
|
316
|
+
id: 'chatgpt',
|
|
317
|
+
name: 'ChatGPT',
|
|
318
|
+
icon: (0, _connectedAccountsService.getPlatformIcon)('chatgpt'),
|
|
319
|
+
description: 'Use your ChatGPT conversations and memories to enrich your model.',
|
|
320
|
+
isChatPlatform: true
|
|
321
|
+
}, {
|
|
322
|
+
id: 'claude',
|
|
323
|
+
name: 'Claude',
|
|
324
|
+
icon: (0, _connectedAccountsService.getPlatformIcon)('claude'),
|
|
325
|
+
description: 'Use your Claude conversations to enrich your model.',
|
|
326
|
+
isChatPlatform: true
|
|
327
|
+
}, {
|
|
328
|
+
id: 'gemini',
|
|
329
|
+
name: 'Gemini',
|
|
330
|
+
icon: (0, _connectedAccountsService.getPlatformIcon)('gemini'),
|
|
331
|
+
description: 'Use your Gemini conversations to enrich your model.',
|
|
332
|
+
isChatPlatform: true
|
|
333
|
+
}, {
|
|
334
|
+
id: 'grok',
|
|
335
|
+
name: 'Grok',
|
|
336
|
+
icon: (0, _connectedAccountsService.getPlatformIcon)('grok'),
|
|
337
|
+
description: 'Use your Grok conversations from X to enrich your model.',
|
|
338
|
+
isChatPlatform: true
|
|
339
|
+
}];
|
|
340
|
+
|
|
341
|
+
// Filter and order platforms based on allowedPlatforms (order is preserved)
|
|
342
|
+
const filteredPlatforms = allowedPlatforms ? allowedPlatforms.map(id => platforms.find(p => p.id === id)).filter(p => p !== undefined) : platforms;
|
|
343
|
+
|
|
344
|
+
// Set default selected platform to first filtered platform (leftmost)
|
|
345
|
+
// This ensures the selection always starts at the leftmost platform
|
|
346
|
+
(0, _react.useEffect)(() => {
|
|
347
|
+
if (filteredPlatforms.length > 0) {
|
|
348
|
+
// Always set to first platform on mount or when allowedPlatforms changes
|
|
349
|
+
const firstPlatformId = filteredPlatforms[0].id;
|
|
350
|
+
if (!selectedPlatformId || !filteredPlatforms.find(p => p.id === selectedPlatformId)) {
|
|
351
|
+
setSelectedPlatformId(firstPlatformId);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}, [allowedPlatforms, filteredPlatforms.length]);
|
|
355
|
+
const handlePlatformToggle = async (platformId, enabled) => {
|
|
356
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
|
|
357
|
+
console.log(`🔄 [TOGGLE] Platform toggle: ${platformId} = ${enabled}`);
|
|
358
|
+
try {
|
|
359
|
+
if (enabled) {
|
|
360
|
+
const storedUsername = await _asyncStorage.default.getItem('onairos_username');
|
|
361
|
+
const validUsername = storedUsername || username;
|
|
362
|
+
console.log(`👤 [TOGGLE] Username check - stored: "${storedUsername}", state: "${username}", valid: "${validUsername}"`);
|
|
363
|
+
if (!validUsername || validUsername.trim() === '') {
|
|
364
|
+
console.error('❌ [TOGGLE] No username available - cannot proceed with OAuth');
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
// Check if this is an LLM/chat platform (ChatGPT, Claude, Gemini, Grok)
|
|
369
|
+
const platform = platforms.find(p => p.id === platformId);
|
|
370
|
+
const isLLM = (platform === null || platform === void 0 ? void 0 : platform.isChatPlatform) || (0, _webviewScripts.isLLMPlatform)(platformId);
|
|
371
|
+
if (isLLM) {
|
|
372
|
+
// LLM platforms use WebView-based login + conversation extraction
|
|
373
|
+
console.log(`🤖 [LLM] Opening WebView for ${platformId} login and export...`);
|
|
374
|
+
setCurrentPlatform(platformId);
|
|
375
|
+
setConnectionStatuses(prev => ({
|
|
376
|
+
...prev,
|
|
377
|
+
[platformId]: 'connecting'
|
|
378
|
+
}));
|
|
379
|
+
|
|
380
|
+
// Get the platform's login URL
|
|
381
|
+
const llmUrl = (0, _webviewScripts.getLLMPlatformUrl)(platformId);
|
|
382
|
+
if (llmUrl) {
|
|
383
|
+
console.log(`🌐 [LLM] Opening ${platformId} URL:`, llmUrl);
|
|
384
|
+
setOauthUrl(llmUrl);
|
|
385
|
+
setShowOAuthWebView(true);
|
|
386
|
+
} else {
|
|
387
|
+
console.error(`❌ [LLM] No URL configured for platform: ${platformId}`);
|
|
388
|
+
setConnectionStatuses(prev => ({
|
|
389
|
+
...prev,
|
|
390
|
+
[platformId]: 'error'
|
|
391
|
+
}));
|
|
392
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
|
|
393
|
+
}
|
|
394
|
+
return; // Exit early for LLM platforms - WebView handles the rest
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
// LinkedIn uses WebView-based login + profile URL extraction (similar to LLM platforms)
|
|
398
|
+
if ((0, _webviewScripts.isLinkedInPlatform)(platformId)) {
|
|
399
|
+
console.log(`💼 [LINKEDIN] Opening WebView for LinkedIn login...`);
|
|
400
|
+
setCurrentPlatform(platformId);
|
|
401
|
+
setConnectionStatuses(prev => ({
|
|
402
|
+
...prev,
|
|
403
|
+
[platformId]: 'connecting'
|
|
404
|
+
}));
|
|
405
|
+
|
|
406
|
+
// Open LinkedIn login page directly
|
|
407
|
+
const linkedinLoginUrl = 'https://www.linkedin.com/login';
|
|
408
|
+
console.log(`🌐 [LINKEDIN] Opening LinkedIn URL:`, linkedinLoginUrl);
|
|
409
|
+
setOauthUrl(linkedinLoginUrl);
|
|
410
|
+
setShowOAuthWebView(true);
|
|
411
|
+
return; // Exit early for LinkedIn - WebView handles the rest
|
|
412
|
+
}
|
|
413
|
+
if ((0, _platformAuthService.hasNativeSDK)(platformId)) {
|
|
414
|
+
setCurrentPlatform(platformId);
|
|
415
|
+
setConnectionStatuses(prev => ({
|
|
416
|
+
...prev,
|
|
417
|
+
[platformId]: 'connecting'
|
|
418
|
+
}));
|
|
419
|
+
const success = await (0, _platformAuthService.initiateNativeAuth)(platformId, validUsername);
|
|
420
|
+
if (success) {
|
|
421
|
+
const newConnected = new Set(connectedPlatforms);
|
|
422
|
+
newConnected.add(platformId);
|
|
423
|
+
setConnectedPlatforms(newConnected);
|
|
424
|
+
setConnectionStatuses(prev => ({
|
|
425
|
+
...prev,
|
|
426
|
+
[platformId]: 'connected'
|
|
427
|
+
}));
|
|
428
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.SUCCESS);
|
|
429
|
+
} else {
|
|
430
|
+
setConnectionStatuses(prev => ({
|
|
431
|
+
...prev,
|
|
432
|
+
[platformId]: 'error'
|
|
433
|
+
}));
|
|
434
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
|
|
435
|
+
}
|
|
436
|
+
} else {
|
|
437
|
+
console.log(`🌐 [TOGGLE] Starting OAuth flow for ${platformId}...`);
|
|
438
|
+
setCurrentPlatform(platformId);
|
|
439
|
+
setConnectionStatuses(prev => ({
|
|
440
|
+
...prev,
|
|
441
|
+
[platformId]: 'connecting'
|
|
442
|
+
}));
|
|
443
|
+
const oauthUrl = await (0, _platformAuthService.initiateOAuth)(platformId, validUsername);
|
|
444
|
+
console.log(`🔗 [TOGGLE] OAuth URL result for ${platformId}:`, oauthUrl ? oauthUrl.substring(0, 50) + '...' : 'NULL');
|
|
445
|
+
if (oauthUrl) {
|
|
446
|
+
console.log(`✅ [TOGGLE] Setting WebView state - showing modal for ${platformId}`);
|
|
447
|
+
setOauthUrl(oauthUrl);
|
|
448
|
+
setShowOAuthWebView(true);
|
|
449
|
+
} else {
|
|
450
|
+
console.error(`❌ [TOGGLE] OAuth failed for ${platformId} - no URL returned`);
|
|
451
|
+
setConnectionStatuses(prev => ({
|
|
452
|
+
...prev,
|
|
453
|
+
[platformId]: 'error'
|
|
454
|
+
}));
|
|
455
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
} else {
|
|
459
|
+
await disconnectPlatform(platformId);
|
|
460
|
+
const newConnected = new Set(connectedPlatforms);
|
|
461
|
+
newConnected.delete(platformId);
|
|
462
|
+
setConnectedPlatforms(newConnected);
|
|
463
|
+
setConnectionStatuses(prev => ({
|
|
464
|
+
...prev,
|
|
465
|
+
[platformId]: 'disconnected'
|
|
466
|
+
}));
|
|
467
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
|
|
468
|
+
|
|
469
|
+
// 🔄 Remove from BOTH storage keys for consistency
|
|
470
|
+
try {
|
|
471
|
+
const existingPlatformsJson = await _asyncStorage.default.getItem('user_connected_platforms');
|
|
472
|
+
if (existingPlatformsJson) {
|
|
473
|
+
const existingPlatforms = JSON.parse(existingPlatformsJson);
|
|
474
|
+
const updatedPlatforms = existingPlatforms.filter(p => p.toLowerCase() !== platformId.toLowerCase());
|
|
475
|
+
await _asyncStorage.default.setItem('user_connected_platforms', JSON.stringify(updatedPlatforms));
|
|
476
|
+
await _asyncStorage.default.setItem('connectedPlatforms', JSON.stringify(updatedPlatforms));
|
|
477
|
+
console.log(`✅ [STORAGE] Removed ${platformId} from both storage keys:`, updatedPlatforms);
|
|
478
|
+
}
|
|
479
|
+
} catch (storageError) {
|
|
480
|
+
console.error('❌ [STORAGE] Error removing platform connection:', storageError);
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
// Also remove local LLM connection status
|
|
484
|
+
await _asyncStorage.default.removeItem(`@onairos:llm_connected:${platformId}`);
|
|
485
|
+
|
|
486
|
+
// Also remove LinkedIn connection status if applicable
|
|
487
|
+
if (platformId.toLowerCase() === 'linkedin') {
|
|
488
|
+
await _asyncStorage.default.removeItem('@onairos:linkedin_connected');
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
} catch (error) {
|
|
492
|
+
console.error(`Error toggling platform ${platformId}:`, error);
|
|
493
|
+
setConnectionStatuses(prev => ({
|
|
494
|
+
...prev,
|
|
495
|
+
[platformId]: 'error'
|
|
496
|
+
}));
|
|
497
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
|
|
498
|
+
}
|
|
499
|
+
};
|
|
500
|
+
const handleUpdate = async () => {
|
|
501
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
|
|
502
|
+
|
|
503
|
+
// If no new platforms were added since last consent view, skip PIN/loading
|
|
504
|
+
const currentPlatforms = connectedPlatforms;
|
|
505
|
+
const previousPlatforms = platformsAtLastConsent.current;
|
|
506
|
+
const hasNewPlatforms = Array.from(currentPlatforms).some(p => !previousPlatforms.has(p));
|
|
507
|
+
if (!hasNewPlatforms && previousPlatforms.size > 0) {
|
|
508
|
+
console.log('ℹ️ [PLATFORMS] No new platforms connected, skipping PIN/loading');
|
|
509
|
+
platformsAtLastConsent.current = new Set(currentPlatforms);
|
|
510
|
+
setShowConsentScreen(true);
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
setIsContinueLoading(true);
|
|
514
|
+
try {
|
|
515
|
+
setShowPinScreen(true);
|
|
516
|
+
} finally {
|
|
517
|
+
setIsContinueLoading(false);
|
|
518
|
+
}
|
|
519
|
+
};
|
|
520
|
+
const handleSkip = () => {
|
|
521
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
|
|
522
|
+
if (onSkip) {
|
|
523
|
+
onSkip();
|
|
524
|
+
}
|
|
525
|
+
};
|
|
526
|
+
const handleConsentAccept = async () => {
|
|
527
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
|
|
528
|
+
|
|
529
|
+
// 🚀 Show loading on button immediately
|
|
530
|
+
setIsConsentLoading(true);
|
|
531
|
+
|
|
532
|
+
// Small delay to ensure React renders the loading state before async work starts
|
|
533
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
534
|
+
try {
|
|
535
|
+
if (onPinComplete) {
|
|
536
|
+
await onPinComplete(createdPin);
|
|
537
|
+
} else {
|
|
538
|
+
// onUpdate is async - wait for it to complete
|
|
539
|
+
await onUpdate(Array.from(connectedPlatforms));
|
|
540
|
+
}
|
|
541
|
+
} finally {
|
|
542
|
+
setIsConsentLoading(false);
|
|
543
|
+
}
|
|
544
|
+
};
|
|
545
|
+
const handleConsentDecline = () => {
|
|
546
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
|
|
547
|
+
setShowConsentScreen(false);
|
|
548
|
+
};
|
|
549
|
+
const handleRefreshFrequencyChange = async frequency => {
|
|
550
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
|
|
551
|
+
setRefreshFrequency(frequency);
|
|
552
|
+
|
|
553
|
+
// Save to AsyncStorage
|
|
554
|
+
try {
|
|
555
|
+
await _asyncStorage.default.setItem('@onairos:model_refresh_frequency', frequency);
|
|
556
|
+
console.log(`✅ [REFRESH] Model refresh frequency set to: ${frequency}`);
|
|
557
|
+
} catch (error) {
|
|
558
|
+
console.error('❌ [REFRESH] Error saving refresh frequency:', error);
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
// Call external handler if provided
|
|
562
|
+
if (onRefreshFrequencyChange) {
|
|
563
|
+
onRefreshFrequencyChange(frequency);
|
|
564
|
+
}
|
|
565
|
+
};
|
|
566
|
+
const openPrivacyPolicy = () => {
|
|
567
|
+
const Linking = require('react-native').Linking;
|
|
568
|
+
Linking.openURL('https://privacy.onairos.io/');
|
|
569
|
+
};
|
|
570
|
+
const handlePinComplete = async pin => {
|
|
571
|
+
setCreatedPin(pin);
|
|
572
|
+
(0, _pinStorageUtils.setTemporaryPin)(pin);
|
|
573
|
+
setShowPinScreen(false);
|
|
574
|
+
setShowLoadingScreen(true);
|
|
575
|
+
};
|
|
576
|
+
const handleLoadingComplete = () => {
|
|
577
|
+
setShowLoadingScreen(false);
|
|
578
|
+
setShowConsentScreen(true);
|
|
579
|
+
};
|
|
580
|
+
const handleOAuthSuccess = async result => {
|
|
581
|
+
if (currentPlatform) {
|
|
582
|
+
if (result === 'success' || result !== 'error') {
|
|
583
|
+
// 🎯 Don't update connectedPlatforms immediately - set as pending
|
|
584
|
+
// The persona coloring will happen AFTER the WebView closes
|
|
585
|
+
setPendingConnection(currentPlatform);
|
|
586
|
+
setConnectionStatuses(prev => ({
|
|
587
|
+
...prev,
|
|
588
|
+
[currentPlatform]: 'connected'
|
|
589
|
+
}));
|
|
590
|
+
|
|
591
|
+
// 🔄 Store platform connection in BOTH storage keys for consistency
|
|
592
|
+
try {
|
|
593
|
+
const existingPlatformsJson = await _asyncStorage.default.getItem('user_connected_platforms');
|
|
594
|
+
const existingPlatforms = existingPlatformsJson ? JSON.parse(existingPlatformsJson) : [];
|
|
595
|
+
if (!existingPlatforms.includes(currentPlatform.toLowerCase())) {
|
|
596
|
+
existingPlatforms.push(currentPlatform.toLowerCase());
|
|
597
|
+
await _asyncStorage.default.setItem('user_connected_platforms', JSON.stringify(existingPlatforms));
|
|
598
|
+
await _asyncStorage.default.setItem('connectedPlatforms', JSON.stringify(existingPlatforms));
|
|
599
|
+
console.log(`✅ [STORAGE] Added ${currentPlatform} to both storage keys:`, existingPlatforms);
|
|
600
|
+
}
|
|
601
|
+
} catch (storageError) {
|
|
602
|
+
console.error('❌ [STORAGE] Error saving platform connection:', storageError);
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
// Store LLM connection status locally
|
|
606
|
+
if ((0, _webviewScripts.isLLMPlatform)(currentPlatform)) {
|
|
607
|
+
await _asyncStorage.default.setItem(`@onairos:llm_connected:${currentPlatform}`, JSON.stringify({
|
|
608
|
+
connected: true,
|
|
609
|
+
platform: currentPlatform,
|
|
610
|
+
connectedAt: new Date().toISOString()
|
|
611
|
+
}));
|
|
612
|
+
console.log(`✅ [LLM] ${currentPlatform} connection stored locally`);
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
// Store LinkedIn connection status locally
|
|
616
|
+
if (currentPlatform.toLowerCase() === 'linkedin') {
|
|
617
|
+
await _asyncStorage.default.setItem(`@onairos:linkedin_connected`, JSON.stringify({
|
|
618
|
+
connected: true,
|
|
619
|
+
platform: 'linkedin',
|
|
620
|
+
connectedAt: new Date().toISOString()
|
|
621
|
+
}));
|
|
622
|
+
console.log(`✅ [LINKEDIN] Connection stored locally`);
|
|
623
|
+
}
|
|
624
|
+
} else {
|
|
625
|
+
setConnectionStatuses(prev => ({
|
|
626
|
+
...prev,
|
|
627
|
+
[currentPlatform]: 'error'
|
|
628
|
+
}));
|
|
629
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
setShowOAuthWebView(false);
|
|
633
|
+
setOauthUrl('');
|
|
634
|
+
setCurrentPlatform('');
|
|
635
|
+
};
|
|
636
|
+
|
|
637
|
+
// 🎯 Effect to apply pending connection AFTER WebView closes
|
|
638
|
+
// This ensures persona coloring happens after returning to platform screen
|
|
639
|
+
(0, _react.useEffect)(() => {
|
|
640
|
+
if (pendingConnection && !showOAuthWebView) {
|
|
641
|
+
// Small delay to ensure screen is visible before persona colors
|
|
642
|
+
const timer = setTimeout(() => {
|
|
643
|
+
// Use functional update to avoid stale closure issues
|
|
644
|
+
setConnectedPlatforms(prev => {
|
|
645
|
+
const newConnected = new Set(prev);
|
|
646
|
+
newConnected.add(pendingConnection);
|
|
647
|
+
return newConnected;
|
|
648
|
+
});
|
|
649
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.SUCCESS);
|
|
650
|
+
console.log(`✅ [PERSONA] Applied pending connection: ${pendingConnection}`);
|
|
651
|
+
setPendingConnection(null);
|
|
652
|
+
}, 300); // 300ms delay for user to see the screen before coloring
|
|
653
|
+
|
|
654
|
+
return () => clearTimeout(timer);
|
|
655
|
+
}
|
|
656
|
+
}, [pendingConnection, showOAuthWebView]);
|
|
657
|
+
const handleOAuthClose = () => {
|
|
658
|
+
setShowOAuthWebView(false);
|
|
659
|
+
setOauthUrl('');
|
|
660
|
+
if (currentPlatform) {
|
|
661
|
+
setConnectionStatuses(prev => ({
|
|
662
|
+
...prev,
|
|
663
|
+
[currentPlatform]: 'disconnected'
|
|
664
|
+
}));
|
|
665
|
+
}
|
|
666
|
+
setCurrentPlatform('');
|
|
667
|
+
};
|
|
668
|
+
const handlePinBack = () => {
|
|
669
|
+
setShowPinScreen(false);
|
|
670
|
+
};
|
|
671
|
+
const handleReviewerBypass = () => {
|
|
672
|
+
if (onReviewerBypass) {
|
|
673
|
+
onReviewerBypass();
|
|
674
|
+
}
|
|
675
|
+
};
|
|
676
|
+
|
|
677
|
+
// Long press handlers for reviewer bypass
|
|
678
|
+
const handlePressIn = () => {
|
|
679
|
+
_reactNative.Animated.timing(holdProgressAnim, {
|
|
680
|
+
toValue: 1,
|
|
681
|
+
duration: 4000,
|
|
682
|
+
useNativeDriver: false
|
|
683
|
+
}).start();
|
|
684
|
+
const timer = setTimeout(() => {
|
|
685
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.SUCCESS);
|
|
686
|
+
_reactNative.Vibration.vibrate([0, 100, 50, 100]);
|
|
687
|
+
handleReviewerBypass();
|
|
688
|
+
}, 4000);
|
|
689
|
+
setLongPressTimer(timer);
|
|
690
|
+
};
|
|
691
|
+
const handlePressOut = () => {
|
|
692
|
+
if (longPressTimer) {
|
|
693
|
+
clearTimeout(longPressTimer);
|
|
694
|
+
setLongPressTimer(null);
|
|
695
|
+
}
|
|
696
|
+
holdProgressAnim.setValue(0);
|
|
697
|
+
_reactNative.Animated.timing(holdProgressAnim, {
|
|
698
|
+
toValue: 0,
|
|
699
|
+
duration: 200,
|
|
700
|
+
useNativeDriver: false
|
|
701
|
+
}).start();
|
|
702
|
+
};
|
|
703
|
+
(0, _react.useEffect)(() => {
|
|
704
|
+
return () => {
|
|
705
|
+
if (longPressTimer) {
|
|
706
|
+
clearTimeout(longPressTimer);
|
|
707
|
+
}
|
|
708
|
+
};
|
|
709
|
+
}, [longPressTimer]);
|
|
710
|
+
|
|
711
|
+
// Debug: Track WebView state changes
|
|
712
|
+
(0, _react.useEffect)(() => {
|
|
713
|
+
if (showOAuthWebView || oauthUrl) {
|
|
714
|
+
console.log(`📊 [STATE] WebView state changed - showOAuthWebView: ${showOAuthWebView}, oauthUrl: ${oauthUrl ? 'SET (' + oauthUrl.substring(0, 40) + '...)' : 'NULL'}`);
|
|
715
|
+
}
|
|
716
|
+
}, [showOAuthWebView, oauthUrl]);
|
|
717
|
+
const personaLevel = Math.min(5, Math.max(1, connectedPlatforms.size + 1));
|
|
718
|
+
const PLATFORM_ICONS_BOTTOM = 120;
|
|
719
|
+
const PAGE_DOTS_BOTTOM = 70;
|
|
720
|
+
|
|
721
|
+
// Show PIN screen
|
|
722
|
+
if (showPinScreen) {
|
|
723
|
+
return /*#__PURE__*/_react.default.createElement(_PinCreationScreen.default, {
|
|
724
|
+
visible: showPinScreen,
|
|
725
|
+
onComplete: handlePinComplete,
|
|
726
|
+
onBack: handlePinBack
|
|
727
|
+
});
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
// Show loading screen
|
|
731
|
+
if (showLoadingScreen) {
|
|
732
|
+
return /*#__PURE__*/_react.default.createElement(_PersonaLoadingScreen.default, {
|
|
733
|
+
visible: showLoadingScreen,
|
|
734
|
+
onComplete: handleLoadingComplete
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
// Show OAuth WebView (also used for LLM platforms)
|
|
739
|
+
if (showOAuthWebView && oauthUrl) {
|
|
740
|
+
console.log(`✅ [WEBVIEW] Rendering OAuthWebView for ${currentPlatform} with URL: ${oauthUrl.substring(0, 60)}...`);
|
|
741
|
+
return /*#__PURE__*/_react.default.createElement(_OAuthWebView.OAuthWebView, {
|
|
742
|
+
url: oauthUrl,
|
|
743
|
+
platform: currentPlatform,
|
|
744
|
+
onClose: handleOAuthClose,
|
|
745
|
+
onSuccess: handleOAuthSuccess,
|
|
746
|
+
onComplete: handleOAuthClose,
|
|
747
|
+
username: username
|
|
748
|
+
});
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
// Handle connect more - go back to platform selection
|
|
752
|
+
const handleConnectMore = () => {
|
|
753
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
|
|
754
|
+
// Snapshot current platforms so we can detect new ones on return
|
|
755
|
+
platformsAtLastConsent.current = new Set(connectedPlatforms);
|
|
756
|
+
setShowConsentScreen(false);
|
|
757
|
+
};
|
|
758
|
+
|
|
759
|
+
// Show consent screen
|
|
760
|
+
if (showConsentScreen) {
|
|
761
|
+
return /*#__PURE__*/_react.default.createElement(_PersonalizationConsentScreen.default, {
|
|
762
|
+
visible: showConsentScreen,
|
|
763
|
+
onAccept: handleConsentAccept,
|
|
764
|
+
onDecline: handleConsentDecline,
|
|
765
|
+
connectedPlatforms: Array.from(connectedPlatforms),
|
|
766
|
+
onConnectMore: handleConnectMore,
|
|
767
|
+
loading: isConsentLoading
|
|
768
|
+
});
|
|
769
|
+
}
|
|
770
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
771
|
+
style: styles.container
|
|
772
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
|
|
773
|
+
style: styles.scrollContent,
|
|
774
|
+
showsVerticalScrollIndicator: false,
|
|
775
|
+
bounces: true
|
|
776
|
+
}, onLogout && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
777
|
+
style: styles.backButton,
|
|
778
|
+
onPress: onLogout,
|
|
779
|
+
activeOpacity: 0.7
|
|
780
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
781
|
+
style: styles.backButtonText
|
|
782
|
+
}, "\u2039")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
783
|
+
style: styles.headingContainer
|
|
784
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
785
|
+
style: styles.title
|
|
786
|
+
}, "Build your persona"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
787
|
+
style: styles.subtitle
|
|
788
|
+
}, "Connect platforms to build your private persona")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
789
|
+
style: styles.personaContainer
|
|
790
|
+
}, /*#__PURE__*/_react.default.createElement(_PersonaImage.default, {
|
|
791
|
+
level: personaLevel,
|
|
792
|
+
style: styles.largePersona
|
|
793
|
+
}), /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
|
|
794
|
+
ref: scrollViewRef,
|
|
795
|
+
horizontal: true,
|
|
796
|
+
style: [styles.platformIconsOverlay, {
|
|
797
|
+
bottom: PLATFORM_ICONS_BOTTOM
|
|
798
|
+
}],
|
|
799
|
+
contentContainerStyle: [styles.platformIconsScrollContent, filteredPlatforms.length <= 4 && styles.platformIconsCentered],
|
|
800
|
+
showsHorizontalScrollIndicator: false,
|
|
801
|
+
onScroll: handleScroll,
|
|
802
|
+
scrollEventThrottle: 16,
|
|
803
|
+
decelerationRate: "normal",
|
|
804
|
+
scrollEnabled: filteredPlatforms.length > 4
|
|
805
|
+
}, filteredPlatforms.map(platform => {
|
|
806
|
+
const isSelected = selectedPlatformId === platform.id;
|
|
807
|
+
const isConnected = connectedPlatforms.has(platform.id);
|
|
808
|
+
const isConnecting = connectionStatuses[platform.id] === 'connecting';
|
|
809
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
810
|
+
key: platform.id,
|
|
811
|
+
style: [styles.platformIconButton, isSelected && styles.platformIconButtonSelected],
|
|
812
|
+
onPress: () => {
|
|
813
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
|
|
814
|
+
setSelectedPlatformId(platform.id);
|
|
815
|
+
},
|
|
816
|
+
activeOpacity: 0.7
|
|
817
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
|
|
818
|
+
source: platform.icon,
|
|
819
|
+
style: [styles.platformIcon, platform.id === 'youtube' && styles.youtubeIcon, platform.id === 'pinterest' && styles.pinterestIcon, platform.id === 'gmail' && styles.gmailIcon, platform.id === 'chatgpt' && styles.chatgptIcon, platform.id === 'claude' && styles.claudeIcon, platform.id === 'grok' && styles.grokIcon],
|
|
820
|
+
resizeMode: "contain"
|
|
821
|
+
}), isConnecting && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
822
|
+
style: styles.connectingDot
|
|
823
|
+
}), isConnected && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
824
|
+
style: styles.connectedDot
|
|
825
|
+
}));
|
|
826
|
+
})), filteredPlatforms.length > 4 && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
827
|
+
style: [styles.pageIndicatorContainer, {
|
|
828
|
+
bottom: PAGE_DOTS_BOTTOM
|
|
829
|
+
}]
|
|
830
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
831
|
+
style: styles.scrollBarTrack
|
|
832
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
833
|
+
style: [styles.scrollBarThumb, {
|
|
834
|
+
left: currentPage * 56
|
|
835
|
+
}]
|
|
836
|
+
}))), showScrollIndicator && filteredPlatforms.length > 4 && /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
|
|
837
|
+
style: [styles.scrollIndicator, {
|
|
838
|
+
transform: [{
|
|
839
|
+
translateX: scrollIndicatorAnim.interpolate({
|
|
840
|
+
inputRange: [0, 1],
|
|
841
|
+
outputRange: [0, 8]
|
|
842
|
+
})
|
|
843
|
+
}],
|
|
844
|
+
opacity: scrollIndicatorAnim.interpolate({
|
|
845
|
+
inputRange: [0, 1],
|
|
846
|
+
outputRange: [0.5, 1]
|
|
847
|
+
})
|
|
848
|
+
}]
|
|
849
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
850
|
+
style: styles.scrollIndicatorText
|
|
851
|
+
}, "\u203A"))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
852
|
+
style: styles.cardContainer
|
|
853
|
+
}, selectedPlatformId && (() => {
|
|
854
|
+
const selectedPlatform = filteredPlatforms.find(p => p.id === selectedPlatformId);
|
|
855
|
+
if (!selectedPlatform) return null;
|
|
856
|
+
const isConnected = connectedPlatforms.has(selectedPlatformId);
|
|
857
|
+
const isConnectingPlatform = connectionStatuses[selectedPlatformId] === 'connecting';
|
|
858
|
+
const isRecommended = recommendedPlatforms === null || recommendedPlatforms === void 0 ? void 0 : recommendedPlatforms.includes(selectedPlatformId);
|
|
859
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
860
|
+
style: styles.platformCard
|
|
861
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
862
|
+
style: styles.cardHeader
|
|
863
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
864
|
+
style: styles.platformCardTitle
|
|
865
|
+
}, selectedPlatform.name), isRecommended && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
866
|
+
style: styles.recommendedBadge
|
|
867
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
868
|
+
style: styles.recommendedBadgeText
|
|
869
|
+
}, "Highly Recommended")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
870
|
+
activeOpacity: 0.8,
|
|
871
|
+
onPress: () => !isConnectingPlatform && handlePlatformToggle(selectedPlatformId, !isConnected),
|
|
872
|
+
disabled: isConnectingPlatform,
|
|
873
|
+
style: [styles.customToggleTrack, {
|
|
874
|
+
backgroundColor: isConnected ? '#10B981' : '#9CA3AF'
|
|
875
|
+
}]
|
|
876
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
877
|
+
style: [styles.customToggleThumb, {
|
|
878
|
+
transform: [{
|
|
879
|
+
translateX: isConnected ? 20 : 0
|
|
880
|
+
}]
|
|
881
|
+
}]
|
|
882
|
+
}))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
883
|
+
style: styles.descriptionContainer
|
|
884
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
885
|
+
style: styles.platformCardDescription
|
|
886
|
+
}, selectedPlatform.description)));
|
|
887
|
+
})()), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
888
|
+
style: styles.refreshFrequencySection
|
|
889
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
890
|
+
style: styles.refreshFrequencyTitle
|
|
891
|
+
}, "Model Refresh Frequency"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
892
|
+
style: styles.refreshFrequencyDescription
|
|
893
|
+
}, "How often should your model be refreshed from platforms?"), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
894
|
+
style: styles.refreshSegmentedControl
|
|
895
|
+
}, MODEL_REFRESH_OPTIONS.map(option => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
896
|
+
key: option.value,
|
|
897
|
+
style: [styles.refreshSegment, refreshFrequency === option.value && styles.refreshSegmentSelected],
|
|
898
|
+
onPress: () => handleRefreshFrequencyChange(option.value),
|
|
899
|
+
activeOpacity: 0.7
|
|
900
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
901
|
+
style: [styles.refreshSegmentText, refreshFrequency === option.value && styles.refreshSegmentTextSelected]
|
|
902
|
+
}, option.label)))), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
903
|
+
style: styles.refreshFrequencyHint
|
|
904
|
+
}, ((_MODEL_REFRESH_OPTION = MODEL_REFRESH_OPTIONS.find(o => o.value === refreshFrequency)) === null || _MODEL_REFRESH_OPTION === void 0 ? void 0 : _MODEL_REFRESH_OPTION.description) || '')), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
905
|
+
style: styles.bottomButtonContainer
|
|
906
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
907
|
+
style: styles.buttonWrapper
|
|
908
|
+
}, /*#__PURE__*/_react.default.createElement(_PrimaryButton.default, {
|
|
909
|
+
label: "Continue",
|
|
910
|
+
onPress: handleUpdate,
|
|
911
|
+
disabled: loading || connectedPlatforms.size === 0 || isConnecting || isContinueLoading,
|
|
912
|
+
loading: loading || isConnecting || isContinueLoading
|
|
913
|
+
}), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
914
|
+
style: styles.buttonOverlay,
|
|
915
|
+
activeOpacity: 1,
|
|
916
|
+
onPressIn: handlePressIn,
|
|
917
|
+
onPressOut: handlePressOut,
|
|
918
|
+
onPress: () => {
|
|
919
|
+
if (connectedPlatforms.size > 0 && !loading && !isConnecting && !isContinueLoading) {
|
|
920
|
+
handleUpdate();
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
|
|
924
|
+
style: [styles.holdProgressBar, {
|
|
925
|
+
width: holdProgressAnim.interpolate({
|
|
926
|
+
inputRange: [0, 1],
|
|
927
|
+
outputRange: ['0%', '100%']
|
|
928
|
+
})
|
|
929
|
+
}]
|
|
930
|
+
}))), onSkip && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
931
|
+
style: styles.skipButton,
|
|
932
|
+
onPress: handleSkip
|
|
933
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
934
|
+
style: styles.skipButtonText
|
|
935
|
+
}, "Skip")))));
|
|
936
|
+
};
|
|
937
|
+
const styles = _reactNative.StyleSheet.create({
|
|
938
|
+
container: {
|
|
939
|
+
flex: 1,
|
|
940
|
+
backgroundColor: _theme.COLORS.surface,
|
|
941
|
+
paddingHorizontal: 24
|
|
942
|
+
},
|
|
943
|
+
backButton: {
|
|
944
|
+
width: 32,
|
|
945
|
+
height: 32,
|
|
946
|
+
borderRadius: 16,
|
|
947
|
+
backgroundColor: '#F0F0F3',
|
|
948
|
+
alignItems: 'center',
|
|
949
|
+
justifyContent: 'center',
|
|
950
|
+
marginBottom: 2
|
|
951
|
+
},
|
|
952
|
+
backButtonText: {
|
|
953
|
+
fontSize: 22,
|
|
954
|
+
fontWeight: '600',
|
|
955
|
+
color: '#1C1C1E',
|
|
956
|
+
marginTop: -2
|
|
957
|
+
},
|
|
958
|
+
scrollContent: {
|
|
959
|
+
flex: 1
|
|
960
|
+
},
|
|
961
|
+
headingContainer: {
|
|
962
|
+
width: '100%',
|
|
963
|
+
marginBottom: _theme.SPACING.sm,
|
|
964
|
+
paddingTop: 0,
|
|
965
|
+
marginTop: 0
|
|
966
|
+
},
|
|
967
|
+
title: {
|
|
968
|
+
fontFamily: 'IBM Plex Sans',
|
|
969
|
+
fontWeight: '700',
|
|
970
|
+
fontSize: 24,
|
|
971
|
+
lineHeight: 32,
|
|
972
|
+
color: _theme.COLORS.grey800,
|
|
973
|
+
textAlign: 'left',
|
|
974
|
+
marginBottom: 4
|
|
975
|
+
},
|
|
976
|
+
subtitle: {
|
|
977
|
+
fontFamily: 'Inter',
|
|
978
|
+
fontWeight: '400',
|
|
979
|
+
fontSize: 16,
|
|
980
|
+
lineHeight: 24,
|
|
981
|
+
color: _theme.COLORS.grey600,
|
|
982
|
+
textAlign: 'left'
|
|
983
|
+
},
|
|
984
|
+
personaContainer: {
|
|
985
|
+
alignItems: 'center',
|
|
986
|
+
position: 'relative',
|
|
987
|
+
marginTop: -20,
|
|
988
|
+
marginBottom: -120,
|
|
989
|
+
height: 450
|
|
990
|
+
},
|
|
991
|
+
largePersona: {
|
|
992
|
+
width: 500,
|
|
993
|
+
height: 500
|
|
994
|
+
},
|
|
995
|
+
platformIconsOverlay: {
|
|
996
|
+
position: 'absolute',
|
|
997
|
+
width: '100%',
|
|
998
|
+
height: 70,
|
|
999
|
+
zIndex: 10
|
|
1000
|
+
},
|
|
1001
|
+
platformIconsScrollContent: {
|
|
1002
|
+
flexDirection: 'row',
|
|
1003
|
+
alignItems: 'center',
|
|
1004
|
+
paddingHorizontal: 20,
|
|
1005
|
+
gap: 24
|
|
1006
|
+
},
|
|
1007
|
+
platformIconsCentered: {
|
|
1008
|
+
flexGrow: 1,
|
|
1009
|
+
justifyContent: 'center'
|
|
1010
|
+
},
|
|
1011
|
+
platformIconButton: {
|
|
1012
|
+
width: 52,
|
|
1013
|
+
height: 52,
|
|
1014
|
+
borderRadius: 26,
|
|
1015
|
+
backgroundColor: '#FFFFFF',
|
|
1016
|
+
justifyContent: 'center',
|
|
1017
|
+
alignItems: 'center',
|
|
1018
|
+
borderWidth: 3,
|
|
1019
|
+
borderColor: 'transparent',
|
|
1020
|
+
shadowColor: '#000',
|
|
1021
|
+
shadowOffset: {
|
|
1022
|
+
width: 0,
|
|
1023
|
+
height: 2
|
|
1024
|
+
},
|
|
1025
|
+
shadowOpacity: 0.15,
|
|
1026
|
+
shadowRadius: 4,
|
|
1027
|
+
elevation: 4
|
|
1028
|
+
},
|
|
1029
|
+
platformIconButtonSelected: {
|
|
1030
|
+
borderColor: '#3B82F6',
|
|
1031
|
+
backgroundColor: '#EFF6FF'
|
|
1032
|
+
},
|
|
1033
|
+
platformIcon: {
|
|
1034
|
+
width: 30,
|
|
1035
|
+
height: 30
|
|
1036
|
+
},
|
|
1037
|
+
youtubeIcon: {
|
|
1038
|
+
width: 42,
|
|
1039
|
+
height: 42
|
|
1040
|
+
},
|
|
1041
|
+
pinterestIcon: {
|
|
1042
|
+
width: 36,
|
|
1043
|
+
height: 36
|
|
1044
|
+
},
|
|
1045
|
+
gmailIcon: {
|
|
1046
|
+
width: 36,
|
|
1047
|
+
height: 36
|
|
1048
|
+
},
|
|
1049
|
+
chatgptIcon: {
|
|
1050
|
+
width: 30,
|
|
1051
|
+
height: 30
|
|
1052
|
+
},
|
|
1053
|
+
claudeIcon: {
|
|
1054
|
+
width: 32,
|
|
1055
|
+
height: 32
|
|
1056
|
+
},
|
|
1057
|
+
grokIcon: {
|
|
1058
|
+
width: 36,
|
|
1059
|
+
height: 36
|
|
1060
|
+
},
|
|
1061
|
+
connectingDot: {
|
|
1062
|
+
position: 'absolute',
|
|
1063
|
+
top: 2,
|
|
1064
|
+
right: 2,
|
|
1065
|
+
width: 12,
|
|
1066
|
+
height: 12,
|
|
1067
|
+
borderRadius: 6,
|
|
1068
|
+
backgroundColor: '#FFA500',
|
|
1069
|
+
borderWidth: 2,
|
|
1070
|
+
borderColor: _theme.COLORS.surface
|
|
1071
|
+
},
|
|
1072
|
+
connectedDot: {
|
|
1073
|
+
position: 'absolute',
|
|
1074
|
+
top: 2,
|
|
1075
|
+
right: 2,
|
|
1076
|
+
width: 12,
|
|
1077
|
+
height: 12,
|
|
1078
|
+
borderRadius: 6,
|
|
1079
|
+
backgroundColor: '#10B981',
|
|
1080
|
+
borderWidth: 2,
|
|
1081
|
+
borderColor: _theme.COLORS.surface
|
|
1082
|
+
},
|
|
1083
|
+
cardContainer: {
|
|
1084
|
+
alignItems: 'center',
|
|
1085
|
+
marginTop: 16,
|
|
1086
|
+
marginBottom: _theme.SPACING.md
|
|
1087
|
+
},
|
|
1088
|
+
platformCard: {
|
|
1089
|
+
width: 327,
|
|
1090
|
+
backgroundColor: '#FFFFFF',
|
|
1091
|
+
borderRadius: 16,
|
|
1092
|
+
padding: 8,
|
|
1093
|
+
shadowColor: '#000',
|
|
1094
|
+
shadowOffset: {
|
|
1095
|
+
width: 0,
|
|
1096
|
+
height: 2
|
|
1097
|
+
},
|
|
1098
|
+
shadowOpacity: 0.1,
|
|
1099
|
+
shadowRadius: 8,
|
|
1100
|
+
elevation: 3,
|
|
1101
|
+
gap: 10
|
|
1102
|
+
},
|
|
1103
|
+
cardHeader: {
|
|
1104
|
+
flexDirection: 'row',
|
|
1105
|
+
alignItems: 'center',
|
|
1106
|
+
justifyContent: 'space-between'
|
|
1107
|
+
},
|
|
1108
|
+
platformCardTitle: {
|
|
1109
|
+
fontSize: 16,
|
|
1110
|
+
fontWeight: '600',
|
|
1111
|
+
color: _theme.COLORS.grey800,
|
|
1112
|
+
fontFamily: 'IBM Plex Sans'
|
|
1113
|
+
},
|
|
1114
|
+
recommendedBadge: {
|
|
1115
|
+
backgroundColor: '#EFF6FF',
|
|
1116
|
+
paddingHorizontal: 12,
|
|
1117
|
+
paddingVertical: 6,
|
|
1118
|
+
borderRadius: 16,
|
|
1119
|
+
marginLeft: 8
|
|
1120
|
+
},
|
|
1121
|
+
recommendedBadgeText: {
|
|
1122
|
+
fontSize: 12,
|
|
1123
|
+
fontWeight: '600',
|
|
1124
|
+
color: '#2563EB',
|
|
1125
|
+
fontFamily: 'IBM Plex Sans'
|
|
1126
|
+
},
|
|
1127
|
+
customToggleTrack: {
|
|
1128
|
+
width: 50,
|
|
1129
|
+
height: 30,
|
|
1130
|
+
borderRadius: 15,
|
|
1131
|
+
padding: 2,
|
|
1132
|
+
marginLeft: 'auto',
|
|
1133
|
+
marginRight: 8,
|
|
1134
|
+
justifyContent: 'center'
|
|
1135
|
+
},
|
|
1136
|
+
customToggleThumb: {
|
|
1137
|
+
width: 26,
|
|
1138
|
+
height: 26,
|
|
1139
|
+
borderRadius: 13,
|
|
1140
|
+
backgroundColor: '#FFFFFF',
|
|
1141
|
+
shadowColor: '#000',
|
|
1142
|
+
shadowOffset: {
|
|
1143
|
+
width: 0,
|
|
1144
|
+
height: 2
|
|
1145
|
+
},
|
|
1146
|
+
shadowOpacity: 0.2,
|
|
1147
|
+
shadowRadius: 2,
|
|
1148
|
+
elevation: 2
|
|
1149
|
+
},
|
|
1150
|
+
descriptionContainer: {
|
|
1151
|
+
backgroundColor: '#F9FAFB',
|
|
1152
|
+
borderRadius: 8,
|
|
1153
|
+
padding: 8
|
|
1154
|
+
},
|
|
1155
|
+
platformCardDescription: {
|
|
1156
|
+
fontSize: 13,
|
|
1157
|
+
lineHeight: 18,
|
|
1158
|
+
color: _theme.COLORS.grey600,
|
|
1159
|
+
fontFamily: 'Inter'
|
|
1160
|
+
},
|
|
1161
|
+
refreshFrequencySection: {
|
|
1162
|
+
paddingHorizontal: 16,
|
|
1163
|
+
paddingVertical: 20,
|
|
1164
|
+
marginTop: 12,
|
|
1165
|
+
backgroundColor: '#F5F5F7',
|
|
1166
|
+
borderRadius: 16,
|
|
1167
|
+
marginHorizontal: _theme.SPACING.md,
|
|
1168
|
+
marginBottom: 8,
|
|
1169
|
+
borderWidth: 1,
|
|
1170
|
+
borderColor: '#E0E0E4'
|
|
1171
|
+
},
|
|
1172
|
+
refreshFrequencyTitle: {
|
|
1173
|
+
fontSize: 17,
|
|
1174
|
+
fontWeight: '700',
|
|
1175
|
+
color: '#1C1C1E',
|
|
1176
|
+
fontFamily: 'IBM Plex Sans',
|
|
1177
|
+
marginBottom: 4
|
|
1178
|
+
},
|
|
1179
|
+
refreshFrequencyDescription: {
|
|
1180
|
+
fontSize: 14,
|
|
1181
|
+
color: '#8E8E93',
|
|
1182
|
+
fontFamily: 'Inter',
|
|
1183
|
+
fontWeight: '400',
|
|
1184
|
+
marginBottom: 16
|
|
1185
|
+
},
|
|
1186
|
+
refreshSegmentedControl: {
|
|
1187
|
+
flexDirection: 'row',
|
|
1188
|
+
backgroundColor: '#E8E8ED',
|
|
1189
|
+
borderRadius: 12,
|
|
1190
|
+
padding: 3
|
|
1191
|
+
},
|
|
1192
|
+
refreshSegment: {
|
|
1193
|
+
flex: 1,
|
|
1194
|
+
paddingVertical: 10,
|
|
1195
|
+
alignItems: 'center',
|
|
1196
|
+
justifyContent: 'center',
|
|
1197
|
+
borderRadius: 10
|
|
1198
|
+
},
|
|
1199
|
+
refreshSegmentSelected: {
|
|
1200
|
+
backgroundColor: '#1C1C1E',
|
|
1201
|
+
shadowColor: '#000',
|
|
1202
|
+
shadowOffset: {
|
|
1203
|
+
width: 0,
|
|
1204
|
+
height: 2
|
|
1205
|
+
},
|
|
1206
|
+
shadowOpacity: 0.15,
|
|
1207
|
+
shadowRadius: 4,
|
|
1208
|
+
elevation: 3
|
|
1209
|
+
},
|
|
1210
|
+
refreshSegmentText: {
|
|
1211
|
+
fontSize: 15,
|
|
1212
|
+
fontFamily: 'Inter',
|
|
1213
|
+
fontWeight: '500',
|
|
1214
|
+
color: '#8E8E93'
|
|
1215
|
+
},
|
|
1216
|
+
refreshSegmentTextSelected: {
|
|
1217
|
+
fontWeight: '700',
|
|
1218
|
+
color: '#FFFFFF'
|
|
1219
|
+
},
|
|
1220
|
+
refreshFrequencyHint: {
|
|
1221
|
+
fontSize: 13,
|
|
1222
|
+
fontFamily: 'Inter',
|
|
1223
|
+
fontWeight: '400',
|
|
1224
|
+
color: '#8E8E93',
|
|
1225
|
+
textAlign: 'center',
|
|
1226
|
+
marginTop: 12
|
|
1227
|
+
},
|
|
1228
|
+
privacyLinkContainer: {
|
|
1229
|
+
marginTop: 16,
|
|
1230
|
+
paddingTop: 16,
|
|
1231
|
+
borderTopWidth: 1,
|
|
1232
|
+
borderTopColor: '#E5E7EB',
|
|
1233
|
+
alignItems: 'center'
|
|
1234
|
+
},
|
|
1235
|
+
privacyLinkText: {
|
|
1236
|
+
fontSize: 14,
|
|
1237
|
+
color: '#8B5CF6',
|
|
1238
|
+
fontFamily: 'Inter',
|
|
1239
|
+
fontWeight: '500'
|
|
1240
|
+
},
|
|
1241
|
+
bottomButtonContainer: {
|
|
1242
|
+
paddingTop: 8,
|
|
1243
|
+
paddingBottom: 0,
|
|
1244
|
+
paddingHorizontal: _theme.SPACING.md
|
|
1245
|
+
},
|
|
1246
|
+
buttonWrapper: {
|
|
1247
|
+
position: 'relative'
|
|
1248
|
+
},
|
|
1249
|
+
buttonOverlay: {
|
|
1250
|
+
position: 'absolute',
|
|
1251
|
+
top: 0,
|
|
1252
|
+
left: 0,
|
|
1253
|
+
right: 0,
|
|
1254
|
+
bottom: 0,
|
|
1255
|
+
borderRadius: 12,
|
|
1256
|
+
overflow: 'hidden'
|
|
1257
|
+
},
|
|
1258
|
+
holdProgressBar: {
|
|
1259
|
+
position: 'absolute',
|
|
1260
|
+
bottom: 0,
|
|
1261
|
+
left: 0,
|
|
1262
|
+
height: 4,
|
|
1263
|
+
backgroundColor: '#10B981',
|
|
1264
|
+
borderRadius: 2
|
|
1265
|
+
},
|
|
1266
|
+
skipButton: {
|
|
1267
|
+
alignItems: 'center',
|
|
1268
|
+
paddingVertical: 10,
|
|
1269
|
+
marginBottom: 34
|
|
1270
|
+
},
|
|
1271
|
+
skipButtonText: {
|
|
1272
|
+
fontSize: 16,
|
|
1273
|
+
fontFamily: 'Inter',
|
|
1274
|
+
fontWeight: '500',
|
|
1275
|
+
color: _theme.COLORS.grey600
|
|
1276
|
+
},
|
|
1277
|
+
pageIndicatorContainer: {
|
|
1278
|
+
position: 'absolute',
|
|
1279
|
+
alignSelf: 'center',
|
|
1280
|
+
zIndex: 11
|
|
1281
|
+
},
|
|
1282
|
+
scrollBarTrack: {
|
|
1283
|
+
width: 80,
|
|
1284
|
+
height: 4,
|
|
1285
|
+
backgroundColor: _theme.COLORS.grey300,
|
|
1286
|
+
borderRadius: 2,
|
|
1287
|
+
position: 'relative',
|
|
1288
|
+
overflow: 'hidden'
|
|
1289
|
+
},
|
|
1290
|
+
scrollBarThumb: {
|
|
1291
|
+
position: 'absolute',
|
|
1292
|
+
width: 24,
|
|
1293
|
+
height: 4,
|
|
1294
|
+
backgroundColor: _theme.COLORS.grey600,
|
|
1295
|
+
borderRadius: 2,
|
|
1296
|
+
left: 0
|
|
1297
|
+
},
|
|
1298
|
+
scrollIndicator: {
|
|
1299
|
+
position: 'absolute',
|
|
1300
|
+
bottom: 60,
|
|
1301
|
+
right: 30,
|
|
1302
|
+
zIndex: 12
|
|
1303
|
+
},
|
|
1304
|
+
scrollIndicatorText: {
|
|
1305
|
+
fontSize: 32,
|
|
1306
|
+
color: _theme.COLORS.grey500,
|
|
1307
|
+
fontWeight: 'bold'
|
|
1308
|
+
}
|
|
1309
|
+
});
|
|
1310
|
+
var _default = exports.default = PlatformConnectorsStep;
|
|
1311
|
+
//# sourceMappingURL=PlatformConnectorsStep.js.map
|