@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,7 +1,1303 @@
|
|
|
1
|
+
import React, { useState, useEffect, useRef, useCallback } from 'react';
|
|
2
|
+
import { View, Text, StyleSheet, ScrollView, Vibration, TouchableOpacity, Image, Animated } from 'react-native';
|
|
3
|
+
import { COLORS, SPACING } from '../theme';
|
|
4
|
+
import { triggerHaptic, HapticType } from '../utils/haptics';
|
|
5
|
+
import PersonaImage from './PersonaImage';
|
|
6
|
+
import PrimaryButton from './PrimaryButton';
|
|
7
|
+
import PersonalizationConsentScreen from './PersonalizationConsentScreen';
|
|
8
|
+
import PinCreationScreen from './PinCreationScreen';
|
|
9
|
+
import PersonaLoadingScreen from './PersonaLoadingScreen';
|
|
10
|
+
// LLMDataInputModal removed - LLM platforms use same toggle as OAuth platforms
|
|
11
|
+
import { useConnections } from '../hooks/useConnections';
|
|
12
|
+
import { getPlatformIcon, getConnectedAccountsLookup } from '../services/connectedAccountsService';
|
|
13
|
+
import { initiateOAuth, initiateNativeAuth, hasNativeSDK } from '../services/platformAuthService';
|
|
14
|
+
import { OAuthWebView } from './onboarding/OAuthWebView';
|
|
15
|
+
import { isLLMPlatform, getLLMPlatformUrl, isLinkedInPlatform } from '../utils/webviewScripts';
|
|
16
|
+
// useAuth removed - SDK doesn't have AuthProvider context
|
|
1
17
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import React,{useState,useEffect,useRef,useCallback}from'react';import{View,Text,StyleSheet,ScrollView,Vibration,TouchableOpacity,Image,Animated}from'react-native';import{COLORS,SPACING}from'../theme';import{triggerHaptic,HapticType}from'../utils/haptics';import _0x65fd2d from'./PersonaImage';function _0x375f(_0x3c7d14,_0x375f74){_0x3c7d14=_0x3c7d14-0x0;const _0x2d46b0=_0x3c7d();let _0x21beb0=_0x2d46b0[_0x3c7d14];return _0x21beb0;}import _0xd6824 from'./PrimaryButton';import _0x1e000e from'./PersonalizationConsentScreen';import _0x308d74 from'./PinCreationScreen';import _0x463eec from'./PersonaLoadingScreen';import{useConnections}from'../hooks/useConnections';import{getPlatformIcon}from'../services/connectedAccountsService';import{initiateOAuth,initiateNativeAuth,hasNativeSDK}from'../services/platformAuthService';import{OAuthWebView}from'./onboarding/OAuthWebView';import{isLLMPlatform,getLLMPlatformUrl,isLinkedInPlatform}from'../utils/webviewScripts';import{setTemporaryPin}from'../services/pinStorageUtils';import AsyncStorage from'@react-native-async-storage/async-storage';function _0x3c7d(){const _0x43a5f2=['daily','Daily','Always\x20up-to-date\x20data.','weekly','Weekly','Balanced\x20freshness\x20and\x20efficiency.','biweekly','mUQcl','UpLEo','✅\x20[PLATFORMS]\x20Loaded\x20from\x20platform_account_details:','#9CA3AF','linkedin','❌\x20[STORAGE]\x20Error\x20removing\x20from\x20user_connected_platforms:','QasqE','🔄\x20[PLATFORMS]\x20Loading\x20connected\x20platforms\x20from\x20storage...','bHiRn','fHpiz','platform_account_details','claude','grok','@onairos:linkedin_connected','ZZwCg','XeHDC','OrMHj','onairos_username','OUpQk','LPnIN','❌\x20[REFRESH]\x20Error\x20saving\x20refresh\x20frequency:','Error\x20initializing\x20username:','dbZQe','XIXlz','vdyJQ','FRkob','uDaDY','cZSPZ','brYwQ','uJGsx','dgQMS','saMNG','iQnCG','AGlgg','rMsNF','https://privacy.onairos.io/','https://www.linkedin.com/login','XPQXd','IdhqT','❌\x20[STORAGE]\x20Error\x20saving\x20to\x20user_connected_platforms:','xfLhV','FHFqQ','mvRpo','iCBZp','szSAh','jEYjo','DkbsO','zvyqT','youtube','pinterest','gmail','contain','Highly\x20Recommended','Initializing...','Use\x20your\x20watch\x20history,\x20likes,\x20and\x20subscriptions\x20to\x20enrich\x20your\x20model.','reddit','Reddit','Pinterest','Gmail','Use\x20your\x20email\x20information\x20to\x20enrich\x20your\x20model.','chatgpt','Use\x20your\x20ChatGPT\x20conversations\x20and\x20memories\x20to\x20enrich\x20your\x20model.','Claude','Grok','Build\x20your\x20persona','Connect\x20platforms\x20to\x20build\x20your\x20private\x20persona','normal','Model\x20Refresh\x20Frequency','How\x20often\x20should\x20your\x20model\x20be\x20refreshed\x20from\x20platforms?','100%','Skip','SpnVY','apfAc','lnjen','TGUFZ','Value','oQAdd','current','DJmNo','rNfVL','NQSbw','zcsVy','KruCI','mnHUg','DCHyk','Raapq','length','idYtC','forEach','XwJPK','has','kagKm','add','rItGY','timing','start','fGZrY','vibrate','CjUDX','zNxPI','RRJPB','VvXZD','ekToX','#10B981','VcTYI','ElDhZ','CvEBJ','mxGgm','YxdmN','SVKoO','zbAvw','Ootlr','EPawe','qYdCJ','Koxop','gemini','GnaOX','QGVeX','pQpzM','TYtrM','ezkZD','UungE','✅\x20[PLATFORMS]\x20Loaded\x20LinkedIn\x20connection','KwhCQ','DDFWN','CtLQz','tvNan','XEvwb','pfLrf','bsOta','medNi','djvCb','find','tSRMD','log','IqFBC','getItem','user_connected_platforms','UTAgC','vRpvI','parse','isArray','wVOre','VxABi','BbuQZ','createElement','push','includes','tDkwK','uikHg','KgIIv','kZnUw','WnGZD','platform','eWNwh','toLowerCase','PFFoW','IcbAe','map','OicUH','cucTD','@onairos:llm_connected:','svzpc','PvNnY','connected','kzOZT','connecting','cardHeader','name','recommendedBadgeText','customToggleTrack','bzZNu','customToggleThumb','descriptionContainer','platformCardDescription','description','WgqWP','pJKpl','BUTTON_PRESS','HWfXB','yTKYS','zJMqO','TCKjx','jiBJK','XKsiQ','error','whoLL','ytUvO','RJKXF','eBSqS','from','HxxfN','eETcY','kOeYV','WyTAA','joKeg','ngCAM','YYDFk','split','aEeJd','user_','floor','random','setItem','mobile_user_','BdlsD','qZNiy','gOnOw','UDfCw','loop','lNvQU','xfMVU','rrNqO','GFeFr','JbEau','nativeEvent','layoutMeasurement','width','contentSize','xrjJh','VtRlE','YouTube','grFvM','xcHoi','RSIFe','dxiJh','ADxkI','tvcos','LinkedIn','MyeMP','xwFRP','WZRaL','LdZoo','ChatGPT','XSDDi','FYvbn','cGrJm','HYePW','Use\x20your\x20Claude\x20conversations\x20to\x20enrich\x20your\x20model.','cmDNk','Gemini','HsoYx','pkNeF','YbthI','Use\x20your\x20Grok\x20conversations\x20from\x20X\x20to\x20enrich\x20your\x20model.','filter','aORWP','gNMSy','ZdHcD','🔄\x20[TOGGLE]\x20Platform\x20toggle:\x20','\x20=\x20','CIQSB','👤\x20[TOGGLE]\x20Username\x20check\x20-\x20stored:\x20\x22','\x22,\x20state:\x20\x22','\x22,\x20valid:\x20\x22','trim','eIwAn','HgPDv','zFHvm','\x20-\x20no\x20URL\x20returned','uxtUy','ajjmC','FHOdJ','RdhOD','isChatPlatform','ronSd','gDyje','DXHzo','🤖\x20[LLM]\x20Opening\x20WebView\x20for\x20','dvFna','🌐\x20[LLM]\x20Opening\x20','NnnGs','❌\x20[LLM]\x20No\x20URL\x20configured\x20for\x20platform:\x20','✅\x20[PLATFORMS]\x20Loaded\x20from\x20user_connected_platforms:','KsjUy','💼\x20[LINKEDIN]\x20Opening\x20WebView\x20for\x20LinkedIn\x20login...','🌐\x20[LINKEDIN]\x20Opening\x20LinkedIn\x20URL:','OxGiq','iLKKK','SUCCESS','ERROR','🌐\x20[TOGGLE]\x20Starting\x20OAuth\x20flow\x20for\x20','...','sVfpc','substring','AnoeQ','nQdNI','AapSq','ChYlC','xVWuS','rhHZb','RvZqE','EjZqM','delete','disconnected','fabfy','QEgwE','✅\x20[STORAGE]\x20Removed\x20','\x20from\x20user_connected_platforms:','QzlWU','removeItem','pNIdK','lcvXL','✅\x20[PERSONA]\x20Applied\x20pending\x20connection:\x20','Error\x20toggling\x20platform\x20','JOdUe','AASTw','DwDQE','aQjTY','yGdHD','DtCtV','gDlNp','RMrED','hEFqt','NNeQH','VFpTx','contentOffset','sJJpG','vCOOH','LICyf','pzQxW','wBdCO','uuhtX','cnYSa','wjjcq','xPTwK','MjfOx','@onairos:model_refresh_frequency','VcHpT','Lytsb','setValue','GltKO','WyIjI','cLNqc','EjxwK','nOkOU','openURL','zdOEy','HvDfb','BrFFV','AbnNH','crSnU','size','GlHaE','jbcJf','FAmbB','YZjeD','fGUIL','xkBDt','MNwKL','fGOtP','EoMNc','uYDHQ','ZfcVv','ckpAc','hIOlq','FDFsC','GXqsf','fYeZM','rUoJJ','stringify','\x20to\x20user_connected_platforms:','uQgZG','oEdvL','zvkwp','WytvH','gGeAs','zPRhN','mNNVw','📊\x20[STATE]\x20WebView\x20state\x20changed\x20-\x20showOAuthWebView:\x20',',\x20oauthUrl:\x20','TNDEC','lNfne','dJhZq','toISOString','✅\x20[LLM]\x20','\x20connection\x20stored\x20locally','✅\x20[LINKEDIN]\x20Connection\x20stored\x20locally','hisvq','aHyPE','\x20login\x20and\x20export...','IISWl','ROsAR','\x20URL:','umppD','Phslq','lWhnQ','fOMBq','htIUq','GchMN','EGcAs','jSyZD','PwZEM','VvypZ','JXhXi','QJMKA','jefie','wAati','dAflV','XrMqa','tOBXG','obtAg','DPayg','qRQRy','VfkTu','LOBrC','nCugs','NBVLx','Ubtee','DUdRg','KTRgZ','fQsPp','eaycB','✅\x20[PLATFORMS]\x20Updated\x20connectedPlatforms\x20state\x20with:','lwMeM','oIaTQ','max','NVskN','UQZfe','✅\x20[WEBVIEW]\x20Rendering\x20OAuthWebView\x20for\x20','\x20with\x20URL:\x20','fQjAl','pRzsK','esPfI','container','scrollContent','backButton','backButtonText','headingContainer','title','EuYpM','subtitle','oVcys','personaContainer','largePersona','platformIconsOverlay','mSkNj','platformIconsCentered','cGWtQ','SwryD','xNACi','sequence','Xyhax','platformIconButton','platformIconButtonSelected','lBjMn','icon','platformIcon','youtubeIcon','pinterestIcon','wMUoM','chatgptIcon','claudeIcon','grokIcon','fSjHG','OeRHl','pageIndicatorContainer','scrollBarThumb','OPyVj','View','scrollIndicator','scrollIndicatorText','cardContainer','platformCard','recommendedBadge','CGADJ','refreshFrequencySection','refreshFrequencyTitle','pyuia','refreshFrequencyDescription','EMcPX','value','refreshSegment','refreshSegmentText','refreshSegmentTextSelected','label','refreshFrequencyHint','buttonOverlay','holdProgressBar','interpolate','skipButtonText','#F0F0F3','center','600','#1C1C1E','IBM\x20Plex\x20Sans','700','grey800','left','Inter','grey600','relative','#FFFFFF','transparent','#3B82F6','#EFF6FF','absolute','#FFA500','surface','#000','row','space-between','#2563EB','auto','#F9FAFB','#F5F5F7','#E0E0E4','#8E8E93','400','#E8E8ED','500','#E5E7EB','#8B5CF6','hidden','grey500','bold'];_0x3c7d=function(){return _0x43a5f2;};return _0x3c7d();}export const MODEL_REFRESH_OPTIONS=[{'value':_0x375f(0x0),'label':_0x375f(0x1),'description':_0x375f(0x2)},{'value':_0x375f(0x3),'label':_0x375f(0x4),'description':_0x375f(0x5)},{'value':_0x375f(0x6),'label':'Biweekly','description':'Less\x20frequent,\x20more\x20efficient.'}];const PlatformConnectorsStep=({onUpdate:_0x59bc37,onSkip:_0x4d45ae,loading:loading=![],onPinComplete:_0x4a13b3,onReviewerBypass:_0x44b475,onLogout:_0x327098,allowedPlatforms:_0x1eaec4,recommendedPlatforms:_0x1929e4,initialConnectedPlatforms:_0x4a51a0,onRefreshFrequencyChange:_0x6c3c1e,initialRefreshFrequency:initialRefreshFrequency=_0x375f(0x3)})=>{const _0x16e0e4={'DCHyk':function(_0x533e2c,_0x20bb3f){return _0x533e2c(_0x20bb3f);},'dQPPw':_0x375f(0x7),'Raapq':function(_0x390d4e,_0x5e609e){return _0x390d4e>_0x5e609e;},'idYtC':function(_0x1534c8,_0x6c313b){return _0x1534c8(_0x6c313b);},'zNxPI':function(_0x34347a,_0x2ddc5d){return _0x34347a!==_0x2ddc5d;},'RRJPB':function(_0x451d7f,_0x76fc2a){return _0x451d7f===_0x76fc2a;},'VvXZD':_0x375f(0x8),'ekToX':_0x375f(0x9),'ObzJo':_0x375f(0xa),'VcTYI':function(_0xf5556f,_0x4af5bf){return _0xf5556f>_0x4af5bf;},'ElDhZ':_0x375f(0xb),'QzlWU':_0x375f(0xc),'CvEBJ':function(_0x212c92,_0x16d31e){return _0x212c92===_0x16d31e;},'mxGgm':_0x375f(0xd),'YxdmN':_0x375f(0xe),'SVKoO':_0x375f(0xf),'zbAvw':_0x375f(0x10),'Ootlr':'cjgUe','EPawe':_0x375f(0x11),'wsUdw':'BZMDt','TbIQf':'ZRUeL','qYdCJ':'qguSf','Koxop':_0x375f(0x12),'GnaOX':_0x375f(0x13),'MNzmT':'JduEH','hCqeX':_0x375f(0x14),'QGVeX':_0x375f(0x15),'pQpzM':'❌\x20[PLATFORMS]\x20Error\x20loading\x20connected\x20platforms\x20from\x20storage:','kOeYV':function(_0x1208fa){return _0x1208fa();},'WyTAA':function(_0x2630f1,_0x37893d){return _0x2630f1===_0x37893d;},'ZGRZt':_0x375f(0x16),'lwfJQ':_0x375f(0x17),'joKeg':_0x375f(0x18),'VMbHm':function(_0x47ef59,_0x4b9413){return _0x47ef59&&_0x4b9413;},'KViiH':function(_0xaa4850,_0x140751){return _0xaa4850&&_0x140751;},'ngCAM':function(_0xe17920,_0x23494a){return _0xe17920===_0x23494a;},'YYDFk':function(_0x5cd0fe,_0x1c1525){return _0x5cd0fe===_0x1c1525;},'aEeJd':function(_0x181275,_0x490621){return _0x181275===_0x490621;},'BdlsD':function(_0x234c5a,_0x2dd853){return _0x234c5a*_0x2dd853;},'qZNiy':function(_0x1e4f5e,_0x141517){return _0x1e4f5e(_0x141517);},'rFErx':function(_0x3f7e7b,_0x1c1c90){return _0x3f7e7b*_0x1c1c90;},'UDfCw':function(_0x1fcb4d,_0x170bf9){return _0x1fcb4d(_0x170bf9);},'zhulz':_0x375f(0x19),'lJdvl':_0x375f(0x1a),'xfMVU':_0x375f(0x1b),'rrNqO':function(_0xc985f4,_0x9b8456){return _0xc985f4!==_0x9b8456;},'GFeFr':'Dukip','tBcWi':function(_0x18b82f,_0x205d09){return _0x18b82f-_0x205d09;},'xrjJh':function(_0x364155,_0x1a2d41){return _0x364155/_0x1a2d41;},'LFixo':'IAoGs','pNIdK':_0x375f(0x1c),'iLKKK':function(_0x111d18,_0x1ca6bd,_0x2a1067){return _0x111d18(_0x1ca6bd,_0x2a1067);},'apfAc':function(_0x576365,_0x42d810){return _0x576365(_0x42d810);},'ZdHcD':_0x375f(0x1d),'CIQSB':function(_0x4231e5,_0x247af8){return _0x4231e5||_0x247af8;},'eIwAn':function(_0x5ad8d4,_0x64a46e){return _0x5ad8d4!==_0x64a46e;},'zFHvm':'HgPDv','ajjmC':'❌\x20[TOGGLE]\x20No\x20username\x20available\x20-\x20cannot\x20proceed\x20with\x20OAuth','FHOdJ':function(_0x15e50c,_0x1163ad){return _0x15e50c===_0x1163ad;},'RdhOD':function(_0x119841,_0x500a0e){return _0x119841===_0x500a0e;},'SpnVY':function(_0x367c96,_0x3d4d55){return _0x367c96(_0x3d4d55);},'ronSd':function(_0x3656e7,_0x34b81d){return _0x3656e7!==_0x34b81d;},'DXHzo':'lhrou','dvFna':function(_0x45b967,_0x4f05fc){return _0x45b967(_0x4f05fc);},'NnnGs':function(_0x720b09,_0x5d1e7f){return _0x720b09(_0x5d1e7f);},'KsjUy':function(_0x231303,_0x70e57){return _0x231303(_0x70e57);},'sRWCZ':_0x375f(0x1e),'DvdIX':'DehFp','xVWuS':function(_0x233786,_0x55e5ce){return _0x233786(_0x55e5ce);},'OxGiq':_0x375f(0x1f),'jJdoc':_0x375f(0x20),'sVfpc':function(_0x1b7859,_0x2afc7d){return _0x1b7859(_0x2afc7d);},'AnoeQ':'...','nQdNI':'NULL','AapSq':function(_0x4346e0,_0x36e274){return _0x4346e0(_0x36e274);},'udUaa':function(_0x589487,_0x417b0e){return _0x589487(_0x417b0e);},'ChYlC':function(_0xbb09ce,_0x267f74){return _0xbb09ce(_0x267f74);},'rhHZb':function(_0x3b8f84,_0x107e32){return _0x3b8f84===_0x107e32;},'RvZqE':'EjZqM','rNfVL':function(_0x34f14a,_0x19bae1){return _0x34f14a(_0x19bae1);},'HqwRp':'fabfy','QEgwE':'user_connected_platforms','KHJqi':function(_0x4a16ce,_0x2df9cf){return _0x4a16ce===_0x2df9cf;},'FriAC':function(_0x2c12be,_0x1a4ce4){return _0x2c12be!==_0x1a4ce4;},'lcvXL':_0x375f(0x21),'nOkOU':function(_0x28f1bd,_0x5670fa){return _0x28f1bd(_0x5670fa);},'JOdUe':function(_0x15c176,_0x5b0ac4){return _0x15c176(_0x5b0ac4);},'AASTw':_0x375f(0x22),'hGKsC':_0x375f(0x23),'DwDQE':function(_0x362f4d,_0x1f0bcd){return _0x362f4d(_0x1f0bcd);},'yGdHD':function(_0x32706b,_0x456863){return _0x32706b-_0x456863;},'DtCtV':function(_0x11856c,_0x3d0534){return _0x11856c/_0x3d0534;},'gDlNp':function(_0x109683,_0x4d6fd0){return _0x109683(_0x4d6fd0);},'RMrED':function(_0xd9d5de,_0x26354a){return _0xd9d5de>_0x26354a;},'hEFqt':_0x375f(0x24),'NNeQH':function(_0x591fd9,_0x577a7f){return _0x591fd9(_0x577a7f);},'VFpTx':function(_0x181dfc){return _0x181dfc();},'WHGAG':_0x375f(0x25),'gYTie':function(_0x3fbf94,_0x3cc2d7){return _0x3fbf94!==_0x3cc2d7;},'wBdCO':function(_0xc20708,_0x32cd92){return _0xc20708(_0x32cd92);},'HFZop':function(_0x13a8bb,_0x50d7f0){return _0x13a8bb(_0x50d7f0);},'cnYSa':function(_0x1c56e7,_0x397811){return _0x1c56e7(_0x397811);},'XSDDi':function(_0x1bcfaa,_0x39a1ff){return _0x1bcfaa(_0x39a1ff);},'KruCI':function(_0x13b9de,_0x55efc2){return _0x13b9de(_0x55efc2);},'wjjcq':_0x375f(0x26),'xPTwK':'yplhk','qahKM':'GlfYa','VcHpT':_0x375f(0x27),'GltKO':_0x375f(0x28),'WyIjI':_0x375f(0x29),'zdOEy':_0x375f(0x2a),'aHyPE':function(_0x4ed427,_0x53b7e0){return _0x4ed427(_0x53b7e0);},'HvDfb':function(_0x427fce,_0x33b840){return _0x427fce(_0x33b840);},'AbnNH':'BrFFV','TGUFZ':function(_0x47a741,_0xd76d00){return _0x47a741(_0xd76d00);},'IISWl':function(_0x211040,_0x5e8259){return _0x211040(_0x5e8259);},'ROsAR':function(_0x352740,_0x17f186){return _0x352740(_0x17f186);},'FAmbB':function(_0x3b1baa,_0x27caac){return _0x3b1baa(_0x27caac);},'qRQRy':function(_0x45cb2e,_0x1a133e){return _0x45cb2e(_0x1a133e);},'umppD':function(_0x46f74d,_0x1e1f77){return _0x46f74d(_0x1e1f77);},'GlHaE':function(_0x1ce78c,_0x13c193){return _0x1ce78c(_0x13c193);},'jbcJf':_0x375f(0x2b),'YZjeD':function(_0x1a6bf0,_0x47c5b3){return _0x1a6bf0||_0x47c5b3;},'jiDCi':function(_0x1489a4,_0x3f51d8){return _0x1489a4+_0x3f51d8;},'fGUIL':'SET\x20(','xkBDt':'...)','jMcbD':function(_0x8dac6d,_0x4e3def){return _0x8dac6d(_0x4e3def);},'MNwKL':function(_0x2f398a,_0x4eb9dc){return _0x2f398a!==_0x4eb9dc;},'fGOtP':_0x375f(0x2c),'uYDHQ':function(_0x3bbb03,_0x1211c6){return _0x3bbb03===_0x1211c6;},'ZfcVv':'pgWTM','ckpAc':function(_0x33e150,_0xe0ed98){return _0x33e150!==_0xe0ed98;},'hIOlq':function(_0x7d217d,_0x5e6a17){return _0x7d217d===_0x5e6a17;},'FDFsC':_0x375f(0x2d),'GXqsf':'NMKrD','rUoJJ':function(_0x137ccd,_0x2c627b){return _0x137ccd(_0x2c627b);},'uQgZG':function(_0x1483b5,_0x21f3a2){return _0x1483b5===_0x21f3a2;},'zvkwp':'oEdvL','WytvH':_0x375f(0x2e),'DJmNo':function(_0x48787f,_0x22a3b7){return _0x48787f(_0x22a3b7);},'zPRhN':_0x375f(0x2f),'DexGB':_0x375f(0x30),'hisvq':function(_0x314f02,_0x83403e){return _0x314f02===_0x83403e;},'pGmlV':_0x375f(0x31),'Phslq':function(_0x230597,_0x4df241){return _0x230597(_0x4df241);},'fOMBq':function(_0x6b3b66,_0x421ae2){return _0x6b3b66&&_0x421ae2;},'EGcAs':function(_0x258c91,_0x331198){return _0x258c91(_0x331198);},'jSyZD':function(_0x6fba17,_0x41f372){return _0x6fba17(_0x41f372);},'HsoYx':function(_0x212d05,_0x1090c1){return _0x212d05(_0x1090c1);},'JXhXi':'VvypZ','VIDym':_0x375f(0x32),'QJMKA':function(_0x543978,_0x2d3ed4){return _0x543978!==_0x2d3ed4;},'jefie':'oYhYY','dAflV':function(_0x127555,_0xe246b3,_0x1e6d35){return _0x127555(_0xe246b3,_0x1e6d35);},'nVAwi':function(_0x99262f,_0x349f68){return _0x99262f(_0x349f68);},'LOBrC':_0x375f(0x33),'tOSLw':_0x375f(0x34),'nCugs':_0x375f(0x35),'NBVLx':'cinpP','lwMeM':function(_0x1f3960,_0x249747){return _0x1f3960||_0x249747;},'oIaTQ':function(_0x53418a,_0x2be8f3){return _0x53418a+_0x2be8f3;},'esPfI':function(_0x2fc8ce,_0x233a06){return _0x2fc8ce(_0x233a06);},'SwryD':function(_0x2e2d27,_0x4fc797){return _0x2e2d27!==_0x4fc797;},'xNACi':_0x375f(0x36),'Xyhax':function(_0x585c0c,_0x17918c){return _0x585c0c===_0x17918c;},'VtRlE':_0x375f(0x37),'tvcos':_0x375f(0x38),'WZRaL':_0x375f(0x39),'wMUoM':function(_0x3bccb9,_0x297234){return _0x3bccb9===_0x297234;},'GRWBD':function(_0x251cf3,_0x5d91ae){return _0x251cf3===_0x5d91ae;},'fSjHG':_0x375f(0x3a),'XDsdp':'connecting','CGADJ':_0x375f(0x3b),'hvICC':'DoLan','OeRHl':function(_0x38fd2c,_0x442db9){return _0x38fd2c>_0x442db9;},'lnjen':function(_0xd626c5,_0x3063bb){return _0xd626c5(_0x3063bb);},'DOybZ':function(_0x27e62c,_0x531ab5){return _0x27e62c(_0x531ab5);},'oQAdd':function(_0xdb3338,_0x210b2d){return _0xdb3338(_0x210b2d);},'NQSbw':_0x375f(0x3c),'zcsVy':function(_0x26ec0d,_0x50f9d8){return _0x26ec0d(_0x50f9d8);},'mnHUg':function(_0x37c576){return _0x37c576();},'psJbm':function(_0x2e4cbf,_0x2f0d0c,_0x54040e){return _0x2e4cbf(_0x2f0d0c,_0x54040e);},'gOnOw':function(_0xf8ad01,_0x123765,_0x222aaf){return _0xf8ad01(_0x123765,_0x222aaf);},'lNvQU':function(_0x1ca2d6,_0x27fc86,_0x550e5f){return _0x1ca2d6(_0x27fc86,_0x550e5f);},'grFvM':_0x375f(0x3d),'dxiJh':_0x375f(0x3e),'xcHoi':_0x375f(0x3f),'RSIFe':function(_0x1a6a3c,_0xee7bcf){return _0x1a6a3c(_0xee7bcf);},'ADxkI':_0x375f(0x40),'MyeMP':'Use\x20your\x20professional\x20network\x20and\x20career\x20interests\x20to\x20enrich\x20your\x20model.','xwFRP':_0x375f(0x41),'ewLdz':function(_0x849a3c,_0x494789){return _0x849a3c(_0x494789);},'LdZoo':_0x375f(0x42),'FYvbn':_0x375f(0x43),'cGrJm':_0x375f(0x44),'HYePW':_0x375f(0x45),'cmDNk':'gemini','pkNeF':'Use\x20your\x20Gemini\x20conversations\x20to\x20enrich\x20your\x20model.','YbthI':_0x375f(0x46),'UXllU':function(_0x3bd983,_0x49860a,_0x35bc25){return _0x3bd983(_0x49860a,_0x35bc25);},'VfkTu':function(_0x87ffe8,_0x2cbce2,_0x4b54aa){return _0x87ffe8(_0x2cbce2,_0x4b54aa);},'NVskN':function(_0xccc4cd,_0x39dead){return _0xccc4cd+_0x39dead;},'UQZfe':'qJBmm','fQjAl':function(_0x127b00,_0x2ca24c){return _0x127b00===_0x2ca24c;},'YsUkA':'HddBC','pRzsK':'dmALM','EuYpM':_0x375f(0x47),'oVcys':_0x375f(0x48),'mSkNj':function(_0x3745d1,_0x46851a){return _0x3745d1<=_0x46851a;},'CTlTW':_0x375f(0x49),'cGWtQ':function(_0x4cb4b2,_0x37d3de){return _0x4cb4b2>_0x37d3de;},'OPyVj':function(_0x416d43,_0x5a74d){return _0x416d43*_0x5a74d;},'pyuia':_0x375f(0x4a),'EMcPX':_0x375f(0x4b),'ZqcGB':_0x375f(0x4c),'LxZWE':_0x375f(0x4d)};var _0x49a876;const [_0x33742e,_0x3eeaea]=_0x16e0e4[_0x375f(0x4e)](useState,()=>new Set(_0x4a51a0||[])),[_0x10b8ef,_0x566fc0]=useState(![]),[_0x410ab5,_0x33e058]=_0x16e0e4[_0x375f(0x4f)](useState,![]),[_0x4d7820,_0x18fc9c]=useState(![]),[_0x44df6e,_0x43d46f]=_0x16e0e4[_0x375f(0x50)](useState,''),[_0x43190d,_0x5bc947]=_0x16e0e4['gDlNp'](useState,{}),[_0x155a28,_0x1aceaf]=useState(![]),[_0x13b322,_0x6d0bff]=_0x16e0e4[_0x375f(0x50)](useState,''),[_0x521b3f,_0x1e9d95]=useState(''),[_0x59c96b,_0x4f330b]=_0x16e0e4['KruCI'](useState,null),[_0x447c98,_0x29cc07]=_0x16e0e4['DOybZ'](useState,0x0),_0xa6241b=_0x16e0e4[_0x375f(0x51)](useRef,new Animated[(_0x375f(0x52))](0x0))['current'],[_0x613d6c,_0x4f5288]=useState(''),_0x32212c=useRef(null),[_0x31f718,_0x11734f]=useState(!![]),_0x56f943=_0x16e0e4[_0x375f(0x53)](useRef,new Animated['Value'](0x0))[_0x375f(0x54)],[_0xc29d8f,_0x5c8d42]=_0x16e0e4[_0x375f(0x4e)](useState,0x0),_0x551104=useRef(0x0),[_0x257f8c,_0x2a33e6]=_0x16e0e4[_0x375f(0x55)](useState,''),[_0x499f22,_0x8d6fe1]=_0x16e0e4[_0x375f(0x56)](useState,0x0),[_0x121334,_0x19e183]=useState(_0x16e0e4[_0x375f(0x57)]),[_0x1ade21,_0x16ad4b]=useState(![]),[_0x2bfb36,_0x193074]=useState(![]),[_0x59ae72,_0x28d6f0]=useState(null),[_0x48172a,_0xbe1a09]=_0x16e0e4[_0x375f(0x58)](useState,null),_0x4762e3=_0x16e0e4[_0x375f(0x59)](useRef,null),[_0x4c1f3b,_0x44035c]=useState(![]),[_0x462644,_0x35d8aa]=_0x16e0e4[_0x375f(0x58)](useState,''),[_0x5ce50a,_0x2d41a7]=_0x16e0e4['JOdUe'](useState,null),[_0x5eb126,_0xef7fee]=useState(![]),[_0x373154,_0x12bce5]=_0x16e0e4[_0x375f(0x4f)](useState,![]),[_0x1ca77d,_0xb77988]=useState(null),[_0x5a9681,_0x2e3d9d]=useState(initialRefreshFrequency),{connectPlatform:_0x2b43a4,disconnectPlatform:_0x4465a0,isConnecting:_0x239c56}=_0x16e0e4[_0x375f(0x5a)](useConnections),_0xa0d059=null;useEffect(()=>{const _0x3e433a={'mAsdl':function(_0xf294dc,_0x5c813f){return _0x16e0e4[_0x375f(0x5b)](_0xf294dc,_0x5c813f);},'XwJPK':_0x16e0e4['dQPPw'],'gisRN':'kagKm'};_0x4a51a0&&_0x16e0e4[_0x375f(0x5c)](_0x4a51a0[_0x375f(0x5d)],0x0)&&_0x16e0e4[_0x375f(0x5e)](_0x3eeaea,_0x44f28b=>{const _0x30bf80={'fGZrY':function(_0x871560,_0x2730be,_0x3047a6){return _0x871560(_0x2730be,_0x3047a6);}},_0x3a814b=new Set(_0x44f28b);let _0x59f650=![];return _0x4a51a0[_0x375f(0x5f)](_0x3a1310=>{const _0x71cbb8={'rItGY':function(_0x58c1ac,_0x5e0e14){return _0x3e433a['mAsdl'](_0x58c1ac,_0x5e0e14);}};if(_0x3e433a[_0x375f(0x60)]===_0x3e433a[_0x375f(0x60)])!_0x3a814b[_0x375f(0x61)](_0x3a1310)&&(_0x3e433a['gisRN']===_0x375f(0x62)?(_0x3a814b[_0x375f(0x63)](_0x3a1310),_0x59f650=!![]):_0x71cbb8[_0x375f(0x64)](_0x10139c,_0x3f8606));else{const _0x36f6ef={'CjUDX':function(_0x7ce80){return _0x7ce80();}};Animated[_0x375f(0x65)](_0x178404,{'toValue':0x1,'duration':0xfa0,'useNativeDriver':![]})[_0x375f(0x66)]();const _0x3d79a6=_0x30bf80[_0x375f(0x67)](_0x4ef226,()=>{_0x42a3ad(_0x5917cc['SUCCESS']),_0x840f8b[_0x375f(0x68)]([0x0,0x64,0x32,0x64]),_0x36f6ef[_0x375f(0x69)](_0x3955a5);},0xfa0);_0x58d239(_0x3d79a6);}}),_0x59f650?_0x3a814b:_0x44f28b;});},[_0x4a51a0]),_0x16e0e4['psJbm'](useEffect,()=>{const _0x44666e={'ezkZD':function(_0xa2c17a,_0x31b6d7){return _0xa2c17a(_0x31b6d7);},'XEvwb':function(_0x2a6497,_0x401c8f){return _0x16e0e4[_0x375f(0x6a)](_0x2a6497,_0x401c8f);},'eWNwh':function(_0x390e86,_0x25c63a){return _0x16e0e4[_0x375f(0x6b)](_0x390e86,_0x25c63a);},'PFFoW':_0x16e0e4[_0x375f(0x6c)],'IcbAe':_0x16e0e4[_0x375f(0x6d)],'rnuBs':_0x375f(0x3b),'bzZNu':_0x375f(0x6e),'PcZzt':_0x16e0e4['ObzJo'],'TYtrM':function(_0x2a6755,_0x2dcb29){return _0x16e0e4[_0x375f(0x6f)](_0x2a6755,_0x2dcb29);},'UungE':_0x16e0e4[_0x375f(0x70)],'KwhCQ':function(_0x6c8739,_0x341334){return _0x16e0e4['RRJPB'](_0x6c8739,_0x341334);},'lzApF':_0x16e0e4['QzlWU'],'DDFWN':function(_0x1fd808,_0x1c6d7f){return _0x16e0e4[_0x375f(0x71)](_0x1fd808,_0x1c6d7f);},'CtLQz':_0x16e0e4[_0x375f(0x72)],'tvNan':'✅\x20[PLATFORMS]\x20Updated\x20connectedPlatforms\x20state\x20with:','IqFBC':_0x16e0e4[_0x375f(0x73)],'UTAgC':function(_0x9e5c8a,_0x209f02){return _0x16e0e4[_0x375f(0x6b)](_0x9e5c8a,_0x209f02);},'vRpvI':_0x16e0e4[_0x375f(0x74)],'wVOre':function(_0x17f4ea,_0x359a5c){return _0x17f4ea===_0x359a5c;},'VxABi':_0x16e0e4[_0x375f(0x75)],'BbuQZ':_0x16e0e4[_0x375f(0x76)],'KgIIv':_0x16e0e4[_0x375f(0x77)],'kZnUw':_0x16e0e4['wsUdw'],'WnGZD':_0x16e0e4['TbIQf'],'XySwI':_0x16e0e4[_0x375f(0x78)],'cFVMT':_0x16e0e4[_0x375f(0x79)],'OicUH':_0x375f(0x7a),'cucTD':_0x16e0e4[_0x375f(0x7b)],'svzpc':_0x16e0e4['MNzmT'],'kzOZT':_0x16e0e4['hCqeX'],'azbgY':_0x16e0e4[_0x375f(0x7c)],'WgqWP':function(_0x263f90,_0x2bfed3){return _0x16e0e4[_0x375f(0x6b)](_0x263f90,_0x2bfed3);},'pJKpl':'yaSKt','eETcY':_0x16e0e4[_0x375f(0x7d)]},_0x3512b8=async()=>{const _0x461727={'djvCb':function(_0x3ae7e6,_0x418ac2){return _0x44666e[_0x375f(0x7e)](_0x3ae7e6,_0x418ac2);},'tSRMD':function(_0x372dcf,_0x1c348a){return _0x44666e[_0x375f(0x7f)](_0x372dcf,_0x1c348a);},'tDkwK':_0x44666e[_0x375f(0x80)],'uikHg':_0x375f(0x81),'PvNnY':function(_0x40c2ca,_0x2f3073){return _0x44666e[_0x375f(0x82)](_0x40c2ca,_0x2f3073);},'HWfXB':_0x44666e['lzApF'],'yTKYS':function(_0x22e9ed,_0x3e6278){return _0x44666e[_0x375f(0x83)](_0x22e9ed,_0x3e6278);},'zJMqO':_0x44666e[_0x375f(0x84)],'eBSqS':_0x44666e[_0x375f(0x85)],'ytUvO':function(_0x3de53c,_0x8bda96){return _0x44666e[_0x375f(0x86)](_0x3de53c,_0x8bda96);},'RJKXF':_0x375f(0x87)};try{if(_0x44666e[_0x375f(0x82)](_0x375f(0x88),_0x375f(0x89))){if(_0x461727[_0x375f(0x8a)](_0x1e383a[_0x375f(0x5d)],0x0)){const _0x4a1bb4=_0x447bac[0x0]['id'];(!_0x368670||!_0x473414[_0x375f(0x8b)](_0x54e021=>_0x54e021['id']===_0xdd9b))&&_0x461727[_0x375f(0x8c)](_0x4bedda,_0x4a1bb4);}}else{console[_0x375f(0x8d)](_0x44666e[_0x375f(0x8e)]);const _0x73fc27=[],_0x4ecb4b=await AsyncStorage[_0x375f(0x8f)](_0x375f(0x90));if(_0x4ecb4b){if(_0x44666e[_0x375f(0x91)](_0x44666e[_0x375f(0x92)],_0x44666e[_0x375f(0x92)])){const _0x2fb354=JSON[_0x375f(0x93)](_0x4ecb4b);if(Array[_0x375f(0x94)](_0x2fb354)){if(_0x44666e[_0x375f(0x95)](_0x44666e[_0x375f(0x96)],_0x44666e[_0x375f(0x97)]))return React[_0x375f(0x98)](_0x153620,{'visible':_0x3aa762,'onComplete':_0x46fe13,'onBack':_0x217acb});else _0x73fc27[_0x375f(0x99)](..._0x2fb354),console[_0x375f(0x8d)]('✅\x20[PLATFORMS]\x20Loaded\x20from\x20user_connected_platforms:',_0x2fb354);}}else{const _0x57bf7d=_0x4897f7[_0x375f(0x93)](_0x2638d9);_0x57bf7d['connected']&&!_0x8a2df7[_0x375f(0x9a)]('linkedin')&&(_0xbc4848[_0x375f(0x99)](_0x461727[_0x375f(0x9b)]),_0x2f07e5[_0x375f(0x8d)](_0x461727[_0x375f(0x9c)]));}}const _0x3c4765=await AsyncStorage['getItem'](_0x44666e[_0x375f(0x9d)]);if(_0x3c4765){if(_0x44666e[_0x375f(0x9e)]!==_0x44666e[_0x375f(0x9e)]){_0x44666e[_0x375f(0x7f)](_0x5794e8,_0x1c826c);return;}else{const _0x807671=JSON['parse'](_0x3c4765);Array[_0x375f(0x94)](_0x807671)&&(_0x44666e['KwhCQ'](_0x44666e[_0x375f(0x9f)],_0x44666e['XySwI'])?!_0x5cc857[_0x375f(0x61)](_0x45bd38)&&(_0x35894d[_0x375f(0x63)](_0x3763e3),_0x50e283=!![]):(_0x807671['forEach'](_0x161ed6=>{if(_0x44666e['XEvwb']('lJDkR','lJDkR'))_0x461727[_0x375f(0x8c)](_0x28fd28,!![]);else{var _0x1a0f4b;const _0x5b3b1d=_0x44666e['eWNwh'](_0x1a0f4b=_0x161ed6[_0x375f(0xa0)],null)||_0x44666e[_0x375f(0xa1)](_0x1a0f4b,void 0x0)?void 0x0:_0x1a0f4b[_0x375f(0xa2)]();_0x5b3b1d&&!_0x73fc27[_0x375f(0x9a)](_0x5b3b1d)&&('UpLEo'!==_0x44666e[_0x375f(0xa3)]?_0xfbc3f6&&_0x1908cf():_0x73fc27[_0x375f(0x99)](_0x5b3b1d));}}),console['log'](_0x44666e[_0x375f(0xa4)],_0x807671[_0x375f(0xa5)](_0x57817f=>_0x57817f['platform']))));}}const _0x279ca7=['chatgpt',_0x44666e['cFVMT'],_0x44666e[_0x375f(0xa6)],_0x44666e[_0x375f(0xa7)]];for(const _0xd68962 of _0x279ca7){const _0x3b7169=await AsyncStorage[_0x375f(0x8f)](_0x375f(0xa8)+_0xd68962);if(_0x3b7169){if(_0x44666e['XEvwb'](_0x44666e['svzpc'],_0x44666e[_0x375f(0xa9)]))_0xc537b2[_0x375f(0x5f)](_0x52ff63=>{var _0x2e7906;const _0x3f622a=_0x461727[_0x375f(0xaa)](_0x2e7906=_0x52ff63[_0x375f(0xa0)],null)||_0x461727['PvNnY'](_0x2e7906,void 0x0)?void 0x0:_0x2e7906['toLowerCase']();_0x3f622a&&!_0x17ae70[_0x375f(0x9a)](_0x3f622a)&&_0x4a25d8['push'](_0x3f622a);}),_0x26d56e[_0x375f(0x8d)](_0x44666e[_0x375f(0xa4)],_0x5b980f[_0x375f(0xa5)](_0x45ecf1=>_0x45ecf1[_0x375f(0xa0)]));else{const _0x44b173=JSON['parse'](_0x3b7169);_0x44b173[_0x375f(0xab)]&&!_0x73fc27[_0x375f(0x9a)](_0xd68962)&&(_0x73fc27[_0x375f(0x99)](_0xd68962),console[_0x375f(0x8d)]('✅\x20[PLATFORMS]\x20Loaded\x20LLM\x20platform:\x20'+_0xd68962));}}}const _0x3ba8d2=await AsyncStorage['getItem'](_0x44666e[_0x375f(0xac)]);if(_0x3ba8d2){if(_0x44666e['azbgY']!=='ZZwCg'){const _0x52408e=_0xebf7fb['find'](_0x427529=>_0x427529['id']===_0x2453e9);if(!_0x52408e)return null;const _0x1c52c8=_0x23cf53[_0x375f(0x61)](_0x5afd1b),_0x6ba610=_0x2219fe[_0x40676f]===_0x375f(0xad),_0x99f989=_0x44666e[_0x375f(0xa1)](_0x341110,null)||_0x44666e[_0x375f(0xa1)](_0x5e10b6,void 0x0)?void 0x0:_0x2ef1e5[_0x375f(0x9a)](_0x3b64a6);return React[_0x375f(0x98)](View,{'style':_0x3e1369['platformCard']},React[_0x375f(0x98)](View,{'style':_0x503abd[_0x375f(0xae)]},React[_0x375f(0x98)](Text,{'style':_0x4839d7['platformCardTitle']},_0x52408e[_0x375f(0xaf)]),_0x99f989&&React[_0x375f(0x98)](View,{'style':_0x54d5e7['recommendedBadge']},React['createElement'](Text,{'style':_0x5b9f29[_0x375f(0xb0)]},_0x44666e['rnuBs'])),React[_0x375f(0x98)](TouchableOpacity,{'activeOpacity':0.8,'onPress':()=>!_0x6ba610&&_0xed5e25(_0x26117e,!_0x1c52c8),'disabled':_0x6ba610,'style':[_0x4d0fd1[_0x375f(0xb1)],{'backgroundColor':_0x1c52c8?_0x44666e[_0x375f(0xb2)]:_0x44666e['PcZzt']}]},React[_0x375f(0x98)](View,{'style':[_0x455f0d[_0x375f(0xb3)],{'transform':[{'translateX':_0x1c52c8?0x14:0x0}]}]}))),React[_0x375f(0x98)](View,{'style':_0x425ad2[_0x375f(0xb4)]},React[_0x375f(0x98)](Text,{'style':_0x2491fe[_0x375f(0xb5)]},_0x52408e[_0x375f(0xb6)])));}else{const _0x5e9be7=JSON['parse'](_0x3ba8d2);_0x5e9be7[_0x375f(0xab)]&&!_0x73fc27[_0x375f(0x9a)](_0x44666e[_0x375f(0x80)])&&(_0x44666e[_0x375f(0xb7)]('yaSKt',_0x44666e[_0x375f(0xb8)])?(_0x73fc27[_0x375f(0x99)](_0x44666e['UungE']),console['log']('✅\x20[PLATFORMS]\x20Loaded\x20LinkedIn\x20connection')):(_0x3543fd(_0x362915[_0x375f(0xb9)]),_0x293fc1(![])));}}_0x73fc27[_0x375f(0x5d)]>0x0&&_0x3eeaea(_0x32ef59=>{const _0x1f1dd5={'TCKjx':_0x461727[_0x375f(0xba)],'jiBJK':function(_0x2bffa7,_0x393654){return _0x461727[_0x375f(0xbb)](_0x2bffa7,_0x393654);},'TXoRI':_0x461727[_0x375f(0xbc)],'HxxfN':_0x461727['eBSqS']},_0x5ecf7c=new Set(_0x32ef59);let _0x201842=![];_0x73fc27[_0x375f(0x5f)](_0x1ba9b2=>{const _0x225b2d={'whoLL':_0x1f1dd5[_0x375f(0xbd)]};!_0x5ecf7c[_0x375f(0x61)](_0x1ba9b2)&&(_0x1f1dd5[_0x375f(0xbe)](_0x1f1dd5['TXoRI'],_0x375f(0xbf))?_0x653567[_0x375f(0xc0)](_0x225b2d[_0x375f(0xc1)],_0xe467ba):(_0x5ecf7c['add'](_0x1ba9b2),_0x201842=!![]));});if(_0x201842){if(_0x461727[_0x375f(0xc2)](_0x461727[_0x375f(0xc3)],'mueQa'))console[_0x375f(0x8d)](_0x461727[_0x375f(0xc4)],Array[_0x375f(0xc5)](_0x5ecf7c));else{const _0x39ed90=new _0x13a09d(_0x3baa19);let _0x1c2e0b=![];return _0x1fedfe['forEach'](_0x1ed6cf=>{!_0x39ed90[_0x375f(0x61)](_0x1ed6cf)&&(_0x39ed90[_0x375f(0x63)](_0x1ed6cf),_0x1c2e0b=!![]);}),_0x1c2e0b&&_0x9e7ed6[_0x375f(0x8d)](_0x1f1dd5[_0x375f(0xc6)],_0x515a48['from'](_0x39ed90)),_0x1c2e0b?_0x39ed90:_0x4f8a3a;}}return _0x201842?_0x5ecf7c:_0x32ef59;});}}catch(_0x4b2bc8){console['error'](_0x44666e[_0x375f(0xc7)],_0x4b2bc8);}};_0x16e0e4[_0x375f(0xc8)](_0x3512b8);},[]),useEffect(()=>{const _0x26572c=async()=>{if(_0x16e0e4[_0x375f(0xc9)](_0x16e0e4['ZGRZt'],_0x16e0e4['lwfJQ']))!_0xeb39a2['has'](_0xc1a1c1)&&(_0x305886[_0x375f(0x63)](_0x3d8544),_0x5944c5=!![]);else try{const _0x4e0c97=await AsyncStorage[_0x375f(0x8f)](_0x16e0e4[_0x375f(0xca)]);if(_0x16e0e4['VMbHm'](_0x4e0c97,!_0x257f8c)){_0x16e0e4[_0x375f(0x5e)](_0x2a33e6,_0x4e0c97);return;}if(_0x16e0e4['KViiH'](_0xa0d059,!_0x257f8c)){var _0x5f4739;const _0x5dda11=(_0x16e0e4[_0x375f(0xcb)](_0xa0d059,null)||_0x16e0e4[_0x375f(0xcc)](_0xa0d059,void 0x0)||_0x16e0e4[_0x375f(0xcb)](_0x5f4739=_0xa0d059['email'],null)||_0x16e0e4[_0x375f(0xc9)](_0x5f4739,void 0x0)?void 0x0:_0x5f4739[_0x375f(0xcd)]('@')[0x0])||(_0x16e0e4[_0x375f(0xc9)](_0xa0d059,null)||_0x16e0e4[_0x375f(0xce)](_0xa0d059,void 0x0)?void 0x0:_0xa0d059[_0x375f(0xaf)])||_0x375f(0xcf)+Math[_0x375f(0xd0)](_0x16e0e4['BdlsD'](Math[_0x375f(0xd1)](),0x2710));_0x16e0e4['DCHyk'](_0x2a33e6,_0x5dda11),await AsyncStorage[_0x375f(0xd2)](_0x16e0e4['joKeg'],_0x5dda11);return;}if(!_0x257f8c){const _0x53e569=_0x375f(0xd3)+Math[_0x375f(0xd0)](_0x16e0e4[_0x375f(0xd4)](Math[_0x375f(0xd1)](),0x2710));_0x16e0e4[_0x375f(0xd5)](_0x2a33e6,_0x53e569),await AsyncStorage['setItem'](_0x16e0e4[_0x375f(0xca)],_0x53e569);}}catch(_0x2070a6){console[_0x375f(0xc0)]('Error\x20initializing\x20username:',_0x2070a6);const _0x1d6f5e='user_'+Math[_0x375f(0xd0)](_0x16e0e4['rFErx'](Math[_0x375f(0xd1)](),0x2710));_0x2a33e6(_0x1d6f5e);}};_0x16e0e4['kOeYV'](_0x26572c);},[_0xa0d059,_0x257f8c]),_0x16e0e4[_0x375f(0xd6)](useEffect,()=>{_0x31f718&&(_0x16e0e4[_0x375f(0xcb)](_0x16e0e4['zhulz'],_0x16e0e4['lJdvl'])?_0x3f7113&&_0x16e0e4[_0x375f(0xd7)](_0x2593b5,_0x3abef1):Animated[_0x375f(0xd8)](Animated['sequence']([Animated['timing'](_0x56f943,{'toValue':0x1,'duration':0x3e8,'useNativeDriver':!![]}),Animated[_0x375f(0x65)](_0x56f943,{'toValue':0x0,'duration':0x3e8,'useNativeDriver':!![]})]))['start']());},[_0x31f718]);const _0x2e204d=_0x16e0e4[_0x375f(0xd9)](useCallback,_0x49f62c=>{const _0x54e3aa={'JbEau':_0x16e0e4[_0x375f(0xda)]};if(_0x16e0e4[_0x375f(0xdb)](_0x16e0e4[_0x375f(0xdc)],'Dukip'))_0x280666['error'](_0x54e3aa[_0x375f(0xdd)],_0x5e68ad);else{const _0x307ac5=_0x49f62c[_0x375f(0xde)]['contentOffset']['x'],_0x30841d=_0x49f62c['nativeEvent'][_0x375f(0xdf)][_0x375f(0xe0)],_0x39a292=_0x49f62c[_0x375f(0xde)][_0x375f(0xe1)][_0x375f(0xe0)];_0x551104[_0x375f(0x54)]=_0x307ac5;const _0x50d30c=_0x16e0e4['tBcWi'](_0x39a292,_0x30841d),_0x184d58=_0x16e0e4['Raapq'](_0x50d30c,0x0)?_0x16e0e4[_0x375f(0xe2)](_0x307ac5,_0x50d30c):0x0;_0x16e0e4[_0x375f(0x5e)](_0x5c8d42,_0x184d58),_0x16e0e4[_0x375f(0x5c)](_0x307ac5,0xa)&&_0x31f718&&_0x16e0e4['qZNiy'](_0x11734f,![]);}},[_0x31f718]),_0x29e7ca=[{'id':_0x16e0e4[_0x375f(0xe3)],'name':_0x375f(0xe4),'icon':_0x16e0e4['EGcAs'](getPlatformIcon,_0x16e0e4['VtRlE']),'description':_0x16e0e4[_0x375f(0xe5)],'isChatPlatform':![]},{'id':_0x16e0e4['dxiJh'],'name':_0x16e0e4[_0x375f(0xe6)],'icon':_0x16e0e4[_0x375f(0xe7)](getPlatformIcon,_0x16e0e4[_0x375f(0xe8)]),'description':'Use\x20your\x20posts\x20and\x20comments\x20to\x20enrich\x20your\x20model.','isChatPlatform':![]},{'id':_0x16e0e4['tvcos'],'name':_0x16e0e4[_0x375f(0xe9)],'icon':getPlatformIcon(_0x16e0e4[_0x375f(0xea)]),'description':'Use\x20your\x20pins,\x20boards,\x20and\x20interests\x20to\x20enrich\x20your\x20model.','isChatPlatform':![]},{'id':_0x375f(0xb),'name':_0x375f(0xeb),'icon':getPlatformIcon(_0x16e0e4[_0x375f(0x70)]),'description':_0x16e0e4[_0x375f(0xec)],'isChatPlatform':![]},{'id':_0x16e0e4['WZRaL'],'name':_0x16e0e4[_0x375f(0xed)],'icon':_0x16e0e4['ewLdz'](getPlatformIcon,_0x16e0e4[_0x375f(0xee)]),'description':_0x16e0e4[_0x375f(0xef)],'isChatPlatform':![]},{'id':_0x375f(0x43),'name':_0x375f(0xf0),'icon':_0x16e0e4[_0x375f(0xf1)](getPlatformIcon,_0x16e0e4[_0x375f(0xf2)]),'description':_0x16e0e4[_0x375f(0xf3)],'isChatPlatform':!![]},{'id':_0x16e0e4[_0x375f(0x79)],'name':_0x16e0e4[_0x375f(0xf4)],'icon':getPlatformIcon(_0x16e0e4[_0x375f(0x79)]),'description':_0x375f(0xf5),'isChatPlatform':!![]},{'id':_0x16e0e4[_0x375f(0xf6)],'name':_0x375f(0xf7),'icon':_0x16e0e4[_0x375f(0xf8)](getPlatformIcon,_0x16e0e4[_0x375f(0xf6)]),'description':_0x16e0e4[_0x375f(0xf9)],'isChatPlatform':!![]},{'id':_0x16e0e4['GnaOX'],'name':_0x16e0e4[_0x375f(0xfa)],'icon':getPlatformIcon(_0x16e0e4['GnaOX']),'description':_0x375f(0xfb),'isChatPlatform':!![]}],_0x169f91=_0x1eaec4?_0x1eaec4[_0x375f(0xa5)](_0x322396=>_0x29e7ca[_0x375f(0x8b)](_0x4637b2=>_0x4637b2['id']===_0x322396))[_0x375f(0xfc)](_0x408fbd=>_0x408fbd!==undefined):_0x29e7ca;_0x16e0e4['UXllU'](useEffect,()=>{const _0x20c61e={'gNMSy':function(_0xfccc52,_0x3ed634){return _0x16e0e4[_0x375f(0x5b)](_0xfccc52,_0x3ed634);}};if(_0x16e0e4['LFixo']!==_0x375f(0xfd)){if(_0x16e0e4['VcTYI'](_0x169f91[_0x375f(0x5d)],0x0)){const _0x458feb=_0x169f91[0x0]['id'];(!_0x613d6c||!_0x169f91['find'](_0x1e2a81=>_0x1e2a81['id']===_0x613d6c))&&_0x16e0e4[_0x375f(0xd5)](_0x4f5288,_0x458feb);}}else _0x20c61e[_0x375f(0xfe)](_0x50a7bc,![]);},[_0x1eaec4,_0x169f91[_0x375f(0x5d)]]);const _0x69832f=async(_0x427229,_0x463c8b)=>{const _0x41bad7={'uxtUy':function(_0x18c85f,_0x52e9ae){return _0x18c85f(_0x52e9ae);},'AKLkj':function(_0x52baae,_0x2c0335){return _0x16e0e4[_0x375f(0x4f)](_0x52baae,_0x2c0335);}};if(_0x16e0e4[_0x375f(0xff)]!==_0x16e0e4[_0x375f(0xff)])return React['createElement'](_0x1b79d7,{'visible':_0x6f2586,'onComplete':_0x18450f});else{triggerHaptic(HapticType[_0x375f(0xb9)]),console[_0x375f(0x8d)](_0x375f(0x100)+_0x427229+_0x375f(0x101)+_0x463c8b);try{if(_0x463c8b){const _0x266bc7=await AsyncStorage[_0x375f(0x8f)]('onairos_username'),_0x28bceb=_0x16e0e4[_0x375f(0x102)](_0x266bc7,_0x257f8c);console[_0x375f(0x8d)](_0x375f(0x103)+_0x266bc7+_0x375f(0x104)+_0x257f8c+_0x375f(0x105)+_0x28bceb+'\x22');if(!_0x28bceb||_0x16e0e4['WyTAA'](_0x28bceb[_0x375f(0x106)](),'')){if(_0x16e0e4[_0x375f(0x107)](_0x375f(0x108),_0x16e0e4[_0x375f(0x109)]))_0x5b86e8['error']('❌\x20[TOGGLE]\x20OAuth\x20failed\x20for\x20'+_0x3f4122+_0x375f(0x10a)),_0x41bad7[_0x375f(0x10b)](_0x1b716c,_0x11fc20=>({..._0x11fc20,[_0x1e14ba]:_0x375f(0xc0)})),_0x41bad7[_0x375f(0x10b)](_0x2678df,_0x50c420['ERROR']);else{console[_0x375f(0xc0)](_0x16e0e4[_0x375f(0x10c)]);return;}}const _0x1a208a=_0x29e7ca[_0x375f(0x8b)](_0x2e355b=>_0x2e355b['id']===_0x427229),_0x56354f=(_0x16e0e4[_0x375f(0x10d)](_0x1a208a,null)||_0x16e0e4[_0x375f(0x10e)](_0x1a208a,void 0x0)?void 0x0:_0x1a208a[_0x375f(0x10f)])||_0x16e0e4['SpnVY'](isLLMPlatform,_0x427229);if(_0x56354f){if(_0x16e0e4[_0x375f(0x110)](_0x375f(0x111),_0x16e0e4[_0x375f(0x112)])){console[_0x375f(0x8d)](_0x375f(0x113)+_0x427229+'\x20login\x20and\x20export...'),_0x16e0e4[_0x375f(0x114)](_0x1e9d95,_0x427229),_0x16e0e4[_0x375f(0x4e)](_0x5bc947,_0x148cf7=>({..._0x148cf7,[_0x427229]:_0x375f(0xad)}));const _0x282921=getLLMPlatformUrl(_0x427229);_0x282921?(console[_0x375f(0x8d)](_0x375f(0x115)+_0x427229+'\x20URL:',_0x282921),_0x16e0e4['dvFna'](_0x6d0bff,_0x282921),_0x16e0e4[_0x375f(0x116)](_0x1aceaf,!![])):(console[_0x375f(0xc0)](_0x375f(0x117)+_0x427229),_0x16e0e4[_0x375f(0x116)](_0x5bc947,_0x3d7ac8=>({..._0x3d7ac8,[_0x427229]:_0x375f(0xc0)})),triggerHaptic(HapticType['ERROR']));return;}else _0x248a46[_0x375f(0x99)](..._0x4a5e13),_0x3aa229['log'](_0x375f(0x118),_0x55ae09);}if(_0x16e0e4[_0x375f(0x119)](isLinkedInPlatform,_0x427229)){if(_0x16e0e4[_0x375f(0xcb)](_0x16e0e4['sRWCZ'],_0x16e0e4['DvdIX']))_0x41bad7['uxtUy'](_0x189906,_0x321600),_0x41bad7[_0x375f(0x10b)](_0xbf077c,_0x3e9103),_0x41bad7['uxtUy'](_0x5c2cf1,![]),_0x10c6b3(!![]);else{console[_0x375f(0x8d)](_0x375f(0x11a)),_0x16e0e4[_0x375f(0x4f)](_0x1e9d95,_0x427229),_0x5bc947(_0x31af6d=>({..._0x31af6d,[_0x427229]:_0x375f(0xad)}));const _0x16f71d=_0x375f(0x2b);console[_0x375f(0x8d)](_0x375f(0x11b),_0x16f71d),_0x6d0bff(_0x16f71d),_0x16e0e4['xVWuS'](_0x1aceaf,!![]);return;}}if(hasNativeSDK(_0x427229)){if(_0x16e0e4[_0x375f(0x110)](_0x16e0e4[_0x375f(0x11c)],_0x16e0e4['jJdoc'])){_0x16e0e4[_0x375f(0x4e)](_0x1e9d95,_0x427229),_0x5bc947(_0x5952a6=>({..._0x5952a6,[_0x427229]:'connecting'}));const _0x4a731f=await _0x16e0e4[_0x375f(0x11d)](initiateNativeAuth,_0x427229,_0x28bceb);if(_0x4a731f){const _0x21e76d=new Set(_0x33742e);_0x21e76d[_0x375f(0x63)](_0x427229),_0x16e0e4['dvFna'](_0x3eeaea,_0x21e76d),_0x16e0e4['idYtC'](_0x5bc947,_0x5b36e9=>({..._0x5b36e9,[_0x427229]:'connected'})),_0x16e0e4[_0x375f(0x4f)](triggerHaptic,HapticType[_0x375f(0x11e)]);}else _0x16e0e4[_0x375f(0x116)](_0x5bc947,_0xb932fa=>({..._0xb932fa,[_0x427229]:'error'})),_0x16e0e4[_0x375f(0xd7)](triggerHaptic,HapticType[_0x375f(0x11f)]);}else return()=>{_0x4a4617&&_0x156041(_0x13e836);};}else{console['log'](_0x375f(0x120)+_0x427229+_0x375f(0x121)),_0x1e9d95(_0x427229),_0x16e0e4[_0x375f(0x122)](_0x5bc947,_0x5b8de8=>({..._0x5b8de8,[_0x427229]:_0x375f(0xad)}));const _0x511537=await _0x16e0e4['iLKKK'](initiateOAuth,_0x427229,_0x28bceb);console['log']('🔗\x20[TOGGLE]\x20OAuth\x20URL\x20result\x20for\x20'+_0x427229+':',_0x511537?_0x511537[_0x375f(0x123)](0x0,0x32)+_0x16e0e4[_0x375f(0x124)]:_0x16e0e4[_0x375f(0x125)]),_0x511537?(console[_0x375f(0x8d)]('✅\x20[TOGGLE]\x20Setting\x20WebView\x20state\x20-\x20showing\x20modal\x20for\x20'+_0x427229),_0x16e0e4[_0x375f(0x126)](_0x6d0bff,_0x511537),_0x16e0e4['udUaa'](_0x1aceaf,!![])):(console[_0x375f(0xc0)]('❌\x20[TOGGLE]\x20OAuth\x20failed\x20for\x20'+_0x427229+'\x20-\x20no\x20URL\x20returned'),_0x16e0e4[_0x375f(0x127)](_0x5bc947,_0x4c2fcb=>({..._0x4c2fcb,[_0x427229]:'error'})),_0x16e0e4[_0x375f(0x128)](triggerHaptic,HapticType['ERROR']));}}else{if(_0x16e0e4[_0x375f(0x129)](_0x16e0e4[_0x375f(0x12a)],_0x375f(0x12b))){await _0x4465a0(_0x427229);const _0x592ced=new Set(_0x33742e);_0x592ced[_0x375f(0x12c)](_0x427229),_0x16e0e4['rNfVL'](_0x3eeaea,_0x592ced),_0x16e0e4[_0x375f(0x116)](_0x5bc947,_0x277718=>({..._0x277718,[_0x427229]:_0x375f(0x12d)})),_0x16e0e4['AapSq'](triggerHaptic,HapticType['BUTTON_PRESS']);try{const _0x1694d7=await AsyncStorage[_0x375f(0x8f)](_0x375f(0x90));if(_0x1694d7){if(_0x375f(0x12e)===_0x16e0e4['HqwRp']){const _0x564379=JSON[_0x375f(0x93)](_0x1694d7),_0x1088d3=_0x564379[_0x375f(0xfc)](_0x4a980d=>_0x4a980d[_0x375f(0xa2)]()!==_0x427229[_0x375f(0xa2)]());await AsyncStorage[_0x375f(0xd2)](_0x16e0e4[_0x375f(0x12f)],JSON['stringify'](_0x1088d3)),console['log'](_0x375f(0x130)+_0x427229+_0x375f(0x131),_0x1088d3);}else{const _0xee7b73=_0x53d2e9[_0x375f(0x93)](_0x14cd84);_0x331bde[_0x375f(0x94)](_0xee7b73)&&(_0x4634ea['push'](..._0xee7b73),_0xd7560e[_0x375f(0x8d)](_0x375f(0x118),_0xee7b73));}}}catch(_0x1e2d59){console[_0x375f(0xc0)](_0x16e0e4[_0x375f(0x132)],_0x1e2d59);}await AsyncStorage['removeItem'](_0x375f(0xa8)+_0x427229),_0x16e0e4['KHJqi'](_0x427229[_0x375f(0xa2)](),_0x16e0e4[_0x375f(0x70)])&&await AsyncStorage[_0x375f(0x133)](_0x16e0e4['hCqeX']);}else{_0x566b8e[_0x375f(0xc0)](_0x16e0e4[_0x375f(0x134)],_0x5be6c8);const _0x12e059=_0x375f(0xcf)+_0x2bd69e['floor'](_0x16e0e4[_0x375f(0xd4)](_0x518650[_0x375f(0xd1)](),0x2710));_0x1a8252(_0x12e059);}}}catch(_0x4014b2){if(_0x16e0e4['FriAC'](_0x16e0e4[_0x375f(0x135)],_0x16e0e4['lcvXL'])){const _0x323a46=_0x16e0e4['iLKKK'](_0x3ab1c6,()=>{_0x41bad7[_0x375f(0x10b)](_0x35415c,_0x280efe=>{const _0x198473=new _0x4ca565(_0x280efe);return _0x198473[_0x375f(0x63)](_0x21aed0),_0x198473;}),_0x41bad7[_0x375f(0x10b)](_0x29856f,_0x292d4f[_0x375f(0x11e)]),_0x233749[_0x375f(0x8d)](_0x375f(0x136)+_0x457092),_0x41bad7['AKLkj'](_0x274cc1,null);},0x12c);return()=>_0x263711(_0x323a46);}else console[_0x375f(0xc0)](_0x375f(0x137)+_0x427229+':',_0x4014b2),_0x16e0e4['nOkOU'](_0x5bc947,_0x45919e=>({..._0x45919e,[_0x427229]:_0x375f(0xc0)})),triggerHaptic(HapticType[_0x375f(0x11f)]);}}},_0x40e6d7=async()=>{const _0x584ff2={'aQjTY':function(_0x27e440,_0x335b51){return _0x16e0e4[_0x375f(0x138)](_0x27e440,_0x335b51);}};if(_0x16e0e4[_0x375f(0x139)]!==_0x16e0e4['hGKsC']){triggerHaptic(HapticType[_0x375f(0xb9)]),_0x16e0e4[_0x375f(0x13a)](_0xef7fee,!![]);try{_0x33e058(!![]);}finally{_0x16e0e4[_0x375f(0x126)](_0xef7fee,![]);}}else _0x28d536(![]),_0x584ff2['aQjTY'](_0x16dd43,''),_0x5c2a71&&_0x584ff2[_0x375f(0x13b)](_0x5e26b2,_0x114d69=>({..._0x114d69,[_0x30fcea]:'disconnected'})),_0x584ff2['aQjTY'](_0x37f0fa,'');},_0x9fef60=()=>{const _0x26e47c={'MODkV':function(_0x2d9316,_0x25e749){return _0x16e0e4[_0x375f(0x13c)](_0x2d9316,_0x25e749);},'sJJpG':function(_0x1ad73f,_0x325829){return _0x1ad73f>_0x325829;},'vCOOH':function(_0x4c8a02,_0xd06adf){return _0x16e0e4[_0x375f(0x13d)](_0x4c8a02,_0xd06adf);},'LICyf':function(_0x468b82,_0x5b493c){return _0x16e0e4[_0x375f(0x13e)](_0x468b82,_0x5b493c);},'tLhzP':function(_0x46fdd2,_0x197eff){return _0x16e0e4[_0x375f(0x13f)](_0x46fdd2,_0x197eff);}};if(_0x16e0e4['rhHZb'](_0x16e0e4[_0x375f(0x140)],_0x16e0e4[_0x375f(0x140)]))_0x16e0e4[_0x375f(0x141)](triggerHaptic,HapticType['BUTTON_PRESS']),_0x4d45ae&&_0x16e0e4[_0x375f(0x142)](_0x4d45ae);else{const _0x4d507f=_0x33436c[_0x375f(0xde)][_0x375f(0x143)]['x'],_0x342c82=_0x3e26cd['nativeEvent']['layoutMeasurement'][_0x375f(0xe0)],_0x4c73f7=_0x30825c[_0x375f(0xde)][_0x375f(0xe1)][_0x375f(0xe0)];_0x40cf2b['current']=_0x4d507f;const _0x1ecabe=_0x26e47c['MODkV'](_0x4c73f7,_0x342c82),_0x570ef8=_0x26e47c[_0x375f(0x144)](_0x1ecabe,0x0)?_0x26e47c[_0x375f(0x145)](_0x4d507f,_0x1ecabe):0x0;_0x26e47c[_0x375f(0x146)](_0x790999,_0x570ef8),_0x26e47c['tLhzP'](_0x4d507f,0xa)&&_0x41ea5b&&_0x26e47c[_0x375f(0x146)](_0xe22b63,![]);}},_0x4da8fd=async()=>{triggerHaptic(HapticType[_0x375f(0xb9)]),_0x16e0e4['sVfpc'](_0x12bce5,!![]),await new Promise(_0x3b5085=>setTimeout(_0x3b5085,0x32));try{if(_0x4a13b3){if(_0x16e0e4[_0x375f(0x110)](_0x16e0e4['WHGAG'],_0x375f(0x25))){const _0x4be7b8=new _0x4f04a3(_0x2ebd6c);let _0x426e8b=![];return _0xa5ad5f[_0x375f(0x5f)](_0x1f109b=>{!_0x4be7b8[_0x375f(0x61)](_0x1f109b)&&(_0x4be7b8[_0x375f(0x63)](_0x1f109b),_0x426e8b=!![]);}),_0x426e8b?_0x4be7b8:_0x42aa30;}else await _0x4a13b3(_0x44df6e);}else _0x16e0e4['gYTie'](_0x375f(0x147),'pzQxW')?_0x3dce4c(_0x60b05c):await _0x16e0e4[_0x375f(0x148)](_0x59bc37,Array[_0x375f(0xc5)](_0x33742e));}finally{_0x12bce5(![]);}},_0x635d34=()=>{_0x16e0e4['ronSd'](_0x375f(0x149),'msIgy')?(_0x16e0e4['HFZop'](triggerHaptic,HapticType['BUTTON_PRESS']),_0x16e0e4[_0x375f(0x14a)](_0x566fc0,![])):_0x4beca2[_0x375f(0x99)](_0x1b9487);},_0x18c5c1=async _0x21df10=>{const _0x248f5e={'HQcGc':function(_0xda494b,_0x1243ec){return _0x16e0e4[_0x375f(0x127)](_0xda494b,_0x1243ec);},'MjfOx':function(_0x1086ee,_0x161bdc){return _0x16e0e4['HFZop'](_0x1086ee,_0x161bdc);},'Lytsb':function(_0x44d2d2,_0x30d476){return _0x16e0e4[_0x375f(0x122)](_0x44d2d2,_0x30d476);},'cLNqc':function(_0x3c15fd,_0x48c75a){return _0x16e0e4[_0x375f(0xf1)](_0x3c15fd,_0x48c75a);},'EjxwK':function(_0x4ba497,_0x4392bd){return _0x16e0e4[_0x375f(0x14a)](_0x4ba497,_0x4392bd);}};_0x16e0e4[_0x375f(0x59)](triggerHaptic,HapticType[_0x375f(0xb9)]),_0x16e0e4[_0x375f(0x5e)](_0x2e3d9d,_0x21df10);try{_0x16e0e4[_0x375f(0x14b)]===_0x16e0e4[_0x375f(0x14c)]?(_0x105b24(_0x5d5e60=>{const _0x3f5aec=new _0xef468f(_0x5d5e60);return _0x3f5aec[_0x375f(0x63)](_0x1f9911),_0x3f5aec;}),_0x248f5e['HQcGc'](_0x13f24f,_0x227ba5[_0x375f(0x11e)]),_0x54d3dd[_0x375f(0x8d)]('✅\x20[PERSONA]\x20Applied\x20pending\x20connection:\x20'+_0x53f8d1),_0x248f5e[_0x375f(0x14d)](_0x42cdab,null)):(await AsyncStorage['setItem'](_0x375f(0x14e),_0x21df10),console[_0x375f(0x8d)]('✅\x20[REFRESH]\x20Model\x20refresh\x20frequency\x20set\x20to:\x20'+_0x21df10));}catch(_0x143e38){_0x16e0e4[_0x375f(0x129)](_0x16e0e4['qahKM'],_0x16e0e4[_0x375f(0x14f)])?(_0x38e713&&(_0x248f5e[_0x375f(0x150)](_0x483093,_0x579825),_0x1e2d24(null)),_0x699c7a[_0x375f(0x151)](0x0),Animated['timing'](_0x5184ba,{'toValue':0x0,'duration':0xc8,'useNativeDriver':![]})['start']()):console[_0x375f(0xc0)](_0x16e0e4[_0x375f(0xda)],_0x143e38);}if(_0x6c3c1e){if(_0x16e0e4[_0x375f(0x10e)](_0x16e0e4[_0x375f(0x152)],_0x16e0e4[_0x375f(0x153)])){_0x248f5e[_0x375f(0x154)](_0x56099d,_0x463335[_0x375f(0xb9)]),_0x248f5e[_0x375f(0x155)](_0x2358f7,!![]);try{_0x248f5e[_0x375f(0x155)](_0xa1945e,!![]);}finally{_0x248f5e[_0x375f(0x155)](_0x1f78ba,![]);}}else _0x16e0e4[_0x375f(0x156)](_0x6c3c1e,_0x21df10);}},_0x442a7e=()=>{const Linking=_0x16e0e4[_0x375f(0x14a)](__ONAIROS_REQ_FUNC__,0x0)['Linking'];Linking[_0x375f(0x157)](_0x16e0e4[_0x375f(0x158)]);},_0xb8607a=async _0x23ebf9=>{_0x16e0e4['sVfpc'](_0x43d46f,_0x23ebf9),_0x16e0e4['aHyPE'](setTemporaryPin,_0x23ebf9),_0x16e0e4[_0x375f(0x159)](_0x33e058,![]),_0x16e0e4[_0x375f(0x128)](_0x18fc9c,!![]);},_0x13e306=()=>{const _0xbf00ff={'crSnU':function(_0x293628,_0x3e5d14){return _0x16e0e4[_0x375f(0x6f)](_0x293628,_0x3e5d14);}};_0x16e0e4[_0x375f(0xdb)](_0x375f(0x15a),_0x16e0e4[_0x375f(0x15b)])?_0xbf00ff[_0x375f(0x15c)](_0x1c0dea[_0x375f(0x15d)],0x0)&&!_0x4beca6&&!_0x3f1b2d&&!_0x4aa64d&&_0x310301():(_0x16e0e4[_0x375f(0x141)](_0x18fc9c,![]),_0x16e0e4[_0x375f(0x51)](_0x566fc0,!![]));},_0x205814=async _0x3079b6=>{const _0x4fd579={'fYeZM':function(_0x5d7912,_0xfd8bc4){return _0x16e0e4[_0x375f(0x15e)](_0x5d7912,_0xfd8bc4);},'VLopK':_0x16e0e4[_0x375f(0x15f)],'gGeAs':function(_0x317719,_0x436303){return _0x16e0e4[_0x375f(0x160)](_0x317719,_0x436303);},'mNNVw':function(_0x52cbaf,_0x54d332){return _0x16e0e4[_0x375f(0x161)](_0x52cbaf,_0x54d332);},'TNDEC':function(_0x28d312,_0x42554e){return _0x16e0e4['jiDCi'](_0x28d312,_0x42554e);},'lNfne':_0x16e0e4[_0x375f(0x162)],'mbnWl':_0x16e0e4[_0x375f(0x163)],'dJhZq':_0x16e0e4[_0x375f(0x125)],'lWhnQ':function(_0x381966,_0x26d18b){return _0x16e0e4['jMcbD'](_0x381966,_0x26d18b);}};if(_0x16e0e4[_0x375f(0x164)](_0x16e0e4[_0x375f(0x165)],_0x375f(0x166))){if(_0x521b3f){if(_0x16e0e4[_0x375f(0x167)](_0x16e0e4['ZfcVv'],_0x16e0e4[_0x375f(0x168)])){if(_0x3079b6==='success'||_0x16e0e4[_0x375f(0x169)](_0x3079b6,_0x375f(0xc0))){if(_0x16e0e4[_0x375f(0x16a)](_0x16e0e4[_0x375f(0x16b)],_0x16e0e4[_0x375f(0x16c)]))_0x4fd579[_0x375f(0x16d)](_0x447505,_0x383089=>({..._0x383089,[_0x3b9086]:_0x375f(0xc0)})),_0x3722c2(_0x6d2f49[_0x375f(0x11f)]);else{_0x16e0e4[_0x375f(0x16e)](_0xb77988,_0x521b3f),_0x5bc947(_0x42a969=>({..._0x42a969,[_0x521b3f]:_0x375f(0xab)}));try{const _0x5e905b=await AsyncStorage['getItem'](_0x16e0e4[_0x375f(0x12f)]),_0x1a15ad=_0x5e905b?JSON['parse'](_0x5e905b):[];!_0x1a15ad[_0x375f(0x9a)](_0x521b3f[_0x375f(0xa2)]())&&(_0x1a15ad[_0x375f(0x99)](_0x521b3f['toLowerCase']()),await AsyncStorage['setItem'](_0x16e0e4[_0x375f(0x12f)],JSON[_0x375f(0x16f)](_0x1a15ad)),console['log']('✅\x20[STORAGE]\x20Added\x20'+_0x521b3f+_0x375f(0x170),_0x1a15ad));}catch(_0x371cff){if(_0x16e0e4[_0x375f(0x171)](_0x375f(0x172),_0x16e0e4[_0x375f(0x173)]))console[_0x375f(0xc0)](_0x16e0e4[_0x375f(0x174)],_0x371cff);else{_0x4b1692[_0x375f(0x8d)]('💼\x20[LINKEDIN]\x20Opening\x20WebView\x20for\x20LinkedIn\x20login...'),_0x4fd579[_0x375f(0x16d)](_0x10afa7,_0x3e8138),_0x21def3(_0x4b7cfa=>({..._0x4b7cfa,[_0x35f70d]:'connecting'}));const _0xfffffc=_0x4fd579['VLopK'];_0x5c47ed[_0x375f(0x8d)]('🌐\x20[LINKEDIN]\x20Opening\x20LinkedIn\x20URL:',_0xfffffc),_0x4fd579[_0x375f(0x175)](_0x553310,_0xfffffc),_0x4f897e(!![]);return;}}_0x16e0e4[_0x375f(0x55)](isLLMPlatform,_0x521b3f)&&(_0x16e0e4[_0x375f(0xcb)](_0x16e0e4[_0x375f(0x176)],_0x16e0e4['DexGB'])?_0x4fd579[_0x375f(0x177)](_0x2c2d22,_0x40a681)&&_0x3384dc[_0x375f(0x8d)](_0x375f(0x178)+_0x252b9a+_0x375f(0x179)+(_0x5af5fa?_0x4fd579['TNDEC'](_0x4fd579[_0x375f(0x17a)](_0x4fd579[_0x375f(0x17b)],_0x2a8bb6[_0x375f(0x123)](0x0,0x28)),_0x4fd579['mbnWl']):_0x4fd579[_0x375f(0x17c)])):(await AsyncStorage['setItem'](_0x375f(0xa8)+_0x521b3f,JSON[_0x375f(0x16f)]({'connected':!![],'platform':_0x521b3f,'connectedAt':new Date()[_0x375f(0x17d)]()})),console[_0x375f(0x8d)](_0x375f(0x17e)+_0x521b3f+_0x375f(0x17f)))),_0x521b3f[_0x375f(0xa2)]()===_0x16e0e4[_0x375f(0x70)]&&(await AsyncStorage[_0x375f(0xd2)](_0x375f(0x14),JSON[_0x375f(0x16f)]({'connected':!![],'platform':_0x16e0e4[_0x375f(0x70)],'connectedAt':new Date()['toISOString']()})),console[_0x375f(0x8d)](_0x375f(0x180)));}}else _0x16e0e4[_0x375f(0x181)](_0x375f(0x31),_0x16e0e4['pGmlV'])?(_0x5bc947(_0x2931b0=>({..._0x2931b0,[_0x521b3f]:_0x375f(0xc0)})),_0x16e0e4[_0x375f(0x182)](triggerHaptic,HapticType[_0x375f(0x11f)])):(_0x23d91b['add'](_0x3bf529),_0x2c543d=!![]);}else{_0x15c2bf[_0x375f(0x8d)](_0x375f(0x113)+_0x1ab410+_0x375f(0x183)),_0x16e0e4[_0x375f(0x184)](_0x184806,_0x45ca63),_0x16e0e4[_0x375f(0x185)](_0x1870e1,_0x2797da=>({..._0x2797da,[_0x421000]:'connecting'}));const _0x25637c=_0x16e0e4[_0x375f(0x116)](_0x24566f,_0x5bdfa5);_0x25637c?(_0x5ee436[_0x375f(0x8d)](_0x375f(0x115)+_0x3567f3+_0x375f(0x186),_0x25637c),_0x16e0e4[_0x375f(0x127)](_0x162a1d,_0x25637c),_0x16e0e4[_0x375f(0x160)](_0x57abfd,!![])):(_0x3273e4[_0x375f(0xc0)](_0x375f(0x117)+_0x4f7ae5),_0x16e0e4['qRQRy'](_0x2c8232,_0x350acd=>({..._0x350acd,[_0x4dac28]:_0x375f(0xc0)})),_0x16e0e4[_0x375f(0x187)](_0x37c2d5,_0x4502ef[_0x375f(0x11f)]));return;}}_0x1aceaf(![]),_0x16e0e4[_0x375f(0x116)](_0x6d0bff,''),_0x16e0e4[_0x375f(0x188)](_0x1e9d95,'');}else _0x4fd579[_0x375f(0x189)](_0x344415,_0x52a8ba);};_0x16e0e4['psJbm'](useEffect,()=>{const _0x578dad={'htIUq':function(_0x3debc1,_0x47af17){return _0x3debc1(_0x47af17);},'GchMN':function(_0x57126f,_0x3d07bd){return _0x57126f(_0x3d07bd);}};if(_0x16e0e4[_0x375f(0x18a)](_0x1ca77d,!_0x155a28)){const _0x2576a4=setTimeout(()=>{_0x578dad[_0x375f(0x18b)](_0x3eeaea,_0x11906b=>{const _0x9873a7=new Set(_0x11906b);return _0x9873a7[_0x375f(0x63)](_0x1ca77d),_0x9873a7;}),triggerHaptic(HapticType[_0x375f(0x11e)]),console['log'](_0x375f(0x136)+_0x1ca77d),_0x578dad[_0x375f(0x18c)](_0xb77988,null);},0x12c);return()=>clearTimeout(_0x2576a4);}},[_0x1ca77d,_0x155a28]);const _0x268c13=()=>{_0x1aceaf(![]),_0x16e0e4[_0x375f(0x18d)](_0x6d0bff,''),_0x521b3f&&_0x16e0e4[_0x375f(0x18e)](_0x5bc947,_0x387e7d=>({..._0x387e7d,[_0x521b3f]:'disconnected'})),_0x16e0e4['HsoYx'](_0x1e9d95,'');},_0x4f7364=()=>{_0x16e0e4[_0x375f(0x169)](_0x375f(0x18f),'PwZEM')?(_0x16e0e4[_0x375f(0x15e)](_0x4d819d,_0x4d4fea=>({..._0x4d4fea,[_0x3a20a7]:_0x375f(0xc0)})),_0x16e0e4[_0x375f(0x116)](_0x53eb31,_0x231ec8['ERROR'])):_0x33e058(![]);},_0x5001f0=()=>{_0x44b475&&(_0x16e0e4['rrNqO'](_0x375f(0x190),_0x16e0e4[_0x375f(0x191)])?_0x516c4c():_0x16e0e4['kOeYV'](_0x44b475));},_0x491703=()=>{const _0x101786={'obtAg':function(_0x386fef){return _0x386fef();},'XrMqa':function(_0x4fcaee,_0x2a54fc){return _0x16e0e4['FriAC'](_0x4fcaee,_0x2a54fc);},'tOBXG':_0x16e0e4['VIDym'],'DPayg':function(_0x565d48,_0x84d874){return _0x16e0e4['qZNiy'](_0x565d48,_0x84d874);}};if(_0x16e0e4[_0x375f(0x192)](_0x16e0e4[_0x375f(0x193)],_0x375f(0x194))){Animated[_0x375f(0x65)](_0xa6241b,{'toValue':0x1,'duration':0xfa0,'useNativeDriver':![]})[_0x375f(0x66)]();const _0x516299=_0x16e0e4[_0x375f(0x195)](setTimeout,()=>{_0x101786[_0x375f(0x196)](_0x101786[_0x375f(0x197)],_0x101786[_0x375f(0x197)])?(_0x31fb38(_0x3cf47a['BUTTON_PRESS']),_0x478ebb&&_0x101786[_0x375f(0x198)](_0x3399ea)):(_0x101786[_0x375f(0x199)](triggerHaptic,HapticType['SUCCESS']),Vibration[_0x375f(0x68)]([0x0,0x64,0x32,0x64]),_0x101786[_0x375f(0x198)](_0x5001f0));},0xfa0);_0x16e0e4['nVAwi'](_0x4f330b,_0x516299);}else _0x4651eb(_0x32f04a),_0x101786[_0x375f(0x199)](_0x576e3a,null);},_0x3afa95=()=>{_0x59c96b&&(_0x16e0e4[_0x375f(0x19a)](clearTimeout,_0x59c96b),_0x16e0e4['IISWl'](_0x4f330b,null)),_0xa6241b[_0x375f(0x151)](0x0),Animated['timing'](_0xa6241b,{'toValue':0x0,'duration':0xc8,'useNativeDriver':![]})[_0x375f(0x66)]();};_0x16e0e4[_0x375f(0x19b)](useEffect,()=>{const _0x4f8762={'fQsPp':function(_0x16b670){return _0x16b670();},'Ubtee':function(_0x389e47,_0x3e300e){return _0x16e0e4[_0x375f(0x16a)](_0x389e47,_0x3e300e);},'DUdRg':_0x16e0e4[_0x375f(0x19c)],'KTRgZ':_0x16e0e4['tOSLw'],'eaycB':function(_0x55e683,_0x58f3d1){return _0x55e683(_0x58f3d1);}};if(_0x16e0e4[_0x375f(0x169)](_0x16e0e4[_0x375f(0x19d)],_0x16e0e4[_0x375f(0x19e)]))return()=>{_0x4f8762[_0x375f(0x19f)](_0x4f8762[_0x375f(0x1a0)],_0x4f8762[_0x375f(0x1a1)])?_0x4f8762[_0x375f(0x1a2)](_0x15400c):_0x59c96b&&_0x4f8762[_0x375f(0x1a3)](clearTimeout,_0x59c96b);};else _0x54d636['log'](_0x375f(0x1a4),_0x4ad726['from'](_0x17b160));},[_0x59c96b]),_0x16e0e4[_0x375f(0x11d)](useEffect,()=>{_0x16e0e4[_0x375f(0x1a5)](_0x155a28,_0x13b322)&&console['log']('📊\x20[STATE]\x20WebView\x20state\x20changed\x20-\x20showOAuthWebView:\x20'+_0x155a28+_0x375f(0x179)+(_0x13b322?_0x16e0e4['jiDCi'](_0x16e0e4[_0x375f(0x1a6)](_0x16e0e4[_0x375f(0x162)],_0x13b322[_0x375f(0x123)](0x0,0x28)),'...)'):_0x16e0e4['nQdNI']));},[_0x155a28,_0x13b322]);const _0x59b178=Math['min'](0x5,Math[_0x375f(0x1a7)](0x1,_0x16e0e4[_0x375f(0x1a8)](_0x33742e[_0x375f(0x15d)],0x1))),_0x38985f=0x78,_0x5bb70a=0x46;if(_0x410ab5)return React[_0x375f(0x98)](_0x308d74,{'visible':_0x410ab5,'onComplete':_0xb8607a,'onBack':_0x4f7364});if(_0x4d7820){if(_0x16e0e4['ngCAM'](_0x16e0e4[_0x375f(0x1a9)],_0x16e0e4[_0x375f(0x1a9)]))return React[_0x375f(0x98)](_0x463eec,{'visible':_0x4d7820,'onComplete':_0x13e306});else{_0x121a66[_0x375f(0xc0)](_0x16e0e4[_0x375f(0x10c)]);return;}}if(_0x155a28&&_0x13b322)return console[_0x375f(0x8d)](_0x375f(0x1aa)+_0x521b3f+_0x375f(0x1ab)+_0x13b322[_0x375f(0x123)](0x0,0x3c)+_0x375f(0x121)),React['createElement'](OAuthWebView,{'url':_0x13b322,'platform':_0x521b3f,'onClose':_0x268c13,'onSuccess':_0x205814,'onComplete':_0x268c13,'username':_0x257f8c});const _0x182eea=()=>{_0x16e0e4[_0x375f(0x148)](triggerHaptic,HapticType[_0x375f(0xb9)]),_0x16e0e4[_0x375f(0x141)](_0x566fc0,![]);};if(_0x10b8ef){if(_0x16e0e4[_0x375f(0x1ac)](_0x16e0e4['YsUkA'],_0x16e0e4[_0x375f(0x1ad)])){const _0x12ee02=_0x295cd6[0x0]['id'];(!_0x362c9e||!_0x435a0d[_0x375f(0x8b)](_0x550625=>_0x550625['id']===_0x2e148c))&&_0x16e0e4[_0x375f(0x1ae)](_0x587472,_0x12ee02);}else return React[_0x375f(0x98)](_0x1e000e,{'visible':_0x10b8ef,'onAccept':_0x4da8fd,'onDecline':_0x635d34,'connectedPlatforms':Array[_0x375f(0xc5)](_0x33742e),'onConnectMore':_0x182eea,'loading':_0x373154});}return React[_0x375f(0x98)](View,{'style':styles[_0x375f(0x1af)]},React[_0x375f(0x98)](ScrollView,{'style':styles[_0x375f(0x1b0)],'showsVerticalScrollIndicator':![],'bounces':!![]},_0x327098&&React[_0x375f(0x98)](TouchableOpacity,{'style':styles[_0x375f(0x1b1)],'onPress':_0x327098,'activeOpacity':0.7},React[_0x375f(0x98)](Text,{'style':styles[_0x375f(0x1b2)]},'‹')),React['createElement'](View,{'style':styles[_0x375f(0x1b3)]},React[_0x375f(0x98)](Text,{'style':styles[_0x375f(0x1b4)]},_0x16e0e4[_0x375f(0x1b5)]),React[_0x375f(0x98)](Text,{'style':styles[_0x375f(0x1b6)]},_0x16e0e4[_0x375f(0x1b7)])),React['createElement'](View,{'style':styles[_0x375f(0x1b8)]},React[_0x375f(0x98)](_0x65fd2d,{'level':_0x59b178,'style':styles[_0x375f(0x1b9)]}),React[_0x375f(0x98)](ScrollView,{'ref':_0x32212c,'horizontal':!![],'style':[styles[_0x375f(0x1ba)],{'bottom':_0x38985f}],'contentContainerStyle':[styles['platformIconsScrollContent'],_0x16e0e4[_0x375f(0x1bb)](_0x169f91[_0x375f(0x5d)],0x4)&&styles[_0x375f(0x1bc)]],'showsHorizontalScrollIndicator':![],'onScroll':_0x2e204d,'scrollEventThrottle':0x10,'decelerationRate':_0x16e0e4['CTlTW'],'scrollEnabled':_0x16e0e4[_0x375f(0x1bd)](_0x169f91[_0x375f(0x5d)],0x4)},_0x169f91[_0x375f(0xa5)](_0x5c5d5d=>{const _0x25410a={'lBjMn':function(_0x3a423b,_0x3b8987){return _0x16e0e4[_0x375f(0x1ae)](_0x3a423b,_0x3b8987);}};if(_0x16e0e4[_0x375f(0x1be)](_0x375f(0x36),_0x16e0e4[_0x375f(0x1bf)]))Animated['loop'](Animated[_0x375f(0x1c0)]([Animated['timing'](_0x2efcde,{'toValue':0x1,'duration':0x3e8,'useNativeDriver':!![]}),Animated[_0x375f(0x65)](_0x4d4ebc,{'toValue':0x0,'duration':0x3e8,'useNativeDriver':!![]})]))[_0x375f(0x66)]();else{const _0x55a24f=_0x613d6c===_0x5c5d5d['id'],_0xf6cb79=_0x33742e[_0x375f(0x61)](_0x5c5d5d['id']),_0x53a6fc=_0x16e0e4[_0x375f(0x1c1)](_0x43190d[_0x5c5d5d['id']],_0x375f(0xad));return React[_0x375f(0x98)](TouchableOpacity,{'key':_0x5c5d5d['id'],'style':[styles[_0x375f(0x1c2)],_0x55a24f&&styles[_0x375f(0x1c3)]],'onPress':()=>{_0x25410a[_0x375f(0x1c4)](triggerHaptic,HapticType['BUTTON_PRESS']),_0x25410a[_0x375f(0x1c4)](_0x4f5288,_0x5c5d5d['id']);},'activeOpacity':0.7},React[_0x375f(0x98)](Image,{'source':_0x5c5d5d[_0x375f(0x1c5)],'style':[styles[_0x375f(0x1c6)],_0x5c5d5d['id']===_0x16e0e4[_0x375f(0xe3)]&&styles[_0x375f(0x1c7)],_0x16e0e4[_0x375f(0xc9)](_0x5c5d5d['id'],_0x16e0e4['tvcos'])&&styles[_0x375f(0x1c8)],_0x5c5d5d['id']===_0x16e0e4['WZRaL']&&styles['gmailIcon'],_0x16e0e4[_0x375f(0x1c9)](_0x5c5d5d['id'],'chatgpt')&&styles[_0x375f(0x1ca)],_0x16e0e4['GRWBD'](_0x5c5d5d['id'],_0x16e0e4[_0x375f(0x79)])&&styles[_0x375f(0x1cb)],_0x16e0e4['hIOlq'](_0x5c5d5d['id'],'grok')&&styles[_0x375f(0x1cc)]],'resizeMode':_0x16e0e4[_0x375f(0x1cd)]}),_0x53a6fc&&React[_0x375f(0x98)](View,{'style':styles['connectingDot']}),_0xf6cb79&&React[_0x375f(0x98)](View,{'style':styles['connectedDot']}));}})),_0x16e0e4[_0x375f(0x1ce)](_0x169f91[_0x375f(0x5d)],0x4)&&React[_0x375f(0x98)](View,{'style':[styles[_0x375f(0x1cf)],{'bottom':_0x5bb70a}]},React[_0x375f(0x98)](View,{'style':styles['scrollBarTrack']},React[_0x375f(0x98)](View,{'style':[styles[_0x375f(0x1d0)],{'left':_0x16e0e4[_0x375f(0x1d1)](_0xc29d8f,0x38)}]}))),_0x31f718&&_0x169f91['length']>0x4&&React[_0x375f(0x98)](Animated[_0x375f(0x1d2)],{'style':[styles[_0x375f(0x1d3)],{'transform':[{'translateX':_0x56f943['interpolate']({'inputRange':[0x0,0x1],'outputRange':[0x0,0x8]})}],'opacity':_0x56f943['interpolate']({'inputRange':[0x0,0x1],'outputRange':[0.5,0x1]})}]},React[_0x375f(0x98)](Text,{'style':styles[_0x375f(0x1d4)]},'›'))),React['createElement'](View,{'style':styles[_0x375f(0x1d5)]},_0x613d6c&&((()=>{const _0x468de3=_0x169f91['find'](_0x5534ff=>_0x5534ff['id']===_0x613d6c);if(!_0x468de3)return null;const _0x115705=_0x33742e[_0x375f(0x61)](_0x613d6c),_0x21dea7=_0x43190d[_0x613d6c]===_0x16e0e4['XDsdp'],_0xa99045=_0x1929e4===null||_0x1929e4===void 0x0?void 0x0:_0x1929e4['includes'](_0x613d6c);return React[_0x375f(0x98)](View,{'style':styles[_0x375f(0x1d6)]},React[_0x375f(0x98)](View,{'style':styles[_0x375f(0xae)]},React['createElement'](Text,{'style':styles['platformCardTitle']},_0x468de3[_0x375f(0xaf)]),_0xa99045&&React[_0x375f(0x98)](View,{'style':styles[_0x375f(0x1d7)]},React['createElement'](Text,{'style':styles[_0x375f(0xb0)]},_0x16e0e4[_0x375f(0x1d8)])),React[_0x375f(0x98)](TouchableOpacity,{'activeOpacity':0.8,'onPress':()=>!_0x21dea7&&_0x69832f(_0x613d6c,!_0x115705),'disabled':_0x21dea7,'style':[styles[_0x375f(0xb1)],{'backgroundColor':_0x115705?'#10B981':_0x375f(0xa)}]},React[_0x375f(0x98)](View,{'style':[styles[_0x375f(0xb3)],{'transform':[{'translateX':_0x115705?0x14:0x0}]}]}))),React[_0x375f(0x98)](View,{'style':styles[_0x375f(0xb4)]},React[_0x375f(0x98)](Text,{'style':styles[_0x375f(0xb5)]},_0x468de3['description'])));})())),React[_0x375f(0x98)](View,{'style':styles[_0x375f(0x1d9)]},React['createElement'](Text,{'style':styles[_0x375f(0x1da)]},_0x16e0e4[_0x375f(0x1db)]),React[_0x375f(0x98)](Text,{'style':styles[_0x375f(0x1dc)]},_0x16e0e4[_0x375f(0x1dd)]),React[_0x375f(0x98)](View,{'style':styles['refreshSegmentedControl']},MODEL_REFRESH_OPTIONS[_0x375f(0xa5)](_0x55e9e2=>React[_0x375f(0x98)](TouchableOpacity,{'key':_0x55e9e2[_0x375f(0x1de)],'style':[styles[_0x375f(0x1df)],_0x5a9681===_0x55e9e2[_0x375f(0x1de)]&&styles['refreshSegmentSelected']],'onPress':()=>_0x18c5c1(_0x55e9e2[_0x375f(0x1de)]),'activeOpacity':0.7},React[_0x375f(0x98)](Text,{'style':[styles[_0x375f(0x1e0)],_0x5a9681===_0x55e9e2['value']&&styles[_0x375f(0x1e1)]]},_0x55e9e2[_0x375f(0x1e2)])))),React[_0x375f(0x98)](Text,{'style':styles[_0x375f(0x1e3)]},((_0x49a876=MODEL_REFRESH_OPTIONS[_0x375f(0x8b)](_0x39980a=>_0x39980a[_0x375f(0x1de)]===_0x5a9681))===null||_0x16e0e4['WyTAA'](_0x49a876,void 0x0)?void 0x0:_0x49a876[_0x375f(0xb6)])||'')),React[_0x375f(0x98)](View,{'style':styles['bottomButtonContainer']},React[_0x375f(0x98)](View,{'style':styles['buttonWrapper']},React[_0x375f(0x98)](_0xd6824,{'label':'Continue','onPress':_0x40e6d7,'disabled':loading||_0x33742e[_0x375f(0x15d)]===0x0||_0x239c56||_0x5eb126,'loading':loading||_0x239c56||_0x5eb126}),React[_0x375f(0x98)](TouchableOpacity,{'style':styles[_0x375f(0x1e4)],'activeOpacity':0x1,'onPressIn':_0x491703,'onPressOut':_0x3afa95,'onPress':()=>{_0x16e0e4[_0x375f(0x192)]('DoLan',_0x16e0e4['hvICC'])?(_0x16e0e4['KruCI'](_0x502dc1,_0x5f1b54['BUTTON_PRESS']),_0x4122c7(![])):_0x16e0e4[_0x375f(0x1ce)](_0x33742e[_0x375f(0x15d)],0x0)&&!loading&&!_0x239c56&&!_0x5eb126&&_0x40e6d7();}},React[_0x375f(0x98)](Animated['View'],{'style':[styles[_0x375f(0x1e5)],{'width':_0xa6241b[_0x375f(0x1e6)]({'inputRange':[0x0,0x1],'outputRange':['0%',_0x16e0e4['ZqcGB']]})}]}))),_0x4d45ae&&React[_0x375f(0x98)](TouchableOpacity,{'style':styles['skipButton'],'onPress':_0x9fef60},React[_0x375f(0x98)](Text,{'style':styles[_0x375f(0x1e7)]},_0x16e0e4['LxZWE'])))));},styles=StyleSheet['create']({'container':{'flex':0x1,'backgroundColor':COLORS['surface'],'paddingHorizontal':0x18},'backButton':{'width':0x20,'height':0x20,'borderRadius':0x10,'backgroundColor':_0x375f(0x1e8),'alignItems':_0x375f(0x1e9),'justifyContent':_0x375f(0x1e9),'marginBottom':0x2},'backButtonText':{'fontSize':0x16,'fontWeight':_0x375f(0x1ea),'color':_0x375f(0x1eb),'marginTop':-0x2},'scrollContent':{'flex':0x1},'headingContainer':{'width':_0x375f(0x4c),'marginBottom':SPACING['sm'],'paddingTop':0x0,'marginTop':0x0},'title':{'fontFamily':_0x375f(0x1ec),'fontWeight':_0x375f(0x1ed),'fontSize':0x18,'lineHeight':0x20,'color':COLORS[_0x375f(0x1ee)],'textAlign':_0x375f(0x1ef),'marginBottom':0x4},'subtitle':{'fontFamily':_0x375f(0x1f0),'fontWeight':'400','fontSize':0x10,'lineHeight':0x18,'color':COLORS[_0x375f(0x1f1)],'textAlign':_0x375f(0x1ef)},'personaContainer':{'alignItems':_0x375f(0x1e9),'position':_0x375f(0x1f2),'marginTop':-0x14,'marginBottom':-0x78,'height':0x1c2},'largePersona':{'width':0x1f4,'height':0x1f4},'platformIconsOverlay':{'position':'absolute','width':'100%','height':0x46,'zIndex':0xa},'platformIconsScrollContent':{'flexDirection':'row','alignItems':_0x375f(0x1e9),'paddingHorizontal':0x14,'gap':0x18},'platformIconsCentered':{'flexGrow':0x1,'justifyContent':'center'},'platformIconButton':{'width':0x34,'height':0x34,'borderRadius':0x1a,'backgroundColor':_0x375f(0x1f3),'justifyContent':_0x375f(0x1e9),'alignItems':'center','borderWidth':0x3,'borderColor':_0x375f(0x1f4),'shadowColor':'#000','shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.15,'shadowRadius':0x4,'elevation':0x4},'platformIconButtonSelected':{'borderColor':_0x375f(0x1f5),'backgroundColor':_0x375f(0x1f6)},'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':_0x375f(0x1f7),'top':0x2,'right':0x2,'width':0xc,'height':0xc,'borderRadius':0x6,'backgroundColor':_0x375f(0x1f8),'borderWidth':0x2,'borderColor':COLORS['surface']},'connectedDot':{'position':'absolute','top':0x2,'right':0x2,'width':0xc,'height':0xc,'borderRadius':0x6,'backgroundColor':'#10B981','borderWidth':0x2,'borderColor':COLORS[_0x375f(0x1f9)]},'cardContainer':{'alignItems':_0x375f(0x1e9),'marginTop':0x10,'marginBottom':SPACING['md']},'platformCard':{'width':0x147,'backgroundColor':_0x375f(0x1f3),'borderRadius':0x10,'padding':0x8,'shadowColor':_0x375f(0x1fa),'shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.1,'shadowRadius':0x8,'elevation':0x3,'gap':0xa},'cardHeader':{'flexDirection':_0x375f(0x1fb),'alignItems':'center','justifyContent':_0x375f(0x1fc)},'platformCardTitle':{'fontSize':0x10,'fontWeight':_0x375f(0x1ea),'color':COLORS[_0x375f(0x1ee)],'fontFamily':_0x375f(0x1ec)},'recommendedBadge':{'backgroundColor':_0x375f(0x1f6),'paddingHorizontal':0xc,'paddingVertical':0x6,'borderRadius':0x10,'marginLeft':0x8},'recommendedBadgeText':{'fontSize':0xc,'fontWeight':_0x375f(0x1ea),'color':_0x375f(0x1fd),'fontFamily':_0x375f(0x1ec)},'customToggleTrack':{'width':0x32,'height':0x1e,'borderRadius':0xf,'padding':0x2,'marginLeft':_0x375f(0x1fe),'marginRight':0x8,'justifyContent':'center'},'customToggleThumb':{'width':0x1a,'height':0x1a,'borderRadius':0xd,'backgroundColor':_0x375f(0x1f3),'shadowColor':'#000','shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.2,'shadowRadius':0x2,'elevation':0x2},'descriptionContainer':{'backgroundColor':_0x375f(0x1ff),'borderRadius':0x8,'padding':0x8},'platformCardDescription':{'fontSize':0xd,'lineHeight':0x12,'color':COLORS[_0x375f(0x1f1)],'fontFamily':'Inter'},'refreshFrequencySection':{'paddingHorizontal':0x10,'paddingVertical':0x14,'marginTop':0xc,'backgroundColor':_0x375f(0x200),'borderRadius':0x10,'marginHorizontal':SPACING['md'],'marginBottom':0x8,'borderWidth':0x1,'borderColor':_0x375f(0x201)},'refreshFrequencyTitle':{'fontSize':0x11,'fontWeight':'700','color':'#1C1C1E','fontFamily':_0x375f(0x1ec),'marginBottom':0x4},'refreshFrequencyDescription':{'fontSize':0xe,'color':_0x375f(0x202),'fontFamily':_0x375f(0x1f0),'fontWeight':_0x375f(0x203),'marginBottom':0x10},'refreshSegmentedControl':{'flexDirection':'row','backgroundColor':_0x375f(0x204),'borderRadius':0xc,'padding':0x3},'refreshSegment':{'flex':0x1,'paddingVertical':0xa,'alignItems':_0x375f(0x1e9),'justifyContent':_0x375f(0x1e9),'borderRadius':0xa},'refreshSegmentSelected':{'backgroundColor':_0x375f(0x1eb),'shadowColor':_0x375f(0x1fa),'shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.15,'shadowRadius':0x4,'elevation':0x3},'refreshSegmentText':{'fontSize':0xf,'fontFamily':'Inter','fontWeight':_0x375f(0x205),'color':'#8E8E93'},'refreshSegmentTextSelected':{'fontWeight':_0x375f(0x1ed),'color':_0x375f(0x1f3)},'refreshFrequencyHint':{'fontSize':0xd,'fontFamily':_0x375f(0x1f0),'fontWeight':_0x375f(0x203),'color':_0x375f(0x202),'textAlign':_0x375f(0x1e9),'marginTop':0xc},'privacyLinkContainer':{'marginTop':0x10,'paddingTop':0x10,'borderTopWidth':0x1,'borderTopColor':_0x375f(0x206),'alignItems':_0x375f(0x1e9)},'privacyLinkText':{'fontSize':0xe,'color':_0x375f(0x207),'fontFamily':_0x375f(0x1f0),'fontWeight':'500'},'bottomButtonContainer':{'paddingTop':0x8,'paddingBottom':0x0,'paddingHorizontal':SPACING['md']},'buttonWrapper':{'position':_0x375f(0x1f2)},'buttonOverlay':{'position':_0x375f(0x1f7),'top':0x0,'left':0x0,'right':0x0,'bottom':0x0,'borderRadius':0xc,'overflow':_0x375f(0x208)},'holdProgressBar':{'position':_0x375f(0x1f7),'bottom':0x0,'left':0x0,'height':0x4,'backgroundColor':_0x375f(0x6e),'borderRadius':0x2},'skipButton':{'alignItems':'center','paddingVertical':0xa,'marginBottom':0x22},'skipButtonText':{'fontSize':0x10,'fontFamily':'Inter','fontWeight':_0x375f(0x205),'color':COLORS['grey600']},'pageIndicatorContainer':{'position':_0x375f(0x1f7),'alignSelf':'center','zIndex':0xb},'scrollBarTrack':{'width':0x50,'height':0x4,'backgroundColor':COLORS['grey300'],'borderRadius':0x2,'position':'relative','overflow':_0x375f(0x208)},'scrollBarThumb':{'position':_0x375f(0x1f7),'width':0x18,'height':0x4,'backgroundColor':COLORS[_0x375f(0x1f1)],'borderRadius':0x2,'left':0x0},'scrollIndicator':{'position':_0x375f(0x1f7),'bottom':0x3c,'right':0x1e,'zIndex':0xc},'scrollIndicatorText':{'fontSize':0x20,'color':COLORS[_0x375f(0x209)],'fontWeight':_0x375f(0x20a)}});export default PlatformConnectorsStep;
|
|
18
|
+
import { setTemporaryPin } from '../services/pinStorageUtils';
|
|
19
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
20
|
+
|
|
21
|
+
// Model refresh frequency options
|
|
22
|
+
|
|
23
|
+
export const MODEL_REFRESH_OPTIONS = [{
|
|
24
|
+
value: 'daily',
|
|
25
|
+
label: 'Daily',
|
|
26
|
+
description: 'Always up-to-date data.'
|
|
27
|
+
}, {
|
|
28
|
+
value: 'weekly',
|
|
29
|
+
label: 'Weekly',
|
|
30
|
+
description: 'Balanced freshness and efficiency.'
|
|
31
|
+
}, {
|
|
32
|
+
value: 'biweekly',
|
|
33
|
+
label: 'Biweekly',
|
|
34
|
+
description: 'Less frequent, more efficient.'
|
|
35
|
+
}];
|
|
36
|
+
const PlatformConnectorsStep = ({
|
|
37
|
+
onUpdate,
|
|
38
|
+
onSkip,
|
|
39
|
+
loading = false,
|
|
40
|
+
onPinComplete,
|
|
41
|
+
onReviewerBypass,
|
|
42
|
+
onLogout,
|
|
43
|
+
allowedPlatforms,
|
|
44
|
+
recommendedPlatforms,
|
|
45
|
+
initialConnectedPlatforms,
|
|
46
|
+
onRefreshFrequencyChange,
|
|
47
|
+
initialRefreshFrequency = 'weekly',
|
|
48
|
+
userEmail
|
|
49
|
+
}) => {
|
|
50
|
+
var _MODEL_REFRESH_OPTION;
|
|
51
|
+
// Initialize with initialConnectedPlatforms if provided (for returning users)
|
|
52
|
+
// Normalize to lowercase to prevent duplicates from case mismatches
|
|
53
|
+
const [connectedPlatforms, setConnectedPlatforms] = useState(() => new Set((initialConnectedPlatforms || []).map(p => p.toLowerCase())));
|
|
54
|
+
const [showConsentScreen, setShowConsentScreen] = useState(false);
|
|
55
|
+
const [showPinScreen, setShowPinScreen] = useState(false);
|
|
56
|
+
const [showLoadingScreen, setShowLoadingScreen] = useState(false);
|
|
57
|
+
// Track platforms at last consent view to detect if user added new ones
|
|
58
|
+
const platformsAtLastConsent = useRef(new Set((initialConnectedPlatforms || []).map(p => p.toLowerCase())));
|
|
59
|
+
const [createdPin, setCreatedPin] = useState('');
|
|
60
|
+
const [connectionStatuses, setConnectionStatuses] = useState({});
|
|
61
|
+
const [showOAuthWebView, setShowOAuthWebView] = useState(false);
|
|
62
|
+
const [oauthUrl, setOauthUrl] = useState('');
|
|
63
|
+
const [currentPlatform, setCurrentPlatform] = useState('');
|
|
64
|
+
const [longPressTimer, setLongPressTimer] = useState(null);
|
|
65
|
+
const [holdProgress, setHoldProgress] = useState(0);
|
|
66
|
+
const holdProgressAnim = useRef(new Animated.Value(0)).current;
|
|
67
|
+
const [selectedPlatformId, setSelectedPlatformId] = useState('');
|
|
68
|
+
const scrollViewRef = useRef(null);
|
|
69
|
+
const [showScrollIndicator, setShowScrollIndicator] = useState(true);
|
|
70
|
+
const scrollIndicatorAnim = useRef(new Animated.Value(0)).current;
|
|
71
|
+
const [currentPage, setCurrentPage] = useState(0);
|
|
72
|
+
const lastScrollX = useRef(0);
|
|
73
|
+
|
|
74
|
+
// Training state
|
|
75
|
+
const [username, setUsername] = useState('');
|
|
76
|
+
const [personaProgress, setPersonaProgress] = useState(0);
|
|
77
|
+
const [personaStatus, setPersonaStatus] = useState('Initializing...');
|
|
78
|
+
const [isPersonaComplete, setIsPersonaComplete] = useState(false);
|
|
79
|
+
const [hasError, setHasError] = useState(false);
|
|
80
|
+
const [userToken, setUserToken] = useState(null);
|
|
81
|
+
const [userInfo, setUserInfo] = useState(null);
|
|
82
|
+
const socketRef = useRef(null);
|
|
83
|
+
const [isBackgroundTrainingStarted, setIsBackgroundTrainingStarted] = useState(false);
|
|
84
|
+
const [backgroundTrainingProgress, setBackgroundTrainingProgress] = useState('');
|
|
85
|
+
const [backgroundSocketId, setBackgroundSocketId] = useState(null);
|
|
86
|
+
const [isContinueLoading, setIsContinueLoading] = useState(false);
|
|
87
|
+
const [isConsentLoading, setIsConsentLoading] = useState(false);
|
|
88
|
+
|
|
89
|
+
// 🎯 Pending connection - used to delay persona coloring until after WebView closes
|
|
90
|
+
const [pendingConnection, setPendingConnection] = useState(null);
|
|
91
|
+
|
|
92
|
+
// Model refresh frequency state
|
|
93
|
+
const [refreshFrequency, setRefreshFrequency] = useState(initialRefreshFrequency);
|
|
94
|
+
const {
|
|
95
|
+
connectPlatform,
|
|
96
|
+
disconnectPlatform,
|
|
97
|
+
isConnecting
|
|
98
|
+
} = useConnections();
|
|
99
|
+
// SDK doesn't have AuthProvider - user is null
|
|
100
|
+
const user = null;
|
|
101
|
+
|
|
102
|
+
// Sync initialConnectedPlatforms if provided after mount (e.g., async fetch for returning users)
|
|
103
|
+
useEffect(() => {
|
|
104
|
+
if (initialConnectedPlatforms && initialConnectedPlatforms.length > 0) {
|
|
105
|
+
setConnectedPlatforms(prev => {
|
|
106
|
+
const newSet = new Set(prev);
|
|
107
|
+
let hasChanges = false;
|
|
108
|
+
initialConnectedPlatforms.forEach(platform => {
|
|
109
|
+
const normalized = platform.toLowerCase();
|
|
110
|
+
if (!newSet.has(normalized)) {
|
|
111
|
+
newSet.add(normalized);
|
|
112
|
+
hasChanges = true;
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return hasChanges ? newSet : prev;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}, [initialConnectedPlatforms]);
|
|
119
|
+
|
|
120
|
+
// 🔄 Load connected platforms from AsyncStorage on mount (for returning users)
|
|
121
|
+
// This ensures toggles reflect previously connected platforms even if initialConnectedPlatforms isn't passed
|
|
122
|
+
useEffect(() => {
|
|
123
|
+
const loadConnectedPlatformsFromStorage = async () => {
|
|
124
|
+
try {
|
|
125
|
+
console.log('🔄 [PLATFORMS] Loading connected platforms from storage...');
|
|
126
|
+
const loadedPlatforms = [];
|
|
127
|
+
|
|
128
|
+
// 1. Load from user_connected_platforms (main storage for OAuth platforms)
|
|
129
|
+
const platformsJson = await AsyncStorage.getItem('user_connected_platforms');
|
|
130
|
+
if (platformsJson) {
|
|
131
|
+
const platforms = JSON.parse(platformsJson);
|
|
132
|
+
if (Array.isArray(platforms)) {
|
|
133
|
+
loadedPlatforms.push(...platforms);
|
|
134
|
+
console.log('✅ [PLATFORMS] Loaded from user_connected_platforms:', platforms);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// 2. Load from platform_account_details (detailed account info)
|
|
139
|
+
const accountDetailsJson = await AsyncStorage.getItem('platform_account_details');
|
|
140
|
+
if (accountDetailsJson) {
|
|
141
|
+
const accountDetails = JSON.parse(accountDetailsJson);
|
|
142
|
+
if (Array.isArray(accountDetails)) {
|
|
143
|
+
accountDetails.forEach(account => {
|
|
144
|
+
var _account$platform;
|
|
145
|
+
const platformId = (_account$platform = account.platform) === null || _account$platform === void 0 ? void 0 : _account$platform.toLowerCase();
|
|
146
|
+
if (platformId && !loadedPlatforms.includes(platformId)) {
|
|
147
|
+
loadedPlatforms.push(platformId);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
console.log('✅ [PLATFORMS] Loaded from platform_account_details:', accountDetails.map(a => a.platform));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// 3. Check LLM platforms individually
|
|
155
|
+
const llmPlatforms = ['chatgpt', 'claude', 'gemini', 'grok'];
|
|
156
|
+
for (const llmPlatform of llmPlatforms) {
|
|
157
|
+
const llmConnection = await AsyncStorage.getItem(`@onairos:llm_connected:${llmPlatform}`);
|
|
158
|
+
if (llmConnection) {
|
|
159
|
+
const parsed = JSON.parse(llmConnection);
|
|
160
|
+
if (parsed.connected && !loadedPlatforms.includes(llmPlatform)) {
|
|
161
|
+
loadedPlatforms.push(llmPlatform);
|
|
162
|
+
console.log(`✅ [PLATFORMS] Loaded LLM platform: ${llmPlatform}`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// 4. Check LinkedIn separately
|
|
168
|
+
const linkedinConnection = await AsyncStorage.getItem('@onairos:linkedin_connected');
|
|
169
|
+
if (linkedinConnection) {
|
|
170
|
+
const parsed = JSON.parse(linkedinConnection);
|
|
171
|
+
if (parsed.connected && !loadedPlatforms.includes('linkedin')) {
|
|
172
|
+
loadedPlatforms.push('linkedin');
|
|
173
|
+
console.log('✅ [PLATFORMS] Loaded LinkedIn connection');
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// 5. Fetch server-side connections (covers fresh sign-in after logout)
|
|
178
|
+
if (userEmail) {
|
|
179
|
+
try {
|
|
180
|
+
const serverAccounts = await getConnectedAccountsLookup(userEmail);
|
|
181
|
+
serverAccounts.forEach(account => {
|
|
182
|
+
const platformId = account.platform.toLowerCase();
|
|
183
|
+
if (!loadedPlatforms.includes(platformId)) {
|
|
184
|
+
loadedPlatforms.push(platformId);
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
} catch (err) {
|
|
188
|
+
console.warn('⚠️ [PLATFORMS] Server lookup failed, using local only:', err);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// Update state if we found any connected platforms
|
|
193
|
+
if (loadedPlatforms.length > 0) {
|
|
194
|
+
setConnectedPlatforms(prev => {
|
|
195
|
+
const newSet = new Set(prev);
|
|
196
|
+
let hasChanges = false;
|
|
197
|
+
loadedPlatforms.forEach(platform => {
|
|
198
|
+
const normalized = platform.toLowerCase();
|
|
199
|
+
if (!newSet.has(normalized)) {
|
|
200
|
+
newSet.add(normalized);
|
|
201
|
+
hasChanges = true;
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
if (hasChanges) {
|
|
205
|
+
console.log('✅ [PLATFORMS] Updated connectedPlatforms state with:', Array.from(newSet));
|
|
206
|
+
}
|
|
207
|
+
return hasChanges ? newSet : prev;
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
} catch (error) {
|
|
211
|
+
console.error('❌ [PLATFORMS] Error loading connected platforms from storage:', error);
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
loadConnectedPlatformsFromStorage();
|
|
215
|
+
}, [userEmail]);
|
|
216
|
+
|
|
217
|
+
// Initialize username
|
|
218
|
+
useEffect(() => {
|
|
219
|
+
const initializeUsername = async () => {
|
|
220
|
+
try {
|
|
221
|
+
const storedUsername = await AsyncStorage.getItem('onairos_username');
|
|
222
|
+
if (storedUsername && !username) {
|
|
223
|
+
setUsername(storedUsername);
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
if (user && !username) {
|
|
227
|
+
var _user$email;
|
|
228
|
+
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)}`;
|
|
229
|
+
setUsername(initialUsername);
|
|
230
|
+
await AsyncStorage.setItem('onairos_username', initialUsername);
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
if (!username) {
|
|
234
|
+
const fallbackUsername = `mobile_user_${Math.floor(Math.random() * 10000)}`;
|
|
235
|
+
setUsername(fallbackUsername);
|
|
236
|
+
await AsyncStorage.setItem('onairos_username', fallbackUsername);
|
|
237
|
+
}
|
|
238
|
+
} catch (error) {
|
|
239
|
+
console.error('Error initializing username:', error);
|
|
240
|
+
const fallbackUsername = `user_${Math.floor(Math.random() * 10000)}`;
|
|
241
|
+
setUsername(fallbackUsername);
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
initializeUsername();
|
|
245
|
+
}, [user, username]);
|
|
246
|
+
|
|
247
|
+
// Scroll indicator animation
|
|
248
|
+
useEffect(() => {
|
|
249
|
+
if (showScrollIndicator) {
|
|
250
|
+
Animated.loop(Animated.sequence([Animated.timing(scrollIndicatorAnim, {
|
|
251
|
+
toValue: 1,
|
|
252
|
+
duration: 1000,
|
|
253
|
+
useNativeDriver: true
|
|
254
|
+
}), Animated.timing(scrollIndicatorAnim, {
|
|
255
|
+
toValue: 0,
|
|
256
|
+
duration: 1000,
|
|
257
|
+
useNativeDriver: true
|
|
258
|
+
})])).start();
|
|
259
|
+
}
|
|
260
|
+
}, [showScrollIndicator]);
|
|
261
|
+
|
|
262
|
+
// Handle scroll
|
|
263
|
+
const handleScroll = useCallback(event => {
|
|
264
|
+
const scrollX = event.nativeEvent.contentOffset.x;
|
|
265
|
+
const width = event.nativeEvent.layoutMeasurement.width;
|
|
266
|
+
const contentSize = event.nativeEvent.contentSize.width;
|
|
267
|
+
lastScrollX.current = scrollX;
|
|
268
|
+
const maxScroll = contentSize - width;
|
|
269
|
+
const scrollProgress = maxScroll > 0 ? scrollX / maxScroll : 0;
|
|
270
|
+
setCurrentPage(scrollProgress);
|
|
271
|
+
if (scrollX > 10 && showScrollIndicator) {
|
|
272
|
+
setShowScrollIndicator(false);
|
|
273
|
+
}
|
|
274
|
+
}, [showScrollIndicator]);
|
|
275
|
+
|
|
276
|
+
// Platform list with chat platforms
|
|
277
|
+
const platforms = [{
|
|
278
|
+
id: 'youtube',
|
|
279
|
+
name: 'YouTube',
|
|
280
|
+
icon: getPlatformIcon('youtube'),
|
|
281
|
+
description: 'Use your watch history, likes, and subscriptions to enrich your model.',
|
|
282
|
+
isChatPlatform: false
|
|
283
|
+
}, {
|
|
284
|
+
id: 'reddit',
|
|
285
|
+
name: 'Reddit',
|
|
286
|
+
icon: getPlatformIcon('reddit'),
|
|
287
|
+
description: 'Use your posts and comments to enrich your model.',
|
|
288
|
+
isChatPlatform: false
|
|
289
|
+
}, {
|
|
290
|
+
id: 'pinterest',
|
|
291
|
+
name: 'Pinterest',
|
|
292
|
+
icon: getPlatformIcon('pinterest'),
|
|
293
|
+
description: 'Use your pins, boards, and interests to enrich your model.',
|
|
294
|
+
isChatPlatform: false
|
|
295
|
+
}, {
|
|
296
|
+
id: 'linkedin',
|
|
297
|
+
name: 'LinkedIn',
|
|
298
|
+
icon: getPlatformIcon('linkedin'),
|
|
299
|
+
description: 'Use your professional network and career interests to enrich your model.',
|
|
300
|
+
isChatPlatform: false
|
|
301
|
+
}, {
|
|
302
|
+
id: 'gmail',
|
|
303
|
+
name: 'Gmail',
|
|
304
|
+
icon: getPlatformIcon('gmail'),
|
|
305
|
+
description: 'Use your email information to enrich your model.',
|
|
306
|
+
isChatPlatform: false
|
|
307
|
+
}, {
|
|
308
|
+
id: 'chatgpt',
|
|
309
|
+
name: 'ChatGPT',
|
|
310
|
+
icon: getPlatformIcon('chatgpt'),
|
|
311
|
+
description: 'Use your ChatGPT conversations and memories to enrich your model.',
|
|
312
|
+
isChatPlatform: true
|
|
313
|
+
}, {
|
|
314
|
+
id: 'claude',
|
|
315
|
+
name: 'Claude',
|
|
316
|
+
icon: getPlatformIcon('claude'),
|
|
317
|
+
description: 'Use your Claude conversations to enrich your model.',
|
|
318
|
+
isChatPlatform: true
|
|
319
|
+
}, {
|
|
320
|
+
id: 'gemini',
|
|
321
|
+
name: 'Gemini',
|
|
322
|
+
icon: getPlatformIcon('gemini'),
|
|
323
|
+
description: 'Use your Gemini conversations to enrich your model.',
|
|
324
|
+
isChatPlatform: true
|
|
325
|
+
}, {
|
|
326
|
+
id: 'grok',
|
|
327
|
+
name: 'Grok',
|
|
328
|
+
icon: getPlatformIcon('grok'),
|
|
329
|
+
description: 'Use your Grok conversations from X to enrich your model.',
|
|
330
|
+
isChatPlatform: true
|
|
331
|
+
}];
|
|
332
|
+
|
|
333
|
+
// Filter and order platforms based on allowedPlatforms (order is preserved)
|
|
334
|
+
const filteredPlatforms = allowedPlatforms ? allowedPlatforms.map(id => platforms.find(p => p.id === id)).filter(p => p !== undefined) : platforms;
|
|
335
|
+
|
|
336
|
+
// Set default selected platform to first filtered platform (leftmost)
|
|
337
|
+
// This ensures the selection always starts at the leftmost platform
|
|
338
|
+
useEffect(() => {
|
|
339
|
+
if (filteredPlatforms.length > 0) {
|
|
340
|
+
// Always set to first platform on mount or when allowedPlatforms changes
|
|
341
|
+
const firstPlatformId = filteredPlatforms[0].id;
|
|
342
|
+
if (!selectedPlatformId || !filteredPlatforms.find(p => p.id === selectedPlatformId)) {
|
|
343
|
+
setSelectedPlatformId(firstPlatformId);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}, [allowedPlatforms, filteredPlatforms.length]);
|
|
347
|
+
const handlePlatformToggle = async (platformId, enabled) => {
|
|
348
|
+
triggerHaptic(HapticType.BUTTON_PRESS);
|
|
349
|
+
console.log(`🔄 [TOGGLE] Platform toggle: ${platformId} = ${enabled}`);
|
|
350
|
+
try {
|
|
351
|
+
if (enabled) {
|
|
352
|
+
const storedUsername = await AsyncStorage.getItem('onairos_username');
|
|
353
|
+
const validUsername = storedUsername || username;
|
|
354
|
+
console.log(`👤 [TOGGLE] Username check - stored: "${storedUsername}", state: "${username}", valid: "${validUsername}"`);
|
|
355
|
+
if (!validUsername || validUsername.trim() === '') {
|
|
356
|
+
console.error('❌ [TOGGLE] No username available - cannot proceed with OAuth');
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// Check if this is an LLM/chat platform (ChatGPT, Claude, Gemini, Grok)
|
|
361
|
+
const platform = platforms.find(p => p.id === platformId);
|
|
362
|
+
const isLLM = (platform === null || platform === void 0 ? void 0 : platform.isChatPlatform) || isLLMPlatform(platformId);
|
|
363
|
+
if (isLLM) {
|
|
364
|
+
// LLM platforms use WebView-based login + conversation extraction
|
|
365
|
+
console.log(`🤖 [LLM] Opening WebView for ${platformId} login and export...`);
|
|
366
|
+
setCurrentPlatform(platformId);
|
|
367
|
+
setConnectionStatuses(prev => ({
|
|
368
|
+
...prev,
|
|
369
|
+
[platformId]: 'connecting'
|
|
370
|
+
}));
|
|
371
|
+
|
|
372
|
+
// Get the platform's login URL
|
|
373
|
+
const llmUrl = getLLMPlatformUrl(platformId);
|
|
374
|
+
if (llmUrl) {
|
|
375
|
+
console.log(`🌐 [LLM] Opening ${platformId} URL:`, llmUrl);
|
|
376
|
+
setOauthUrl(llmUrl);
|
|
377
|
+
setShowOAuthWebView(true);
|
|
378
|
+
} else {
|
|
379
|
+
console.error(`❌ [LLM] No URL configured for platform: ${platformId}`);
|
|
380
|
+
setConnectionStatuses(prev => ({
|
|
381
|
+
...prev,
|
|
382
|
+
[platformId]: 'error'
|
|
383
|
+
}));
|
|
384
|
+
triggerHaptic(HapticType.ERROR);
|
|
385
|
+
}
|
|
386
|
+
return; // Exit early for LLM platforms - WebView handles the rest
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
// LinkedIn uses WebView-based login + profile URL extraction (similar to LLM platforms)
|
|
390
|
+
if (isLinkedInPlatform(platformId)) {
|
|
391
|
+
console.log(`💼 [LINKEDIN] Opening WebView for LinkedIn login...`);
|
|
392
|
+
setCurrentPlatform(platformId);
|
|
393
|
+
setConnectionStatuses(prev => ({
|
|
394
|
+
...prev,
|
|
395
|
+
[platformId]: 'connecting'
|
|
396
|
+
}));
|
|
397
|
+
|
|
398
|
+
// Open LinkedIn login page directly
|
|
399
|
+
const linkedinLoginUrl = 'https://www.linkedin.com/login';
|
|
400
|
+
console.log(`🌐 [LINKEDIN] Opening LinkedIn URL:`, linkedinLoginUrl);
|
|
401
|
+
setOauthUrl(linkedinLoginUrl);
|
|
402
|
+
setShowOAuthWebView(true);
|
|
403
|
+
return; // Exit early for LinkedIn - WebView handles the rest
|
|
404
|
+
}
|
|
405
|
+
if (hasNativeSDK(platformId)) {
|
|
406
|
+
setCurrentPlatform(platformId);
|
|
407
|
+
setConnectionStatuses(prev => ({
|
|
408
|
+
...prev,
|
|
409
|
+
[platformId]: 'connecting'
|
|
410
|
+
}));
|
|
411
|
+
const success = await initiateNativeAuth(platformId, validUsername);
|
|
412
|
+
if (success) {
|
|
413
|
+
const newConnected = new Set(connectedPlatforms);
|
|
414
|
+
newConnected.add(platformId);
|
|
415
|
+
setConnectedPlatforms(newConnected);
|
|
416
|
+
setConnectionStatuses(prev => ({
|
|
417
|
+
...prev,
|
|
418
|
+
[platformId]: 'connected'
|
|
419
|
+
}));
|
|
420
|
+
triggerHaptic(HapticType.SUCCESS);
|
|
421
|
+
} else {
|
|
422
|
+
setConnectionStatuses(prev => ({
|
|
423
|
+
...prev,
|
|
424
|
+
[platformId]: 'error'
|
|
425
|
+
}));
|
|
426
|
+
triggerHaptic(HapticType.ERROR);
|
|
427
|
+
}
|
|
428
|
+
} else {
|
|
429
|
+
console.log(`🌐 [TOGGLE] Starting OAuth flow for ${platformId}...`);
|
|
430
|
+
setCurrentPlatform(platformId);
|
|
431
|
+
setConnectionStatuses(prev => ({
|
|
432
|
+
...prev,
|
|
433
|
+
[platformId]: 'connecting'
|
|
434
|
+
}));
|
|
435
|
+
const oauthUrl = await initiateOAuth(platformId, validUsername);
|
|
436
|
+
console.log(`🔗 [TOGGLE] OAuth URL result for ${platformId}:`, oauthUrl ? oauthUrl.substring(0, 50) + '...' : 'NULL');
|
|
437
|
+
if (oauthUrl) {
|
|
438
|
+
console.log(`✅ [TOGGLE] Setting WebView state - showing modal for ${platformId}`);
|
|
439
|
+
setOauthUrl(oauthUrl);
|
|
440
|
+
setShowOAuthWebView(true);
|
|
441
|
+
} else {
|
|
442
|
+
console.error(`❌ [TOGGLE] OAuth failed for ${platformId} - no URL returned`);
|
|
443
|
+
setConnectionStatuses(prev => ({
|
|
444
|
+
...prev,
|
|
445
|
+
[platformId]: 'error'
|
|
446
|
+
}));
|
|
447
|
+
triggerHaptic(HapticType.ERROR);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
} else {
|
|
451
|
+
await disconnectPlatform(platformId);
|
|
452
|
+
const newConnected = new Set(connectedPlatforms);
|
|
453
|
+
newConnected.delete(platformId);
|
|
454
|
+
setConnectedPlatforms(newConnected);
|
|
455
|
+
setConnectionStatuses(prev => ({
|
|
456
|
+
...prev,
|
|
457
|
+
[platformId]: 'disconnected'
|
|
458
|
+
}));
|
|
459
|
+
triggerHaptic(HapticType.BUTTON_PRESS);
|
|
460
|
+
|
|
461
|
+
// 🔄 Remove from BOTH storage keys for consistency
|
|
462
|
+
try {
|
|
463
|
+
const existingPlatformsJson = await AsyncStorage.getItem('user_connected_platforms');
|
|
464
|
+
if (existingPlatformsJson) {
|
|
465
|
+
const existingPlatforms = JSON.parse(existingPlatformsJson);
|
|
466
|
+
const updatedPlatforms = existingPlatforms.filter(p => p.toLowerCase() !== platformId.toLowerCase());
|
|
467
|
+
await AsyncStorage.setItem('user_connected_platforms', JSON.stringify(updatedPlatforms));
|
|
468
|
+
await AsyncStorage.setItem('connectedPlatforms', JSON.stringify(updatedPlatforms));
|
|
469
|
+
console.log(`✅ [STORAGE] Removed ${platformId} from both storage keys:`, updatedPlatforms);
|
|
470
|
+
}
|
|
471
|
+
} catch (storageError) {
|
|
472
|
+
console.error('❌ [STORAGE] Error removing platform connection:', storageError);
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
// Also remove local LLM connection status
|
|
476
|
+
await AsyncStorage.removeItem(`@onairos:llm_connected:${platformId}`);
|
|
477
|
+
|
|
478
|
+
// Also remove LinkedIn connection status if applicable
|
|
479
|
+
if (platformId.toLowerCase() === 'linkedin') {
|
|
480
|
+
await AsyncStorage.removeItem('@onairos:linkedin_connected');
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
} catch (error) {
|
|
484
|
+
console.error(`Error toggling platform ${platformId}:`, error);
|
|
485
|
+
setConnectionStatuses(prev => ({
|
|
486
|
+
...prev,
|
|
487
|
+
[platformId]: 'error'
|
|
488
|
+
}));
|
|
489
|
+
triggerHaptic(HapticType.ERROR);
|
|
490
|
+
}
|
|
491
|
+
};
|
|
492
|
+
const handleUpdate = async () => {
|
|
493
|
+
triggerHaptic(HapticType.BUTTON_PRESS);
|
|
494
|
+
|
|
495
|
+
// If no new platforms were added since last consent view, skip PIN/loading
|
|
496
|
+
const currentPlatforms = connectedPlatforms;
|
|
497
|
+
const previousPlatforms = platformsAtLastConsent.current;
|
|
498
|
+
const hasNewPlatforms = Array.from(currentPlatforms).some(p => !previousPlatforms.has(p));
|
|
499
|
+
if (!hasNewPlatforms && previousPlatforms.size > 0) {
|
|
500
|
+
console.log('ℹ️ [PLATFORMS] No new platforms connected, skipping PIN/loading');
|
|
501
|
+
platformsAtLastConsent.current = new Set(currentPlatforms);
|
|
502
|
+
setShowConsentScreen(true);
|
|
503
|
+
return;
|
|
504
|
+
}
|
|
505
|
+
setIsContinueLoading(true);
|
|
506
|
+
try {
|
|
507
|
+
setShowPinScreen(true);
|
|
508
|
+
} finally {
|
|
509
|
+
setIsContinueLoading(false);
|
|
510
|
+
}
|
|
511
|
+
};
|
|
512
|
+
const handleSkip = () => {
|
|
513
|
+
triggerHaptic(HapticType.BUTTON_PRESS);
|
|
514
|
+
if (onSkip) {
|
|
515
|
+
onSkip();
|
|
516
|
+
}
|
|
517
|
+
};
|
|
518
|
+
const handleConsentAccept = async () => {
|
|
519
|
+
triggerHaptic(HapticType.BUTTON_PRESS);
|
|
520
|
+
|
|
521
|
+
// 🚀 Show loading on button immediately
|
|
522
|
+
setIsConsentLoading(true);
|
|
523
|
+
|
|
524
|
+
// Small delay to ensure React renders the loading state before async work starts
|
|
525
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
526
|
+
try {
|
|
527
|
+
if (onPinComplete) {
|
|
528
|
+
await onPinComplete(createdPin);
|
|
529
|
+
} else {
|
|
530
|
+
// onUpdate is async - wait for it to complete
|
|
531
|
+
await onUpdate(Array.from(connectedPlatforms));
|
|
532
|
+
}
|
|
533
|
+
} finally {
|
|
534
|
+
setIsConsentLoading(false);
|
|
535
|
+
}
|
|
536
|
+
};
|
|
537
|
+
const handleConsentDecline = () => {
|
|
538
|
+
triggerHaptic(HapticType.BUTTON_PRESS);
|
|
539
|
+
setShowConsentScreen(false);
|
|
540
|
+
};
|
|
541
|
+
const handleRefreshFrequencyChange = async frequency => {
|
|
542
|
+
triggerHaptic(HapticType.BUTTON_PRESS);
|
|
543
|
+
setRefreshFrequency(frequency);
|
|
544
|
+
|
|
545
|
+
// Save to AsyncStorage
|
|
546
|
+
try {
|
|
547
|
+
await AsyncStorage.setItem('@onairos:model_refresh_frequency', frequency);
|
|
548
|
+
console.log(`✅ [REFRESH] Model refresh frequency set to: ${frequency}`);
|
|
549
|
+
} catch (error) {
|
|
550
|
+
console.error('❌ [REFRESH] Error saving refresh frequency:', error);
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
// Call external handler if provided
|
|
554
|
+
if (onRefreshFrequencyChange) {
|
|
555
|
+
onRefreshFrequencyChange(frequency);
|
|
556
|
+
}
|
|
557
|
+
};
|
|
558
|
+
const openPrivacyPolicy = () => {
|
|
559
|
+
const Linking = require('react-native').Linking;
|
|
560
|
+
Linking.openURL('https://privacy.onairos.io/');
|
|
561
|
+
};
|
|
562
|
+
const handlePinComplete = async pin => {
|
|
563
|
+
setCreatedPin(pin);
|
|
564
|
+
setTemporaryPin(pin);
|
|
565
|
+
setShowPinScreen(false);
|
|
566
|
+
setShowLoadingScreen(true);
|
|
567
|
+
};
|
|
568
|
+
const handleLoadingComplete = () => {
|
|
569
|
+
setShowLoadingScreen(false);
|
|
570
|
+
setShowConsentScreen(true);
|
|
571
|
+
};
|
|
572
|
+
const handleOAuthSuccess = async result => {
|
|
573
|
+
if (currentPlatform) {
|
|
574
|
+
if (result === 'success' || result !== 'error') {
|
|
575
|
+
// 🎯 Don't update connectedPlatforms immediately - set as pending
|
|
576
|
+
// The persona coloring will happen AFTER the WebView closes
|
|
577
|
+
setPendingConnection(currentPlatform);
|
|
578
|
+
setConnectionStatuses(prev => ({
|
|
579
|
+
...prev,
|
|
580
|
+
[currentPlatform]: 'connected'
|
|
581
|
+
}));
|
|
582
|
+
|
|
583
|
+
// 🔄 Store platform connection in BOTH storage keys for consistency
|
|
584
|
+
try {
|
|
585
|
+
const existingPlatformsJson = await AsyncStorage.getItem('user_connected_platforms');
|
|
586
|
+
const existingPlatforms = existingPlatformsJson ? JSON.parse(existingPlatformsJson) : [];
|
|
587
|
+
if (!existingPlatforms.includes(currentPlatform.toLowerCase())) {
|
|
588
|
+
existingPlatforms.push(currentPlatform.toLowerCase());
|
|
589
|
+
await AsyncStorage.setItem('user_connected_platforms', JSON.stringify(existingPlatforms));
|
|
590
|
+
await AsyncStorage.setItem('connectedPlatforms', JSON.stringify(existingPlatforms));
|
|
591
|
+
console.log(`✅ [STORAGE] Added ${currentPlatform} to both storage keys:`, existingPlatforms);
|
|
592
|
+
}
|
|
593
|
+
} catch (storageError) {
|
|
594
|
+
console.error('❌ [STORAGE] Error saving platform connection:', storageError);
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
// Store LLM connection status locally
|
|
598
|
+
if (isLLMPlatform(currentPlatform)) {
|
|
599
|
+
await AsyncStorage.setItem(`@onairos:llm_connected:${currentPlatform}`, JSON.stringify({
|
|
600
|
+
connected: true,
|
|
601
|
+
platform: currentPlatform,
|
|
602
|
+
connectedAt: new Date().toISOString()
|
|
603
|
+
}));
|
|
604
|
+
console.log(`✅ [LLM] ${currentPlatform} connection stored locally`);
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
// Store LinkedIn connection status locally
|
|
608
|
+
if (currentPlatform.toLowerCase() === 'linkedin') {
|
|
609
|
+
await AsyncStorage.setItem(`@onairos:linkedin_connected`, JSON.stringify({
|
|
610
|
+
connected: true,
|
|
611
|
+
platform: 'linkedin',
|
|
612
|
+
connectedAt: new Date().toISOString()
|
|
613
|
+
}));
|
|
614
|
+
console.log(`✅ [LINKEDIN] Connection stored locally`);
|
|
615
|
+
}
|
|
616
|
+
} else {
|
|
617
|
+
setConnectionStatuses(prev => ({
|
|
618
|
+
...prev,
|
|
619
|
+
[currentPlatform]: 'error'
|
|
620
|
+
}));
|
|
621
|
+
triggerHaptic(HapticType.ERROR);
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
setShowOAuthWebView(false);
|
|
625
|
+
setOauthUrl('');
|
|
626
|
+
setCurrentPlatform('');
|
|
627
|
+
};
|
|
628
|
+
|
|
629
|
+
// 🎯 Effect to apply pending connection AFTER WebView closes
|
|
630
|
+
// This ensures persona coloring happens after returning to platform screen
|
|
631
|
+
useEffect(() => {
|
|
632
|
+
if (pendingConnection && !showOAuthWebView) {
|
|
633
|
+
// Small delay to ensure screen is visible before persona colors
|
|
634
|
+
const timer = setTimeout(() => {
|
|
635
|
+
// Use functional update to avoid stale closure issues
|
|
636
|
+
setConnectedPlatforms(prev => {
|
|
637
|
+
const newConnected = new Set(prev);
|
|
638
|
+
newConnected.add(pendingConnection);
|
|
639
|
+
return newConnected;
|
|
640
|
+
});
|
|
641
|
+
triggerHaptic(HapticType.SUCCESS);
|
|
642
|
+
console.log(`✅ [PERSONA] Applied pending connection: ${pendingConnection}`);
|
|
643
|
+
setPendingConnection(null);
|
|
644
|
+
}, 300); // 300ms delay for user to see the screen before coloring
|
|
645
|
+
|
|
646
|
+
return () => clearTimeout(timer);
|
|
647
|
+
}
|
|
648
|
+
}, [pendingConnection, showOAuthWebView]);
|
|
649
|
+
const handleOAuthClose = () => {
|
|
650
|
+
setShowOAuthWebView(false);
|
|
651
|
+
setOauthUrl('');
|
|
652
|
+
if (currentPlatform) {
|
|
653
|
+
setConnectionStatuses(prev => ({
|
|
654
|
+
...prev,
|
|
655
|
+
[currentPlatform]: 'disconnected'
|
|
656
|
+
}));
|
|
657
|
+
}
|
|
658
|
+
setCurrentPlatform('');
|
|
659
|
+
};
|
|
660
|
+
const handlePinBack = () => {
|
|
661
|
+
setShowPinScreen(false);
|
|
662
|
+
};
|
|
663
|
+
const handleReviewerBypass = () => {
|
|
664
|
+
if (onReviewerBypass) {
|
|
665
|
+
onReviewerBypass();
|
|
666
|
+
}
|
|
667
|
+
};
|
|
668
|
+
|
|
669
|
+
// Long press handlers for reviewer bypass
|
|
670
|
+
const handlePressIn = () => {
|
|
671
|
+
Animated.timing(holdProgressAnim, {
|
|
672
|
+
toValue: 1,
|
|
673
|
+
duration: 4000,
|
|
674
|
+
useNativeDriver: false
|
|
675
|
+
}).start();
|
|
676
|
+
const timer = setTimeout(() => {
|
|
677
|
+
triggerHaptic(HapticType.SUCCESS);
|
|
678
|
+
Vibration.vibrate([0, 100, 50, 100]);
|
|
679
|
+
handleReviewerBypass();
|
|
680
|
+
}, 4000);
|
|
681
|
+
setLongPressTimer(timer);
|
|
682
|
+
};
|
|
683
|
+
const handlePressOut = () => {
|
|
684
|
+
if (longPressTimer) {
|
|
685
|
+
clearTimeout(longPressTimer);
|
|
686
|
+
setLongPressTimer(null);
|
|
687
|
+
}
|
|
688
|
+
holdProgressAnim.setValue(0);
|
|
689
|
+
Animated.timing(holdProgressAnim, {
|
|
690
|
+
toValue: 0,
|
|
691
|
+
duration: 200,
|
|
692
|
+
useNativeDriver: false
|
|
693
|
+
}).start();
|
|
694
|
+
};
|
|
695
|
+
useEffect(() => {
|
|
696
|
+
return () => {
|
|
697
|
+
if (longPressTimer) {
|
|
698
|
+
clearTimeout(longPressTimer);
|
|
699
|
+
}
|
|
700
|
+
};
|
|
701
|
+
}, [longPressTimer]);
|
|
702
|
+
|
|
703
|
+
// Debug: Track WebView state changes
|
|
704
|
+
useEffect(() => {
|
|
705
|
+
if (showOAuthWebView || oauthUrl) {
|
|
706
|
+
console.log(`📊 [STATE] WebView state changed - showOAuthWebView: ${showOAuthWebView}, oauthUrl: ${oauthUrl ? 'SET (' + oauthUrl.substring(0, 40) + '...)' : 'NULL'}`);
|
|
707
|
+
}
|
|
708
|
+
}, [showOAuthWebView, oauthUrl]);
|
|
709
|
+
const personaLevel = Math.min(5, Math.max(1, connectedPlatforms.size + 1));
|
|
710
|
+
const PLATFORM_ICONS_BOTTOM = 120;
|
|
711
|
+
const PAGE_DOTS_BOTTOM = 70;
|
|
712
|
+
|
|
713
|
+
// Show PIN screen
|
|
714
|
+
if (showPinScreen) {
|
|
715
|
+
return /*#__PURE__*/React.createElement(PinCreationScreen, {
|
|
716
|
+
visible: showPinScreen,
|
|
717
|
+
onComplete: handlePinComplete,
|
|
718
|
+
onBack: handlePinBack
|
|
719
|
+
});
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
// Show loading screen
|
|
723
|
+
if (showLoadingScreen) {
|
|
724
|
+
return /*#__PURE__*/React.createElement(PersonaLoadingScreen, {
|
|
725
|
+
visible: showLoadingScreen,
|
|
726
|
+
onComplete: handleLoadingComplete
|
|
727
|
+
});
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
// Show OAuth WebView (also used for LLM platforms)
|
|
731
|
+
if (showOAuthWebView && oauthUrl) {
|
|
732
|
+
console.log(`✅ [WEBVIEW] Rendering OAuthWebView for ${currentPlatform} with URL: ${oauthUrl.substring(0, 60)}...`);
|
|
733
|
+
return /*#__PURE__*/React.createElement(OAuthWebView, {
|
|
734
|
+
url: oauthUrl,
|
|
735
|
+
platform: currentPlatform,
|
|
736
|
+
onClose: handleOAuthClose,
|
|
737
|
+
onSuccess: handleOAuthSuccess,
|
|
738
|
+
onComplete: handleOAuthClose,
|
|
739
|
+
username: username
|
|
740
|
+
});
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
// Handle connect more - go back to platform selection
|
|
744
|
+
const handleConnectMore = () => {
|
|
745
|
+
triggerHaptic(HapticType.BUTTON_PRESS);
|
|
746
|
+
// Snapshot current platforms so we can detect new ones on return
|
|
747
|
+
platformsAtLastConsent.current = new Set(connectedPlatforms);
|
|
748
|
+
setShowConsentScreen(false);
|
|
749
|
+
};
|
|
750
|
+
|
|
751
|
+
// Show consent screen
|
|
752
|
+
if (showConsentScreen) {
|
|
753
|
+
return /*#__PURE__*/React.createElement(PersonalizationConsentScreen, {
|
|
754
|
+
visible: showConsentScreen,
|
|
755
|
+
onAccept: handleConsentAccept,
|
|
756
|
+
onDecline: handleConsentDecline,
|
|
757
|
+
connectedPlatforms: Array.from(connectedPlatforms),
|
|
758
|
+
onConnectMore: handleConnectMore,
|
|
759
|
+
loading: isConsentLoading
|
|
760
|
+
});
|
|
761
|
+
}
|
|
762
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
763
|
+
style: styles.container
|
|
764
|
+
}, /*#__PURE__*/React.createElement(ScrollView, {
|
|
765
|
+
style: styles.scrollContent,
|
|
766
|
+
showsVerticalScrollIndicator: false,
|
|
767
|
+
bounces: true
|
|
768
|
+
}, onLogout && /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
769
|
+
style: styles.backButton,
|
|
770
|
+
onPress: onLogout,
|
|
771
|
+
activeOpacity: 0.7
|
|
772
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
773
|
+
style: styles.backButtonText
|
|
774
|
+
}, "\u2039")), /*#__PURE__*/React.createElement(View, {
|
|
775
|
+
style: styles.headingContainer
|
|
776
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
777
|
+
style: styles.title
|
|
778
|
+
}, "Build your persona"), /*#__PURE__*/React.createElement(Text, {
|
|
779
|
+
style: styles.subtitle
|
|
780
|
+
}, "Connect platforms to build your private persona")), /*#__PURE__*/React.createElement(View, {
|
|
781
|
+
style: styles.personaContainer
|
|
782
|
+
}, /*#__PURE__*/React.createElement(PersonaImage, {
|
|
783
|
+
level: personaLevel,
|
|
784
|
+
style: styles.largePersona
|
|
785
|
+
}), /*#__PURE__*/React.createElement(ScrollView, {
|
|
786
|
+
ref: scrollViewRef,
|
|
787
|
+
horizontal: true,
|
|
788
|
+
style: [styles.platformIconsOverlay, {
|
|
789
|
+
bottom: PLATFORM_ICONS_BOTTOM
|
|
790
|
+
}],
|
|
791
|
+
contentContainerStyle: [styles.platformIconsScrollContent, filteredPlatforms.length <= 4 && styles.platformIconsCentered],
|
|
792
|
+
showsHorizontalScrollIndicator: false,
|
|
793
|
+
onScroll: handleScroll,
|
|
794
|
+
scrollEventThrottle: 16,
|
|
795
|
+
decelerationRate: "normal",
|
|
796
|
+
scrollEnabled: filteredPlatforms.length > 4
|
|
797
|
+
}, filteredPlatforms.map(platform => {
|
|
798
|
+
const isSelected = selectedPlatformId === platform.id;
|
|
799
|
+
const isConnected = connectedPlatforms.has(platform.id);
|
|
800
|
+
const isConnecting = connectionStatuses[platform.id] === 'connecting';
|
|
801
|
+
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
802
|
+
key: platform.id,
|
|
803
|
+
style: [styles.platformIconButton, isSelected && styles.platformIconButtonSelected],
|
|
804
|
+
onPress: () => {
|
|
805
|
+
triggerHaptic(HapticType.BUTTON_PRESS);
|
|
806
|
+
setSelectedPlatformId(platform.id);
|
|
807
|
+
},
|
|
808
|
+
activeOpacity: 0.7
|
|
809
|
+
}, /*#__PURE__*/React.createElement(Image, {
|
|
810
|
+
source: platform.icon,
|
|
811
|
+
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],
|
|
812
|
+
resizeMode: "contain"
|
|
813
|
+
}), isConnecting && /*#__PURE__*/React.createElement(View, {
|
|
814
|
+
style: styles.connectingDot
|
|
815
|
+
}), isConnected && /*#__PURE__*/React.createElement(View, {
|
|
816
|
+
style: styles.connectedDot
|
|
817
|
+
}));
|
|
818
|
+
})), filteredPlatforms.length > 4 && /*#__PURE__*/React.createElement(View, {
|
|
819
|
+
style: [styles.pageIndicatorContainer, {
|
|
820
|
+
bottom: PAGE_DOTS_BOTTOM
|
|
821
|
+
}]
|
|
822
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
823
|
+
style: styles.scrollBarTrack
|
|
824
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
825
|
+
style: [styles.scrollBarThumb, {
|
|
826
|
+
left: currentPage * 56
|
|
827
|
+
}]
|
|
828
|
+
}))), showScrollIndicator && filteredPlatforms.length > 4 && /*#__PURE__*/React.createElement(Animated.View, {
|
|
829
|
+
style: [styles.scrollIndicator, {
|
|
830
|
+
transform: [{
|
|
831
|
+
translateX: scrollIndicatorAnim.interpolate({
|
|
832
|
+
inputRange: [0, 1],
|
|
833
|
+
outputRange: [0, 8]
|
|
834
|
+
})
|
|
835
|
+
}],
|
|
836
|
+
opacity: scrollIndicatorAnim.interpolate({
|
|
837
|
+
inputRange: [0, 1],
|
|
838
|
+
outputRange: [0.5, 1]
|
|
839
|
+
})
|
|
840
|
+
}]
|
|
841
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
842
|
+
style: styles.scrollIndicatorText
|
|
843
|
+
}, "\u203A"))), /*#__PURE__*/React.createElement(View, {
|
|
844
|
+
style: styles.cardContainer
|
|
845
|
+
}, selectedPlatformId && (() => {
|
|
846
|
+
const selectedPlatform = filteredPlatforms.find(p => p.id === selectedPlatformId);
|
|
847
|
+
if (!selectedPlatform) return null;
|
|
848
|
+
const isConnected = connectedPlatforms.has(selectedPlatformId);
|
|
849
|
+
const isConnectingPlatform = connectionStatuses[selectedPlatformId] === 'connecting';
|
|
850
|
+
const isRecommended = recommendedPlatforms === null || recommendedPlatforms === void 0 ? void 0 : recommendedPlatforms.includes(selectedPlatformId);
|
|
851
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
852
|
+
style: styles.platformCard
|
|
853
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
854
|
+
style: styles.cardHeader
|
|
855
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
856
|
+
style: styles.platformCardTitle
|
|
857
|
+
}, selectedPlatform.name), isRecommended && /*#__PURE__*/React.createElement(View, {
|
|
858
|
+
style: styles.recommendedBadge
|
|
859
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
860
|
+
style: styles.recommendedBadgeText
|
|
861
|
+
}, "Highly Recommended")), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
862
|
+
activeOpacity: 0.8,
|
|
863
|
+
onPress: () => !isConnectingPlatform && handlePlatformToggle(selectedPlatformId, !isConnected),
|
|
864
|
+
disabled: isConnectingPlatform,
|
|
865
|
+
style: [styles.customToggleTrack, {
|
|
866
|
+
backgroundColor: isConnected ? '#10B981' : '#9CA3AF'
|
|
867
|
+
}]
|
|
868
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
869
|
+
style: [styles.customToggleThumb, {
|
|
870
|
+
transform: [{
|
|
871
|
+
translateX: isConnected ? 20 : 0
|
|
872
|
+
}]
|
|
873
|
+
}]
|
|
874
|
+
}))), /*#__PURE__*/React.createElement(View, {
|
|
875
|
+
style: styles.descriptionContainer
|
|
876
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
877
|
+
style: styles.platformCardDescription
|
|
878
|
+
}, selectedPlatform.description)));
|
|
879
|
+
})()), /*#__PURE__*/React.createElement(View, {
|
|
880
|
+
style: styles.refreshFrequencySection
|
|
881
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
882
|
+
style: styles.refreshFrequencyTitle
|
|
883
|
+
}, "Model Refresh Frequency"), /*#__PURE__*/React.createElement(Text, {
|
|
884
|
+
style: styles.refreshFrequencyDescription
|
|
885
|
+
}, "How often should your model be refreshed from platforms?"), /*#__PURE__*/React.createElement(View, {
|
|
886
|
+
style: styles.refreshSegmentedControl
|
|
887
|
+
}, MODEL_REFRESH_OPTIONS.map(option => /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
888
|
+
key: option.value,
|
|
889
|
+
style: [styles.refreshSegment, refreshFrequency === option.value && styles.refreshSegmentSelected],
|
|
890
|
+
onPress: () => handleRefreshFrequencyChange(option.value),
|
|
891
|
+
activeOpacity: 0.7
|
|
892
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
893
|
+
style: [styles.refreshSegmentText, refreshFrequency === option.value && styles.refreshSegmentTextSelected]
|
|
894
|
+
}, option.label)))), /*#__PURE__*/React.createElement(Text, {
|
|
895
|
+
style: styles.refreshFrequencyHint
|
|
896
|
+
}, ((_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.createElement(View, {
|
|
897
|
+
style: styles.bottomButtonContainer
|
|
898
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
899
|
+
style: styles.buttonWrapper
|
|
900
|
+
}, /*#__PURE__*/React.createElement(PrimaryButton, {
|
|
901
|
+
label: "Continue",
|
|
902
|
+
onPress: handleUpdate,
|
|
903
|
+
disabled: loading || connectedPlatforms.size === 0 || isConnecting || isContinueLoading,
|
|
904
|
+
loading: loading || isConnecting || isContinueLoading
|
|
905
|
+
}), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
906
|
+
style: styles.buttonOverlay,
|
|
907
|
+
activeOpacity: 1,
|
|
908
|
+
onPressIn: handlePressIn,
|
|
909
|
+
onPressOut: handlePressOut,
|
|
910
|
+
onPress: () => {
|
|
911
|
+
if (connectedPlatforms.size > 0 && !loading && !isConnecting && !isContinueLoading) {
|
|
912
|
+
handleUpdate();
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
916
|
+
style: [styles.holdProgressBar, {
|
|
917
|
+
width: holdProgressAnim.interpolate({
|
|
918
|
+
inputRange: [0, 1],
|
|
919
|
+
outputRange: ['0%', '100%']
|
|
920
|
+
})
|
|
921
|
+
}]
|
|
922
|
+
}))), onSkip && /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
923
|
+
style: styles.skipButton,
|
|
924
|
+
onPress: handleSkip
|
|
925
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
926
|
+
style: styles.skipButtonText
|
|
927
|
+
}, "Skip")))));
|
|
928
|
+
};
|
|
929
|
+
const styles = StyleSheet.create({
|
|
930
|
+
container: {
|
|
931
|
+
flex: 1,
|
|
932
|
+
backgroundColor: COLORS.surface,
|
|
933
|
+
paddingHorizontal: 24
|
|
934
|
+
},
|
|
935
|
+
backButton: {
|
|
936
|
+
width: 32,
|
|
937
|
+
height: 32,
|
|
938
|
+
borderRadius: 16,
|
|
939
|
+
backgroundColor: '#F0F0F3',
|
|
940
|
+
alignItems: 'center',
|
|
941
|
+
justifyContent: 'center',
|
|
942
|
+
marginBottom: 2
|
|
943
|
+
},
|
|
944
|
+
backButtonText: {
|
|
945
|
+
fontSize: 22,
|
|
946
|
+
fontWeight: '600',
|
|
947
|
+
color: '#1C1C1E',
|
|
948
|
+
marginTop: -2
|
|
949
|
+
},
|
|
950
|
+
scrollContent: {
|
|
951
|
+
flex: 1
|
|
952
|
+
},
|
|
953
|
+
headingContainer: {
|
|
954
|
+
width: '100%',
|
|
955
|
+
marginBottom: SPACING.sm,
|
|
956
|
+
paddingTop: 0,
|
|
957
|
+
marginTop: 0
|
|
958
|
+
},
|
|
959
|
+
title: {
|
|
960
|
+
fontFamily: 'IBM Plex Sans',
|
|
961
|
+
fontWeight: '700',
|
|
962
|
+
fontSize: 24,
|
|
963
|
+
lineHeight: 32,
|
|
964
|
+
color: COLORS.grey800,
|
|
965
|
+
textAlign: 'left',
|
|
966
|
+
marginBottom: 4
|
|
967
|
+
},
|
|
968
|
+
subtitle: {
|
|
969
|
+
fontFamily: 'Inter',
|
|
970
|
+
fontWeight: '400',
|
|
971
|
+
fontSize: 16,
|
|
972
|
+
lineHeight: 24,
|
|
973
|
+
color: COLORS.grey600,
|
|
974
|
+
textAlign: 'left'
|
|
975
|
+
},
|
|
976
|
+
personaContainer: {
|
|
977
|
+
alignItems: 'center',
|
|
978
|
+
position: 'relative',
|
|
979
|
+
marginTop: -20,
|
|
980
|
+
marginBottom: -120,
|
|
981
|
+
height: 450
|
|
982
|
+
},
|
|
983
|
+
largePersona: {
|
|
984
|
+
width: 500,
|
|
985
|
+
height: 500
|
|
986
|
+
},
|
|
987
|
+
platformIconsOverlay: {
|
|
988
|
+
position: 'absolute',
|
|
989
|
+
width: '100%',
|
|
990
|
+
height: 70,
|
|
991
|
+
zIndex: 10
|
|
992
|
+
},
|
|
993
|
+
platformIconsScrollContent: {
|
|
994
|
+
flexDirection: 'row',
|
|
995
|
+
alignItems: 'center',
|
|
996
|
+
paddingHorizontal: 20,
|
|
997
|
+
gap: 24
|
|
998
|
+
},
|
|
999
|
+
platformIconsCentered: {
|
|
1000
|
+
flexGrow: 1,
|
|
1001
|
+
justifyContent: 'center'
|
|
1002
|
+
},
|
|
1003
|
+
platformIconButton: {
|
|
1004
|
+
width: 52,
|
|
1005
|
+
height: 52,
|
|
1006
|
+
borderRadius: 26,
|
|
1007
|
+
backgroundColor: '#FFFFFF',
|
|
1008
|
+
justifyContent: 'center',
|
|
1009
|
+
alignItems: 'center',
|
|
1010
|
+
borderWidth: 3,
|
|
1011
|
+
borderColor: 'transparent',
|
|
1012
|
+
shadowColor: '#000',
|
|
1013
|
+
shadowOffset: {
|
|
1014
|
+
width: 0,
|
|
1015
|
+
height: 2
|
|
1016
|
+
},
|
|
1017
|
+
shadowOpacity: 0.15,
|
|
1018
|
+
shadowRadius: 4,
|
|
1019
|
+
elevation: 4
|
|
1020
|
+
},
|
|
1021
|
+
platformIconButtonSelected: {
|
|
1022
|
+
borderColor: '#3B82F6',
|
|
1023
|
+
backgroundColor: '#EFF6FF'
|
|
1024
|
+
},
|
|
1025
|
+
platformIcon: {
|
|
1026
|
+
width: 30,
|
|
1027
|
+
height: 30
|
|
1028
|
+
},
|
|
1029
|
+
youtubeIcon: {
|
|
1030
|
+
width: 42,
|
|
1031
|
+
height: 42
|
|
1032
|
+
},
|
|
1033
|
+
pinterestIcon: {
|
|
1034
|
+
width: 36,
|
|
1035
|
+
height: 36
|
|
1036
|
+
},
|
|
1037
|
+
gmailIcon: {
|
|
1038
|
+
width: 36,
|
|
1039
|
+
height: 36
|
|
1040
|
+
},
|
|
1041
|
+
chatgptIcon: {
|
|
1042
|
+
width: 30,
|
|
1043
|
+
height: 30
|
|
1044
|
+
},
|
|
1045
|
+
claudeIcon: {
|
|
1046
|
+
width: 32,
|
|
1047
|
+
height: 32
|
|
1048
|
+
},
|
|
1049
|
+
grokIcon: {
|
|
1050
|
+
width: 36,
|
|
1051
|
+
height: 36
|
|
1052
|
+
},
|
|
1053
|
+
connectingDot: {
|
|
1054
|
+
position: 'absolute',
|
|
1055
|
+
top: 2,
|
|
1056
|
+
right: 2,
|
|
1057
|
+
width: 12,
|
|
1058
|
+
height: 12,
|
|
1059
|
+
borderRadius: 6,
|
|
1060
|
+
backgroundColor: '#FFA500',
|
|
1061
|
+
borderWidth: 2,
|
|
1062
|
+
borderColor: COLORS.surface
|
|
1063
|
+
},
|
|
1064
|
+
connectedDot: {
|
|
1065
|
+
position: 'absolute',
|
|
1066
|
+
top: 2,
|
|
1067
|
+
right: 2,
|
|
1068
|
+
width: 12,
|
|
1069
|
+
height: 12,
|
|
1070
|
+
borderRadius: 6,
|
|
1071
|
+
backgroundColor: '#10B981',
|
|
1072
|
+
borderWidth: 2,
|
|
1073
|
+
borderColor: COLORS.surface
|
|
1074
|
+
},
|
|
1075
|
+
cardContainer: {
|
|
1076
|
+
alignItems: 'center',
|
|
1077
|
+
marginTop: 16,
|
|
1078
|
+
marginBottom: SPACING.md
|
|
1079
|
+
},
|
|
1080
|
+
platformCard: {
|
|
1081
|
+
width: 327,
|
|
1082
|
+
backgroundColor: '#FFFFFF',
|
|
1083
|
+
borderRadius: 16,
|
|
1084
|
+
padding: 8,
|
|
1085
|
+
shadowColor: '#000',
|
|
1086
|
+
shadowOffset: {
|
|
1087
|
+
width: 0,
|
|
1088
|
+
height: 2
|
|
1089
|
+
},
|
|
1090
|
+
shadowOpacity: 0.1,
|
|
1091
|
+
shadowRadius: 8,
|
|
1092
|
+
elevation: 3,
|
|
1093
|
+
gap: 10
|
|
1094
|
+
},
|
|
1095
|
+
cardHeader: {
|
|
1096
|
+
flexDirection: 'row',
|
|
1097
|
+
alignItems: 'center',
|
|
1098
|
+
justifyContent: 'space-between'
|
|
1099
|
+
},
|
|
1100
|
+
platformCardTitle: {
|
|
1101
|
+
fontSize: 16,
|
|
1102
|
+
fontWeight: '600',
|
|
1103
|
+
color: COLORS.grey800,
|
|
1104
|
+
fontFamily: 'IBM Plex Sans'
|
|
1105
|
+
},
|
|
1106
|
+
recommendedBadge: {
|
|
1107
|
+
backgroundColor: '#EFF6FF',
|
|
1108
|
+
paddingHorizontal: 12,
|
|
1109
|
+
paddingVertical: 6,
|
|
1110
|
+
borderRadius: 16,
|
|
1111
|
+
marginLeft: 8
|
|
1112
|
+
},
|
|
1113
|
+
recommendedBadgeText: {
|
|
1114
|
+
fontSize: 12,
|
|
1115
|
+
fontWeight: '600',
|
|
1116
|
+
color: '#2563EB',
|
|
1117
|
+
fontFamily: 'IBM Plex Sans'
|
|
1118
|
+
},
|
|
1119
|
+
customToggleTrack: {
|
|
1120
|
+
width: 50,
|
|
1121
|
+
height: 30,
|
|
1122
|
+
borderRadius: 15,
|
|
1123
|
+
padding: 2,
|
|
1124
|
+
marginLeft: 'auto',
|
|
1125
|
+
marginRight: 8,
|
|
1126
|
+
justifyContent: 'center'
|
|
1127
|
+
},
|
|
1128
|
+
customToggleThumb: {
|
|
1129
|
+
width: 26,
|
|
1130
|
+
height: 26,
|
|
1131
|
+
borderRadius: 13,
|
|
1132
|
+
backgroundColor: '#FFFFFF',
|
|
1133
|
+
shadowColor: '#000',
|
|
1134
|
+
shadowOffset: {
|
|
1135
|
+
width: 0,
|
|
1136
|
+
height: 2
|
|
1137
|
+
},
|
|
1138
|
+
shadowOpacity: 0.2,
|
|
1139
|
+
shadowRadius: 2,
|
|
1140
|
+
elevation: 2
|
|
1141
|
+
},
|
|
1142
|
+
descriptionContainer: {
|
|
1143
|
+
backgroundColor: '#F9FAFB',
|
|
1144
|
+
borderRadius: 8,
|
|
1145
|
+
padding: 8
|
|
1146
|
+
},
|
|
1147
|
+
platformCardDescription: {
|
|
1148
|
+
fontSize: 13,
|
|
1149
|
+
lineHeight: 18,
|
|
1150
|
+
color: COLORS.grey600,
|
|
1151
|
+
fontFamily: 'Inter'
|
|
1152
|
+
},
|
|
1153
|
+
refreshFrequencySection: {
|
|
1154
|
+
paddingHorizontal: 16,
|
|
1155
|
+
paddingVertical: 20,
|
|
1156
|
+
marginTop: 12,
|
|
1157
|
+
backgroundColor: '#F5F5F7',
|
|
1158
|
+
borderRadius: 16,
|
|
1159
|
+
marginHorizontal: SPACING.md,
|
|
1160
|
+
marginBottom: 8,
|
|
1161
|
+
borderWidth: 1,
|
|
1162
|
+
borderColor: '#E0E0E4'
|
|
1163
|
+
},
|
|
1164
|
+
refreshFrequencyTitle: {
|
|
1165
|
+
fontSize: 17,
|
|
1166
|
+
fontWeight: '700',
|
|
1167
|
+
color: '#1C1C1E',
|
|
1168
|
+
fontFamily: 'IBM Plex Sans',
|
|
1169
|
+
marginBottom: 4
|
|
1170
|
+
},
|
|
1171
|
+
refreshFrequencyDescription: {
|
|
1172
|
+
fontSize: 14,
|
|
1173
|
+
color: '#8E8E93',
|
|
1174
|
+
fontFamily: 'Inter',
|
|
1175
|
+
fontWeight: '400',
|
|
1176
|
+
marginBottom: 16
|
|
1177
|
+
},
|
|
1178
|
+
refreshSegmentedControl: {
|
|
1179
|
+
flexDirection: 'row',
|
|
1180
|
+
backgroundColor: '#E8E8ED',
|
|
1181
|
+
borderRadius: 12,
|
|
1182
|
+
padding: 3
|
|
1183
|
+
},
|
|
1184
|
+
refreshSegment: {
|
|
1185
|
+
flex: 1,
|
|
1186
|
+
paddingVertical: 10,
|
|
1187
|
+
alignItems: 'center',
|
|
1188
|
+
justifyContent: 'center',
|
|
1189
|
+
borderRadius: 10
|
|
1190
|
+
},
|
|
1191
|
+
refreshSegmentSelected: {
|
|
1192
|
+
backgroundColor: '#1C1C1E',
|
|
1193
|
+
shadowColor: '#000',
|
|
1194
|
+
shadowOffset: {
|
|
1195
|
+
width: 0,
|
|
1196
|
+
height: 2
|
|
1197
|
+
},
|
|
1198
|
+
shadowOpacity: 0.15,
|
|
1199
|
+
shadowRadius: 4,
|
|
1200
|
+
elevation: 3
|
|
1201
|
+
},
|
|
1202
|
+
refreshSegmentText: {
|
|
1203
|
+
fontSize: 15,
|
|
1204
|
+
fontFamily: 'Inter',
|
|
1205
|
+
fontWeight: '500',
|
|
1206
|
+
color: '#8E8E93'
|
|
1207
|
+
},
|
|
1208
|
+
refreshSegmentTextSelected: {
|
|
1209
|
+
fontWeight: '700',
|
|
1210
|
+
color: '#FFFFFF'
|
|
1211
|
+
},
|
|
1212
|
+
refreshFrequencyHint: {
|
|
1213
|
+
fontSize: 13,
|
|
1214
|
+
fontFamily: 'Inter',
|
|
1215
|
+
fontWeight: '400',
|
|
1216
|
+
color: '#8E8E93',
|
|
1217
|
+
textAlign: 'center',
|
|
1218
|
+
marginTop: 12
|
|
1219
|
+
},
|
|
1220
|
+
privacyLinkContainer: {
|
|
1221
|
+
marginTop: 16,
|
|
1222
|
+
paddingTop: 16,
|
|
1223
|
+
borderTopWidth: 1,
|
|
1224
|
+
borderTopColor: '#E5E7EB',
|
|
1225
|
+
alignItems: 'center'
|
|
1226
|
+
},
|
|
1227
|
+
privacyLinkText: {
|
|
1228
|
+
fontSize: 14,
|
|
1229
|
+
color: '#8B5CF6',
|
|
1230
|
+
fontFamily: 'Inter',
|
|
1231
|
+
fontWeight: '500'
|
|
1232
|
+
},
|
|
1233
|
+
bottomButtonContainer: {
|
|
1234
|
+
paddingTop: 8,
|
|
1235
|
+
paddingBottom: 0,
|
|
1236
|
+
paddingHorizontal: SPACING.md
|
|
1237
|
+
},
|
|
1238
|
+
buttonWrapper: {
|
|
1239
|
+
position: 'relative'
|
|
1240
|
+
},
|
|
1241
|
+
buttonOverlay: {
|
|
1242
|
+
position: 'absolute',
|
|
1243
|
+
top: 0,
|
|
1244
|
+
left: 0,
|
|
1245
|
+
right: 0,
|
|
1246
|
+
bottom: 0,
|
|
1247
|
+
borderRadius: 12,
|
|
1248
|
+
overflow: 'hidden'
|
|
1249
|
+
},
|
|
1250
|
+
holdProgressBar: {
|
|
1251
|
+
position: 'absolute',
|
|
1252
|
+
bottom: 0,
|
|
1253
|
+
left: 0,
|
|
1254
|
+
height: 4,
|
|
1255
|
+
backgroundColor: '#10B981',
|
|
1256
|
+
borderRadius: 2
|
|
1257
|
+
},
|
|
1258
|
+
skipButton: {
|
|
1259
|
+
alignItems: 'center',
|
|
1260
|
+
paddingVertical: 10,
|
|
1261
|
+
marginBottom: 34
|
|
1262
|
+
},
|
|
1263
|
+
skipButtonText: {
|
|
1264
|
+
fontSize: 16,
|
|
1265
|
+
fontFamily: 'Inter',
|
|
1266
|
+
fontWeight: '500',
|
|
1267
|
+
color: COLORS.grey600
|
|
1268
|
+
},
|
|
1269
|
+
pageIndicatorContainer: {
|
|
1270
|
+
position: 'absolute',
|
|
1271
|
+
alignSelf: 'center',
|
|
1272
|
+
zIndex: 11
|
|
1273
|
+
},
|
|
1274
|
+
scrollBarTrack: {
|
|
1275
|
+
width: 80,
|
|
1276
|
+
height: 4,
|
|
1277
|
+
backgroundColor: COLORS.grey300,
|
|
1278
|
+
borderRadius: 2,
|
|
1279
|
+
position: 'relative',
|
|
1280
|
+
overflow: 'hidden'
|
|
1281
|
+
},
|
|
1282
|
+
scrollBarThumb: {
|
|
1283
|
+
position: 'absolute',
|
|
1284
|
+
width: 24,
|
|
1285
|
+
height: 4,
|
|
1286
|
+
backgroundColor: COLORS.grey600,
|
|
1287
|
+
borderRadius: 2,
|
|
1288
|
+
left: 0
|
|
1289
|
+
},
|
|
1290
|
+
scrollIndicator: {
|
|
1291
|
+
position: 'absolute',
|
|
1292
|
+
bottom: 60,
|
|
1293
|
+
right: 30,
|
|
1294
|
+
zIndex: 12
|
|
1295
|
+
},
|
|
1296
|
+
scrollIndicatorText: {
|
|
1297
|
+
fontSize: 32,
|
|
1298
|
+
color: COLORS.grey500,
|
|
1299
|
+
fontWeight: 'bold'
|
|
1300
|
+
}
|
|
1301
|
+
});
|
|
1302
|
+
export default PlatformConnectorsStep;
|
|
1303
|
+
//# sourceMappingURL=PlatformConnectorsStep.js.map
|