@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 +1,189 @@
|
|
|
1
|
-
import React,
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import { View, Text, StyleSheet, Modal, ActivityIndicator, Animated, Dimensions, TouchableOpacity } from 'react-native';
|
|
3
|
+
import LinearGradient from 'react-native-linear-gradient';
|
|
4
|
+
const {
|
|
5
|
+
width,
|
|
6
|
+
height
|
|
7
|
+
} = Dimensions.get('window');
|
|
8
|
+
const SignInMatchAnimation = ({
|
|
9
|
+
email,
|
|
10
|
+
visible,
|
|
11
|
+
onComplete
|
|
12
|
+
}) => {
|
|
13
|
+
const [step, setStep] = useState('searching');
|
|
14
|
+
const [matchCount, setMatchCount] = useState(0);
|
|
15
|
+
const fadeAnim = useState(new Animated.Value(0))[0];
|
|
16
|
+
const scaleAnim = useState(new Animated.Value(0.9))[0];
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (visible) {
|
|
19
|
+
// Start with fade in animation
|
|
20
|
+
Animated.parallel([Animated.timing(fadeAnim, {
|
|
21
|
+
toValue: 1,
|
|
22
|
+
duration: 600,
|
|
23
|
+
useNativeDriver: true
|
|
24
|
+
}), Animated.timing(scaleAnim, {
|
|
25
|
+
toValue: 1,
|
|
26
|
+
duration: 600,
|
|
27
|
+
useNativeDriver: true
|
|
28
|
+
})]).start();
|
|
29
|
+
|
|
30
|
+
// Simulate search process
|
|
31
|
+
setTimeout(() => {
|
|
32
|
+
// Generate random match count (3-8)
|
|
33
|
+
const randomMatchCount = Math.floor(Math.random() * 6) + 3;
|
|
34
|
+
setMatchCount(randomMatchCount);
|
|
35
|
+
setStep('found');
|
|
36
|
+
|
|
37
|
+
// Auto-proceed to complete after 3 seconds
|
|
38
|
+
setTimeout(() => {
|
|
39
|
+
setStep('complete');
|
|
40
|
+
}, 3000);
|
|
41
|
+
}, 2500);
|
|
42
|
+
}
|
|
43
|
+
}, [visible, fadeAnim, scaleAnim]);
|
|
44
|
+
const handleContinue = () => {
|
|
45
|
+
// Fade out animation before calling onComplete
|
|
46
|
+
Animated.parallel([Animated.timing(fadeAnim, {
|
|
47
|
+
toValue: 0,
|
|
48
|
+
duration: 400,
|
|
49
|
+
useNativeDriver: true
|
|
50
|
+
}), Animated.timing(scaleAnim, {
|
|
51
|
+
toValue: 0.9,
|
|
52
|
+
duration: 400,
|
|
53
|
+
useNativeDriver: true
|
|
54
|
+
})]).start(() => {
|
|
55
|
+
onComplete();
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
if (!visible) return null;
|
|
59
|
+
return /*#__PURE__*/React.createElement(Modal, {
|
|
60
|
+
visible: visible,
|
|
61
|
+
transparent: true,
|
|
62
|
+
animationType: "none"
|
|
63
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
64
|
+
style: styles.container
|
|
65
|
+
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
66
|
+
style: [styles.content, {
|
|
67
|
+
opacity: fadeAnim,
|
|
68
|
+
transform: [{
|
|
69
|
+
scale: scaleAnim
|
|
70
|
+
}]
|
|
71
|
+
}]
|
|
72
|
+
}, step === 'searching' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Text, {
|
|
73
|
+
style: styles.title
|
|
74
|
+
}, "Finding Your Matches"), /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
75
|
+
size: "large",
|
|
76
|
+
color: "#E9C46A",
|
|
77
|
+
style: styles.loader
|
|
78
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
79
|
+
style: styles.message
|
|
80
|
+
}, "Searching for potential connections based on your profile...")), step === 'found' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Text, {
|
|
81
|
+
style: styles.title
|
|
82
|
+
}, "Matches Found!"), /*#__PURE__*/React.createElement(View, {
|
|
83
|
+
style: styles.matchCircle
|
|
84
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
85
|
+
style: styles.matchCount
|
|
86
|
+
}, matchCount)), /*#__PURE__*/React.createElement(Text, {
|
|
87
|
+
style: styles.message
|
|
88
|
+
}, "We've found ", matchCount, " potential connections for you!"), /*#__PURE__*/React.createElement(Text, {
|
|
89
|
+
style: styles.subMessage
|
|
90
|
+
}, "Complete your profile to see who they are.")), step === 'complete' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Text, {
|
|
91
|
+
style: styles.title
|
|
92
|
+
}, "Welcome to Enoch!"), /*#__PURE__*/React.createElement(Text, {
|
|
93
|
+
style: styles.message
|
|
94
|
+
}, "We'll send match notifications to ", email.split('@')[0], "@..."), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
95
|
+
style: styles.button,
|
|
96
|
+
onPress: handleContinue
|
|
97
|
+
}, /*#__PURE__*/React.createElement(LinearGradient, {
|
|
98
|
+
colors: ['#f5e7c1', '#E9C46A', '#DDB957'],
|
|
99
|
+
start: {
|
|
100
|
+
x: 0,
|
|
101
|
+
y: 0
|
|
102
|
+
},
|
|
103
|
+
end: {
|
|
104
|
+
x: 1,
|
|
105
|
+
y: 0
|
|
106
|
+
},
|
|
107
|
+
style: styles.gradientButton
|
|
108
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
109
|
+
style: styles.buttonText
|
|
110
|
+
}, "Continue")))))));
|
|
111
|
+
};
|
|
112
|
+
const styles = StyleSheet.create({
|
|
113
|
+
container: {
|
|
114
|
+
flex: 1,
|
|
115
|
+
backgroundColor: 'rgba(0,0,0,0.7)',
|
|
116
|
+
justifyContent: 'center',
|
|
117
|
+
alignItems: 'center'
|
|
118
|
+
},
|
|
119
|
+
content: {
|
|
120
|
+
width: width * 0.85,
|
|
121
|
+
backgroundColor: '#FFFFFF',
|
|
122
|
+
borderRadius: 20,
|
|
123
|
+
padding: 24,
|
|
124
|
+
alignItems: 'center',
|
|
125
|
+
shadowColor: '#000',
|
|
126
|
+
shadowOffset: {
|
|
127
|
+
width: 0,
|
|
128
|
+
height: 4
|
|
129
|
+
},
|
|
130
|
+
shadowOpacity: 0.3,
|
|
131
|
+
shadowRadius: 8,
|
|
132
|
+
elevation: 10
|
|
133
|
+
},
|
|
134
|
+
title: {
|
|
135
|
+
fontSize: 24,
|
|
136
|
+
fontWeight: '600',
|
|
137
|
+
color: '#333',
|
|
138
|
+
marginBottom: 20,
|
|
139
|
+
textAlign: 'center'
|
|
140
|
+
},
|
|
141
|
+
loader: {
|
|
142
|
+
marginVertical: 24
|
|
143
|
+
},
|
|
144
|
+
message: {
|
|
145
|
+
fontSize: 18,
|
|
146
|
+
color: '#555',
|
|
147
|
+
textAlign: 'center',
|
|
148
|
+
marginBottom: 16,
|
|
149
|
+
lineHeight: 24
|
|
150
|
+
},
|
|
151
|
+
subMessage: {
|
|
152
|
+
fontSize: 16,
|
|
153
|
+
color: '#777',
|
|
154
|
+
textAlign: 'center',
|
|
155
|
+
marginTop: 8
|
|
156
|
+
},
|
|
157
|
+
matchCircle: {
|
|
158
|
+
width: 100,
|
|
159
|
+
height: 100,
|
|
160
|
+
borderRadius: 50,
|
|
161
|
+
backgroundColor: '#E9C46A',
|
|
162
|
+
justifyContent: 'center',
|
|
163
|
+
alignItems: 'center',
|
|
164
|
+
marginVertical: 20
|
|
165
|
+
},
|
|
166
|
+
matchCount: {
|
|
167
|
+
fontSize: 40,
|
|
168
|
+
fontWeight: 'bold',
|
|
169
|
+
color: '#FFFFFF'
|
|
170
|
+
},
|
|
171
|
+
button: {
|
|
172
|
+
width: '100%',
|
|
173
|
+
marginTop: 24,
|
|
174
|
+
borderRadius: 8,
|
|
175
|
+
overflow: 'hidden'
|
|
176
|
+
},
|
|
177
|
+
gradientButton: {
|
|
178
|
+
paddingVertical: 14,
|
|
179
|
+
alignItems: 'center',
|
|
180
|
+
justifyContent: 'center'
|
|
181
|
+
},
|
|
182
|
+
buttonText: {
|
|
183
|
+
color: '#333',
|
|
184
|
+
fontSize: 16,
|
|
185
|
+
fontWeight: '600'
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
export default SignInMatchAnimation;
|
|
189
|
+
//# sourceMappingURL=SignInMatchAnimation.js.map
|
|
@@ -1 +1,338 @@
|
|
|
1
|
-
import React,{useState,useEffect}from'react';function _0x2de8(){const _0x2d66c3=['com','org','net','edu','gov','mil','app','tech','site','web','info','xyz','co.uk','co.nz','co.za','com.br','co.jp','co.kr','co.in','net.au','gov.uk','ac.uk','edu.au','con','cmo','vom','cpm','comm','comn','copm','ogr','orgg','rog','nte','nett','ent','ioo','lio','gmai','gmal','gamil','outlok','outlokk','yahooo','hotmal','hotmial','yahoo.co.jp','yahoo.com.br','hotmail.co.jp','Please\x20enter\x20a\x20valid\x20email\x20address','❌\x20Email\x20validation\x20failed:','\x20Did\x20you\x20mean\x20.net?','reviewer@bypass.com','\x20Did\x20you\x20mean\x20.org?','ECbIq','\x20Did\x20you\x20mean\x20.com?','guksZ','TctpN','PUnFI','huaFu','gmail','outlook','hotmail','icloud','Kugmx','aol','protonmail','iggfx','ugvIY','yahoo.com.au','outlook.co.uk','KnWAF','trim','toLowerCase','bVYyT','ezPzP','biBZN','LNzZv','uYSrH','hfPuA','hotmail.co.uk','qvHjH','includes','Did\x20you\x20mean\x20','FcfgO','substring','ewzbM','split','WTzLY','KyniV','length','DdHPW','has','rvlUu','RDSrp','ocm','JgzPJ','fgMXr','PLgSW','TsdQf','MUnSY','iYUtL','efptp','UClMh','goRWG','log','🧪\x20Test\x20bypass\x20detected\x20-\x20skipping\x20to\x20verification\x20screen','cfYvC','rXhXQ','LQtgu','TrOpO','MkLGG','DIBkL','hNAkH','IcoWq','nplOh','wyrgm','LznDA','zJfmZ','\x20Did\x20you\x20mean\x20.io?','Invalid\x20email\x20domain\x20(.','DzxQW','Zwerz','QkTZy','VfhyZ','cjuZK','cKobL','dKecc','HUAeq',').\x20Please\x20check\x20your\x20email.','slice','join','ZIbtr','RgHTZ','YmdOi','YdhwM','lNngN','ZmVYU','vLzTa','🔍\x20Reviewer\x20bypass\x20detected\x20in\x20new\x20UI','zRBnw','sxJPk','yahoo','YYGLz','zoho','aDlJC','BbiRf','nRONs','DNlWG','nYtLo','iSnDr','zncsQ','keyboardDidHide','AgAzz','kPvNj','test','LwDLs','WHwYb','height','Build\x20your\x20Onairos\x20persona\x20to\x20own\x20your\x20digital\x20identity','Your\x20email','Continue','hvMGl','oubbw','uzaRc','CIppx','QhpvF','GihBt','aNYcq','gkjEz','PRRBC','KDNcw','reviewer','ACnRP','olNcA','OBjcF','oupKX','sOWuW','test@bypass.com','QlypE','VKsRb','addListener','keyboardDidShow','fSOPw','VdZAs','remove','xsBGC','QUAiJ','mlgLD','isValid','kOWKz','error','Invalid\x20email\x20address','✅\x20Email\x20validation\x20passed','UhiIj','xiLkP','nnNkQ','ios','padding','bbcjx','container','createElement','content','headingContainer','title','subtitle','Sign\x20in\x20or\x20create\x20an\x20account','inputContainer','done','PEaWD','LuzXZ','errorText','TMTYw','dividerContainer','dividerLine','dividerText','googleContainer','spacer','rFmiq','create','100%','700','grey800','left','Inter','400','grey600','row','center','#E5E5E5','grey500','#DC3545'];_0x2de8=function(){return _0x2d66c3;};return _0x2de8();}import{View,Text,StyleSheet,KeyboardAvoidingView,Platform,Keyboard}from'react-native';import{COLORS,SPACING}from'../theme';import _0x2fd84a from'./EmailInput';import _0x1f898c from'./GoogleButton';import _0x45886e from'./PrimaryButton';const VALID_TLDS=new Set([_0x198e(0x0),_0x198e(0x1),_0x198e(0x2),_0x198e(0x3),_0x198e(0x4),_0x198e(0x5),'int','io','co','ai',_0x198e(0x6),'dev',_0x198e(0x7),'online',_0x198e(0x8),_0x198e(0x9),_0x198e(0xa),'biz','me','tv','cc',_0x198e(0xb),'uk','us','ca','au','de','fr','it','es','nl','be','ch','at','se','no','dk','fi','jp','cn','kr','in','br','mx','ar','ru','pl','cz','ie','nz','za','sg','hk','tw','pt','gr','tr','il','ae','sa','eg','ng','ke','gh','ph','id','my','th','vn',_0x198e(0xc),'com.au',_0x198e(0xd),_0x198e(0xe),_0x198e(0xf),_0x198e(0x10),_0x198e(0x11),_0x198e(0x12),'org.uk',_0x198e(0x13),_0x198e(0x14),_0x198e(0x15),_0x198e(0x16)]),INVALID_TLDS=new Set([_0x198e(0x17),_0x198e(0x18),_0x198e(0x19),'ocm','cm',_0x198e(0x1a),'ckm','om',_0x198e(0x1b),_0x198e(0x1c),_0x198e(0x1d),_0x198e(0x1e),'og',_0x198e(0x1f),_0x198e(0x20),'rg',_0x198e(0x21),'ne',_0x198e(0x22),_0x198e(0x23),'bet','oi',_0x198e(0x24),_0x198e(0x25),_0x198e(0x26),'gmial','gmil',_0x198e(0x27),_0x198e(0x28),_0x198e(0x29),'outloo',_0x198e(0x2a),_0x198e(0x2b),'yaho','yhoo','hotmai',_0x198e(0x2c),_0x198e(0x2d)]),validateEmail=_0x3aab8b=>{const _0x588984={'LNzZv':'yahoo.co.uk','uYSrH':_0x198e(0x2e),'hfPuA':_0x198e(0x2f),'qvHjH':_0x198e(0x30),'cjuZK':function(_0x1ef0e2,_0x42b201){return _0x1ef0e2(_0x42b201);},'sVFaX':'test@bypass.com','FcfgO':_0x198e(0x31),'VfhyZ':_0x198e(0x32),'fPwaa':'Invalid\x20email\x20address','hNAkH':_0x198e(0x33),'zRBnw':function(_0x1618e5,_0x272ebd){return _0x1618e5(_0x272ebd);},'sxJPk':_0x198e(0x34),'cfYvC':_0x198e(0x35),'bVYyT':function(_0x322edd,_0x24704d){return _0x322edd===_0x24704d;},'ezPzP':_0x198e(0x36),'ewzbM':function(_0x2a1272,_0x264312){return _0x2a1272+_0x264312;},'WTzLY':function(_0x2a606a,_0x11a4ba){return _0x2a606a<_0x11a4ba;},'KyniV':function(_0x3fe35c,_0x51a3e0){return _0x3fe35c-_0x51a3e0;},'DdHPW':function(_0x50a382,_0xd10127){return _0x50a382-_0xd10127;},'rvlUu':_0x198e(0x17),'eaOwW':'cmo','RDSrp':'vom','iYUtL':function(_0x48614d,_0x479ec9){return _0x48614d===_0x479ec9;},'JgzPJ':_0x198e(0x1a),'fgMXr':_0x198e(0x1b),'UClMh':function(_0xb57a3a,_0x56982b){return _0xb57a3a===_0x56982b;},'PLgSW':'copm','TsdQf':_0x198e(0x37),'MUnSY':_0x198e(0x1e),'Mkfye':_0x198e(0x1f),'efptp':function(_0x2fa0a7,_0x2b4859){return _0x2fa0a7===_0x2b4859;},'goRWG':'kFXSp','rXhXQ':function(_0x586eec,_0x9b2770){return _0x586eec===_0x9b2770;},'LQtgu':_0x198e(0x21),'CqwZt':function(_0x48ee04,_0x58ec8e){return _0x48ee04===_0x58ec8e;},'TrOpO':_0x198e(0x22),'MkLGG':function(_0x41ca5f,_0x453f56){return _0x41ca5f===_0x453f56;},'DIBkL':_0x198e(0x23),'IcoWq':function(_0x13c516,_0xba28de){return _0x13c516===_0xba28de;},'nplOh':_0x198e(0x24),'pJuZV':'lio','wyrgm':function(_0x28dd65,_0x20acda){return _0x28dd65!==_0x20acda;},'LznDA':_0x198e(0x38),'zJfmZ':'zyeRL','DzxQW':function(_0x22be1d,_0x434905){return _0x22be1d===_0x434905;},'Zwerz':_0x198e(0x39),'QkTZy':_0x198e(0x3a),'cKobL':function(_0x38aabb,_0x3198cf){return _0x38aabb<=_0x3198cf;},'dKecc':function(_0x37037d,_0x1a2891){return _0x37037d!==_0x1a2891;},'HUAeq':_0x198e(0x3b),'ZIbtr':_0x198e(0x3c),'RgHTZ':_0x198e(0x3d),'YmdOi':'yahoo','YdhwM':_0x198e(0x3e),'lNngN':_0x198e(0x3f),'ZmVYU':_0x198e(0x40),'FDmdw':_0x198e(0x41),'YYGLz':_0x198e(0x42),'aDlJC':_0x198e(0x0),'BbiRf':function(_0xebaa6e,_0x3b8738){return _0xebaa6e!==_0x3b8738;},'yVcga':_0x198e(0x43),'nRONs':_0x198e(0x44),'HyOYu':_0x198e(0x45),'BPqql':_0x198e(0x46),'DNlWG':function(_0x128315,_0x33a4b9){return _0x128315===_0x33a4b9;},'nYtLo':_0x198e(0x47)},_0x11e50c=_0x3aab8b[_0x198e(0x48)]()[_0x198e(0x49)](),_0x517b5f=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;if(!_0x517b5f['test'](_0x11e50c)){if(_0x588984[_0x198e(0x4a)](_0x588984[_0x198e(0x4b)],_0x198e(0x4c))){const _0x242b26=[_0x588984[_0x198e(0x4d)],_0x588984[_0x198e(0x4e)],_0x588984[_0x198e(0x4f)],'yahoo.com.au',_0x198e(0x46),_0x198e(0x50),_0x588984[_0x198e(0x51)]],_0x4862e9=_0x517534+'.'+_0x2f0c22;if(!_0x242b26[_0x198e(0x52)](_0x4862e9))return{'isValid':![],'error':_0x198e(0x53)+_0x1ea6e4+'.'+_0xfbf308[_0x18b37a]+'?'};}else return{'isValid':![],'error':_0x588984[_0x198e(0x54)]};}const _0x5e1580=_0x11e50c['lastIndexOf']('@'),_0x23f445=_0x11e50c[_0x198e(0x55)](_0x588984[_0x198e(0x56)](_0x5e1580,0x1)),_0x9781c6=_0x23f445[_0x198e(0x57)]('.');if(_0x588984[_0x198e(0x58)](_0x9781c6['length'],0x2))return{'isValid':![],'error':_0x588984[_0x198e(0x54)]};const _0x1991db=_0x9781c6[_0x588984[_0x198e(0x59)](_0x9781c6[_0x198e(0x5a)],0x1)],_0x44bf68=_0x9781c6[_0x198e(0x5a)]>=0x2?_0x9781c6[_0x588984[_0x198e(0x5b)](_0x9781c6[_0x198e(0x5a)],0x2)]+'.'+_0x1991db:'';if(INVALID_TLDS[_0x198e(0x5c)](_0x1991db)){let _0x1df7f0='';if(_0x588984['bVYyT'](_0x1991db,_0x588984[_0x198e(0x5d)])||_0x588984[_0x198e(0x4a)](_0x1991db,_0x588984['eaOwW'])||_0x1991db===_0x588984[_0x198e(0x5e)]||_0x588984[_0x198e(0x4a)](_0x1991db,_0x198e(0x5f))||_0x588984['iYUtL'](_0x1991db,_0x588984[_0x198e(0x60)])||_0x588984[_0x198e(0x4a)](_0x1991db,_0x588984[_0x198e(0x61)])||_0x588984[_0x198e(0x4a)](_0x1991db,_0x198e(0x1c))||_0x588984['UClMh'](_0x1991db,_0x588984[_0x198e(0x62)]))_0x1df7f0=_0x588984[_0x198e(0x63)];else{if(_0x1991db===_0x588984[_0x198e(0x64)]||_0x588984[_0x198e(0x65)](_0x1991db,'og')||_0x1991db===_0x588984['Mkfye']||_0x588984[_0x198e(0x66)](_0x1991db,_0x198e(0x20))){if(_0x588984[_0x198e(0x67)](_0x588984[_0x198e(0x68)],'CmZvr')){_0x31ce74[_0x198e(0x69)](_0x198e(0x6a)),_0x588984['cjuZK'](_0x37aea3,_0x588984['sVFaX']);return;}else _0x1df7f0=_0x588984[_0x198e(0x6b)];}else{if(_0x588984[_0x198e(0x6c)](_0x1991db,_0x588984[_0x198e(0x6d)])||_0x588984[_0x198e(0x66)](_0x1991db,'ne')||_0x588984['CqwZt'](_0x1991db,_0x588984[_0x198e(0x6e)])||_0x588984[_0x198e(0x6f)](_0x1991db,_0x588984[_0x198e(0x70)]))_0x1df7f0=_0x588984[_0x198e(0x71)];else{if(_0x588984[_0x198e(0x4a)](_0x1991db,'oi')||_0x588984[_0x198e(0x72)](_0x1991db,_0x588984[_0x198e(0x73)])||_0x588984[_0x198e(0x65)](_0x1991db,_0x588984['pJuZV'])){if(_0x588984[_0x198e(0x74)](_0x588984[_0x198e(0x75)],_0x588984[_0x198e(0x76)]))_0x1df7f0=_0x198e(0x77);else return{'isValid':![],'error':_0x588984[_0x198e(0x54)]};}}}}return{'isValid':![],'error':_0x198e(0x78)+_0x1991db+').'+_0x1df7f0};}if(_0x588984[_0x198e(0x58)](_0x1991db[_0x198e(0x5a)],0x2)){if(_0x588984[_0x198e(0x79)](_0x588984[_0x198e(0x7a)],_0x588984[_0x198e(0x7b)])){_0x1b301f[_0x198e(0x69)](_0x588984[_0x198e(0x7c)],_0x24a251['error']),_0x588984[_0x198e(0x7d)](_0x14a2b5,_0x59c3ff['error']||_0x588984['fPwaa']);return;}else return{'isValid':![],'error':_0x198e(0x31)};}const _0xc45a50=VALID_TLDS[_0x198e(0x5c)](_0x1991db)||VALID_TLDS[_0x198e(0x5c)](_0x44bf68);if(!_0xc45a50&&_0x588984[_0x198e(0x7e)](_0x1991db[_0x198e(0x5a)],0x2)){if(_0x588984[_0x198e(0x7f)](_0x588984[_0x198e(0x80)],_0x588984[_0x198e(0x80)]))_0x253824=_0x588984['hNAkH'];else return{'isValid':![],'error':_0x198e(0x78)+_0x1991db+_0x198e(0x81)};}const _0x24e029=_0x9781c6[_0x198e(0x82)](0x0,-0x1)[_0x198e(0x83)]('.'),_0x12c330={'gmai':'gmail','gmial':_0x588984[_0x198e(0x84)],'gmil':_0x198e(0x3c),'gmal':_0x588984[_0x198e(0x84)],'gamil':_0x588984[_0x198e(0x84)],'outlok':_0x588984[_0x198e(0x85)],'outloo':_0x588984['RgHTZ'],'outlokk':_0x198e(0x3d),'yahooo':_0x588984[_0x198e(0x86)],'yaho':_0x588984[_0x198e(0x86)],'yhoo':_0x588984['YmdOi'],'hotmai':_0x588984['YdhwM'],'hotmal':_0x198e(0x3e),'hotmial':_0x588984[_0x198e(0x87)],'iclod':_0x588984[_0x198e(0x88)],'iclould':_0x588984[_0x198e(0x88)]};if(_0x12c330[_0x24e029]){if(_0x588984[_0x198e(0x89)]!==_0x198e(0x8a))return{'isValid':![],'error':_0x198e(0x53)+_0x12c330[_0x24e029]+'.'+_0x1991db+'?'};else{_0x3f6ce0[_0x198e(0x69)](_0x198e(0x8b)),_0x588984[_0x198e(0x8c)](_0x148ca7,_0x588984[_0x198e(0x8d)]);return;}}const _0x5f6f18=[_0x588984[_0x198e(0x84)],_0x198e(0x8e),_0x588984[_0x198e(0x87)],_0x588984[_0x198e(0x85)],_0x198e(0x3f),_0x588984['FDmdw'],_0x588984[_0x198e(0x8f)],_0x198e(0x90)],_0x4d6618={'gmail':_0x198e(0x0),'yahoo':_0x588984[_0x198e(0x91)],'hotmail':_0x588984[_0x198e(0x91)],'outlook':_0x588984['aDlJC'],'icloud':_0x588984[_0x198e(0x91)],'aol':_0x588984[_0x198e(0x91)],'protonmail':_0x588984[_0x198e(0x91)],'zoho':_0x198e(0x0)};if(_0x5f6f18['includes'](_0x24e029)&&_0x588984[_0x198e(0x92)](_0x1991db,_0x4d6618[_0x24e029])){if(_0x588984[_0x198e(0x92)](_0x588984['yVcga'],_0x588984[_0x198e(0x93)])){const _0x44b437=[_0x588984[_0x198e(0x4d)],_0x588984[_0x198e(0x4e)],_0x588984[_0x198e(0x4f)],_0x588984['HyOYu'],_0x588984['BPqql'],_0x198e(0x50),_0x588984[_0x198e(0x51)]],_0x337e32=_0x24e029+'.'+_0x1991db;if(!_0x44b437[_0x198e(0x52)](_0x337e32)){if(_0x588984[_0x198e(0x94)](_0x588984[_0x198e(0x95)],_0x198e(0x96)))_0x2c8612('');else return{'isValid':![],'error':_0x198e(0x53)+_0x24e029+'.'+_0x4d6618[_0x24e029]+'?'};}}else _0x22de71=_0x588984[_0x198e(0x6b)];}return{'isValid':!![]};},SignInStep=({onEmailSubmit:_0x5445da,onGoogleSignIn:_0x4cfb98,onContinue:_0x21a513,loading:loading=![],error:error='',initialEmail:initialEmail=''})=>{const _0x5bdd38={'gkjEz':function(_0x81fc1d,_0x195d64){return _0x81fc1d(_0x195d64);},'hvMGl':function(_0x3994a9,_0x538067){return _0x3994a9(_0x538067);},'CIppx':function(_0x8f2d8d,_0x55ddfc){return _0x8f2d8d!==_0x55ddfc;},'QhpvF':_0x198e(0x97),'aNYcq':function(_0x200265,_0x46e76d){return _0x200265(_0x46e76d);},'ojPZk':'\x20Did\x20you\x20mean\x20.com?','nnNkQ':function(_0x5ab3df,_0x524db3){return _0x5ab3df===_0x524db3;},'BIUIk':function(_0x2155ff,_0x2b4012){return _0x2155ff===_0x2b4012;},'PRRBC':_0x198e(0x98),'KDNcw':function(_0x18b3ae,_0x374dbf){return _0x18b3ae===_0x374dbf;},'ACnRP':_0x198e(0x99),'olNcA':_0x198e(0x9a),'uzaRc':function(_0x4dc3d8,_0x178c6f){return _0x4dc3d8(_0x178c6f);},'OBjcF':_0x198e(0x34),'DFgwx':_0x198e(0x9b),'oupKX':_0x198e(0x9c),'sOWuW':_0x198e(0x6a),'QxpFc':function(_0x25d254,_0x4fe99d){return _0x25d254!==_0x4fe99d;},'QUAiJ':_0x198e(0x9d),'mlgLD':function(_0x1eeb6c,_0xa23386){return _0x1eeb6c(_0xa23386);},'kOWKz':_0x198e(0x32),'UhiIj':'keyboardDidShow','oubbw':function(_0x5f1bf2,_0x299428){return _0x5f1bf2(_0x299428);},'bbcjx':_0x198e(0x9e),'sXIKO':_0x198e(0x9f),'PEaWD':_0x198e(0xa0),'oLEfh':'#9CA3AF','LuzXZ':function(_0xfda5c0,_0x1a5268){return _0xfda5c0||_0x1a5268;},'TMTYw':function(_0x248f41,_0x402db2){return _0x248f41||_0x402db2;},'rFmiq':_0x198e(0xa1)},[_0x4ad398,_0x4039b7]=_0x5bdd38[_0x198e(0xa2)](useState,initialEmail),[_0x4587b7,_0x59d9c]=_0x5bdd38[_0x198e(0xa3)](useState,![]),[_0x4493f2,_0x19bd88]=_0x5bdd38[_0x198e(0xa4)](useState,''),_0x166fbd=_0x2ef3d9=>{_0x5bdd38[_0x198e(0xa2)](_0x4039b7,_0x2ef3d9),_0x4493f2&&(_0x5bdd38[_0x198e(0xa5)](_0x5bdd38[_0x198e(0xa6)],_0x198e(0xa7))?_0x5bdd38[_0x198e(0xa8)](_0x19bd88,''):(_0x5bdd38['gkjEz'](_0xc7210b,_0x25710b),_0x437eb6&&_0x5bdd38[_0x198e(0xa9)](_0x6e108b,'')));},_0x268a4f=()=>{const _0x509142={'QlypE':function(_0x9b8c32,_0x6b1e76){return _0x5bdd38['nnNkQ'](_0x9b8c32,_0x6b1e76);},'VKsRb':function(_0x51483b,_0x437975){return _0x5bdd38['BIUIk'](_0x51483b,_0x437975);},'fSOPw':_0x5bdd38[_0x198e(0xaa)]};if(_0x5bdd38[_0x198e(0xab)](_0x4ad398[_0x198e(0x49)]()['trim'](),_0x198e(0xac))){if(_0x5bdd38[_0x198e(0xad)]!==_0x5bdd38[_0x198e(0xae)]){console[_0x198e(0x69)]('🔍\x20Reviewer\x20bypass\x20detected\x20in\x20new\x20UI'),_0x5bdd38['uzaRc'](_0x5445da,_0x5bdd38[_0x198e(0xaf)]);return;}else _0x4c6b33=_0x5bdd38['ojPZk'];}if(_0x5bdd38['BIUIk'](_0x4ad398[_0x198e(0x49)]()[_0x198e(0x48)](),_0x5bdd38['DFgwx'])){if(_0x5bdd38['KDNcw'](_0x5bdd38[_0x198e(0xb0)],_0x5bdd38[_0x198e(0xb0)])){console[_0x198e(0x69)](_0x5bdd38[_0x198e(0xb1)]),_0x5445da(_0x198e(0xb2));return;}else{const _0x5d699a={'XCRag':function(_0x116519,_0x414b82){return _0x509142[_0x198e(0xb3)](_0x116519,_0x414b82);},'VdZAs':function(_0x47d904,_0x31909b){return _0x509142[_0x198e(0xb4)](_0x47d904,_0x31909b);},'xsBGC':function(_0x313c6b,_0x8d418f){return _0x313c6b===_0x8d418f;}},_0x118801=_0x230be9[_0x198e(0xb5)](_0x198e(0xb6),()=>_0xa5f7d(!![])),_0x1ec27b=_0x3e234c['addListener'](_0x509142[_0x198e(0xb7)],()=>_0x325744(![]));return()=>{_0x5d699a['XCRag'](_0x1ec27b,null)||_0x5d699a[_0x198e(0xb8)](_0x1ec27b,void 0x0)||_0x1ec27b[_0x198e(0xb9)](),_0x5d699a['XCRag'](_0x118801,null)||_0x5d699a[_0x198e(0xba)](_0x118801,void 0x0)||_0x118801[_0x198e(0xb9)]();};}}if(_0x4ad398[_0x198e(0x48)]()){if(_0x5bdd38['QxpFc'](_0x5bdd38[_0x198e(0xbb)],'MPmcv')){const _0x5257d4=_0x5bdd38[_0x198e(0xbc)](validateEmail,_0x4ad398);if(!_0x5257d4[_0x198e(0xbd)]){console['log'](_0x5bdd38[_0x198e(0xbe)],_0x5257d4['error']),_0x5bdd38[_0x198e(0xa9)](_0x19bd88,_0x5257d4[_0x198e(0xbf)]||_0x198e(0xc0));return;}console['log'](_0x198e(0xc1)),_0x19bd88(''),_0x5bdd38[_0x198e(0xa8)](_0x5445da,_0x4ad398[_0x198e(0x48)]());}else return{'isValid':![],'error':_0x198e(0x31)};}};return useEffect(()=>{const _0x5a86a2={'xiLkP':function(_0x2cf02b,_0xa56bef){return _0x2cf02b===_0xa56bef;}},_0x187f95=Keyboard['addListener'](_0x5bdd38[_0x198e(0xc2)],()=>_0x59d9c(!![])),_0x2763a6=Keyboard[_0x198e(0xb5)](_0x5bdd38[_0x198e(0xaa)],()=>_0x59d9c(![]));return()=>{_0x5a86a2['xiLkP'](_0x2763a6,null)||_0x5a86a2['xiLkP'](_0x2763a6,void 0x0)||_0x2763a6[_0x198e(0xb9)](),_0x187f95===null||_0x5a86a2[_0x198e(0xc3)](_0x187f95,void 0x0)||_0x187f95['remove']();};},[]),React['createElement'](KeyboardAvoidingView,{'behavior':_0x5bdd38[_0x198e(0xc4)](Platform['OS'],_0x198e(0xc5))?_0x198e(0xc6):_0x5bdd38[_0x198e(0xc7)],'style':styles[_0x198e(0xc8)]},React[_0x198e(0xc9)](View,{'style':styles[_0x198e(0xca)]},React[_0x198e(0xc9)](View,{'style':styles[_0x198e(0xcb)]},React[_0x198e(0xc9)](Text,{'style':styles[_0x198e(0xcc)]},_0x5bdd38['sXIKO']),React[_0x198e(0xc9)](Text,{'style':styles[_0x198e(0xcd)]},_0x198e(0xce))),React[_0x198e(0xc9)](View,{'style':styles[_0x198e(0xcf)]},React[_0x198e(0xc9)](_0x2fd84a,{'value':_0x4ad398,'onChangeText':_0x166fbd,'onSubmitEditing':_0x268a4f,'returnKeyType':_0x198e(0xd0),'blurOnSubmit':!![],'placeholder':_0x5bdd38[_0x198e(0xd1)],'placeholderTextColor':_0x5bdd38['oLEfh']}),_0x5bdd38[_0x198e(0xd2)](_0x4493f2,error)?React[_0x198e(0xc9)](Text,{'style':styles[_0x198e(0xd3)]},_0x5bdd38[_0x198e(0xd4)](_0x4493f2,error)):null),React[_0x198e(0xc9)](View,{'style':styles[_0x198e(0xd5)]},React['createElement'](View,{'style':styles[_0x198e(0xd6)]}),React[_0x198e(0xc9)](Text,{'style':styles[_0x198e(0xd7)]},'Or'),React[_0x198e(0xc9)](View,{'style':styles[_0x198e(0xd6)]})),React[_0x198e(0xc9)](View,{'style':styles[_0x198e(0xd8)]},React[_0x198e(0xc9)](_0x1f898c,{'onPress':_0x4cfb98,'disabled':loading})),React[_0x198e(0xc9)](View,{'style':styles[_0x198e(0xd9)]}),React[_0x198e(0xc9)](View,{'style':styles['continueContainer']},React[_0x198e(0xc9)](_0x45886e,{'label':_0x5bdd38[_0x198e(0xda)],'onPress':_0x268a4f,'disabled':loading||!_0x4ad398['trim'](),'loading':loading}))));},styles=StyleSheet[_0x198e(0xdb)]({'container':{'flex':0x1},'content':{'flex':0x1,'paddingTop':0x18,'paddingHorizontal':0x18},'headingContainer':{'width':_0x198e(0xdc),'marginBottom':0x16,'paddingHorizontal':0x0},'title':{'fontFamily':'IBM\x20Plex\x20Sans','fontWeight':_0x198e(0xdd),'fontSize':0x18,'lineHeight':0x20,'color':COLORS[_0x198e(0xde)],'textAlign':_0x198e(0xdf),'marginBottom':SPACING['sm']},'subtitle':{'fontFamily':_0x198e(0xe0),'fontWeight':_0x198e(0xe1),'fontSize':0x10,'lineHeight':0x18,'color':COLORS[_0x198e(0xe2)],'textAlign':_0x198e(0xdf)},'inputContainer':{'marginBottom':0x20,'paddingHorizontal':0x0},'dividerContainer':{'flexDirection':_0x198e(0xe3),'alignItems':_0x198e(0xe4),'marginBottom':0x20,'paddingHorizontal':0x0},'dividerLine':{'flex':0x1,'height':0x1,'backgroundColor':_0x198e(0xe5)},'dividerText':{'paddingHorizontal':SPACING['md'],'fontSize':0xe,'fontFamily':_0x198e(0xe0),'fontWeight':_0x198e(0xe1),'color':COLORS[_0x198e(0xe6)]},'googleContainer':{'marginBottom':SPACING['xl'],'paddingHorizontal':0x0},'spacer':{'flex':0x1,'minHeight':0x14},'continueContainer':{'paddingBottom':SPACING['xl'],'paddingHorizontal':0x0},'errorText':{'fontSize':0xe,'fontFamily':'Inter','fontWeight':_0x198e(0xe1),'color':_0x198e(0xe7),'marginTop':0x8,'textAlign':_0x198e(0xdf)}});function _0x198e(_0x2de8ee,_0x198eb3){_0x2de8ee=_0x2de8ee-0x0;const _0x570d65=_0x2de8();let _0x246fa6=_0x570d65[_0x2de8ee];return _0x246fa6;}export{SignInStep};export default SignInStep;
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import { View, Text, StyleSheet, KeyboardAvoidingView, Platform, Keyboard } from 'react-native';
|
|
3
|
+
import { COLORS, SPACING } from '../theme';
|
|
4
|
+
import EmailInput from './EmailInput';
|
|
5
|
+
import GoogleButton from './GoogleButton';
|
|
6
|
+
import PrimaryButton from './PrimaryButton';
|
|
7
|
+
|
|
8
|
+
// Valid top-level domains (comprehensive list)
|
|
9
|
+
const VALID_TLDS = new Set([
|
|
10
|
+
// Generic TLDs
|
|
11
|
+
'com', 'org', 'net', 'edu', 'gov', 'mil', 'int',
|
|
12
|
+
// Popular TLDs
|
|
13
|
+
'io', 'co', 'ai', 'app', 'dev', 'tech', 'online', 'site', 'web', 'info', 'biz', 'me', 'tv', 'cc', 'xyz',
|
|
14
|
+
// Country code TLDs
|
|
15
|
+
'uk', 'us', 'ca', 'au', 'de', 'fr', 'it', 'es', 'nl', 'be', 'ch', 'at', 'se', 'no', 'dk', 'fi', 'jp', 'cn', 'kr', 'in', 'br', 'mx', 'ar', 'ru', 'pl', 'cz', 'ie', 'nz', 'za', 'sg', 'hk', 'tw', 'pt', 'gr', 'tr', 'il', 'ae', 'sa', 'eg', 'ng', 'ke', 'gh', 'ph', 'id', 'my', 'th', 'vn',
|
|
16
|
+
// Common compound TLDs
|
|
17
|
+
'co.uk', 'com.au', 'co.nz', 'co.za', 'com.br', 'co.jp', 'co.kr', 'co.in', 'org.uk', 'net.au', 'gov.uk', 'ac.uk', 'edu.au']);
|
|
18
|
+
|
|
19
|
+
// Common typos that should be rejected
|
|
20
|
+
const INVALID_TLDS = new Set(['con', 'cmo', 'vom', 'ocm', 'cm', 'cpm', 'ckm', 'om', 'comm', 'comn', 'copm', 'ogr', 'og', 'orgg', 'rog', 'rg', 'nte', 'ne', 'nett', 'ent', 'bet', 'oi', 'ioo', 'lio', 'gmai', 'gmial', 'gmil', 'gmal', 'gamil', 'outlok', 'outloo', 'outlokk', 'yahooo', 'yaho', 'yhoo', 'hotmai', 'hotmal', 'hotmial']);
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Validates an email address
|
|
24
|
+
* @param email - The email to validate
|
|
25
|
+
* @returns Object with isValid boolean and optional error message
|
|
26
|
+
*/
|
|
27
|
+
const validateEmail = email => {
|
|
28
|
+
const trimmedEmail = email.trim().toLowerCase();
|
|
29
|
+
|
|
30
|
+
// Basic format check
|
|
31
|
+
const basicEmailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
32
|
+
if (!basicEmailRegex.test(trimmedEmail)) {
|
|
33
|
+
return {
|
|
34
|
+
isValid: false,
|
|
35
|
+
error: 'Please enter a valid email address'
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Extract domain and TLD
|
|
40
|
+
const atIndex = trimmedEmail.lastIndexOf('@');
|
|
41
|
+
const domain = trimmedEmail.substring(atIndex + 1);
|
|
42
|
+
const parts = domain.split('.');
|
|
43
|
+
if (parts.length < 2) {
|
|
44
|
+
return {
|
|
45
|
+
isValid: false,
|
|
46
|
+
error: 'Please enter a valid email address'
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Get the TLD (last part) and check compound TLDs
|
|
51
|
+
const tld = parts[parts.length - 1];
|
|
52
|
+
const compoundTld = parts.length >= 2 ? `${parts[parts.length - 2]}.${tld}` : '';
|
|
53
|
+
|
|
54
|
+
// Check for invalid/typo TLDs first
|
|
55
|
+
if (INVALID_TLDS.has(tld)) {
|
|
56
|
+
// Suggest the correct TLD
|
|
57
|
+
let suggestion = '';
|
|
58
|
+
if (tld === 'con' || tld === 'cmo' || tld === 'vom' || tld === 'ocm' || tld === 'cpm' || tld === 'comm' || tld === 'comn' || tld === 'copm') {
|
|
59
|
+
suggestion = ' Did you mean .com?';
|
|
60
|
+
} else if (tld === 'ogr' || tld === 'og' || tld === 'orgg' || tld === 'rog') {
|
|
61
|
+
suggestion = ' Did you mean .org?';
|
|
62
|
+
} else if (tld === 'nte' || tld === 'ne' || tld === 'nett' || tld === 'ent') {
|
|
63
|
+
suggestion = ' Did you mean .net?';
|
|
64
|
+
} else if (tld === 'oi' || tld === 'ioo' || tld === 'lio') {
|
|
65
|
+
suggestion = ' Did you mean .io?';
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
isValid: false,
|
|
69
|
+
error: `Invalid email domain (.${tld}).${suggestion}`
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Check if TLD is too short (likely a typo)
|
|
74
|
+
if (tld.length < 2) {
|
|
75
|
+
return {
|
|
76
|
+
isValid: false,
|
|
77
|
+
error: 'Please enter a valid email address'
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Check if TLD is valid (either compound or single)
|
|
82
|
+
const isValidTld = VALID_TLDS.has(tld) || VALID_TLDS.has(compoundTld);
|
|
83
|
+
|
|
84
|
+
// For single-letter or very unusual TLDs, warn but still allow if not in invalid list
|
|
85
|
+
// This allows for new TLDs while catching obvious typos
|
|
86
|
+
if (!isValidTld && tld.length <= 2) {
|
|
87
|
+
return {
|
|
88
|
+
isValid: false,
|
|
89
|
+
error: `Invalid email domain (.${tld}). Please check your email.`
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Additional checks for common domain typos
|
|
94
|
+
const domainWithoutTld = parts.slice(0, -1).join('.');
|
|
95
|
+
const commonDomainTypos = {
|
|
96
|
+
'gmai': 'gmail',
|
|
97
|
+
'gmial': 'gmail',
|
|
98
|
+
'gmil': 'gmail',
|
|
99
|
+
'gmal': 'gmail',
|
|
100
|
+
'gamil': 'gmail',
|
|
101
|
+
'outlok': 'outlook',
|
|
102
|
+
'outloo': 'outlook',
|
|
103
|
+
'outlokk': 'outlook',
|
|
104
|
+
'yahooo': 'yahoo',
|
|
105
|
+
'yaho': 'yahoo',
|
|
106
|
+
'yhoo': 'yahoo',
|
|
107
|
+
'hotmai': 'hotmail',
|
|
108
|
+
'hotmal': 'hotmail',
|
|
109
|
+
'hotmial': 'hotmail',
|
|
110
|
+
'iclod': 'icloud',
|
|
111
|
+
'iclould': 'icloud'
|
|
112
|
+
};
|
|
113
|
+
if (commonDomainTypos[domainWithoutTld]) {
|
|
114
|
+
return {
|
|
115
|
+
isValid: false,
|
|
116
|
+
error: `Did you mean ${commonDomainTypos[domainWithoutTld]}.${tld}?`
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// 🔐 Check for common email providers with wrong TLDs
|
|
121
|
+
// These providers almost always use .com, so other TLDs are likely typos
|
|
122
|
+
const commonProviders = ['gmail', 'yahoo', 'hotmail', 'outlook', 'icloud', 'aol', 'protonmail', 'zoho'];
|
|
123
|
+
const expectedProviderTld = {
|
|
124
|
+
'gmail': 'com',
|
|
125
|
+
'yahoo': 'com',
|
|
126
|
+
'hotmail': 'com',
|
|
127
|
+
'outlook': 'com',
|
|
128
|
+
'icloud': 'com',
|
|
129
|
+
'aol': 'com',
|
|
130
|
+
'protonmail': 'com',
|
|
131
|
+
'zoho': 'com'
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
// Check if domain matches a common provider but has wrong TLD
|
|
135
|
+
if (commonProviders.includes(domainWithoutTld) && tld !== expectedProviderTld[domainWithoutTld]) {
|
|
136
|
+
// Allow known valid variants like yahoo.co.uk, outlook.co.uk etc
|
|
137
|
+
const validVariants = ['yahoo.co.uk', 'yahoo.co.jp', 'yahoo.com.br', 'yahoo.com.au', 'outlook.co.uk', 'hotmail.co.uk', 'hotmail.co.jp'];
|
|
138
|
+
const fullDomain = `${domainWithoutTld}.${tld}`;
|
|
139
|
+
if (!validVariants.includes(fullDomain)) {
|
|
140
|
+
return {
|
|
141
|
+
isValid: false,
|
|
142
|
+
error: `Did you mean ${domainWithoutTld}.${expectedProviderTld[domainWithoutTld]}?`
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
isValid: true
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
const SignInStep = ({
|
|
151
|
+
onEmailSubmit,
|
|
152
|
+
onGoogleSignIn,
|
|
153
|
+
onContinue,
|
|
154
|
+
loading = false,
|
|
155
|
+
error = '',
|
|
156
|
+
initialEmail = ''
|
|
157
|
+
}) => {
|
|
158
|
+
const [email, setEmail] = useState(initialEmail);
|
|
159
|
+
const [keyboardVisible, setKeyboardVisible] = useState(false);
|
|
160
|
+
const [validationError, setValidationError] = useState('');
|
|
161
|
+
|
|
162
|
+
// Clear validation error when user starts typing
|
|
163
|
+
const handleEmailChange = text => {
|
|
164
|
+
setEmail(text);
|
|
165
|
+
if (validationError) {
|
|
166
|
+
setValidationError('');
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
const handleEmailSubmit = () => {
|
|
170
|
+
// Check for reviewer bypass first
|
|
171
|
+
if (email.toLowerCase().trim() === 'reviewer') {
|
|
172
|
+
console.log('🔍 Reviewer bypass detected in new UI');
|
|
173
|
+
// Call onEmailSubmit with a special reviewer email that the parent can recognize
|
|
174
|
+
onEmailSubmit('reviewer@bypass.com');
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Check for test bypass - goes directly to verification screen
|
|
179
|
+
if (email.toLowerCase().trim() === 'test') {
|
|
180
|
+
console.log('🧪 Test bypass detected - skipping to verification screen');
|
|
181
|
+
onEmailSubmit('test@bypass.com');
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
if (email.trim()) {
|
|
185
|
+
// Validate email before submitting
|
|
186
|
+
const validation = validateEmail(email);
|
|
187
|
+
if (!validation.isValid) {
|
|
188
|
+
console.log('❌ Email validation failed:', validation.error);
|
|
189
|
+
setValidationError(validation.error || 'Invalid email address');
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
console.log('✅ Email validation passed');
|
|
193
|
+
setValidationError('');
|
|
194
|
+
onEmailSubmit(email.trim());
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
useEffect(() => {
|
|
198
|
+
const keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', () => setKeyboardVisible(true));
|
|
199
|
+
const keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', () => setKeyboardVisible(false));
|
|
200
|
+
return () => {
|
|
201
|
+
keyboardDidHideListener === null || keyboardDidHideListener === void 0 || keyboardDidHideListener.remove();
|
|
202
|
+
keyboardDidShowListener === null || keyboardDidShowListener === void 0 || keyboardDidShowListener.remove();
|
|
203
|
+
};
|
|
204
|
+
}, []);
|
|
205
|
+
return /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
|
|
206
|
+
behavior: Platform.OS === 'ios' ? 'padding' : 'height',
|
|
207
|
+
style: styles.container
|
|
208
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
209
|
+
style: styles.content
|
|
210
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
211
|
+
style: styles.headingContainer
|
|
212
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
213
|
+
style: styles.title
|
|
214
|
+
}, "Build your Onairos persona to own your digital identity"), /*#__PURE__*/React.createElement(Text, {
|
|
215
|
+
style: styles.subtitle
|
|
216
|
+
}, "Sign in or create an account")), /*#__PURE__*/React.createElement(View, {
|
|
217
|
+
style: styles.inputContainer
|
|
218
|
+
}, /*#__PURE__*/React.createElement(EmailInput, {
|
|
219
|
+
value: email,
|
|
220
|
+
onChangeText: handleEmailChange,
|
|
221
|
+
onSubmitEditing: handleEmailSubmit,
|
|
222
|
+
returnKeyType: "done",
|
|
223
|
+
blurOnSubmit: true,
|
|
224
|
+
placeholder: "Your email",
|
|
225
|
+
placeholderTextColor: "#9CA3AF"
|
|
226
|
+
}), validationError || error ? /*#__PURE__*/React.createElement(Text, {
|
|
227
|
+
style: styles.errorText
|
|
228
|
+
}, validationError || error) : null), /*#__PURE__*/React.createElement(View, {
|
|
229
|
+
style: styles.dividerContainer
|
|
230
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
231
|
+
style: styles.dividerLine
|
|
232
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
233
|
+
style: styles.dividerText
|
|
234
|
+
}, "Or"), /*#__PURE__*/React.createElement(View, {
|
|
235
|
+
style: styles.dividerLine
|
|
236
|
+
})), /*#__PURE__*/React.createElement(View, {
|
|
237
|
+
style: styles.googleContainer
|
|
238
|
+
}, /*#__PURE__*/React.createElement(GoogleButton, {
|
|
239
|
+
onPress: onGoogleSignIn,
|
|
240
|
+
disabled: loading
|
|
241
|
+
})), /*#__PURE__*/React.createElement(View, {
|
|
242
|
+
style: styles.spacer
|
|
243
|
+
}), /*#__PURE__*/React.createElement(View, {
|
|
244
|
+
style: styles.continueContainer
|
|
245
|
+
}, /*#__PURE__*/React.createElement(PrimaryButton, {
|
|
246
|
+
label: "Continue",
|
|
247
|
+
onPress: handleEmailSubmit,
|
|
248
|
+
disabled: loading || !email.trim(),
|
|
249
|
+
loading: loading
|
|
250
|
+
}))));
|
|
251
|
+
};
|
|
252
|
+
const styles = StyleSheet.create({
|
|
253
|
+
container: {
|
|
254
|
+
flex: 1
|
|
255
|
+
},
|
|
256
|
+
content: {
|
|
257
|
+
flex: 1,
|
|
258
|
+
paddingTop: 24,
|
|
259
|
+
// Added more top padding to lower content
|
|
260
|
+
paddingHorizontal: 24 // Match Enoch app edge padding
|
|
261
|
+
},
|
|
262
|
+
headingContainer: {
|
|
263
|
+
width: '100%',
|
|
264
|
+
// Fill sheet width
|
|
265
|
+
marginBottom: 22,
|
|
266
|
+
// Further reduced spacing to bring subtitle closer to email input
|
|
267
|
+
paddingHorizontal: 0 // No padding at all - text goes to absolute edges
|
|
268
|
+
// Removed alignItems: 'center' - no centering
|
|
269
|
+
},
|
|
270
|
+
title: {
|
|
271
|
+
fontFamily: 'IBM Plex Sans',
|
|
272
|
+
fontWeight: '700',
|
|
273
|
+
fontSize: 24,
|
|
274
|
+
lineHeight: 32,
|
|
275
|
+
color: COLORS.grey800,
|
|
276
|
+
textAlign: 'left',
|
|
277
|
+
// Left-aligned as specified
|
|
278
|
+
marginBottom: SPACING.sm
|
|
279
|
+
// No fixed width - let parent's 24px insets define available width (327px on 375pt device)
|
|
280
|
+
// Removed height constraint to allow natural wrapping
|
|
281
|
+
},
|
|
282
|
+
subtitle: {
|
|
283
|
+
fontFamily: 'Inter',
|
|
284
|
+
fontWeight: '400',
|
|
285
|
+
fontSize: 16,
|
|
286
|
+
lineHeight: 24,
|
|
287
|
+
color: COLORS.grey600,
|
|
288
|
+
textAlign: 'left' // Also left-align subtitle for consistency
|
|
289
|
+
},
|
|
290
|
+
inputContainer: {
|
|
291
|
+
marginBottom: 32,
|
|
292
|
+
// Consistent spacing
|
|
293
|
+
paddingHorizontal: 0 // Match headline - no padding, full width
|
|
294
|
+
},
|
|
295
|
+
dividerContainer: {
|
|
296
|
+
flexDirection: 'row',
|
|
297
|
+
alignItems: 'center',
|
|
298
|
+
marginBottom: 32,
|
|
299
|
+
// Consistent spacing
|
|
300
|
+
paddingHorizontal: 0 // Match headline - no padding, full width
|
|
301
|
+
},
|
|
302
|
+
dividerLine: {
|
|
303
|
+
flex: 1,
|
|
304
|
+
height: 1,
|
|
305
|
+
backgroundColor: '#E5E5E5'
|
|
306
|
+
},
|
|
307
|
+
dividerText: {
|
|
308
|
+
paddingHorizontal: SPACING.md,
|
|
309
|
+
fontSize: 14,
|
|
310
|
+
fontFamily: 'Inter',
|
|
311
|
+
fontWeight: '400',
|
|
312
|
+
color: COLORS.grey500
|
|
313
|
+
},
|
|
314
|
+
googleContainer: {
|
|
315
|
+
marginBottom: SPACING.xl,
|
|
316
|
+
paddingHorizontal: 0 // Match headline - no padding, full width
|
|
317
|
+
},
|
|
318
|
+
spacer: {
|
|
319
|
+
flex: 1,
|
|
320
|
+
minHeight: 20
|
|
321
|
+
},
|
|
322
|
+
continueContainer: {
|
|
323
|
+
paddingBottom: SPACING.xl,
|
|
324
|
+
paddingHorizontal: 0 // Match headline - no padding, full width
|
|
325
|
+
},
|
|
326
|
+
errorText: {
|
|
327
|
+
fontSize: 14,
|
|
328
|
+
fontFamily: 'Inter',
|
|
329
|
+
fontWeight: '400',
|
|
330
|
+
color: '#DC3545',
|
|
331
|
+
// Red color for errors
|
|
332
|
+
marginTop: 8,
|
|
333
|
+
textAlign: 'left'
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
export { SignInStep };
|
|
337
|
+
export default SignInStep;
|
|
338
|
+
//# sourceMappingURL=SignInStep.js.map
|