@onairos/react-native 3.7.1 → 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/assets/icons/spotify.png +0 -0
- package/lib/commonjs/assets/images/spotify.png +0 -0
- 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/assets/icons/spotify.png +0 -0
- package/lib/module/assets/images/spotify.png +0 -0
- 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
|
-
function _0x2f94(_0x4508af,_0x2f9423){_0x4508af=_0x4508af-0x0;const _0x1039a9=_0x4508();let _0x12d166=_0x1039a9[_0x4508af];return _0x12d166;}Object[_0x2f94(0x0)](exports,'__esModule',{'value':!![]}),exports[_0x2f94(0x1)]=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(_0x4698b3){return _0x4698b3&&_0x4698b3[_0x2f94(0x2)]?_0x4698b3:{'default':_0x4698b3};}function _0x4508(){const _0x58f36a=['defineProperty','default','__esModule','OHAEz','object','function','nXYqM','VQSvI','zOGgk','HapticType','ERROR','VBjSU','aReGV','NsPHn','KaxOp','QpkDr','wjenE','get','set','BUTTON_PRESS','qkkqR','WkPrq','MODEL_REFRESH_OPTIONS','daily','Daily','Always\x20up-to-date\x20data.','Weekly','Balanced\x20freshness\x20and\x20efficiency.','biweekly','Biweekly','Less\x20frequent,\x20more\x20efficient.','weekly','https://privacy.onairos.io/','zJMzO','tcBMb','gWZEF','ktOfV','pfItW','ckJnI','✅\x20[PLATFORMS]\x20Updated\x20connectedPlatforms\x20state\x20with:','❌\x20[TOGGLE]\x20No\x20username\x20available\x20-\x20cannot\x20proceed\x20with\x20OAuth','VqVAD','platform_account_details','✅\x20[PLATFORMS]\x20Loaded\x20from\x20platform_account_details:','chatgpt','claude','grok','jdMhl','GaIOP','JVHBt','DnROq','@onairos:linkedin_connected','linkedin','youtube','gmail','contain','gaXgc','SXDnI','jfaHR','UqAuQ','❌\x20[STORAGE]\x20Error\x20removing\x20from\x20user_connected_platforms:','SET\x20(','✅\x20[PLATFORMS]\x20Loaded\x20LinkedIn\x20connection','Ktlih','kIGmu','MvvaC','...','xfTfN','PpPeA','hPvpT','VigrT','ylePz','KMHOK','sRHWD','fWohj','fFFuk','@onairos:model_refresh_frequency','❌\x20[REFRESH]\x20Error\x20saving\x20refresh\x20frequency:','iHLpU','uNtkM','❌\x20[STORAGE]\x20Error\x20saving\x20to\x20user_connected_platforms:','success','elpHm','gXBUC','eyHAu','Llbya','nHwwH','✅\x20[PLATFORMS]\x20Loaded\x20from\x20user_connected_platforms:','KPvhb','habxN','RQqQj','NBjbI','IjZua','UVnFy','ZkYSS','pinterest','IUJqL','Highly\x20Recommended','#10B981','#9CA3AF','Initializing...','reddit','LinkedIn','Use\x20your\x20email\x20information\x20to\x20enrich\x20your\x20model.','Use\x20your\x20ChatGPT\x20conversations\x20and\x20memories\x20to\x20enrich\x20your\x20model.','Claude','Gemini','Use\x20your\x20Gemini\x20conversations\x20to\x20enrich\x20your\x20model.','BnFFs','Connect\x20platforms\x20to\x20build\x20your\x20private\x20persona','normal','Model\x20Refresh\x20Frequency','How\x20often\x20should\x20your\x20model\x20be\x20refreshed\x20from\x20platforms?','Skip','useState','Value','current','useRef','Animated','kgTBU','useConnections','useEffect','dBoLs','vFnRB','zFcKZ','length','dsmsZ','jLXcT','PnwXf','gMuRN','xxxwi','SOfFY','hvAyj','Linking','openURL','CVuaJ','has','add','size','kulUH','dcSHJ','bThGY','sIGzZ','bgZPn','gbiLe','cABhs','gpEPH','mMkUx','hPIHM','BiImX','zWhHJ','UpwJn','tYtJi','CTGLz','mBdkY','JeHdk','ZIOWj','KrSNe','nIinx','vdkQW','vIxzT','qUklq','log','FQHCQ','getItem','user_connected_platforms','parse','isArray','push','forEach','Mkclz','CEoss','platform','toLowerCase','includes','wrpZT','raOwl','xtaoe','from','EXBBP','cVLdi','map','xpaVZ','tSjkB','kQwSE','LlDco','ccCts','bZmvO','error','@onairos:llm_connected:','HdrCf','oULFP','byWYt','width','contentSize','MQWRX','hdtyY','rAyfr','gabdN','connected','jJaiS','ZHTig','zPDWP','cMGOD','ABPQJ','eVltL','SUCCESS','✅\x20[PERSONA]\x20Applied\x20pending\x20connection:\x20','MIGUO','XkYub','BPPKt','FKkdo','SAXbd','DCJin','GhqpI','NykwU','\x20-\x20no\x20URL\x20returned','triggerHaptic','❌\x20[PLATFORMS]\x20Error\x20loading\x20connected\x20platforms\x20from\x20storage:','weFlg','CaKbU','oXZul','iJDan','QzKzH','wBGKs','EkNaV','Orvjp','XeAAF','TrURg','rchrA','yXAjQ','OVnQS','fbVRt','Error\x20initializing\x20username:','bmUGL','kMlyG','RsbcS','VleAh','fIuvC','VQrTK','UvEbD','createElement','TouchableOpacity','platformIconButton','platformIconButtonSelected','Image','icon','platformIcon','aiamK','youtubeIcon','BDZjs','qekle','gmailIcon','IMRik','chatgptIcon','etFHQ','claudeIcon','grokIcon','iBGdm','View','connectingDot','connectedDot','NgGTW','zcVVd','email','ojPmr','split','yJVoK','rAeez','name','user_','floor','random','onairos_username','GoHHw','mobile_user_','abeBd','setItem','dykTJ','prvcm','jAKAm','XFWxV','jglLM','ktlug','loop','timing','start','useCallback','nativeEvent','contentOffset','layoutMeasurement','VUPqq','sxPeY','erMXQ','Use\x20your\x20watch\x20history,\x20likes,\x20and\x20subscriptions\x20to\x20enrich\x20your\x20model.','Xusou','Reddit','getPlatformIcon','pTMBm','Pinterest','Use\x20your\x20pins,\x20boards,\x20and\x20interests\x20to\x20enrich\x20your\x20model.','COjwg','mUjmK','dwxvW','JgEUJ','WXjIO','MuYue','nzgyd','JQNTz','Dyplt','HolhX','QdwnP','Dcbrj','mHIqx','xYYZH','vpaWg','YiFgA','sbBJL','\x20=\x20','frnQW','👤\x20[TOGGLE]\x20Username\x20check\x20-\x20stored:\x20\x22','\x22,\x20valid:\x20\x22','trim','HrlNT','SxkId','wooiF','Tuunx','find','isChatPlatform','isLLMPlatform','🤖\x20[LLM]\x20Opening\x20WebView\x20for\x20','connecting','getLLMPlatformUrl','🌐\x20[LLM]\x20Opening\x20','\x20URL:','HqGuy','NNTuc','❌\x20[LLM]\x20No\x20URL\x20configured\x20for\x20platform:\x20','isLinkedInPlatform','hasNativeSDK','bRPZJ','KPRpF','mKCLf','📊\x20[STATE]\x20WebView\x20state\x20changed\x20-\x20showOAuthWebView:\x20',',\x20oauthUrl:\x20','VfFEq','substring','...)','TNkhK','HZlpx','initiateNativeAuth','BBllX','SyTiY','ZDNrt','zPzhX','ujyXL','mCAOi','omRxm','ubjjv','MUzZs','initiateOAuth','🔗\x20[TOGGLE]\x20OAuth\x20URL\x20result\x20for\x20','cmPzu','tyZAc','gftkh','jeKZo','✅\x20[TOGGLE]\x20Setting\x20WebView\x20state\x20-\x20showing\x20modal\x20for\x20','rmSaZ','MNVhO','❌\x20[TOGGLE]\x20OAuth\x20failed\x20for\x20','nSOPn','IUpKc','WcKos','pmAks','delete','disconnected','MfLJy','LxZCP','zJnhB','txMOy','NSrJz','filter','stringify','\x20from\x20user_connected_platforms:','dPLfY','xspKa','bHrKc','removeItem','Error\x20toggling\x20platform\x20','UtXSN','kmNke','WTjBY','WnQuc','oqUWP','lVivd','xORFC','HHfih','AeYoL','guWum','kvHCx','ZxDds','fnkfz','ztorZ','XjmnP','thDcm','lixIH','KCrHO','hFveI','XRItB','GiGZj','hasOwnProperty','call','✅\x20[REFRESH]\x20Model\x20refresh\x20frequency\x20set\x20to:\x20','kDhFW','bzKGW','\x20with\x20URL:\x20','OAuthWebView','BlEna','CRYua','fzcUd','fpfrb','yqTcZ','mcIgM','MbMiI','setTemporaryPin','cvNxZ','gxxYs','acFuo','nILVV','TezJC','kNMBE','JcQKO','zjfQO','yTyjn','hNOKi','nlbBU','XuUQV','sWooF','DhtFO','MlnzN','YupgG','✅\x20[STORAGE]\x20Added\x20','\x20to\x20user_connected_platforms:','tCMKr','KtlVT','✅\x20[LLM]\x20','uypLi','DLUlt','toISOString','qPwQG','IIkLV','wqnWg','AuDbP','PwxPb','oJuEx','CSnwh','Aabuh','getOwnPropertyDescriptor','XYdQf','ISeLI','sHtLF','mawzh','aDDUv','yvdTj','dmblM','YTxzE','gmRuB','XCcxg','khHVv','BOgkf','dnzuE','RsTsC','BJxQu','NsMmZ','BpvkC','✅\x20[PLATFORMS]\x20Loaded\x20LLM\x20platform:\x20','kdCFp','ANzrx','tNVkE','ouEqy','QYXMF','WiTzw','SMLlI','Vibration','vibrate','xsaXW','BMYBK','aVCGO','xEBNv','sequence','EtpdN','Uftet','YgyEe','setValue','wICzb','min','max','iClsH','✅\x20[WEBVIEW]\x20Rendering\x20OAuthWebView\x20for\x20','xhfyg','KvbNg','mPHxW','maHpp','KLpzK','NxCJm','container','backButton','headingContainer','Text','Build\x20your\x20persona','subtitle','YehvV','largePersona','ScrollView','platformIconsScrollContent','ZnjWc','hDOFj','VpuYZ','JcFwz','kYHCH','lEyed','nhQJZ','dXjSz','pinterestIcon','huXgt','nqsey','UFVoi','scrollBarTrack','scrollBarThumb','rPasl','DdmZN','scrollIndicator','interpolate','scrollIndicatorText','mwyOs','XxDvs','sfpZS','recommendedBadge','recommendedBadgeText','GhZCk','customToggleTrack','fdIUV','Mqmlz','customToggleThumb','descriptionContainer','platformCardDescription','description','refreshFrequencySection','refreshFrequencyTitle','yGTeW','refreshFrequencyDescription','refreshSegmentedControl','value','refreshSegment','refreshSegmentSelected','refreshSegmentText','label','refreshFrequencyHint','bottomButtonContainer','buttonWrapper','guniL','SFcMp','pUxmV','skipButton','CFDAy','create','COLORS','surface','#F0F0F3','center','600','100%','700','left','400','grey600','relative','absolute','row','#FFFFFF','transparent','#3B82F6','SPACING','#000','space-between','grey800','#EFF6FF','#2563EB','IBM\x20Plex\x20Sans','#F9FAFB','Inter','#F5F5F7','#1C1C1E','#8E8E93','500','#E5E7EB','#8B5CF6','hidden','grey300','grey500','bold'];_0x4508=function(){return _0x58f36a;};return _0x4508();}function _interopRequireWildcard(_0x2514b8,_0x4de546){const _0x49559d={'lFvSd':_0x2f94(0x3),'VBjSU':function(_0x4ae99a,_0x29d8b8){return _0x4ae99a&&_0x29d8b8;},'aReGV':function(_0x4f6a24,_0x17f6f3){return _0x4f6a24===_0x17f6f3;},'ipXCY':_0x2f94(0x4),'NsPHn':_0x2f94(0x5),'KaxOp':function(_0x3db20e,_0x490ecd){return _0x3db20e!==_0x490ecd;},'QpkDr':'yUuOX','wjenE':_0x2f94(0x6),'qkkqR':function(_0x3d568b,_0x47d27b){return _0x3d568b!==_0x47d27b;},'WkPrq':_0x2f94(0x1),'eTrSp':function(_0xf69f84,_0x468ca7,_0x11d910,_0x1c6092){return _0xf69f84(_0x468ca7,_0x11d910,_0x1c6092);},'VQSvI':function(_0x48356a,_0x36fd18){return _0x48356a==_0x36fd18;}};if(_0x49559d[_0x2f94(0x7)](_0x49559d['NsPHn'],typeof WeakMap))var _0x16b082=new WeakMap(),_0x500bfe=new WeakMap();return(_interopRequireWildcard=function(_0x37e873,_0x2f1e69){const _0x2808b8={'zOGgk':function(_0x295088,_0x550d14){return _0x295088(_0x550d14);}};if('dXpuZ'===_0x49559d['lFvSd'])_0x2808b8[_0x2f94(0x8)](_0xa9ce94,_0x3aa190=>({..._0x3aa190,[_0xfa7f1d]:'error'})),(0x0,_0x2b7a51['triggerHaptic'])(_0x42fb3d[_0x2f94(0x9)][_0x2f94(0xa)]);else{if(_0x49559d[_0x2f94(0xb)](!_0x2f1e69,_0x37e873)&&_0x37e873[_0x2f94(0x2)])return _0x37e873;var _0x497a18,_0x2774ba,_0x46d6bc={'__proto__':null,'default':_0x37e873};if(_0x49559d[_0x2f94(0xc)](null,_0x37e873)||_0x49559d['ipXCY']!=typeof _0x37e873&&_0x49559d[_0x2f94(0xd)]!=typeof _0x37e873)return _0x46d6bc;if(_0x497a18=_0x2f1e69?_0x500bfe:_0x16b082){if(_0x49559d[_0x2f94(0xe)](_0x49559d[_0x2f94(0xf)],_0x49559d[_0x2f94(0x10)])){if(_0x497a18['has'](_0x37e873))return _0x497a18[_0x2f94(0x11)](_0x37e873);_0x497a18[_0x2f94(0x12)](_0x37e873,_0x46d6bc);}else(0x0,_0x5b2db8['triggerHaptic'])(_0x2f2718[_0x2f94(0x9)][_0x2f94(0x13)]),_0x5e5ab9(![]);}for(const _0x2df433 in _0x37e873)_0x49559d[_0x2f94(0x14)](_0x49559d[_0x2f94(0x15)],_0x2df433)&&{}['hasOwnProperty']['call'](_0x37e873,_0x2df433)&&((_0x2774ba=(_0x497a18=Object[_0x2f94(0x0)])&&Object['getOwnPropertyDescriptor'](_0x37e873,_0x2df433))&&(_0x2774ba[_0x2f94(0x11)]||_0x2774ba[_0x2f94(0x12)])?_0x49559d['eTrSp'](_0x497a18,_0x46d6bc,_0x2df433,_0x2774ba):_0x46d6bc[_0x2df433]=_0x37e873[_0x2df433]);return _0x46d6bc;}})(_0x2514b8,_0x4de546);}const MODEL_REFRESH_OPTIONS=exports[_0x2f94(0x16)]=[{'value':_0x2f94(0x17),'label':_0x2f94(0x18),'description':_0x2f94(0x19)},{'value':'weekly','label':_0x2f94(0x1a),'description':_0x2f94(0x1b)},{'value':_0x2f94(0x1c),'label':_0x2f94(0x1d),'description':_0x2f94(0x1e)}],PlatformConnectorsStep=({onUpdate:_0x25b0bc,onSkip:_0x3ec1bc,loading:loading=![],onPinComplete:_0x3c378d,onReviewerBypass:_0x24295f,onLogout:_0x454761,allowedPlatforms:_0x385500,recommendedPlatforms:_0x2a08cf,initialConnectedPlatforms:_0x36337e,onRefreshFrequencyChange:_0x58fb3c,initialRefreshFrequency:initialRefreshFrequency=_0x2f94(0x1f)})=>{const _0x299edd={'jLXcT':function(_0x4cc577,_0x3859af){return _0x4cc577(_0x3859af);},'fpfrb':_0x2f94(0x20),'dBoLs':_0x2f94(0x21),'vFnRB':_0x2f94(0x22),'zFcKZ':function(_0x21e5fb){return _0x21e5fb();},'dcSHJ':function(_0x13af6c,_0x59e6a5){return _0x13af6c!==_0x59e6a5;},'MfCJc':_0x2f94(0x23),'dsmsZ':_0x2f94(0x24),'sbBJL':function(_0x4beb78,_0x5e42bf){return _0x4beb78(_0x5e42bf);},'kulUH':_0x2f94(0x25),'weFlg':function(_0x430234,_0x5f1b88){return _0x430234===_0x5f1b88;},'bgZPn':function(_0xcc5ebc,_0x63c5b2){return _0xcc5ebc-_0x63c5b2;},'gbiLe':function(_0x5e75f2,_0x2e8bd3){return _0x5e75f2>_0x2e8bd3;},'cABhs':function(_0x2a5ae4,_0x1e5acd,_0x2b08fe){return _0x2a5ae4(_0x1e5acd,_0x2b08fe);},'gpEPH':_0x2f94(0x26),'kBtDg':'UaBwW','mMkUx':_0x2f94(0x27),'wooiF':_0x2f94(0x28),'hPIHM':_0x2f94(0x29),'BiImX':_0x2f94(0x2a),'huyqK':_0x2f94(0x2b),'JgEUJ':_0x2f94(0x2c),'iJDan':_0x2f94(0x2d),'zWhHJ':'gemini','UpwJn':_0x2f94(0x2e),'tYtJi':_0x2f94(0x2f),'CTGLz':_0x2f94(0x30),'yatBF':'HdrCf','mBdkY':_0x2f94(0x31),'JeHdk':_0x2f94(0x32),'ZIOWj':_0x2f94(0x33),'YiFgA':_0x2f94(0x34),'nIinx':'KnWJu','QYXMF':function(_0x4620ca){return _0x4620ca();},'CaKbU':'connecting','oXZul':_0x2f94(0x35),'COjwg':_0x2f94(0x36),'rchrA':function(_0x31e135,_0x35a67f){return _0x31e135===_0x35a67f;},'QzKzH':_0x2f94(0x37),'wBGKs':'❌\x20[PLATFORMS]\x20Error\x20loading\x20connected\x20platforms\x20from\x20storage:','EkNaV':_0x2f94(0x38),'Orvjp':'onairos_username','XeAAF':function(_0x322154,_0x3817b4){return _0x322154===_0x3817b4;},'TrURg':'EEmOn','yXAjQ':_0x2f94(0x39),'OVnQS':'tTIHP','fbVRt':'bEllu','XFWxV':function(_0x19e0da){return _0x19e0da();},'jglLM':function(_0x2fe6bd,_0x3368ee){return _0x2fe6bd===_0x3368ee;},'ktlug':_0x2f94(0x3a),'DdmZN':function(_0x4881ab,_0x570299){return _0x4881ab>_0x570299;},'PYILW':function(_0x2f09ab,_0x5d656d){return _0x2f09ab/_0x5d656d;},'cuSqX':function(_0x192cbb,_0x2d48b6){return _0x192cbb(_0x2d48b6);},'VUPqq':function(_0x271f7c,_0x544d89){return _0x271f7c>_0x544d89;},'sxPeY':function(_0x3fdd5a,_0x59d48e){return _0x3fdd5a(_0x59d48e);},'Dyplt':function(_0x4ab36c,_0x295f75){return _0x4ab36c>_0x295f75;},'HolhX':_0x2f94(0x3b),'QdwnP':function(_0x2c0cfa,_0x3dda64){return _0x2c0cfa(_0x3dda64);},'ujyXL':_0x2f94(0x3c),'Dcbrj':function(_0x2004e5,_0x3cc523){return _0x2004e5(_0x3cc523);},'Sabet':function(_0x122fd3,_0x1c5ab9){return _0x122fd3(_0x1c5ab9);},'mHIqx':function(_0x34ff1a,_0x45d821){return _0x34ff1a||_0x45d821;},'xYYZH':_0x2f94(0x3d),'vpaWg':'NULL','fYStI':_0x2f94(0x3e),'frnQW':_0x2f94(0x3f),'bTTyj':_0x2f94(0x40),'nqsey':function(_0x172b62,_0x56089e){return _0x172b62===_0x56089e;},'HrlNT':function(_0x3312fb,_0x5463d8){return _0x3312fb===_0x5463d8;},'yTyjn':function(_0x4675fe,_0x53a3e8){return _0x4675fe===_0x53a3e8;},'HqGuy':function(_0x85b240,_0x2355ff){return _0x85b240(_0x2355ff);},'mCAOi':function(_0x236861,_0x28ff31){return _0x236861!==_0x28ff31;},'JdiOB':function(_0x2508a2,_0x5da5ca){return _0x2508a2===_0x5da5ca;},'KPRpF':'CWiQc','SyTiY':function(_0x233702,_0x174e76){return _0x233702(_0x174e76);},'HZlpx':function(_0x474280,_0x1a14ec){return _0x474280(_0x1a14ec);},'BBllX':function(_0x4d323b,_0x2b244d){return _0x4d323b(_0x2b244d);},'ZDNrt':function(_0x1d4e38,_0x1533ba){return _0x1d4e38===_0x1533ba;},'zPzhX':_0x2f94(0x41),'MUzZs':function(_0x263f79,_0x5de516){return _0x263f79(_0x5de516);},'cmPzu':function(_0x4148c9,_0x174da8){return _0x4148c9+_0x174da8;},'tyZAc':_0x2f94(0x42),'gftkh':function(_0x14fd35,_0x3011a1){return _0x14fd35===_0x3011a1;},'jeKZo':_0x2f94(0x43),'rmSaZ':function(_0x10da9d,_0x22e534){return _0x10da9d(_0x22e534);},'nSOPn':function(_0x4d4076,_0x1d8e43){return _0x4d4076(_0x1d8e43);},'VpuYZ':function(_0x67ffc6,_0x3d4c3f){return _0x67ffc6===_0x3d4c3f;},'MfLJy':_0x2f94(0x44),'LxZCP':_0x2f94(0x45),'zJnhB':'user_connected_platforms','txMOy':function(_0x53b9fd,_0x1bb213){return _0x53b9fd===_0x1bb213;},'NSrJz':'GfKBT','mniqu':function(_0x2dbadd,_0x5d6f7e){return _0x2dbadd===_0x5d6f7e;},'dPLfY':function(_0x3ea805,_0x586fa8){return _0x3ea805!==_0x586fa8;},'xspKa':_0x2f94(0x46),'bHrKc':_0x2f94(0x47),'WnQuc':function(_0x87c55f,_0x5d8587){return _0x87c55f(_0x5d8587);},'UtXSN':function(_0x478e36,_0x28d09d){return _0x478e36===_0x28d09d;},'kmNke':_0x2f94(0x48),'lVivd':function(_0x15e6f5,_0x26c04f){return _0x15e6f5(_0x26c04f);},'oqUWP':function(_0x815fa3){return _0x815fa3();},'xORFC':_0x2f94(0x49),'HHfih':_0x2f94(0x4a),'AeYoL':function(_0x5ef8ab,_0xdcc1a7){return _0x5ef8ab(_0xdcc1a7);},'guWum':function(_0x4597c1,_0x58c0bf){return _0x4597c1&&_0x58c0bf;},'kvHCx':'object','ZxDds':function(_0x48c924,_0x3d9345){return _0x48c924!=_0x3d9345;},'fnkfz':'function','ztorZ':_0x2f94(0x1),'XjmnP':function(_0x27cff0,_0x256d0){return _0x27cff0===_0x256d0;},'lixIH':_0x2f94(0x4b),'ntKbN':_0x2f94(0x4c),'xpgvs':_0x2f94(0x4d),'BlEna':function(_0x5e5231,_0x45a299){return _0x5e5231===_0x45a299;},'CRYua':_0x2f94(0x4e),'fzcUd':function(_0x20e8b5,_0x55e728){return _0x20e8b5(_0x55e728);},'pVtLF':function(_0x272e07,_0x13a63b){return _0x272e07(_0x13a63b);},'acFuo':function(_0x2d9959,_0x13394a,_0x5202e9){return _0x2d9959(_0x13394a,_0x5202e9);},'yqTcZ':function(_0x505b31,_0x57a31d){return _0x505b31===_0x57a31d;},'mcIgM':_0x2f94(0x4f),'MbMiI':function(_0x3bacfe,_0x3e9031){return _0x3bacfe(_0x3e9031);},'cvNxZ':function(_0x44ba00,_0x440b01){return _0x44ba00(_0x440b01);},'gxxYs':function(_0x2737c5,_0x23c1a3){return _0x2737c5(_0x23c1a3);},'TezJC':function(_0x56d4a9,_0x29fa26){return _0x56d4a9(_0x29fa26);},'MlnzN':function(_0x3b78cd,_0x3c628b){return _0x3b78cd(_0x3c628b);},'kNMBE':_0x2f94(0x50),'JcQKO':function(_0x32c173,_0x3dd61b,_0x414426,_0x31a88a){return _0x32c173(_0x3dd61b,_0x414426,_0x31a88a);},'zjfQO':function(_0x461e4b,_0x378707){return _0x461e4b==_0x378707;},'hNOKi':_0x2f94(0x51),'nlbBU':function(_0x3634e3,_0x3b8b39){return _0x3634e3!==_0x3b8b39;},'XuUQV':function(_0x3b2460,_0x3b6704){return _0x3b2460(_0x3b6704);},'sWooF':function(_0x2de625,_0xf7e79a){return _0x2de625(_0xf7e79a);},'DhtFO':_0x2f94(0x52),'YupgG':_0x2f94(0x53),'crRAG':function(_0x43cedb,_0x451524){return _0x43cedb===_0x451524;},'tCMKr':_0x2f94(0x54),'PiMxs':'fZwAh','DLUlt':_0x2f94(0x55),'XYdQf':function(_0x13bdcf,_0x3794da){return _0x13bdcf(_0x3794da);},'ISeLI':function(_0x572b0a,_0x81b89e){return _0x572b0a(_0x81b89e);},'sHtLF':function(_0x12e7ce,_0x347224){return _0x12e7ce(_0x347224);},'khHVv':function(_0x343ef4,_0x4de3b9){return _0x343ef4(_0x4de3b9);},'mawzh':'GZkPv','aDDUv':function(_0x2ca5bb,_0x2ba568){return _0x2ca5bb===_0x2ba568;},'yvdTj':_0x2f94(0x56),'BOgkf':_0x2f94(0x57),'dnzuE':'bgbKY','BJxQu':function(_0x1bcb93,_0x29a6ba){return _0x1bcb93(_0x29a6ba);},'ZRUda':function(_0x255623,_0x50e9be){return _0x255623===_0x50e9be;},'NsMmZ':_0x2f94(0x58),'BpvkC':'kkyQh','kdCFp':function(_0x1b23a8,_0x1c1820){return _0x1b23a8(_0x1c1820);},'ANzrx':function(_0x1d2273,_0x24f863){return _0x1d2273!==_0x24f863;},'tNVkE':_0x2f94(0x59),'WiTzw':function(_0x4fd220){return _0x4fd220();},'SMLlI':function(_0x52c2d3,_0x4d4fda,_0x3656f9){return _0x52c2d3(_0x4d4fda,_0x3656f9);},'BMYBK':function(_0x51b673,_0x472f4c){return _0x51b673===_0x472f4c;},'xEBNv':_0x2f94(0x5a),'oDKRD':function(_0x38a822,_0x4979d0){return _0x38a822!==_0x4979d0;},'EtpdN':_0x2f94(0x5b),'vzNwX':_0x2f94(0x5c),'Uftet':function(_0x3bc6d1,_0x884eeb){return _0x3bc6d1(_0x884eeb);},'wICzb':'...)','xhfyg':_0x2f94(0x5d),'mPHxW':function(_0x1bd868,_0x45b34c){return _0x1bd868(_0x45b34c);},'NxCJm':function(_0x29de34,_0x57b839){return _0x29de34(_0x57b839);},'JcFwz':_0x2f94(0x5e),'pTMBm':_0x2f94(0x5f),'huXgt':function(_0x37a64f,_0x2f0cf1){return _0x37a64f===_0x2f0cf1;},'UFVoi':function(_0x1b2fe6,_0x5c1eda){return _0x1b2fe6===_0x5c1eda;},'mwyOs':'BbFsM','XxDvs':_0x2f94(0x60),'sfpZS':function(_0x588911,_0x3fe8c3){return _0x588911===_0x3fe8c3;},'GhZCk':_0x2f94(0x61),'fdIUV':_0x2f94(0x62),'Mqmlz':_0x2f94(0x63),'pUxmV':function(_0x45de68,_0x2b7188){return _0x45de68>_0x2b7188;},'kgTBU':_0x2f94(0x64),'erMXQ':'YouTube','Xusou':_0x2f94(0x65),'oaCHU':'Use\x20your\x20posts\x20and\x20comments\x20to\x20enrich\x20your\x20model.','mTvmb':_0x2f94(0x66),'tWZSY':'Use\x20your\x20professional\x20network\x20and\x20career\x20interests\x20to\x20enrich\x20your\x20model.','mUjmK':'Gmail','dwxvW':_0x2f94(0x67),'ZsKLM':'ChatGPT','WXjIO':_0x2f94(0x68),'MuYue':_0x2f94(0x69),'nzgyd':_0x2f94(0x6a),'NYuEd':_0x2f94(0x6b),'JQNTz':'Use\x20your\x20Grok\x20conversations\x20from\x20X\x20to\x20enrich\x20your\x20model.','iClsH':function(_0x141352,_0x222b6b){return _0x141352+_0x222b6b;},'maHpp':function(_0x28716d,_0x555ade){return _0x28716d===_0x555ade;},'KLpzK':_0x2f94(0x6c),'YehvV':_0x2f94(0x6d),'ZnjWc':function(_0xbb940d,_0x3c31b6){return _0xbb940d<=_0x3c31b6;},'hDOFj':_0x2f94(0x6e),'rPasl':function(_0xdd5d80,_0x1f344c){return _0xdd5d80*_0x1f344c;},'yGTeW':_0x2f94(0x6f),'bVUIL':_0x2f94(0x70),'vmZHS':function(_0x239750,_0x35d25b){return _0x239750===_0x35d25b;},'guniL':'Continue','CPrKT':'100%','CFDAy':_0x2f94(0x71)};var _0x3d5365;const [_0x40ab36,_0x2c6008]=(0x0,_react[_0x2f94(0x72)])(()=>new Set(_0x36337e||[])),[_0x40ff47,_0x226d3d]=(0x0,_react[_0x2f94(0x72)])(![]),[_0x5b1f2d,_0x3595ac]=(0x0,_react[_0x2f94(0x72)])(![]),[_0x3cd3e9,_0x4e174c]=(0x0,_react[_0x2f94(0x72)])(![]),[_0x187716,_0x43686c]=(0x0,_react['useState'])(''),[_0x50ba36,_0x46138d]=(0x0,_react['useState'])({}),[_0x2bfc2f,_0xb190ce]=(0x0,_react[_0x2f94(0x72)])(![]),[_0x85632d,_0x2dc5c5]=(0x0,_react['useState'])(''),[_0x5b7a65,_0x33f041]=(0x0,_react[_0x2f94(0x72)])(''),[_0xede2a9,_0x5ac502]=(0x0,_react[_0x2f94(0x72)])(null),[_0x1ed158,_0x3a1217]=(0x0,_react['useState'])(0x0),_0x9c33d5=(0x0,_react['useRef'])(new _reactNative['Animated'][(_0x2f94(0x73))](0x0))[_0x2f94(0x74)],[_0x20db75,_0xae6416]=(0x0,_react['useState'])(''),_0xc3216=(0x0,_react[_0x2f94(0x75)])(null),[_0x1fb779,_0x228383]=(0x0,_react[_0x2f94(0x72)])(!![]),_0x3bea1f=(0x0,_react[_0x2f94(0x75)])(new _reactNative[(_0x2f94(0x76))][(_0x2f94(0x73))](0x0))[_0x2f94(0x74)],[_0x2e6f12,_0x342ed8]=(0x0,_react[_0x2f94(0x72)])(0x0),_0x20cae8=(0x0,_react[_0x2f94(0x75)])(0x0),[_0x1e32b1,_0xa43608]=(0x0,_react['useState'])(''),[_0x4343a1,_0x8b64f8]=(0x0,_react[_0x2f94(0x72)])(0x0),[_0x4156f0,_0x2b6eb3]=(0x0,_react[_0x2f94(0x72)])(_0x299edd[_0x2f94(0x77)]),[_0xd564ed,_0x400f52]=(0x0,_react[_0x2f94(0x72)])(![]),[_0x2a547d,_0x515460]=(0x0,_react[_0x2f94(0x72)])(![]),[_0x4104cc,_0x216301]=(0x0,_react[_0x2f94(0x72)])(null),[_0x3d0c4b,_0x2bf5f7]=(0x0,_react[_0x2f94(0x72)])(null),_0x5bac61=(0x0,_react['useRef'])(null),[_0x506f8a,_0x304e43]=(0x0,_react[_0x2f94(0x72)])(![]),[_0x108e5e,_0x30bea1]=(0x0,_react[_0x2f94(0x72)])(''),[_0xbd8f6,_0x3e640b]=(0x0,_react[_0x2f94(0x72)])(null),[_0x5ded34,_0x41645e]=(0x0,_react[_0x2f94(0x72)])(![]),[_0x33f8aa,_0x1ab4ec]=(0x0,_react['useState'])(![]),[_0x2f08b5,_0x367393]=(0x0,_react[_0x2f94(0x72)])(null),[_0x4c1b20,_0x2080b1]=(0x0,_react['useState'])(initialRefreshFrequency),{connectPlatform:_0x57021d,disconnectPlatform:_0x393841,isConnecting:_0x19a08c}=(0x0,_useConnections[_0x2f94(0x78)])(),_0x57f9d4=null;(0x0,_react[_0x2f94(0x79)])(()=>{const _0x35ed35={'PnwXf':function(_0x535d32,_0x553345){return _0x299edd['jLXcT'](_0x535d32,_0x553345);},'gMuRN':_0x299edd['fpfrb'],'xxxwi':function(_0x5e9829,_0x5ebeeb){return _0x5e9829===_0x5ebeeb;},'TOAax':_0x299edd[_0x2f94(0x7a)],'SOfFY':_0x299edd[_0x2f94(0x7b)],'pUhyb':function(_0x26bdbc){return _0x299edd[_0x2f94(0x7c)](_0x26bdbc);}};_0x36337e&&_0x36337e[_0x2f94(0x7d)]>0x0&&(_0x299edd['dcSHJ'](_0x299edd['MfCJc'],_0x299edd[_0x2f94(0x7e)])?_0x299edd[_0x2f94(0x7f)](_0x2c6008,_0x4148e5=>{const _0x1b5322={'hvAyj':function(_0x30e777,_0x5783f9){return _0x35ed35[_0x2f94(0x80)](_0x30e777,_0x5783f9);},'CVuaJ':_0x35ed35[_0x2f94(0x81)]};if(_0x35ed35[_0x2f94(0x82)](_0x35ed35['TOAax'],_0x35ed35[_0x2f94(0x83)])){const Linking=_0x1b5322[_0x2f94(0x84)](_0x30f16c,0x10)[_0x2f94(0x85)];Linking[_0x2f94(0x86)](_0x1b5322[_0x2f94(0x87)]);}else{const _0x2f9f33=new Set(_0x4148e5);let _0x3f6c78=![];return _0x36337e['forEach'](_0x9a418a=>{!_0x2f9f33[_0x2f94(0x88)](_0x9a418a)&&(_0x2f9f33[_0x2f94(0x89)](_0x9a418a),_0x3f6c78=!![]);}),_0x3f6c78?_0x2f9f33:_0x4148e5;}}):_0x5aa68e[_0x2f94(0x8a)]>0x0&&!_0x44da8a&&!_0x484802&&!_0x2e88b3&&_0x35ed35['pUhyb'](_0x30756a));},[_0x36337e]),(0x0,_react[_0x2f94(0x79)])(()=>{const _0x81714a={'vdkQW':function(_0x3b821c,_0xa7e47a){return _0x299edd['sbBJL'](_0x3b821c,_0xa7e47a);},'Mkclz':_0x299edd[_0x2f94(0x8b)],'CEoss':function(_0x3d6d89,_0x22cc10){return _0x299edd['weFlg'](_0x3d6d89,_0x22cc10);},'wrpZT':function(_0x4f5d9b,_0x1c507b){return _0x299edd[_0x2f94(0x8c)](_0x4f5d9b,_0x1c507b);},'raOwl':_0x2f94(0x8d),'xtaoe':_0x2f94(0x8e),'MQWRX':function(_0x5dae98,_0x2f1318){return _0x299edd[_0x2f94(0x8f)](_0x5dae98,_0x2f1318);},'hdtyY':function(_0x3037af,_0x5310b8){return _0x3037af>_0x5310b8;},'eSDiS':function(_0x55c429,_0x41e16a){return _0x55c429/_0x41e16a;},'rAyfr':function(_0x553a57,_0x1699e3){return _0x299edd[_0x2f94(0x90)](_0x553a57,_0x1699e3);},'sQqJR':function(_0x4b37d1,_0x43cc8d,_0x53e870){return _0x299edd[_0x2f94(0x91)](_0x4b37d1,_0x43cc8d,_0x53e870);},'LlDco':function(_0x5c7af1,_0x5a50d3){return _0x5c7af1===_0x5a50d3;},'XkYub':_0x299edd[_0x2f94(0x92)],'GhqpI':_0x299edd['kBtDg'],'NykwU':_0x299edd[_0x2f94(0x93)],'ARZoT':_0x299edd['wooiF'],'jKUoV':function(_0x45bbe8,_0x1935b2){return _0x299edd[_0x2f94(0x8c)](_0x45bbe8,_0x1935b2);},'vIxzT':_0x299edd[_0x2f94(0x94)],'FQHCQ':'🔄\x20[PLATFORMS]\x20Loading\x20connected\x20platforms\x20from\x20storage...','XwVns':_0x299edd[_0x2f94(0x95)],'cVLdi':_0x299edd['huyqK'],'xpaVZ':_0x299edd['JgEUJ'],'tSjkB':_0x299edd['iJDan'],'kQwSE':_0x299edd[_0x2f94(0x96)],'dscRH':_0x299edd[_0x2f94(0x97)],'ccCts':_0x299edd[_0x2f94(0x98)],'bZmvO':_0x299edd[_0x2f94(0x99)],'oULFP':_0x299edd['yatBF'],'Ipcfp':_0x299edd[_0x2f94(0x9a)],'byWYt':_0x299edd[_0x2f94(0x9b)],'gabdN':_0x299edd[_0x2f94(0x9c)],'jJaiS':_0x299edd['YiFgA'],'trBPg':_0x2f94(0x9d),'cMGOD':function(_0x401af1,_0x4950d9){return _0x401af1===_0x4950d9;},'ABPQJ':_0x299edd[_0x2f94(0x9e)]},_0x440e27=async()=>{const _0xcda9c6={'xlNLQ':_0x81714a['ARZoT'],'zPDWP':function(_0x451a5d,_0x3c50c8){return _0x81714a[_0x2f94(0x9f)](_0x451a5d,_0x3c50c8);},'MIGUO':function(_0x33d53e,_0x22aeed){return _0x81714a[_0x2f94(0x9f)](_0x33d53e,_0x22aeed);},'NvqGu':function(_0x4cd3fb,_0x87ec0){return _0x81714a['vdkQW'](_0x4cd3fb,_0x87ec0);}};try{if(_0x81714a['jKUoV'](_0x81714a[_0x2f94(0xa0)],_0x2f94(0xa1))){console[_0x2f94(0xa2)](_0x81714a[_0x2f94(0xa3)]);const _0x4d36d6=[],_0x4f0824=await _asyncStorage[_0x2f94(0x1)][_0x2f94(0xa4)](_0x2f94(0xa5));if(_0x4f0824){const _0x2c2446=JSON[_0x2f94(0xa6)](_0x4f0824);Array[_0x2f94(0xa7)](_0x2c2446)&&(_0x4d36d6[_0x2f94(0xa8)](..._0x2c2446),console[_0x2f94(0xa2)](_0x2f94(0x57),_0x2c2446));}const _0x1398b=await _asyncStorage[_0x2f94(0x1)]['getItem'](_0x81714a['XwVns']);if(_0x1398b){const _0x5098b9=JSON[_0x2f94(0xa6)](_0x1398b);Array[_0x2f94(0xa7)](_0x5098b9)&&(_0x5098b9[_0x2f94(0xa9)](_0x3a5307=>{const _0x1d8848={'EXBBP':function(_0x511bde,_0x5ecc5e){return _0x81714a['vdkQW'](_0x511bde,_0x5ecc5e);}};if('JLhGo'!==_0x81714a[_0x2f94(0xaa)]){var _0x15c288;const _0x5a3823=_0x81714a[_0x2f94(0xab)](_0x15c288=_0x3a5307[_0x2f94(0xac)],null)||_0x81714a[_0x2f94(0xab)](_0x15c288,void 0x0)?void 0x0:_0x15c288[_0x2f94(0xad)]();if(_0x5a3823&&!_0x4d36d6[_0x2f94(0xae)](_0x5a3823)){if(_0x81714a[_0x2f94(0xaf)](_0x81714a[_0x2f94(0xb0)],_0x81714a[_0x2f94(0xb1)]))_0x4d36d6[_0x2f94(0xa8)](_0x5a3823);else{const _0x4579a7=new _0xdc4863(_0x26ba3e);let _0x410223=![];return _0x1da459[_0x2f94(0xa9)](_0xcca20b=>{!_0x4579a7[_0x2f94(0x88)](_0xcca20b)&&(_0x4579a7['add'](_0xcca20b),_0x410223=!![]);}),_0x410223&&_0x117c95[_0x2f94(0xa2)](_0x2f94(0x27),_0x1e5b33[_0x2f94(0xb2)](_0x4579a7)),_0x410223?_0x4579a7:_0x21600e;}}}else{(0x0,_0x5f09fc['triggerHaptic'])(_0x14bab8['HapticType']['BUTTON_PRESS']),_0x1d8848[_0x2f94(0xb3)](_0x4cae22,!![]);try{_0x19846d(!![]);}finally{_0x25efcd(![]);}}}),console[_0x2f94(0xa2)](_0x81714a[_0x2f94(0xb4)],_0x5098b9[_0x2f94(0xb5)](_0x15a4b3=>_0x15a4b3[_0x2f94(0xac)])));}const _0x3f49d0=[_0x81714a[_0x2f94(0xb6)],_0x81714a[_0x2f94(0xb7)],_0x81714a[_0x2f94(0xb8)],_0x81714a['dscRH']];for(const _0x3a9d11 of _0x3f49d0){if(_0x81714a[_0x2f94(0xb9)](_0x81714a[_0x2f94(0xba)],_0x81714a[_0x2f94(0xbb)]))_0x3133b9[_0x2f94(0xbc)](_0x2f94(0x4d),_0x1b8e2e);else{const _0x3952fd=await _asyncStorage[_0x2f94(0x1)]['getItem'](_0x2f94(0xbd)+_0x3a9d11);if(_0x3952fd){if(_0x2f94(0xbe)===_0x81714a[_0x2f94(0xbf)]){const _0x5d3f84=JSON[_0x2f94(0xa6)](_0x3952fd);if(_0x5d3f84['connected']&&!_0x4d36d6[_0x2f94(0xae)](_0x3a9d11)){if(_0x81714a[_0x2f94(0xab)](_0x81714a['Ipcfp'],_0x81714a[_0x2f94(0xc0)])){const _0x22dbd8=_0x555263['nativeEvent']['contentOffset']['x'],_0x2a2388=_0x4024be['nativeEvent']['layoutMeasurement'][_0x2f94(0xc1)],_0x4feb54=_0x34cd3e['nativeEvent'][_0x2f94(0xc2)][_0x2f94(0xc1)];_0x1822f5[_0x2f94(0x74)]=_0x22dbd8;const _0x329964=_0x81714a[_0x2f94(0xc3)](_0x4feb54,_0x2a2388),_0x314558=_0x81714a[_0x2f94(0xc4)](_0x329964,0x0)?_0x81714a['eSDiS'](_0x22dbd8,_0x329964):0x0;_0x81714a[_0x2f94(0x9f)](_0xbe99f3,_0x314558),_0x81714a[_0x2f94(0xc5)](_0x22dbd8,0xa)&&_0xdb35c1&&_0x81714a['vdkQW'](_0x5821ac,![]);}else _0x4d36d6['push'](_0x3a9d11),console[_0x2f94(0xa2)]('✅\x20[PLATFORMS]\x20Loaded\x20LLM\x20platform:\x20'+_0x3a9d11);}}else{_0xb7a65a[_0x2f94(0xbc)](_0xcda9c6['xlNLQ']);return;}}}}const _0x3eda57=await _asyncStorage[_0x2f94(0x1)]['getItem'](_0x81714a[_0x2f94(0xc6)]);if(_0x3eda57){const _0x2d5c31=JSON[_0x2f94(0xa6)](_0x3eda57);_0x2d5c31[_0x2f94(0xc7)]&&!_0x4d36d6[_0x2f94(0xae)](_0x81714a[_0x2f94(0xc8)])&&(_0x2f94(0xc9)===_0x81714a['trBPg']?_0xcda9c6[_0x2f94(0xca)](_0x556abf,_0x3d0809):(_0x4d36d6['push'](_0x2f94(0x34)),console['log'](_0x2f94(0x3e))));}if(_0x81714a['hdtyY'](_0x4d36d6[_0x2f94(0x7d)],0x0)){if(_0x81714a[_0x2f94(0xcb)](_0x81714a[_0x2f94(0xcc)],_0x2f94(0xcd))){const _0x504fbd=_0x81714a['sQqJR'](_0x118bd7,()=>{_0x43ae6b(_0x373fb7=>{const _0x1f674b=new _0x593186(_0x373fb7);return _0x1f674b[_0x2f94(0x89)](_0x9cc21),_0x1f674b;}),(0x0,_0x290bfd['triggerHaptic'])(_0x46681e[_0x2f94(0x9)][_0x2f94(0xce)]),_0x343ab5[_0x2f94(0xa2)](_0x2f94(0xcf)+_0x2e2b62),_0xcda9c6[_0x2f94(0xd0)](_0x41c7ca,null);},0x12c);return()=>_0x32fcc4(_0x504fbd);}else _0x81714a['vdkQW'](_0x2c6008,_0x5736ed=>{const _0x11dbfb={'BPPKt':function(_0x4bc9b0,_0x3e54b6){return _0x81714a[_0x2f94(0xb9)](_0x4bc9b0,_0x3e54b6);},'FKkdo':_0x81714a[_0x2f94(0xd1)],'DQojE':function(_0x105ac8,_0x5f4c30){return _0x105ac8(_0x5f4c30);}},_0x514869=new Set(_0x5736ed);let _0x1757eb=![];return _0x4d36d6['forEach'](_0x3d60c2=>{const _0x1b1a3a={'SAXbd':function(_0x459bb0,_0x3fde62){return _0x459bb0(_0x3fde62);}};!_0x514869[_0x2f94(0x88)](_0x3d60c2)&&(_0x11dbfb[_0x2f94(0xd2)](_0x11dbfb[_0x2f94(0xd3)],_0x11dbfb['FKkdo'])?(_0x514869[_0x2f94(0x89)](_0x3d60c2),_0x1757eb=!![]):(_0x1b1a3a[_0x2f94(0xd4)](_0x2098ca,_0xb29f36=>({..._0xb29f36,[_0x3e1b85]:_0x2f94(0xbc)})),(0x0,_0xb44a80['triggerHaptic'])(_0x2726b8['HapticType']['ERROR'])));}),_0x1757eb&&(_0x81714a['wrpZT'](_0x2f94(0xd5),_0x81714a[_0x2f94(0xd6)])?console[_0x2f94(0xa2)](_0x81714a[_0x2f94(0xd7)],Array[_0x2f94(0xb2)](_0x514869)):_0x11dbfb['DQojE'](_0x414a4b,!![])),_0x1757eb?_0x514869:_0x5736ed;});}}else _0x5ac1d5[_0x2f94(0xbc)]('❌\x20[TOGGLE]\x20OAuth\x20failed\x20for\x20'+_0x54d5d1+_0x2f94(0xd8)),_0xcda9c6['NvqGu'](_0x3141c5,_0x3380a3=>({..._0x3380a3,[_0x101b28]:_0x2f94(0xbc)})),(0x0,_0x775367[_0x2f94(0xd9)])(_0x243aa9[_0x2f94(0x9)][_0x2f94(0xa)]);}catch(_0x35b5dd){console[_0x2f94(0xbc)](_0x2f94(0xda),_0x35b5dd);}};_0x299edd['QYXMF'](_0x440e27);},[]),(0x0,_react[_0x2f94(0x79)])(()=>{const _0x2e8e09={'VQrTK':function(_0x3b7ca1,_0x30267b){return _0x299edd[_0x2f94(0xdb)](_0x3b7ca1,_0x30267b);},'UvEbD':_0x299edd[_0x2f94(0xdc)],'bKDmG':function(_0x254824,_0x373171){return _0x299edd['weFlg'](_0x254824,_0x373171);},'aiamK':_0x299edd[_0x2f94(0xdd)],'BDZjs':function(_0x16582d,_0x33703a){return _0x299edd[_0x2f94(0xdb)](_0x16582d,_0x33703a);},'qekle':_0x2f94(0x5f),'FIvse':_0x299edd['COjwg'],'yJVoK':function(_0x3d4d18,_0x852809){return _0x299edd['rchrA'](_0x3d4d18,_0x852809);},'IMRik':'chatgpt','etFHQ':_0x299edd[_0x2f94(0xde)],'iBGdm':_0x299edd[_0x2f94(0xdf)],'abeBd':function(_0x26f8f3,_0x387428){return _0x26f8f3(_0x387428);},'bmUGL':_0x299edd[_0x2f94(0xe0)],'kMlyG':_0x299edd[_0x2f94(0xe1)],'RsbcS':_0x299edd[_0x2f94(0xe2)],'VleAh':function(_0x268fcd,_0x586b2c){return _0x268fcd&&_0x586b2c;},'kPeDk':function(_0x5def81,_0x54adb3){return _0x299edd[_0x2f94(0xe3)](_0x5def81,_0x54adb3);},'uyoYR':'OUApf','fIuvC':_0x299edd[_0x2f94(0xe4)],'NgGTW':function(_0x305058,_0x470094){return _0x299edd[_0x2f94(0xe5)](_0x305058,_0x470094);},'zcVVd':function(_0x727c17,_0x463918){return _0x727c17===_0x463918;},'ojPmr':function(_0x2c9290,_0x1ca2cf){return _0x2c9290===_0x1ca2cf;},'rAeez':function(_0xc84dbc,_0xc8de2b){return _0x299edd[_0x2f94(0xe5)](_0xc84dbc,_0xc8de2b);},'GoHHw':_0x299edd[_0x2f94(0xe6)],'HyRSD':_0x299edd[_0x2f94(0xe7)],'dykTJ':_0x299edd[_0x2f94(0xe8)],'prvcm':_0x2f94(0xe9),'jAKAm':function(_0x4b6df4,_0x3df546){return _0x4b6df4*_0x3df546;}},_0x2d554d=async()=>{const _0x1bd7e0={'QMBvY':_0x2e8e09[_0x2f94(0xea)]};try{if(_0x2e8e09['kMlyG']===_0x2e8e09[_0x2f94(0xeb)]){const _0x9db152=await _asyncStorage[_0x2f94(0x1)][_0x2f94(0xa4)](_0x2e8e09[_0x2f94(0xec)]);if(_0x2e8e09[_0x2f94(0xed)](_0x9db152,!_0x1e32b1)){_0x2e8e09['abeBd'](_0xa43608,_0x9db152);return;}if(_0x2e8e09['VleAh'](_0x57f9d4,!_0x1e32b1)){if(_0x2e8e09['kPeDk'](_0x2e8e09['uyoYR'],_0x2e8e09[_0x2f94(0xee)])){const _0x2cd038=_0x327a83===_0x348e54['id'],_0x418a24=_0x1f8653[_0x2f94(0x88)](_0x32dca3['id']),_0x38fbfe=_0x2e8e09[_0x2f94(0xef)](_0x22b345[_0x37c500['id']],_0x2e8e09[_0x2f94(0xf0)]);return _0x5a2261[_0x2f94(0x1)][_0x2f94(0xf1)](_0xb68df5[_0x2f94(0xf2)],{'key':_0x3eb285['id'],'style':[_0x3602af[_0x2f94(0xf3)],_0x2cd038&&_0x1b40c2[_0x2f94(0xf4)]],'onPress':()=>{(0x0,_0x437f5c[_0x2f94(0xd9)])(_0x27e905['HapticType'][_0x2f94(0x13)]),_0x229683(_0x14e6de['id']);},'activeOpacity':0.7},_0x38420d[_0x2f94(0x1)][_0x2f94(0xf1)](_0x228b68[_0x2f94(0xf5)],{'source':_0x5d6805[_0x2f94(0xf6)],'style':[_0x5371b5[_0x2f94(0xf7)],_0x2e8e09['bKDmG'](_0x45c653['id'],_0x2e8e09[_0x2f94(0xf8)])&&_0x53ce5d[_0x2f94(0xf9)],_0x2e8e09[_0x2f94(0xfa)](_0x426a49['id'],_0x2e8e09[_0x2f94(0xfb)])&&_0x4e6cd9['pinterestIcon'],_0x2e8e09['bKDmG'](_0x1e8bbd['id'],_0x2e8e09['FIvse'])&&_0x462bfc[_0x2f94(0xfc)],_0x2e8e09['yJVoK'](_0x3aeb0d['id'],_0x2e8e09[_0x2f94(0xfd)])&&_0x1f66ca[_0x2f94(0xfe)],_0x378e35['id']===_0x2e8e09[_0x2f94(0xff)]&&_0x320387[_0x2f94(0x100)],_0x2f99ba['id']==='grok'&&_0x780dd3[_0x2f94(0x101)]],'resizeMode':_0x2e8e09[_0x2f94(0x102)]}),_0x38fbfe&&_0x1f1eda['default'][_0x2f94(0xf1)](_0x3656cd[_0x2f94(0x103)],{'style':_0x359cc3[_0x2f94(0x104)]}),_0x418a24&&_0x2bf477['default']['createElement'](_0x261d56[_0x2f94(0x103)],{'style':_0x112b3f[_0x2f94(0x105)]}));}else{var _0x2f5089;const _0x3a3c89=(_0x2e8e09[_0x2f94(0xef)](_0x57f9d4,null)||_0x2e8e09[_0x2f94(0x106)](_0x57f9d4,void 0x0)||_0x2e8e09[_0x2f94(0x107)](_0x2f5089=_0x57f9d4[_0x2f94(0x108)],null)||_0x2e8e09[_0x2f94(0x109)](_0x2f5089,void 0x0)?void 0x0:_0x2f5089[_0x2f94(0x10a)]('@')[0x0])||(_0x2e8e09[_0x2f94(0x10b)](_0x57f9d4,null)||_0x2e8e09[_0x2f94(0x10c)](_0x57f9d4,void 0x0)?void 0x0:_0x57f9d4[_0x2f94(0x10d)])||_0x2f94(0x10e)+Math[_0x2f94(0x10f)](Math[_0x2f94(0x110)]()*0x2710);_0xa43608(_0x3a3c89),await _asyncStorage['default']['setItem'](_0x2f94(0x111),_0x3a3c89);return;}}if(!_0x1e32b1){if(_0x2e8e09[_0x2f94(0x109)](_0x2e8e09[_0x2f94(0x112)],_0x2e8e09[_0x2f94(0x112)])){const _0x362327=_0x2f94(0x113)+Math[_0x2f94(0x10f)](Math[_0x2f94(0x110)]()*0x2710);_0x2e8e09[_0x2f94(0x114)](_0xa43608,_0x362327),await _asyncStorage[_0x2f94(0x1)][_0x2f94(0x115)](_0x2e8e09[_0x2f94(0xec)],_0x362327);}else _0x49d9a5[_0x2f94(0xa2)]('✅\x20[TOGGLE]\x20Setting\x20WebView\x20state\x20-\x20showing\x20modal\x20for\x20'+_0x183859),_0x32efd9(_0x5cf879),_0x4ecaaa(!![]);}}else _0xa5c3[_0x2f94(0xbc)](_0x1bd7e0['QMBvY'],_0x19a1d5);}catch(_0x3a69df){if(_0x2e8e09['HyRSD']===_0x2e8e09[_0x2f94(0x116)])(0x0,_0x191fa8[_0x2f94(0xd9)])(_0x540ce9[_0x2f94(0x9)][_0x2f94(0x13)]),_0x2e8e09[_0x2f94(0x114)](_0x5d7e6e,_0x4ab633['id']);else{console[_0x2f94(0xbc)](_0x2e8e09[_0x2f94(0x117)],_0x3a69df);const _0x3242f4=_0x2f94(0x10e)+Math[_0x2f94(0x10f)](_0x2e8e09[_0x2f94(0x118)](Math[_0x2f94(0x110)](),0x2710));_0x2e8e09[_0x2f94(0x114)](_0xa43608,_0x3242f4);}}};_0x299edd[_0x2f94(0x119)](_0x2d554d);},[_0x57f9d4,_0x1e32b1]),(0x0,_react[_0x2f94(0x79)])(()=>{_0x299edd[_0x2f94(0x11a)]('hgGEO',_0x299edd[_0x2f94(0x11b)])?_0x1ff3c3():_0x1fb779&&_reactNative[_0x2f94(0x76)][_0x2f94(0x11c)](_reactNative['Animated']['sequence']([_reactNative[_0x2f94(0x76)][_0x2f94(0x11d)](_0x3bea1f,{'toValue':0x1,'duration':0x3e8,'useNativeDriver':!![]}),_reactNative['Animated'][_0x2f94(0x11d)](_0x3bea1f,{'toValue':0x0,'duration':0x3e8,'useNativeDriver':!![]})]))[_0x2f94(0x11e)]();},[_0x1fb779]);const _0x4bd0b2=(0x0,_react[_0x2f94(0x11f)])(_0x53d2bc=>{const _0x47acf9=_0x53d2bc[_0x2f94(0x120)][_0x2f94(0x121)]['x'],_0x53e268=_0x53d2bc[_0x2f94(0x120)][_0x2f94(0x122)][_0x2f94(0xc1)],_0x1cf203=_0x53d2bc[_0x2f94(0x120)][_0x2f94(0xc2)][_0x2f94(0xc1)];_0x20cae8['current']=_0x47acf9;const _0xd6ec12=_0x299edd[_0x2f94(0x8f)](_0x1cf203,_0x53e268),_0x14fc81=_0x299edd['DdmZN'](_0xd6ec12,0x0)?_0x299edd['PYILW'](_0x47acf9,_0xd6ec12):0x0;_0x299edd['cuSqX'](_0x342ed8,_0x14fc81),_0x299edd[_0x2f94(0x123)](_0x47acf9,0xa)&&_0x1fb779&&_0x299edd[_0x2f94(0x124)](_0x228383,![]);},[_0x1fb779]),_0x5961c7=[{'id':_0x299edd['oXZul'],'name':_0x299edd[_0x2f94(0x125)],'icon':(0x0,_connectedAccountsService['getPlatformIcon'])(_0x2f94(0x35)),'description':_0x2f94(0x126),'isChatPlatform':![]},{'id':_0x299edd[_0x2f94(0x127)],'name':_0x2f94(0x128),'icon':(0x0,_connectedAccountsService[_0x2f94(0x129)])(_0x299edd[_0x2f94(0x127)]),'description':_0x299edd['oaCHU'],'isChatPlatform':![]},{'id':_0x299edd[_0x2f94(0x12a)],'name':_0x2f94(0x12b),'icon':(0x0,_connectedAccountsService[_0x2f94(0x129)])(_0x2f94(0x5f)),'description':_0x2f94(0x12c),'isChatPlatform':![]},{'id':'linkedin','name':_0x299edd['mTvmb'],'icon':(0x0,_connectedAccountsService[_0x2f94(0x129)])(_0x299edd['YiFgA']),'description':_0x299edd['tWZSY'],'isChatPlatform':![]},{'id':_0x299edd[_0x2f94(0x12d)],'name':_0x299edd[_0x2f94(0x12e)],'icon':(0x0,_connectedAccountsService[_0x2f94(0x129)])(_0x299edd[_0x2f94(0x12d)]),'description':_0x299edd[_0x2f94(0x12f)],'isChatPlatform':![]},{'id':_0x299edd[_0x2f94(0x130)],'name':_0x299edd['ZsKLM'],'icon':(0x0,_connectedAccountsService['getPlatformIcon'])(_0x299edd['JgEUJ']),'description':_0x299edd[_0x2f94(0x131)],'isChatPlatform':!![]},{'id':_0x299edd[_0x2f94(0xde)],'name':_0x299edd[_0x2f94(0x132)],'icon':(0x0,_connectedAccountsService[_0x2f94(0x129)])(_0x299edd[_0x2f94(0xde)]),'description':'Use\x20your\x20Claude\x20conversations\x20to\x20enrich\x20your\x20model.','isChatPlatform':!![]},{'id':_0x299edd[_0x2f94(0x96)],'name':_0x299edd[_0x2f94(0x133)],'icon':(0x0,_connectedAccountsService[_0x2f94(0x129)])(_0x299edd[_0x2f94(0x96)]),'description':_0x299edd['NYuEd'],'isChatPlatform':!![]},{'id':_0x299edd[_0x2f94(0x97)],'name':'Grok','icon':(0x0,_connectedAccountsService[_0x2f94(0x129)])(_0x299edd[_0x2f94(0x97)]),'description':_0x299edd[_0x2f94(0x134)],'isChatPlatform':!![]}],_0x1cb543=_0x385500?_0x385500[_0x2f94(0xb5)](_0x1593aa=>_0x5961c7['find'](_0x4fbb0b=>_0x4fbb0b['id']===_0x1593aa))['filter'](_0x3435a0=>_0x3435a0!==undefined):_0x5961c7;(0x0,_react[_0x2f94(0x79)])(()=>{if(_0x299edd[_0x2f94(0x135)](_0x1cb543[_0x2f94(0x7d)],0x0)){const _0x5a0f32=_0x1cb543[0x0]['id'];(!_0x20db75||!_0x1cb543['find'](_0x195059=>_0x195059['id']===_0x20db75))&&(_0x299edd[_0x2f94(0x136)]!==_0x299edd[_0x2f94(0x136)]?(_0x3be3fe[_0x2f94(0xa8)](_0x2f94(0x34)),_0xd518a9[_0x2f94(0xa2)](_0x2f94(0x3e))):_0x299edd[_0x2f94(0x137)](_0xae6416,_0x5a0f32));}},[_0x385500,_0x1cb543[_0x2f94(0x7d)]]);const _0xf57fba=async(_0x1aa682,_0x507cca)=>{const _0x538dff={'Tuunx':function(_0x1742a6,_0x5486d0){return _0x299edd[_0x2f94(0x138)](_0x1742a6,_0x5486d0);},'dzlEl':function(_0x4d1f06,_0x488b3a){return _0x299edd['Sabet'](_0x4d1f06,_0x488b3a);},'mKCLf':function(_0x22182,_0x55311e){return _0x299edd[_0x2f94(0x139)](_0x22182,_0x55311e);},'TPqOA':function(_0x59cdf1,_0x4e596f){return _0x59cdf1+_0x4e596f;},'VfFEq':_0x299edd[_0x2f94(0x13a)],'TNkhK':_0x299edd[_0x2f94(0x13b)],'MNVhO':function(_0x55215e,_0x5eed8c){return _0x55215e>_0x5eed8c;},'IUpKc':_0x299edd[_0x2f94(0x13c)],'WcKos':_0x299edd['fYStI'],'pmAks':function(_0x23f40b,_0x434056){return _0x299edd[_0x2f94(0x13d)](_0x23f40b,_0x434056);}};(0x0,_haptics[_0x2f94(0xd9)])(_haptics[_0x2f94(0x9)][_0x2f94(0x13)]),console[_0x2f94(0xa2)]('🔄\x20[TOGGLE]\x20Platform\x20toggle:\x20'+_0x1aa682+_0x2f94(0x13e)+_0x507cca);try{if(_0x507cca){if(_0x299edd[_0x2f94(0x13f)]!==_0x299edd['bTTyj']){const _0x2a1eda=await _asyncStorage[_0x2f94(0x1)][_0x2f94(0xa4)](_0x299edd[_0x2f94(0xe2)]),_0x592a68=_0x299edd[_0x2f94(0x139)](_0x2a1eda,_0x1e32b1);console[_0x2f94(0xa2)](_0x2f94(0x140)+_0x2a1eda+'\x22,\x20state:\x20\x22'+_0x1e32b1+_0x2f94(0x141)+_0x592a68+'\x22');if(!_0x592a68||_0x299edd['nqsey'](_0x592a68[_0x2f94(0x142)](),'')){if(_0x299edd[_0x2f94(0x143)](_0x2f94(0x144),'SxkId')){console['error'](_0x299edd[_0x2f94(0x145)]);return;}else{const _0xd4e77=new _0x25c54d(_0x3e390f);_0xd4e77['add'](_0x325a85),_0x538dff[_0x2f94(0x146)](_0x45034e,_0xd4e77),_0x538dff[_0x2f94(0x146)](_0x3f7f40,_0x889198=>({..._0x889198,[_0x2a89c9]:_0x2f94(0xc7)})),(0x0,_0x1856cc[_0x2f94(0xd9)])(_0xe7443b['HapticType'][_0x2f94(0xce)]);}}const _0x2955a5=_0x5961c7[_0x2f94(0x147)](_0x1dbe40=>_0x1dbe40['id']===_0x1aa682),_0x400784=(_0x299edd['yTyjn'](_0x2955a5,null)||_0x299edd['yTyjn'](_0x2955a5,void 0x0)?void 0x0:_0x2955a5[_0x2f94(0x148)])||(0x0,_webviewScripts[_0x2f94(0x149)])(_0x1aa682);if(_0x400784){console[_0x2f94(0xa2)](_0x2f94(0x14a)+_0x1aa682+'\x20login\x20and\x20export...'),_0x299edd[_0x2f94(0x13d)](_0x33f041,_0x1aa682),_0x299edd[_0x2f94(0x137)](_0x46138d,_0x197c01=>({..._0x197c01,[_0x1aa682]:_0x2f94(0x14b)}));const _0x39dcca=(0x0,_webviewScripts[_0x2f94(0x14c)])(_0x1aa682);_0x39dcca?(console[_0x2f94(0xa2)](_0x2f94(0x14d)+_0x1aa682+_0x2f94(0x14e),_0x39dcca),_0x299edd[_0x2f94(0x14f)](_0x2dc5c5,_0x39dcca),_0x299edd[_0x2f94(0x124)](_0xb190ce,!![])):_0x299edd['mCAOi']('zVsSi',_0x2f94(0x150))?(console['error'](_0x2f94(0x151)+_0x1aa682),_0x299edd[_0x2f94(0x7f)](_0x46138d,_0xa8dae7=>({..._0xa8dae7,[_0x1aa682]:_0x2f94(0xbc)})),(0x0,_haptics[_0x2f94(0xd9)])(_haptics[_0x2f94(0x9)]['ERROR'])):_0x538dff['dzlEl'](_0x51c4c6,![]);return;}if((0x0,_webviewScripts[_0x2f94(0x152)])(_0x1aa682)){console[_0x2f94(0xa2)]('💼\x20[LINKEDIN]\x20Opening\x20WebView\x20for\x20LinkedIn\x20login...'),_0x33f041(_0x1aa682),_0x46138d(_0x202ae3=>({..._0x202ae3,[_0x1aa682]:_0x2f94(0x14b)}));const _0x5dee77='https://www.linkedin.com/login';console[_0x2f94(0xa2)]('🌐\x20[LINKEDIN]\x20Opening\x20LinkedIn\x20URL:',_0x5dee77),_0x299edd['HqGuy'](_0x2dc5c5,_0x5dee77),_0x299edd[_0x2f94(0x7f)](_0xb190ce,!![]);return;}if((0x0,_platformAuthService[_0x2f94(0x153)])(_0x1aa682)){if(_0x299edd['JdiOB'](_0x2f94(0x154),_0x299edd[_0x2f94(0x155)]))_0x538dff[_0x2f94(0x156)](_0x1e64d5,_0x9ab593)&&_0x38554d[_0x2f94(0xa2)](_0x2f94(0x157)+_0x4dfbf9+_0x2f94(0x158)+(_0x398311?_0x538dff['TPqOA'](_0x538dff[_0x2f94(0x159)],_0x3608be[_0x2f94(0x15a)](0x0,0x28))+_0x2f94(0x15b):_0x538dff[_0x2f94(0x15c)]));else{_0x299edd['SyTiY'](_0x33f041,_0x1aa682),_0x299edd[_0x2f94(0x15d)](_0x46138d,_0x4357ca=>({..._0x4357ca,[_0x1aa682]:_0x2f94(0x14b)}));const _0x2c10de=await(0x0,_platformAuthService[_0x2f94(0x15e)])(_0x1aa682,_0x592a68);if(_0x2c10de){const _0x3d3f3d=new Set(_0x40ab36);_0x3d3f3d[_0x2f94(0x89)](_0x1aa682),_0x299edd[_0x2f94(0x15f)](_0x2c6008,_0x3d3f3d),_0x299edd[_0x2f94(0x160)](_0x46138d,_0x437932=>({..._0x437932,[_0x1aa682]:_0x2f94(0xc7)})),(0x0,_haptics[_0x2f94(0xd9)])(_haptics[_0x2f94(0x9)][_0x2f94(0xce)]);}else _0x299edd[_0x2f94(0x161)](_0x2f94(0x41),_0x299edd[_0x2f94(0x162)])?(_0x46138d(_0x36ec6f=>({..._0x36ec6f,[_0x1aa682]:_0x2f94(0xbc)})),(0x0,_haptics[_0x2f94(0xd9)])(_haptics[_0x2f94(0x9)][_0x2f94(0xa)])):_0x2057c7[_0x2f94(0xbc)](_0x299edd[_0x2f94(0x163)],_0x40335f);}}else{if(_0x299edd[_0x2f94(0x164)](_0x2f94(0x165),_0x2f94(0x166))){console[_0x2f94(0xa2)]('🌐\x20[TOGGLE]\x20Starting\x20OAuth\x20flow\x20for\x20'+_0x1aa682+_0x2f94(0x42)),_0x33f041(_0x1aa682),_0x299edd[_0x2f94(0x167)](_0x46138d,_0x23b5af=>({..._0x23b5af,[_0x1aa682]:'connecting'}));const _0x1b5fe8=await(0x0,_platformAuthService[_0x2f94(0x168)])(_0x1aa682,_0x592a68);console[_0x2f94(0xa2)](_0x2f94(0x169)+_0x1aa682+':',_0x1b5fe8?_0x299edd[_0x2f94(0x16a)](_0x1b5fe8[_0x2f94(0x15a)](0x0,0x32),_0x299edd[_0x2f94(0x16b)]):_0x299edd[_0x2f94(0x13b)]);if(_0x1b5fe8){if(_0x299edd[_0x2f94(0x16c)](_0x299edd[_0x2f94(0x16d)],_0x2f94(0x43)))console[_0x2f94(0xa2)](_0x2f94(0x16e)+_0x1aa682),_0x299edd[_0x2f94(0x137)](_0x2dc5c5,_0x1b5fe8),_0x299edd[_0x2f94(0x16f)](_0xb190ce,!![]);else{if(_0x538dff[_0x2f94(0x170)](_0xcb3fe6[_0x2f94(0x7d)],0x0)){const _0x451c95=_0x5af2e5[0x0]['id'];(!_0x256265||!_0x1fd724['find'](_0x3c951c=>_0x3c951c['id']===_0x1c76f2))&&_0x51ca72(_0x451c95);}}}else console['error'](_0x2f94(0x171)+_0x1aa682+'\x20-\x20no\x20URL\x20returned'),_0x299edd[_0x2f94(0x172)](_0x46138d,_0x32dad8=>({..._0x32dad8,[_0x1aa682]:_0x2f94(0xbc)})),(0x0,_haptics[_0x2f94(0xd9)])(_haptics[_0x2f94(0x9)]['ERROR']);}else{const _0x28a967=_0x17e529[_0x2f94(0xa6)](_0x2d3c37);_0x28a967[_0x2f94(0xc7)]&&!_0x2563b7[_0x2f94(0xae)](_0x538dff['IUpKc'])&&(_0x7f8226[_0x2f94(0xa8)](_0x538dff[_0x2f94(0x173)]),_0x5a3eab['log'](_0x538dff[_0x2f94(0x174)]));}}}else _0x538dff[_0x2f94(0x175)](_0x52e125,![]);}else{await _0x299edd['QdwnP'](_0x393841,_0x1aa682);const _0x3b46ee=new Set(_0x40ab36);_0x3b46ee[_0x2f94(0x176)](_0x1aa682),_0x299edd[_0x2f94(0x16f)](_0x2c6008,_0x3b46ee),_0x46138d(_0x169480=>({..._0x169480,[_0x1aa682]:_0x2f94(0x177)})),(0x0,_haptics[_0x2f94(0xd9)])(_haptics['HapticType'][_0x2f94(0x13)]);try{if(_0x299edd['VpuYZ'](_0x299edd[_0x2f94(0x178)],_0x299edd[_0x2f94(0x179)]))!_0x8e2da1[_0x2f94(0x88)](_0x715a70)&&(_0x5f5dfa[_0x2f94(0x89)](_0x137761),_0x44ae79=!![]);else{const _0x2a81fa=await _asyncStorage[_0x2f94(0x1)][_0x2f94(0xa4)](_0x299edd[_0x2f94(0x17a)]);if(_0x2a81fa){if(_0x299edd[_0x2f94(0x17b)](_0x299edd[_0x2f94(0x17c)],_0x299edd[_0x2f94(0x17c)])){const _0xaab63a=JSON[_0x2f94(0xa6)](_0x2a81fa),_0x1fe75b=_0xaab63a[_0x2f94(0x17d)](_0x5309d1=>_0x5309d1[_0x2f94(0xad)]()!==_0x1aa682[_0x2f94(0xad)]());await _asyncStorage[_0x2f94(0x1)][_0x2f94(0x115)](_0x299edd[_0x2f94(0x17a)],JSON[_0x2f94(0x17e)](_0x1fe75b)),console[_0x2f94(0xa2)]('✅\x20[STORAGE]\x20Removed\x20'+_0x1aa682+_0x2f94(0x17f),_0x1fe75b);}else return _0x962b81['default']['createElement'](_0x354ff9['default'],{'visible':_0x1e1f58,'onAccept':_0x42fc0f,'onDecline':_0x3419da,'connectedPlatforms':_0x3d58de[_0x2f94(0xb2)](_0x292af5),'onConnectMore':_0x36088a,'loading':_0xf5c65d});}}}catch(_0x5b66d4){console['error'](_0x2f94(0x3c),_0x5b66d4);}await _asyncStorage[_0x2f94(0x1)]['removeItem'](_0x2f94(0xbd)+_0x1aa682);if(_0x299edd['mniqu'](_0x1aa682['toLowerCase'](),_0x299edd[_0x2f94(0x13c)])){if(_0x299edd[_0x2f94(0x180)](_0x299edd[_0x2f94(0x181)],_0x299edd[_0x2f94(0x182)]))await _asyncStorage[_0x2f94(0x1)][_0x2f94(0x183)](_0x299edd[_0x2f94(0x9c)]);else{_0x32ee71[_0x2f94(0xbc)](_0x2f94(0xe9),_0x108daa);const _0x2a067a=_0x2f94(0x10e)+_0x52b105['floor'](_0x119dcf[_0x2f94(0x110)]()*0x2710);_0x299edd['jLXcT'](_0x17d2ea,_0x2a067a);}}}}catch(_0x24b130){console[_0x2f94(0xbc)](_0x2f94(0x184)+_0x1aa682+':',_0x24b130),_0x46138d(_0x2c09b0=>({..._0x2c09b0,[_0x1aa682]:_0x2f94(0xbc)})),(0x0,_haptics[_0x2f94(0xd9)])(_haptics[_0x2f94(0x9)][_0x2f94(0xa)]);}},_0x310403=async()=>{(0x0,_haptics['triggerHaptic'])(_haptics[_0x2f94(0x9)][_0x2f94(0x13)]),_0x41645e(!![]);try{_0x299edd[_0x2f94(0x185)](_0x299edd[_0x2f94(0x186)],_0x2f94(0x187))?_0x299edd[_0x2f94(0x188)](_0x53bb04,_0xa2a06c):_0x299edd[_0x2f94(0x138)](_0x3595ac,!![]);}finally{_0x299edd['lVivd'](_0x41645e,![]);}},_0x376faa=()=>{(0x0,_haptics[_0x2f94(0xd9)])(_haptics[_0x2f94(0x9)]['BUTTON_PRESS']),_0x3ec1bc&&_0x299edd[_0x2f94(0x189)](_0x3ec1bc);},_0x1e0049=async()=>{(0x0,_haptics[_0x2f94(0xd9)])(_haptics[_0x2f94(0x9)][_0x2f94(0x13)]),_0x299edd[_0x2f94(0x18a)](_0x1ab4ec,!![]),await new Promise(_0x4d217e=>setTimeout(_0x4d217e,0x32));try{_0x3c378d?await _0x3c378d(_0x187716):await _0x299edd[_0x2f94(0x167)](_0x25b0bc,Array[_0x2f94(0xb2)](_0x40ab36));}finally{if(_0x299edd[_0x2f94(0x18b)]===_0x299edd[_0x2f94(0x18c)])return _0x530a8b[_0x2f94(0x1)][_0x2f94(0xf1)](_0xb7f0c3[_0x2f94(0x1)],{'visible':_0x44a648,'onComplete':_0x4c7aa7});else _0x299edd[_0x2f94(0x18a)](_0x1ab4ec,![]);}},_0x1d9c1c=()=>{(0x0,_haptics[_0x2f94(0xd9)])(_haptics[_0x2f94(0x9)][_0x2f94(0x13)]),_0x299edd[_0x2f94(0x18d)](_0x226d3d,![]);},_0x5a6474=async _0x459f7b=>{const _0x1cbe89={'KCrHO':function(_0x4cb4d8,_0x45cbe2){return _0x299edd[_0x2f94(0x18e)](_0x4cb4d8,_0x45cbe2);},'hFveI':function(_0x48200b,_0x4ee879){return _0x299edd[_0x2f94(0x16c)](_0x48200b,_0x4ee879);},'HJdah':_0x299edd[_0x2f94(0x18f)],'iTKeh':function(_0x301461,_0x595944){return _0x299edd[_0x2f94(0x190)](_0x301461,_0x595944);},'XRItB':_0x299edd[_0x2f94(0x191)],'GiGZj':function(_0x59f99b,_0x318512){return _0x59f99b!==_0x318512;},'madwF':_0x299edd[_0x2f94(0x192)]};(0x0,_haptics['triggerHaptic'])(_haptics['HapticType'][_0x2f94(0x13)]),_0x299edd[_0x2f94(0x14f)](_0x2080b1,_0x459f7b);try{if(_0x299edd[_0x2f94(0x193)](_0x2f94(0x194),_0x299edd[_0x2f94(0x195)])){if(_0x1cbe89[_0x2f94(0x196)](!_0x2a0d51,_0x14b729)&&_0x52f20d[_0x2f94(0x2)])return _0x54933a;var _0x4ad6a9,_0x3a5026,_0x3bbf05={'__proto__':null,'default':_0x169ccf};if(_0x1cbe89[_0x2f94(0x197)](null,_0x15b6c7)||_0x1cbe89['HJdah']!=typeof _0xccf408&&_0x1cbe89['iTKeh'](_0x1cbe89[_0x2f94(0x198)],typeof _0x14cc8f))return _0x3bbf05;if(_0x4ad6a9=_0x3eb44d?_0x3c9972:_0x3506c2){if(_0x4ad6a9[_0x2f94(0x88)](_0x3c1f69))return _0x4ad6a9[_0x2f94(0x11)](_0x4b098d);_0x4ad6a9[_0x2f94(0x12)](_0x56cfc6,_0x3bbf05);}for(const _0x569f17 in _0x3f549c)_0x1cbe89[_0x2f94(0x199)](_0x1cbe89['madwF'],_0x569f17)&&{}[_0x2f94(0x19a)][_0x2f94(0x19b)](_0x2d8684,_0x569f17)&&((_0x3a5026=(_0x4ad6a9=_0x16fc1c[_0x2f94(0x0)])&&_0x2d8e86['getOwnPropertyDescriptor'](_0x345cca,_0x569f17))&&(_0x3a5026[_0x2f94(0x11)]||_0x3a5026[_0x2f94(0x12)])?_0x4ad6a9(_0x3bbf05,_0x569f17,_0x3a5026):_0x3bbf05[_0x569f17]=_0x5c8871[_0x569f17]);return _0x3bbf05;}else await _asyncStorage[_0x2f94(0x1)][_0x2f94(0x115)](_0x299edd['ntKbN'],_0x459f7b),console[_0x2f94(0xa2)](_0x2f94(0x19c)+_0x459f7b);}catch(_0x12e167){console[_0x2f94(0xbc)](_0x299edd['xpgvs'],_0x12e167);}if(_0x58fb3c){if(_0x2f94(0x19d)!==_0x2f94(0x19e))_0x58fb3c(_0x459f7b);else return _0x440a3d[_0x2f94(0xa2)]('✅\x20[WEBVIEW]\x20Rendering\x20OAuthWebView\x20for\x20'+_0x513f79+_0x2f94(0x19f)+_0x2c3f86[_0x2f94(0x15a)](0x0,0x3c)+_0x2f94(0x42)),_0x4fa9c8[_0x2f94(0x1)][_0x2f94(0xf1)](_0x3a3fa6[_0x2f94(0x1a0)],{'url':_0x1dc127,'platform':_0x36fe71,'onClose':_0x3cec0e,'onSuccess':_0x174f86,'onComplete':_0x3a9df6,'username':_0x56dec8});}},_0x2a9e37=()=>{if(_0x299edd[_0x2f94(0x1a1)](_0x299edd[_0x2f94(0x1a2)],_0x2f94(0x4e))){const Linking=_0x299edd[_0x2f94(0x1a3)](__ONAIROS_REQ_FUNC__,0x10)[_0x2f94(0x85)];Linking[_0x2f94(0x86)](_0x299edd[_0x2f94(0x1a4)]);}else _0x299edd['Dcbrj'](_0x549148,![]),_0x299edd[_0x2f94(0x13d)](_0x6e6735,!![]);},_0x3faf89=async _0x20ec93=>{if(_0x299edd[_0x2f94(0x1a5)](_0x299edd[_0x2f94(0x1a6)],_0x299edd[_0x2f94(0x1a6)]))_0x299edd[_0x2f94(0x1a7)](_0x43686c,_0x20ec93),(0x0,_pinStorageUtils[_0x2f94(0x1a8)])(_0x20ec93),_0x299edd[_0x2f94(0x1a9)](_0x3595ac,![]),_0x299edd[_0x2f94(0x1aa)](_0x4e174c,!![]);else{const _0x2f7fb2={'nILVV':function(_0x433e8a,_0x3268b2){return _0x299edd['pVtLF'](_0x433e8a,_0x3268b2);}};if(_0x299edd[_0x2f94(0x18e)](_0x11ff66,!_0x1369eb)){const _0x491ce2=_0x299edd[_0x2f94(0x1ab)](_0x43e8d8,()=>{_0x19c43b(_0x4ae13b=>{const _0x13c540=new _0x452e72(_0x4ae13b);return _0x13c540['add'](_0x5ba89b),_0x13c540;}),(0x0,_0x14f968['triggerHaptic'])(_0x3da78b[_0x2f94(0x9)][_0x2f94(0xce)]),_0x354256['log']('✅\x20[PERSONA]\x20Applied\x20pending\x20connection:\x20'+_0x2a2551),_0x2f7fb2[_0x2f94(0x1ac)](_0x2e7126,null);},0x12c);return()=>_0x33adb9(_0x491ce2);}}},_0x1bd9ba=()=>{_0x299edd[_0x2f94(0x1ad)](_0x4e174c,![]),_0x299edd[_0x2f94(0x7f)](_0x226d3d,!![]);},_0x6677d2=async _0xc69470=>{const _0x1cda04={'uypLi':_0x299edd[_0x2f94(0x1ae)],'qPwQG':function(_0x775db7,_0x5a5594){return _0x299edd['guWum'](_0x775db7,_0x5a5594);},'IIkLV':function(_0x5969b6,_0x21d2e8){return _0x299edd[_0x2f94(0x190)](_0x5969b6,_0x21d2e8);},'wqnWg':function(_0xe5282c,_0x2cdb08){return _0xe5282c!==_0x2cdb08;},'AuDbP':_0x299edd['ztorZ'],'wSqgC':function(_0x530808,_0x579600,_0x47f696,_0xe527ae){return _0x299edd[_0x2f94(0x1af)](_0x530808,_0x579600,_0x47f696,_0xe527ae);},'PwxPb':function(_0x3092c7,_0x45150c){return _0x299edd[_0x2f94(0x1b0)](_0x3092c7,_0x45150c);}};if(_0x5b7a65){if(_0x299edd[_0x2f94(0x1b1)](_0xc69470,_0x299edd[_0x2f94(0x1b2)])||_0x299edd[_0x2f94(0x1b3)](_0xc69470,_0x2f94(0xbc))){_0x299edd[_0x2f94(0x1b4)](_0x367393,_0x5b7a65),_0x299edd[_0x2f94(0x1b5)](_0x46138d,_0x419c9e=>({..._0x419c9e,[_0x5b7a65]:_0x2f94(0xc7)}));try{if(_0x299edd[_0x2f94(0x8c)](_0x2f94(0x52),_0x299edd[_0x2f94(0x1b6)]))_0x170e27&&_0x299edd[_0x2f94(0x1b7)](_0x306c87,_0x4ef7ad);else{const _0x37d016=await _asyncStorage[_0x2f94(0x1)][_0x2f94(0xa4)](_0x2f94(0xa5)),_0x4cbec8=_0x37d016?JSON['parse'](_0x37d016):[];if(!_0x4cbec8['includes'](_0x5b7a65[_0x2f94(0xad)]())){if(_0x299edd[_0x2f94(0x8c)](_0x299edd[_0x2f94(0x1b8)],_0x299edd[_0x2f94(0x1b8)])){if(_0x126cf7[_0x2f94(0x88)](_0x4d954f))return _0x29cf5e[_0x2f94(0x11)](_0x4b6529);_0x3028c2[_0x2f94(0x12)](_0x45d163,_0x1f93e4);}else _0x4cbec8[_0x2f94(0xa8)](_0x5b7a65['toLowerCase']()),await _asyncStorage[_0x2f94(0x1)][_0x2f94(0x115)](_0x299edd[_0x2f94(0x17a)],JSON['stringify'](_0x4cbec8)),console['log'](_0x2f94(0x1b9)+_0x5b7a65+_0x2f94(0x1ba),_0x4cbec8);}}}catch(_0x42d9c9){_0x299edd['crRAG'](_0x299edd[_0x2f94(0x1bb)],_0x299edd[_0x2f94(0x1bb)])?console[_0x2f94(0xbc)](_0x299edd[_0x2f94(0x1ae)],_0x42d9c9):(_0x33064f['push'](..._0x4aecde),_0x34a7ec[_0x2f94(0xa2)](_0x2f94(0x57),_0x2dd187));}(0x0,_webviewScripts[_0x2f94(0x149)])(_0x5b7a65)&&(_0x2f94(0x1bc)!=='syPHU'?(await _asyncStorage['default'][_0x2f94(0x115)](_0x2f94(0xbd)+_0x5b7a65,JSON['stringify']({'connected':!![],'platform':_0x5b7a65,'connectedAt':new Date()['toISOString']()})),console['log'](_0x2f94(0x1bd)+_0x5b7a65+'\x20connection\x20stored\x20locally')):_0x51555['error'](_0x1cda04[_0x2f94(0x1be)],_0xd021d8));if(_0x5b7a65['toLowerCase']()==='linkedin'){if(_0x299edd['PiMxs']!==_0x299edd[_0x2f94(0x1bf)])await _asyncStorage[_0x2f94(0x1)][_0x2f94(0x115)]('@onairos:linkedin_connected',JSON[_0x2f94(0x17e)]({'connected':!![],'platform':_0x299edd[_0x2f94(0x13c)],'connectedAt':new Date()[_0x2f94(0x1c0)]()})),console['log']('✅\x20[LINKEDIN]\x20Connection\x20stored\x20locally');else{const _0x3551f0={'oJuEx':function(_0x5eebc1,_0x3064da){return _0x1cda04[_0x2f94(0x1c1)](_0x5eebc1,_0x3064da);},'CSnwh':function(_0x2ffe20,_0x36b6c2){return _0x1cda04[_0x2f94(0x1c2)](_0x2ffe20,_0x36b6c2);},'sKqSn':function(_0x527250,_0x1b94d4){return _0x1cda04[_0x2f94(0x1c3)](_0x527250,_0x1b94d4);},'Aabuh':_0x1cda04[_0x2f94(0x1c4)],'EFdlL':function(_0x460de4,_0x907267,_0x2dce4d,_0x31ca27){return _0x1cda04['wSqgC'](_0x460de4,_0x907267,_0x2dce4d,_0x31ca27);}};if(_0x1cda04[_0x2f94(0x1c5)]('function',typeof _0x20e7cd))var _0x4c1021=new _0x689030(),_0x11a5fc=new _0x4719cb();return(_0x28d1dd=function(_0x56ab4b,_0x3ccb2b){if(_0x3551f0[_0x2f94(0x1c6)](!_0x3ccb2b,_0x56ab4b)&&_0x56ab4b[_0x2f94(0x2)])return _0x56ab4b;var _0x441a97,_0x42488b,_0x4be8c6={'__proto__':null,'default':_0x56ab4b};if(null===_0x56ab4b||_0x3551f0[_0x2f94(0x1c7)](_0x2f94(0x4),typeof _0x56ab4b)&&_0x3551f0[_0x2f94(0x1c7)](_0x2f94(0x5),typeof _0x56ab4b))return _0x4be8c6;if(_0x441a97=_0x3ccb2b?_0x11a5fc:_0x4c1021){if(_0x441a97[_0x2f94(0x88)](_0x56ab4b))return _0x441a97['get'](_0x56ab4b);_0x441a97[_0x2f94(0x12)](_0x56ab4b,_0x4be8c6);}for(const _0x2bb687 in _0x56ab4b)_0x3551f0['sKqSn'](_0x3551f0[_0x2f94(0x1c8)],_0x2bb687)&&{}[_0x2f94(0x19a)][_0x2f94(0x19b)](_0x56ab4b,_0x2bb687)&&((_0x42488b=(_0x441a97=_0x112b60[_0x2f94(0x0)])&&_0x419d1e[_0x2f94(0x1c9)](_0x56ab4b,_0x2bb687))&&(_0x42488b['get']||_0x42488b['set'])?_0x3551f0['EFdlL'](_0x441a97,_0x4be8c6,_0x2bb687,_0x42488b):_0x4be8c6[_0x2bb687]=_0x56ab4b[_0x2bb687]);return _0x4be8c6;})(_0x4aa7da,_0x5e6aed);}}}else _0x299edd[_0x2f94(0x1ca)](_0x46138d,_0x3694e3=>({..._0x3694e3,[_0x5b7a65]:_0x2f94(0xbc)})),(0x0,_haptics[_0x2f94(0xd9)])(_haptics['HapticType'][_0x2f94(0xa)]);}_0x299edd[_0x2f94(0x1cb)](_0xb190ce,![]),_0x299edd[_0x2f94(0x1cc)](_0x2dc5c5,''),_0x33f041('');};(0x0,_react[_0x2f94(0x79)])(()=>{const _0x43b31f={'gmRuB':function(_0x334360,_0x33de8b){return _0x299edd[_0x2f94(0x18d)](_0x334360,_0x33de8b);},'dmblM':function(_0x3a3830,_0x239fad){return _0x299edd['mCAOi'](_0x3a3830,_0x239fad);},'CzPEP':_0x299edd[_0x2f94(0x1cd)]};if(_0x299edd[_0x2f94(0x1ce)](_0x2f94(0x56),_0x299edd[_0x2f94(0x1cf)])){if(_0x2f08b5&&!_0x2bfc2f){const _0x41506e=setTimeout(()=>{const _0x393913={'XCcxg':function(_0x545657,_0x8069f3){return _0x43b31f['gmRuB'](_0x545657,_0x8069f3);}};if(_0x43b31f[_0x2f94(0x1d0)](_0x2f94(0x1d1),_0x43b31f['CzPEP']))_0x2c6008(_0x22169e=>{const _0x57d09b=new Set(_0x22169e);return _0x57d09b[_0x2f94(0x89)](_0x2f08b5),_0x57d09b;}),(0x0,_haptics['triggerHaptic'])(_haptics[_0x2f94(0x9)][_0x2f94(0xce)]),console[_0x2f94(0xa2)](_0x2f94(0xcf)+_0x2f08b5),_0x43b31f[_0x2f94(0x1d2)](_0x367393,null);else{_0x393913[_0x2f94(0x1d3)](_0x38b076,_0x4b1043);return;}},0x12c);return()=>clearTimeout(_0x41506e);}}else _0x299edd[_0x2f94(0x1d4)](_0x469338,_0x8adc80=>{const _0x2b8012=new _0x525c4b(_0x8adc80);return _0x2b8012['add'](_0xefcb53),_0x2b8012;}),(0x0,_0x21b5ce[_0x2f94(0xd9)])(_0x5df190[_0x2f94(0x9)]['SUCCESS']),_0x446680['log'](_0x2f94(0xcf)+_0x1a5e05),_0x299edd[_0x2f94(0x7f)](_0x2c6695,null);},[_0x2f08b5,_0x2bfc2f]);const _0x23e1d6=()=>{const _0x49ea4f={'RsTsC':_0x299edd[_0x2f94(0x1d5)]};if('PiKMr'===_0x299edd[_0x2f94(0x1d6)]){const _0xb5e99c=_0xa0b1fa['parse'](_0x3d66b1);_0x26cd41['isArray'](_0xb5e99c)&&(_0x327222[_0x2f94(0xa8)](..._0xb5e99c),_0xadc40c[_0x2f94(0xa2)](_0x49ea4f[_0x2f94(0x1d7)],_0xb5e99c));}else _0x299edd[_0x2f94(0x1d8)](_0xb190ce,![]),_0x2dc5c5(''),_0x5b7a65&&(_0x299edd['ZRUda'](_0x299edd[_0x2f94(0x1d9)],_0x299edd[_0x2f94(0x1da)])?(_0x44748b['push'](_0x567f98),_0x49cce5['log'](_0x2f94(0x1db)+_0x46e6f9)):_0x299edd[_0x2f94(0x15d)](_0x46138d,_0x38a333=>({..._0x38a333,[_0x5b7a65]:'disconnected'}))),_0x299edd[_0x2f94(0x1dc)](_0x33f041,'');},_0x10648c=()=>{_0x3595ac(![]);},_0x52d800=()=>{_0x299edd[_0x2f94(0x1dd)](_0x299edd[_0x2f94(0x1de)],_0x2f94(0x1df))?_0x24295f&&_0x299edd[_0x2f94(0x1e0)](_0x24295f):(_0x200781[_0x2f94(0x89)](_0x50a2ce),_0x5d1ba1=!![]);},_0x3bbe3d=()=>{const _0xb62682={'xsaXW':function(_0x4a548c){return _0x299edd[_0x2f94(0x1e1)](_0x4a548c);}};_reactNative[_0x2f94(0x76)]['timing'](_0x9c33d5,{'toValue':0x1,'duration':0xfa0,'useNativeDriver':![]})[_0x2f94(0x11e)]();const _0x1cc489=_0x299edd[_0x2f94(0x1e2)](setTimeout,()=>{(0x0,_haptics[_0x2f94(0xd9)])(_haptics[_0x2f94(0x9)][_0x2f94(0xce)]),_reactNative[_0x2f94(0x1e3)][_0x2f94(0x1e4)]([0x0,0x64,0x32,0x64]),_0xb62682[_0x2f94(0x1e5)](_0x52d800);},0xfa0);_0x299edd['BBllX'](_0x5ac502,_0x1cc489);},_0x2127cf=()=>{const _0x14a41d={'mskUy':function(_0x1814df,_0x513595){return _0x299edd[_0x2f94(0x1e6)](_0x1814df,_0x513595);},'YgyEe':function(_0x2add81,_0x3c631d){return _0x2add81===_0x3c631d;}};if(_0x299edd['txMOy'](_0x2f94(0x1e7),_0x299edd[_0x2f94(0x1e8)]))_0x419f8a&&_0x120cc9['Animated'][_0x2f94(0x11c)](_0x58c900[_0x2f94(0x76)][_0x2f94(0x1e9)]([_0x59162f['Animated']['timing'](_0x4458d9,{'toValue':0x1,'duration':0x3e8,'useNativeDriver':!![]}),_0x18df8b[_0x2f94(0x76)]['timing'](_0x10a50c,{'toValue':0x0,'duration':0x3e8,'useNativeDriver':!![]})]))[_0x2f94(0x11e)]();else{if(_0xede2a9){if(_0x299edd['oDKRD'](_0x299edd[_0x2f94(0x1ea)],_0x299edd['vzNwX']))_0x299edd['MbMiI'](clearTimeout,_0xede2a9),_0x299edd[_0x2f94(0x1eb)](_0x5ac502,null);else{var _0x25d513;const _0x42bb89=_0x14a41d['mskUy'](_0x25d513=_0xef42da[_0x2f94(0xac)],null)||_0x14a41d[_0x2f94(0x1ec)](_0x25d513,void 0x0)?void 0x0:_0x25d513['toLowerCase']();_0x42bb89&&!_0x5c302c[_0x2f94(0xae)](_0x42bb89)&&_0x171212['push'](_0x42bb89);}}_0x9c33d5[_0x2f94(0x1ed)](0x0),_reactNative[_0x2f94(0x76)][_0x2f94(0x11d)](_0x9c33d5,{'toValue':0x0,'duration':0xc8,'useNativeDriver':![]})[_0x2f94(0x11e)]();}};(0x0,_react[_0x2f94(0x79)])(()=>{return()=>{_0xede2a9&&_0x299edd[_0x2f94(0x138)](clearTimeout,_0xede2a9);};},[_0xede2a9]),(0x0,_react['useEffect'])(()=>{(_0x2bfc2f||_0x85632d)&&console[_0x2f94(0xa2)](_0x2f94(0x157)+_0x2bfc2f+_0x2f94(0x158)+(_0x85632d?_0x299edd[_0x2f94(0x16a)](_0x2f94(0x3d),_0x85632d[_0x2f94(0x15a)](0x0,0x28))+_0x299edd[_0x2f94(0x1ee)]:_0x299edd['vpaWg']));},[_0x2bfc2f,_0x85632d]);const _0x30e749=Math[_0x2f94(0x1ef)](0x5,Math[_0x2f94(0x1f0)](0x1,_0x299edd[_0x2f94(0x1f1)](_0x40ab36[_0x2f94(0x8a)],0x1))),_0x301274=0x78,_0x2d0f9d=0x46;if(_0x5b1f2d)return _react['default']['createElement'](_PinCreationScreen[_0x2f94(0x1)],{'visible':_0x5b1f2d,'onComplete':_0x3faf89,'onBack':_0x10648c});if(_0x3cd3e9)return _react[_0x2f94(0x1)][_0x2f94(0xf1)](_PersonaLoadingScreen[_0x2f94(0x1)],{'visible':_0x3cd3e9,'onComplete':_0x1bd9ba});if(_0x299edd['guWum'](_0x2bfc2f,_0x85632d))return console[_0x2f94(0xa2)](_0x2f94(0x1f2)+_0x5b7a65+_0x2f94(0x19f)+_0x85632d[_0x2f94(0x15a)](0x0,0x3c)+'...'),_react[_0x2f94(0x1)][_0x2f94(0xf1)](_OAuthWebView[_0x2f94(0x1a0)],{'url':_0x85632d,'platform':_0x5b7a65,'onClose':_0x23e1d6,'onSuccess':_0x6677d2,'onComplete':_0x23e1d6,'username':_0x1e32b1});const _0x48d259=()=>{if(_0x299edd[_0x2f94(0x1f3)]!==_0x2f94(0x1f4))(0x0,_haptics[_0x2f94(0xd9)])(_haptics['HapticType']['BUTTON_PRESS']),_0x299edd[_0x2f94(0x1f5)](_0x226d3d,![]);else{const _0x4f1004=_0x5bc419[_0x2f94(0xa6)](_0xd6dcf6);_0x4f1004[_0x2f94(0xc7)]&&!_0x29f5cf['includes'](_0x250045)&&(_0x251f1b['push'](_0x50d551),_0xfa9406[_0x2f94(0xa2)](_0x2f94(0x1db)+_0x362427));}};if(_0x40ff47){if(_0x299edd[_0x2f94(0x1f6)](_0x299edd['KLpzK'],_0x299edd[_0x2f94(0x1f7)]))return _react[_0x2f94(0x1)][_0x2f94(0xf1)](_PersonalizationConsentScreen[_0x2f94(0x1)],{'visible':_0x40ff47,'onAccept':_0x1e0049,'onDecline':_0x1d9c1c,'connectedPlatforms':Array['from'](_0x40ab36),'onConnectMore':_0x48d259,'loading':_0x33f8aa});else _0x299edd[_0x2f94(0x1cb)](_0x1a0053,![]),_0x299edd[_0x2f94(0x15f)](_0x4da392,''),_0x388d31&&_0x299edd['nSOPn'](_0x2394d5,_0x2d5dbb=>({..._0x2d5dbb,[_0xe6375b]:_0x2f94(0x177)})),_0x299edd[_0x2f94(0x1f8)](_0x107e93,'');}return _react['default'][_0x2f94(0xf1)](_reactNative[_0x2f94(0x103)],{'style':styles[_0x2f94(0x1f9)]},_react['default'][_0x2f94(0xf1)](_reactNative['ScrollView'],{'style':styles['scrollContent'],'showsVerticalScrollIndicator':![],'bounces':!![]},_0x454761&&_react[_0x2f94(0x1)]['createElement'](_reactNative[_0x2f94(0xf2)],{'style':styles[_0x2f94(0x1fa)],'onPress':_0x454761,'activeOpacity':0.7},_react[_0x2f94(0x1)][_0x2f94(0xf1)](_reactNative['Text'],{'style':styles['backButtonText']},'‹')),_react['default']['createElement'](_reactNative['View'],{'style':styles[_0x2f94(0x1fb)]},_react[_0x2f94(0x1)]['createElement'](_reactNative[_0x2f94(0x1fc)],{'style':styles['title']},_0x2f94(0x1fd)),_react[_0x2f94(0x1)][_0x2f94(0xf1)](_reactNative[_0x2f94(0x1fc)],{'style':styles[_0x2f94(0x1fe)]},_0x299edd[_0x2f94(0x1ff)])),_react[_0x2f94(0x1)]['createElement'](_reactNative['View'],{'style':styles['personaContainer']},_react[_0x2f94(0x1)][_0x2f94(0xf1)](_PersonaImage[_0x2f94(0x1)],{'level':_0x30e749,'style':styles[_0x2f94(0x200)]}),_react['default'][_0x2f94(0xf1)](_reactNative[_0x2f94(0x201)],{'ref':_0xc3216,'horizontal':!![],'style':[styles['platformIconsOverlay'],{'bottom':_0x301274}],'contentContainerStyle':[styles[_0x2f94(0x202)],_0x299edd[_0x2f94(0x203)](_0x1cb543['length'],0x4)&&styles['platformIconsCentered']],'showsHorizontalScrollIndicator':![],'onScroll':_0x4bd0b2,'scrollEventThrottle':0x10,'decelerationRate':_0x299edd[_0x2f94(0x204)],'scrollEnabled':_0x1cb543[_0x2f94(0x7d)]>0x4},_0x1cb543[_0x2f94(0xb5)](_0x35fb82=>{const _0x191399={'kYHCH':function(_0x5702f9,_0xb1ab7f){return _0x299edd[_0x2f94(0x205)](_0x5702f9,_0xb1ab7f);},'lEyed':_0x299edd[_0x2f94(0x206)],'nhQJZ':'WFgsC','dXjSz':function(_0x56b9aa,_0x553969){return _0x299edd[_0x2f94(0x1a9)](_0x56b9aa,_0x553969);}},_0x5dd331=_0x299edd[_0x2f94(0x205)](_0x20db75,_0x35fb82['id']),_0x3403fb=_0x40ab36['has'](_0x35fb82['id']),_0x3303ec=_0x299edd['VpuYZ'](_0x50ba36[_0x35fb82['id']],_0x299edd[_0x2f94(0xdc)]);return _react['default']['createElement'](_reactNative[_0x2f94(0xf2)],{'key':_0x35fb82['id'],'style':[styles['platformIconButton'],_0x5dd331&&styles[_0x2f94(0xf4)]],'onPress':()=>{_0x191399[_0x2f94(0x207)](_0x191399[_0x2f94(0x208)],_0x191399[_0x2f94(0x209)])?_0x12062a(![]):((0x0,_haptics['triggerHaptic'])(_haptics[_0x2f94(0x9)][_0x2f94(0x13)]),_0x191399[_0x2f94(0x20a)](_0xae6416,_0x35fb82['id']));},'activeOpacity':0.7},_react['default'][_0x2f94(0xf1)](_reactNative[_0x2f94(0xf5)],{'source':_0x35fb82[_0x2f94(0xf6)],'style':[styles['platformIcon'],_0x299edd[_0x2f94(0x1ce)](_0x35fb82['id'],_0x299edd[_0x2f94(0xdd)])&&styles[_0x2f94(0xf9)],_0x299edd['yTyjn'](_0x35fb82['id'],_0x299edd[_0x2f94(0x12a)])&&styles[_0x2f94(0x20b)],_0x299edd[_0x2f94(0x20c)](_0x35fb82['id'],_0x299edd['COjwg'])&&styles[_0x2f94(0xfc)],_0x299edd[_0x2f94(0x20d)](_0x35fb82['id'],_0x299edd['JgEUJ'])&&styles[_0x2f94(0xfe)],_0x299edd[_0x2f94(0x161)](_0x35fb82['id'],_0x299edd[_0x2f94(0xde)])&&styles['claudeIcon'],_0x299edd[_0x2f94(0x20e)](_0x35fb82['id'],'grok')&&styles[_0x2f94(0x101)]],'resizeMode':_0x299edd[_0x2f94(0xdf)]}),_0x3303ec&&_react['default'][_0x2f94(0xf1)](_reactNative[_0x2f94(0x103)],{'style':styles['connectingDot']}),_0x3403fb&&_react['default']['createElement'](_reactNative[_0x2f94(0x103)],{'style':styles[_0x2f94(0x105)]}));})),_0x299edd['gbiLe'](_0x1cb543['length'],0x4)&&_react[_0x2f94(0x1)]['createElement'](_reactNative[_0x2f94(0x103)],{'style':[styles['pageIndicatorContainer'],{'bottom':_0x2d0f9d}]},_react[_0x2f94(0x1)][_0x2f94(0xf1)](_reactNative[_0x2f94(0x103)],{'style':styles[_0x2f94(0x20f)]},_react[_0x2f94(0x1)][_0x2f94(0xf1)](_reactNative[_0x2f94(0x103)],{'style':[styles[_0x2f94(0x210)],{'left':_0x299edd[_0x2f94(0x211)](_0x2e6f12,0x38)}]}))),_0x1fb779&&_0x299edd[_0x2f94(0x212)](_0x1cb543[_0x2f94(0x7d)],0x4)&&_react['default'][_0x2f94(0xf1)](_reactNative['Animated'][_0x2f94(0x103)],{'style':[styles[_0x2f94(0x213)],{'transform':[{'translateX':_0x3bea1f['interpolate']({'inputRange':[0x0,0x1],'outputRange':[0x0,0x8]})}],'opacity':_0x3bea1f[_0x2f94(0x214)]({'inputRange':[0x0,0x1],'outputRange':[0.5,0x1]})}]},_react[_0x2f94(0x1)]['createElement'](_reactNative[_0x2f94(0x1fc)],{'style':styles[_0x2f94(0x215)]},'›'))),_react[_0x2f94(0x1)]['createElement'](_reactNative[_0x2f94(0x103)],{'style':styles['cardContainer']},_0x20db75&&((()=>{if(_0x299edd[_0x2f94(0x216)]!==_0x299edd[_0x2f94(0x217)]){const _0x450c35=_0x1cb543['find'](_0xa2142=>_0xa2142['id']===_0x20db75);if(!_0x450c35)return null;const _0x5f2915=_0x40ab36[_0x2f94(0x88)](_0x20db75),_0x1fba32=_0x50ba36[_0x20db75]===_0x299edd[_0x2f94(0xdc)],_0x52a406=_0x2a08cf===null||_0x299edd[_0x2f94(0x218)](_0x2a08cf,void 0x0)?void 0x0:_0x2a08cf[_0x2f94(0xae)](_0x20db75);return _react[_0x2f94(0x1)]['createElement'](_reactNative[_0x2f94(0x103)],{'style':styles['platformCard']},_react[_0x2f94(0x1)]['createElement'](_reactNative[_0x2f94(0x103)],{'style':styles['cardHeader']},_react[_0x2f94(0x1)][_0x2f94(0xf1)](_reactNative[_0x2f94(0x1fc)],{'style':styles['platformCardTitle']},_0x450c35[_0x2f94(0x10d)]),_0x52a406&&_react[_0x2f94(0x1)]['createElement'](_reactNative['View'],{'style':styles[_0x2f94(0x219)]},_react['default'][_0x2f94(0xf1)](_reactNative['Text'],{'style':styles[_0x2f94(0x21a)]},_0x299edd[_0x2f94(0x21b)])),_react['default']['createElement'](_reactNative[_0x2f94(0xf2)],{'activeOpacity':0.8,'onPress':()=>!_0x1fba32&&_0xf57fba(_0x20db75,!_0x5f2915),'disabled':_0x1fba32,'style':[styles[_0x2f94(0x21c)],{'backgroundColor':_0x5f2915?_0x299edd[_0x2f94(0x21d)]:_0x299edd[_0x2f94(0x21e)]}]},_react[_0x2f94(0x1)][_0x2f94(0xf1)](_reactNative[_0x2f94(0x103)],{'style':[styles[_0x2f94(0x21f)],{'transform':[{'translateX':_0x5f2915?0x14:0x0}]}]}))),_react['default']['createElement'](_reactNative['View'],{'style':styles[_0x2f94(0x220)]},_react['default']['createElement'](_reactNative[_0x2f94(0x1fc)],{'style':styles[_0x2f94(0x221)]},_0x450c35[_0x2f94(0x222)])));}else _0x5e6018[_0x2f94(0xa2)](_0x2f94(0x14d)+_0x2e479f+_0x2f94(0x14e),_0x18bcce),_0x299edd[_0x2f94(0x15f)](_0x3501a0,_0xd717c7),_0x23c7f4(!![]);})())),_react[_0x2f94(0x1)][_0x2f94(0xf1)](_reactNative[_0x2f94(0x103)],{'style':styles[_0x2f94(0x223)]},_react[_0x2f94(0x1)][_0x2f94(0xf1)](_reactNative[_0x2f94(0x1fc)],{'style':styles[_0x2f94(0x224)]},_0x299edd[_0x2f94(0x225)]),_react[_0x2f94(0x1)][_0x2f94(0xf1)](_reactNative['Text'],{'style':styles[_0x2f94(0x226)]},_0x299edd['bVUIL']),_react[_0x2f94(0x1)]['createElement'](_reactNative[_0x2f94(0x103)],{'style':styles[_0x2f94(0x227)]},MODEL_REFRESH_OPTIONS['map'](_0x3f9ca5=>_react[_0x2f94(0x1)]['createElement'](_reactNative['TouchableOpacity'],{'key':_0x3f9ca5[_0x2f94(0x228)],'style':[styles[_0x2f94(0x229)],_0x4c1b20===_0x3f9ca5[_0x2f94(0x228)]&&styles[_0x2f94(0x22a)]],'onPress':()=>_0x5a6474(_0x3f9ca5['value']),'activeOpacity':0.7},_react[_0x2f94(0x1)]['createElement'](_reactNative[_0x2f94(0x1fc)],{'style':[styles[_0x2f94(0x22b)],_0x4c1b20===_0x3f9ca5[_0x2f94(0x228)]&&styles['refreshSegmentTextSelected']]},_0x3f9ca5[_0x2f94(0x22c)])))),_react[_0x2f94(0x1)]['createElement'](_reactNative[_0x2f94(0x1fc)],{'style':styles[_0x2f94(0x22d)]},(_0x299edd['XeAAF'](_0x3d5365=MODEL_REFRESH_OPTIONS['find'](_0x79a4d9=>_0x79a4d9[_0x2f94(0x228)]===_0x4c1b20),null)||_0x299edd['vmZHS'](_0x3d5365,void 0x0)?void 0x0:_0x3d5365[_0x2f94(0x222)])||'')),_react[_0x2f94(0x1)]['createElement'](_reactNative[_0x2f94(0x103)],{'style':styles[_0x2f94(0x22e)]},_react['default']['createElement'](_reactNative[_0x2f94(0x103)],{'style':styles[_0x2f94(0x22f)]},_react[_0x2f94(0x1)][_0x2f94(0xf1)](_PrimaryButton[_0x2f94(0x1)],{'label':_0x299edd[_0x2f94(0x230)],'onPress':_0x310403,'disabled':loading||_0x40ab36[_0x2f94(0x8a)]===0x0||_0x19a08c||_0x5ded34,'loading':_0x299edd['mHIqx'](loading,_0x19a08c)||_0x5ded34}),_react[_0x2f94(0x1)]['createElement'](_reactNative[_0x2f94(0xf2)],{'style':styles['buttonOverlay'],'activeOpacity':0x1,'onPressIn':_0x3bbe3d,'onPressOut':_0x2127cf,'onPress':()=>{if(_0x299edd[_0x2f94(0xe5)]('SFcMp',_0x2f94(0x231)))_0x299edd[_0x2f94(0x232)](_0x40ab36[_0x2f94(0x8a)],0x0)&&!loading&&!_0x19a08c&&!_0x5ded34&&_0x310403();else{const _0x42f090=new _0x1f35e3(_0x553362);let _0x5d8e99=![];return _0x2a1620['forEach'](_0x5aa86c=>{!_0x42f090[_0x2f94(0x88)](_0x5aa86c)&&(_0x42f090[_0x2f94(0x89)](_0x5aa86c),_0x5d8e99=!![]);}),_0x5d8e99?_0x42f090:_0x55845c;}}},_react[_0x2f94(0x1)][_0x2f94(0xf1)](_reactNative['Animated'][_0x2f94(0x103)],{'style':[styles['holdProgressBar'],{'width':_0x9c33d5['interpolate']({'inputRange':[0x0,0x1],'outputRange':['0%',_0x299edd['CPrKT']]})}]}))),_0x3ec1bc&&_react[_0x2f94(0x1)][_0x2f94(0xf1)](_reactNative[_0x2f94(0xf2)],{'style':styles[_0x2f94(0x233)],'onPress':_0x376faa},_react[_0x2f94(0x1)][_0x2f94(0xf1)](_reactNative[_0x2f94(0x1fc)],{'style':styles['skipButtonText']},_0x299edd[_0x2f94(0x234)])))));},styles=_reactNative['StyleSheet'][_0x2f94(0x235)]({'container':{'flex':0x1,'backgroundColor':_theme[_0x2f94(0x236)][_0x2f94(0x237)],'paddingHorizontal':0x18},'backButton':{'width':0x20,'height':0x20,'borderRadius':0x10,'backgroundColor':_0x2f94(0x238),'alignItems':'center','justifyContent':_0x2f94(0x239),'marginBottom':0x2},'backButtonText':{'fontSize':0x16,'fontWeight':_0x2f94(0x23a),'color':'#1C1C1E','marginTop':-0x2},'scrollContent':{'flex':0x1},'headingContainer':{'width':_0x2f94(0x23b),'marginBottom':_theme['SPACING']['sm'],'paddingTop':0x0,'marginTop':0x0},'title':{'fontFamily':'IBM\x20Plex\x20Sans','fontWeight':_0x2f94(0x23c),'fontSize':0x18,'lineHeight':0x20,'color':_theme['COLORS']['grey800'],'textAlign':_0x2f94(0x23d),'marginBottom':0x4},'subtitle':{'fontFamily':'Inter','fontWeight':_0x2f94(0x23e),'fontSize':0x10,'lineHeight':0x18,'color':_theme['COLORS'][_0x2f94(0x23f)],'textAlign':'left'},'personaContainer':{'alignItems':_0x2f94(0x239),'position':_0x2f94(0x240),'marginTop':-0x14,'marginBottom':-0x78,'height':0x1c2},'largePersona':{'width':0x1f4,'height':0x1f4},'platformIconsOverlay':{'position':_0x2f94(0x241),'width':_0x2f94(0x23b),'height':0x46,'zIndex':0xa},'platformIconsScrollContent':{'flexDirection':_0x2f94(0x242),'alignItems':_0x2f94(0x239),'paddingHorizontal':0x14,'gap':0x18},'platformIconsCentered':{'flexGrow':0x1,'justifyContent':'center'},'platformIconButton':{'width':0x34,'height':0x34,'borderRadius':0x1a,'backgroundColor':_0x2f94(0x243),'justifyContent':_0x2f94(0x239),'alignItems':'center','borderWidth':0x3,'borderColor':_0x2f94(0x244),'shadowColor':'#000','shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.15,'shadowRadius':0x4,'elevation':0x4},'platformIconButtonSelected':{'borderColor':_0x2f94(0x245),'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':_0x2f94(0x241),'top':0x2,'right':0x2,'width':0xc,'height':0xc,'borderRadius':0x6,'backgroundColor':'#FFA500','borderWidth':0x2,'borderColor':_theme[_0x2f94(0x236)][_0x2f94(0x237)]},'connectedDot':{'position':_0x2f94(0x241),'top':0x2,'right':0x2,'width':0xc,'height':0xc,'borderRadius':0x6,'backgroundColor':'#10B981','borderWidth':0x2,'borderColor':_theme['COLORS'][_0x2f94(0x237)]},'cardContainer':{'alignItems':'center','marginTop':0x10,'marginBottom':_theme[_0x2f94(0x246)]['md']},'platformCard':{'width':0x147,'backgroundColor':_0x2f94(0x243),'borderRadius':0x10,'padding':0x8,'shadowColor':_0x2f94(0x247),'shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.1,'shadowRadius':0x8,'elevation':0x3,'gap':0xa},'cardHeader':{'flexDirection':'row','alignItems':_0x2f94(0x239),'justifyContent':_0x2f94(0x248)},'platformCardTitle':{'fontSize':0x10,'fontWeight':_0x2f94(0x23a),'color':_theme[_0x2f94(0x236)][_0x2f94(0x249)],'fontFamily':'IBM\x20Plex\x20Sans'},'recommendedBadge':{'backgroundColor':_0x2f94(0x24a),'paddingHorizontal':0xc,'paddingVertical':0x6,'borderRadius':0x10,'marginLeft':0x8},'recommendedBadgeText':{'fontSize':0xc,'fontWeight':_0x2f94(0x23a),'color':_0x2f94(0x24b),'fontFamily':_0x2f94(0x24c)},'customToggleTrack':{'width':0x32,'height':0x1e,'borderRadius':0xf,'padding':0x2,'marginLeft':'auto','marginRight':0x8,'justifyContent':_0x2f94(0x239)},'customToggleThumb':{'width':0x1a,'height':0x1a,'borderRadius':0xd,'backgroundColor':_0x2f94(0x243),'shadowColor':_0x2f94(0x247),'shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.2,'shadowRadius':0x2,'elevation':0x2},'descriptionContainer':{'backgroundColor':_0x2f94(0x24d),'borderRadius':0x8,'padding':0x8},'platformCardDescription':{'fontSize':0xd,'lineHeight':0x12,'color':_theme[_0x2f94(0x236)][_0x2f94(0x23f)],'fontFamily':_0x2f94(0x24e)},'refreshFrequencySection':{'paddingHorizontal':0x10,'paddingVertical':0x14,'marginTop':0xc,'backgroundColor':_0x2f94(0x24f),'borderRadius':0x10,'marginHorizontal':_theme[_0x2f94(0x246)]['md'],'marginBottom':0x8,'borderWidth':0x1,'borderColor':'#E0E0E4'},'refreshFrequencyTitle':{'fontSize':0x11,'fontWeight':_0x2f94(0x23c),'color':_0x2f94(0x250),'fontFamily':_0x2f94(0x24c),'marginBottom':0x4},'refreshFrequencyDescription':{'fontSize':0xe,'color':_0x2f94(0x251),'fontFamily':_0x2f94(0x24e),'fontWeight':_0x2f94(0x23e),'marginBottom':0x10},'refreshSegmentedControl':{'flexDirection':_0x2f94(0x242),'backgroundColor':'#E8E8ED','borderRadius':0xc,'padding':0x3},'refreshSegment':{'flex':0x1,'paddingVertical':0xa,'alignItems':_0x2f94(0x239),'justifyContent':_0x2f94(0x239),'borderRadius':0xa},'refreshSegmentSelected':{'backgroundColor':_0x2f94(0x250),'shadowColor':'#000','shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.15,'shadowRadius':0x4,'elevation':0x3},'refreshSegmentText':{'fontSize':0xf,'fontFamily':'Inter','fontWeight':_0x2f94(0x252),'color':_0x2f94(0x251)},'refreshSegmentTextSelected':{'fontWeight':_0x2f94(0x23c),'color':_0x2f94(0x243)},'refreshFrequencyHint':{'fontSize':0xd,'fontFamily':_0x2f94(0x24e),'fontWeight':_0x2f94(0x23e),'color':'#8E8E93','textAlign':_0x2f94(0x239),'marginTop':0xc},'privacyLinkContainer':{'marginTop':0x10,'paddingTop':0x10,'borderTopWidth':0x1,'borderTopColor':_0x2f94(0x253),'alignItems':_0x2f94(0x239)},'privacyLinkText':{'fontSize':0xe,'color':_0x2f94(0x254),'fontFamily':_0x2f94(0x24e),'fontWeight':'500'},'bottomButtonContainer':{'paddingTop':0x8,'paddingBottom':0x0,'paddingHorizontal':_theme[_0x2f94(0x246)]['md']},'buttonWrapper':{'position':_0x2f94(0x240)},'buttonOverlay':{'position':_0x2f94(0x241),'top':0x0,'left':0x0,'right':0x0,'bottom':0x0,'borderRadius':0xc,'overflow':_0x2f94(0x255)},'holdProgressBar':{'position':'absolute','bottom':0x0,'left':0x0,'height':0x4,'backgroundColor':_0x2f94(0x62),'borderRadius':0x2},'skipButton':{'alignItems':_0x2f94(0x239),'paddingVertical':0xa,'marginBottom':0x22},'skipButtonText':{'fontSize':0x10,'fontFamily':'Inter','fontWeight':_0x2f94(0x252),'color':_theme['COLORS'][_0x2f94(0x23f)]},'pageIndicatorContainer':{'position':_0x2f94(0x241),'alignSelf':_0x2f94(0x239),'zIndex':0xb},'scrollBarTrack':{'width':0x50,'height':0x4,'backgroundColor':_theme[_0x2f94(0x236)][_0x2f94(0x256)],'borderRadius':0x2,'position':_0x2f94(0x240),'overflow':_0x2f94(0x255)},'scrollBarThumb':{'position':'absolute','width':0x18,'height':0x4,'backgroundColor':_theme[_0x2f94(0x236)][_0x2f94(0x23f)],'borderRadius':0x2,'left':0x0},'scrollIndicator':{'position':'absolute','bottom':0x3c,'right':0x1e,'zIndex':0xc},'scrollIndicatorText':{'fontSize':0x20,'color':_theme[_0x2f94(0x236)][_0x2f94(0x257)],'fontWeight':_0x2f94(0x258)}});var _default=exports['default']=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
|