@oxyhq/services 5.11.10 → 5.11.11
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/ui/components/AnimationExample.js +1 -1
- package/lib/commonjs/ui/components/AnimationExample.js.map +1 -1
- package/lib/commonjs/ui/components/Header.js +2 -2
- package/lib/commonjs/ui/components/Header.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/StepBasedScreen.README.md +337 -0
- package/lib/commonjs/ui/components/StepBasedScreen.js +361 -0
- package/lib/commonjs/ui/components/StepBasedScreen.js.map +1 -0
- package/lib/commonjs/ui/components/icon/OxyIcon.js +3 -3
- package/lib/commonjs/ui/components/icon/OxyIcon.js.map +1 -1
- package/lib/commonjs/ui/components/internal/PinInput.js +1 -1
- package/lib/commonjs/ui/components/internal/PinInput.js.map +1 -1
- package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +7 -7
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +55 -55
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/RecoverAccountScreen.js +87 -219
- package/lib/commonjs/ui/screens/RecoverAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SignInScreen.js +138 -235
- package/lib/commonjs/ui/screens/SignInScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SignUpScreen.js +139 -742
- package/lib/commonjs/ui/screens/SignUpScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js +3 -3
- package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js.map +1 -1
- package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js +2 -2
- package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js.map +1 -1
- package/lib/commonjs/ui/screens/steps/RecoverRequestStep.js +110 -0
- package/lib/commonjs/ui/screens/steps/RecoverRequestStep.js.map +1 -0
- package/lib/commonjs/ui/screens/steps/RecoverSuccessStep.js +138 -0
- package/lib/commonjs/ui/screens/steps/RecoverSuccessStep.js.map +1 -0
- package/lib/commonjs/ui/screens/steps/RecoverVerifyStep.js +141 -0
- package/lib/commonjs/ui/screens/steps/RecoverVerifyStep.js.map +1 -0
- package/lib/commonjs/ui/screens/steps/SignInPasswordStep.js +165 -0
- package/lib/commonjs/ui/screens/steps/SignInPasswordStep.js.map +1 -0
- package/lib/commonjs/ui/screens/steps/SignInUsernameStep.js +150 -0
- package/lib/commonjs/ui/screens/steps/SignInUsernameStep.js.map +1 -0
- package/lib/commonjs/ui/screens/steps/SignUpIdentityStep.js +171 -0
- package/lib/commonjs/ui/screens/steps/SignUpIdentityStep.js.map +1 -0
- package/lib/commonjs/ui/screens/steps/SignUpSecurityStep.js +163 -0
- package/lib/commonjs/ui/screens/steps/SignUpSecurityStep.js.map +1 -0
- package/lib/commonjs/ui/screens/steps/SignUpSummaryStep.js +170 -0
- package/lib/commonjs/ui/screens/steps/SignUpSummaryStep.js.map +1 -0
- package/lib/commonjs/ui/screens/steps/SignUpWelcomeStep.js +72 -0
- package/lib/commonjs/ui/screens/steps/SignUpWelcomeStep.js.map +1 -0
- package/lib/module/ui/components/AnimationExample.js +1 -1
- package/lib/module/ui/components/AnimationExample.js.map +1 -1
- package/lib/module/ui/components/Header.js +2 -2
- package/lib/module/ui/components/Header.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/Section.js.map +1 -1
- package/lib/module/ui/components/SectionTitle.js.map +1 -1
- package/lib/module/ui/components/StepBasedScreen.README.md +337 -0
- package/lib/module/ui/components/StepBasedScreen.js +356 -0
- package/lib/module/ui/components/StepBasedScreen.js.map +1 -0
- package/lib/module/ui/components/icon/FAIRWalletIcon.js.map +1 -1
- package/lib/module/ui/components/icon/OxyIcon.js +3 -3
- package/lib/module/ui/components/icon/OxyIcon.js.map +1 -1
- package/lib/module/ui/components/internal/PinInput.js +1 -1
- package/lib/module/ui/components/internal/PinInput.js.map +1 -1
- package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +7 -7
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +55 -55
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/RecoverAccountScreen.js +91 -222
- package/lib/module/ui/screens/RecoverAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/SignInScreen.js +140 -237
- package/lib/module/ui/screens/SignInScreen.js.map +1 -1
- package/lib/module/ui/screens/SignUpScreen.js +141 -743
- package/lib/module/ui/screens/SignUpScreen.js.map +1 -1
- package/lib/module/ui/screens/internal/SignInPasswordStep.js +3 -3
- package/lib/module/ui/screens/internal/SignInPasswordStep.js.map +1 -1
- package/lib/module/ui/screens/internal/SignInUsernameStep.js +2 -2
- package/lib/module/ui/screens/internal/SignInUsernameStep.js.map +1 -1
- package/lib/module/ui/screens/steps/RecoverRequestStep.js +105 -0
- package/lib/module/ui/screens/steps/RecoverRequestStep.js.map +1 -0
- package/lib/module/ui/screens/steps/RecoverSuccessStep.js +133 -0
- package/lib/module/ui/screens/steps/RecoverSuccessStep.js.map +1 -0
- package/lib/module/ui/screens/steps/RecoverVerifyStep.js +136 -0
- package/lib/module/ui/screens/steps/RecoverVerifyStep.js.map +1 -0
- package/lib/module/ui/screens/steps/SignInPasswordStep.js +160 -0
- package/lib/module/ui/screens/steps/SignInPasswordStep.js.map +1 -0
- package/lib/module/ui/screens/steps/SignInUsernameStep.js +145 -0
- package/lib/module/ui/screens/steps/SignInUsernameStep.js.map +1 -0
- package/lib/module/ui/screens/steps/SignUpIdentityStep.js +166 -0
- package/lib/module/ui/screens/steps/SignUpIdentityStep.js.map +1 -0
- package/lib/module/ui/screens/steps/SignUpSecurityStep.js +158 -0
- package/lib/module/ui/screens/steps/SignUpSecurityStep.js.map +1 -0
- package/lib/module/ui/screens/steps/SignUpSummaryStep.js +165 -0
- package/lib/module/ui/screens/steps/SignUpSummaryStep.js.map +1 -0
- package/lib/module/ui/screens/steps/SignUpWelcomeStep.js +67 -0
- package/lib/module/ui/screens/steps/SignUpWelcomeStep.js.map +1 -0
- package/lib/typescript/models/interfaces.d.ts +4 -3
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/ui/components/AnimationExample.d.ts +1 -1
- package/lib/typescript/ui/components/AnimationExample.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxyPayButton.d.ts +2 -2
- package/lib/typescript/ui/components/OxyPayButton.d.ts.map +1 -1
- package/lib/typescript/ui/components/Section.d.ts +2 -1
- package/lib/typescript/ui/components/Section.d.ts.map +1 -1
- package/lib/typescript/ui/components/SectionTitle.d.ts +2 -1
- package/lib/typescript/ui/components/SectionTitle.d.ts.map +1 -1
- package/lib/typescript/ui/components/StepBasedScreen.d.ts +24 -0
- package/lib/typescript/ui/components/StepBasedScreen.d.ts.map +1 -0
- package/lib/typescript/ui/components/icon/FAIRWalletIcon.d.ts +2 -1
- package/lib/typescript/ui/components/icon/FAIRWalletIcon.d.ts.map +1 -1
- package/lib/typescript/ui/components/icon/OxyIcon.d.ts +1 -1
- package/lib/typescript/ui/components/icon/OxyIcon.d.ts.map +1 -1
- package/lib/typescript/ui/components/internal/PinInput.d.ts +9 -1
- package/lib/typescript/ui/components/internal/PinInput.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +2 -1
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts +2 -9
- package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SignInScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SignUpScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/SignUpScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/steps/RecoverRequestStep.d.ts +21 -0
- package/lib/typescript/ui/screens/steps/RecoverRequestStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/steps/RecoverSuccessStep.d.ts +18 -0
- package/lib/typescript/ui/screens/steps/RecoverSuccessStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/steps/RecoverVerifyStep.d.ts +24 -0
- package/lib/typescript/ui/screens/steps/RecoverVerifyStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/steps/SignInPasswordStep.d.ts +27 -0
- package/lib/typescript/ui/screens/steps/SignInPasswordStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/steps/SignInUsernameStep.d.ts +27 -0
- package/lib/typescript/ui/screens/steps/SignInUsernameStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/steps/SignUpIdentityStep.d.ts +25 -0
- package/lib/typescript/ui/screens/steps/SignUpIdentityStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/steps/SignUpSecurityStep.d.ts +26 -0
- package/lib/typescript/ui/screens/steps/SignUpSecurityStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/steps/SignUpSummaryStep.d.ts +16 -0
- package/lib/typescript/ui/screens/steps/SignUpSummaryStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/steps/SignUpWelcomeStep.d.ts +13 -0
- package/lib/typescript/ui/screens/steps/SignUpWelcomeStep.d.ts.map +1 -0
- package/package.json +2 -3
- package/src/models/interfaces.ts +5 -3
- package/src/ui/components/AnimationExample.tsx +9 -8
- package/src/ui/components/Header.tsx +2 -2
- package/src/ui/components/OxyPayButton.tsx +2 -2
- package/src/ui/components/OxyProvider.tsx +1 -1
- package/src/ui/components/Section.tsx +7 -7
- package/src/ui/components/SectionTitle.tsx +2 -2
- package/src/ui/components/StepBasedScreen.README.md +337 -0
- package/src/ui/components/StepBasedScreen.tsx +417 -0
- package/src/ui/components/icon/FAIRWalletIcon.tsx +2 -2
- package/src/ui/components/icon/OxyIcon.tsx +10 -11
- package/src/ui/components/internal/PinInput.tsx +13 -4
- package/src/ui/components/photogrid/JustifiedPhotoGrid.tsx +1 -1
- package/src/ui/context/OxyContext.tsx +12 -11
- package/src/ui/screens/PaymentGatewayScreen.tsx +2 -2
- package/src/ui/screens/ProfileScreen.tsx +54 -54
- package/src/ui/screens/RecoverAccountScreen.tsx +98 -211
- package/src/ui/screens/SignInScreen.tsx +148 -271
- package/src/ui/screens/SignUpScreen.tsx +146 -748
- package/src/ui/screens/internal/SignInPasswordStep.tsx +3 -3
- package/src/ui/screens/internal/SignInUsernameStep.tsx +2 -2
- package/src/ui/screens/steps/RecoverRequestStep.tsx +130 -0
- package/src/ui/screens/steps/RecoverSuccessStep.tsx +131 -0
- package/src/ui/screens/steps/RecoverVerifyStep.tsx +153 -0
- package/src/ui/screens/steps/SignInPasswordStep.tsx +172 -0
- package/src/ui/screens/steps/SignInUsernameStep.tsx +176 -0
- package/src/ui/screens/steps/SignUpIdentityStep.tsx +204 -0
- package/src/ui/screens/steps/SignUpSecurityStep.tsx +191 -0
- package/src/ui/screens/steps/SignUpSummaryStep.tsx +130 -0
- package/src/ui/screens/steps/SignUpWelcomeStep.tsx +65 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRef, useEffect } from 'react';
|
|
4
|
+
import { View, Text, TouchableOpacity } from 'react-native';
|
|
5
|
+
import { Ionicons } from '@expo/vector-icons';
|
|
6
|
+
import Avatar from '../../components/Avatar';
|
|
7
|
+
import GroupedPillButtons from '../../components/internal/GroupedPillButtons';
|
|
8
|
+
import TextField from '../../components/internal/TextField';
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
|
+
const SignInPasswordStep = ({
|
|
11
|
+
colors,
|
|
12
|
+
styles,
|
|
13
|
+
theme,
|
|
14
|
+
navigate,
|
|
15
|
+
prevStep,
|
|
16
|
+
password,
|
|
17
|
+
setPassword,
|
|
18
|
+
showPassword,
|
|
19
|
+
setShowPassword,
|
|
20
|
+
errorMessage,
|
|
21
|
+
setErrorMessage,
|
|
22
|
+
isLoading,
|
|
23
|
+
userProfile,
|
|
24
|
+
username,
|
|
25
|
+
handleSignIn
|
|
26
|
+
}) => {
|
|
27
|
+
const inputRef = useRef(null);
|
|
28
|
+
const handlePasswordChange = text => {
|
|
29
|
+
setPassword(text);
|
|
30
|
+
if (errorMessage) setErrorMessage('');
|
|
31
|
+
};
|
|
32
|
+
const handleSignInSubmit = async () => {
|
|
33
|
+
if (!password) {
|
|
34
|
+
setErrorMessage('Please enter your password.');
|
|
35
|
+
setTimeout(() => inputRef.current?.focus(), 0);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Call the actual sign-in function passed from props
|
|
40
|
+
await handleSignIn();
|
|
41
|
+
};
|
|
42
|
+
const togglePasswordVisibility = () => {
|
|
43
|
+
setShowPassword(!showPassword);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// Focus password input on error
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (errorMessage) {
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
inputRef.current?.focus();
|
|
51
|
+
}, 0);
|
|
52
|
+
}
|
|
53
|
+
}, [errorMessage]);
|
|
54
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
55
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
56
|
+
style: styles.modernUserProfileContainer,
|
|
57
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
58
|
+
style: styles.avatarContainer,
|
|
59
|
+
children: [/*#__PURE__*/_jsx(Avatar, {
|
|
60
|
+
name: userProfile?.displayName || userProfile?.name || username,
|
|
61
|
+
size: 100,
|
|
62
|
+
theme: theme,
|
|
63
|
+
style: styles.modernUserAvatar,
|
|
64
|
+
backgroundColor: colors.primary + '20'
|
|
65
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
66
|
+
style: [styles.statusIndicator, {
|
|
67
|
+
backgroundColor: colors.primary
|
|
68
|
+
}]
|
|
69
|
+
})]
|
|
70
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
71
|
+
style: [styles.modernUserDisplayName, {
|
|
72
|
+
color: colors.text
|
|
73
|
+
}],
|
|
74
|
+
children: userProfile?.displayName || userProfile?.name || username
|
|
75
|
+
}), /*#__PURE__*/_jsxs(Text, {
|
|
76
|
+
style: [styles.modernUsernameSubtext, {
|
|
77
|
+
color: colors.secondaryText
|
|
78
|
+
}],
|
|
79
|
+
children: ["@", username]
|
|
80
|
+
})]
|
|
81
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
82
|
+
style: styles.modernInputContainer,
|
|
83
|
+
children: [/*#__PURE__*/_jsx(TextField, {
|
|
84
|
+
ref: inputRef,
|
|
85
|
+
label: "Password",
|
|
86
|
+
leading: /*#__PURE__*/_jsx(Ionicons, {
|
|
87
|
+
name: "lock-closed-outline",
|
|
88
|
+
size: 24,
|
|
89
|
+
color: colors.secondaryText
|
|
90
|
+
}),
|
|
91
|
+
value: password,
|
|
92
|
+
onChangeText: handlePasswordChange,
|
|
93
|
+
secureTextEntry: !showPassword,
|
|
94
|
+
autoCapitalize: "none",
|
|
95
|
+
autoCorrect: false,
|
|
96
|
+
testID: "password-input",
|
|
97
|
+
variant: "filled",
|
|
98
|
+
error: errorMessage || undefined,
|
|
99
|
+
onSubmitEditing: handleSignInSubmit,
|
|
100
|
+
autoFocus: true
|
|
101
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
102
|
+
style: {
|
|
103
|
+
flexDirection: 'row',
|
|
104
|
+
alignItems: 'center',
|
|
105
|
+
marginBottom: 16
|
|
106
|
+
},
|
|
107
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
108
|
+
style: [styles.footerText, {
|
|
109
|
+
color: colors.text
|
|
110
|
+
}],
|
|
111
|
+
children: "Forgot your password? "
|
|
112
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
113
|
+
onPress: () => navigate('RecoverAccount', {
|
|
114
|
+
returnTo: 'SignIn',
|
|
115
|
+
returnStep: 1,
|
|
116
|
+
returnData: {
|
|
117
|
+
username,
|
|
118
|
+
userProfile
|
|
119
|
+
}
|
|
120
|
+
}),
|
|
121
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
122
|
+
style: [styles.modernLinkText, {
|
|
123
|
+
color: colors.primary
|
|
124
|
+
}],
|
|
125
|
+
children: "Recover your account"
|
|
126
|
+
})
|
|
127
|
+
})]
|
|
128
|
+
})]
|
|
129
|
+
}), /*#__PURE__*/_jsx(GroupedPillButtons, {
|
|
130
|
+
buttons: [{
|
|
131
|
+
text: 'Back',
|
|
132
|
+
onPress: prevStep,
|
|
133
|
+
icon: 'arrow-back',
|
|
134
|
+
variant: 'transparent'
|
|
135
|
+
}, {
|
|
136
|
+
text: 'Sign In',
|
|
137
|
+
onPress: handleSignInSubmit,
|
|
138
|
+
icon: 'log-in',
|
|
139
|
+
variant: 'primary',
|
|
140
|
+
loading: isLoading,
|
|
141
|
+
testID: 'login-button'
|
|
142
|
+
}],
|
|
143
|
+
colors: colors
|
|
144
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
145
|
+
style: styles.securityNotice,
|
|
146
|
+
children: [/*#__PURE__*/_jsx(Ionicons, {
|
|
147
|
+
name: "shield-checkmark",
|
|
148
|
+
size: 14,
|
|
149
|
+
color: colors.secondaryText
|
|
150
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
151
|
+
style: [styles.securityText, {
|
|
152
|
+
color: colors.secondaryText
|
|
153
|
+
}],
|
|
154
|
+
children: "Your data is encrypted and secure"
|
|
155
|
+
})]
|
|
156
|
+
})]
|
|
157
|
+
});
|
|
158
|
+
};
|
|
159
|
+
export default SignInPasswordStep;
|
|
160
|
+
//# sourceMappingURL=SignInPasswordStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","useEffect","View","Text","TouchableOpacity","Ionicons","Avatar","GroupedPillButtons","TextField","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SignInPasswordStep","colors","styles","theme","navigate","prevStep","password","setPassword","showPassword","setShowPassword","errorMessage","setErrorMessage","isLoading","userProfile","username","handleSignIn","inputRef","handlePasswordChange","text","handleSignInSubmit","setTimeout","current","focus","togglePasswordVisibility","children","style","modernUserProfileContainer","avatarContainer","name","displayName","size","modernUserAvatar","backgroundColor","primary","statusIndicator","modernUserDisplayName","color","modernUsernameSubtext","secondaryText","modernInputContainer","ref","label","leading","value","onChangeText","secureTextEntry","autoCapitalize","autoCorrect","testID","variant","error","undefined","onSubmitEditing","autoFocus","flexDirection","alignItems","marginBottom","footerText","onPress","returnTo","returnStep","returnData","modernLinkText","buttons","icon","loading","securityNotice","securityText"],"sourceRoot":"../../../../../src","sources":["ui/screens/steps/SignInPasswordStep.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRef, useEffect } from 'react';
|
|
4
|
+
import { View, Text } from 'react-native';
|
|
5
|
+
import { Ionicons } from '@expo/vector-icons';
|
|
6
|
+
import HighFive from '../../../assets/illustrations/HighFive';
|
|
7
|
+
import GroupedPillButtons from '../../components/internal/GroupedPillButtons';
|
|
8
|
+
import TextField from '../../components/internal/TextField';
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
|
+
const SignInUsernameStep = ({
|
|
11
|
+
colors,
|
|
12
|
+
styles,
|
|
13
|
+
navigate,
|
|
14
|
+
nextStep,
|
|
15
|
+
username,
|
|
16
|
+
setUsername,
|
|
17
|
+
errorMessage,
|
|
18
|
+
setErrorMessage,
|
|
19
|
+
validationStatus,
|
|
20
|
+
userProfile,
|
|
21
|
+
isValidating,
|
|
22
|
+
isAddAccountMode,
|
|
23
|
+
user,
|
|
24
|
+
validateUsername
|
|
25
|
+
}) => {
|
|
26
|
+
const inputRef = useRef(null);
|
|
27
|
+
|
|
28
|
+
// Monitor username prop changes
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
console.log('👀 SignInUsernameStep username prop changed:', username);
|
|
31
|
+
}, [username]);
|
|
32
|
+
const handleUsernameChange = text => {
|
|
33
|
+
console.log('📝 Username input changed:', text);
|
|
34
|
+
setUsername(text);
|
|
35
|
+
if (errorMessage) setErrorMessage('');
|
|
36
|
+
};
|
|
37
|
+
const handleContinue = async () => {
|
|
38
|
+
console.log('🚀 Continue button pressed, username:', username);
|
|
39
|
+
const trimmedUsername = username?.trim() || '';
|
|
40
|
+
if (!trimmedUsername) {
|
|
41
|
+
console.log('❌ Username is empty');
|
|
42
|
+
setErrorMessage('Please enter your username.');
|
|
43
|
+
setTimeout(() => inputRef.current?.focus(), 0);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (trimmedUsername.length < 2) {
|
|
47
|
+
console.log('❌ Username too short');
|
|
48
|
+
setErrorMessage('Username must be at least 3 characters.');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
console.log('🔍 Starting username validation...');
|
|
52
|
+
try {
|
|
53
|
+
// Validate the username before proceeding
|
|
54
|
+
const isValid = await validateUsername(trimmedUsername);
|
|
55
|
+
console.log('📊 Validation result:', isValid);
|
|
56
|
+
if (isValid) {
|
|
57
|
+
console.log('✅ Validation passed, proceeding to next step');
|
|
58
|
+
nextStep();
|
|
59
|
+
} else {
|
|
60
|
+
console.log('❌ Validation failed, staying on current step');
|
|
61
|
+
}
|
|
62
|
+
} catch (error) {
|
|
63
|
+
console.error('🚨 Error during validation:', error);
|
|
64
|
+
setErrorMessage('Unable to validate username. Please try again.');
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
68
|
+
children: [/*#__PURE__*/_jsx(HighFive, {
|
|
69
|
+
width: 100,
|
|
70
|
+
height: 100
|
|
71
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
72
|
+
style: styles.modernHeader,
|
|
73
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
74
|
+
style: [styles.modernTitle, {
|
|
75
|
+
color: colors.text
|
|
76
|
+
}],
|
|
77
|
+
children: isAddAccountMode ? 'Add Another Account' : 'Sign In'
|
|
78
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
79
|
+
style: [styles.modernSubtitle, {
|
|
80
|
+
color: colors.secondaryText
|
|
81
|
+
}],
|
|
82
|
+
children: isAddAccountMode ? 'Sign in with another account' : 'Sign in to continue your journey'
|
|
83
|
+
})]
|
|
84
|
+
}), isAddAccountMode && user && /*#__PURE__*/_jsxs(View, {
|
|
85
|
+
style: [styles.modernInfoCard, {
|
|
86
|
+
backgroundColor: colors.inputBackground
|
|
87
|
+
}],
|
|
88
|
+
children: [/*#__PURE__*/_jsx(Ionicons, {
|
|
89
|
+
name: "information-circle",
|
|
90
|
+
size: 20,
|
|
91
|
+
color: colors.primary
|
|
92
|
+
}), /*#__PURE__*/_jsxs(Text, {
|
|
93
|
+
style: [styles.modernInfoText, {
|
|
94
|
+
color: colors.text
|
|
95
|
+
}],
|
|
96
|
+
children: ["Currently signed in as ", /*#__PURE__*/_jsx(Text, {
|
|
97
|
+
style: {
|
|
98
|
+
fontWeight: 'bold'
|
|
99
|
+
},
|
|
100
|
+
children: user.username
|
|
101
|
+
})]
|
|
102
|
+
})]
|
|
103
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
104
|
+
style: styles.modernInputContainer,
|
|
105
|
+
children: /*#__PURE__*/_jsx(TextField, {
|
|
106
|
+
ref: inputRef,
|
|
107
|
+
label: "Username",
|
|
108
|
+
leading: /*#__PURE__*/_jsx(Ionicons, {
|
|
109
|
+
name: "person-outline",
|
|
110
|
+
size: 24,
|
|
111
|
+
color: colors.secondaryText
|
|
112
|
+
}),
|
|
113
|
+
value: username,
|
|
114
|
+
onChangeText: handleUsernameChange,
|
|
115
|
+
autoCapitalize: "none",
|
|
116
|
+
autoCorrect: false,
|
|
117
|
+
testID: "username-input",
|
|
118
|
+
variant: "filled",
|
|
119
|
+
error: validationStatus === 'invalid' ? errorMessage : undefined,
|
|
120
|
+
loading: validationStatus === 'validating',
|
|
121
|
+
success: validationStatus === 'valid',
|
|
122
|
+
onSubmitEditing: () => handleContinue(),
|
|
123
|
+
autoFocus: true
|
|
124
|
+
})
|
|
125
|
+
}), /*#__PURE__*/_jsx(GroupedPillButtons, {
|
|
126
|
+
buttons: [{
|
|
127
|
+
text: 'Sign Up',
|
|
128
|
+
onPress: () => navigate('SignUp'),
|
|
129
|
+
icon: 'person-add',
|
|
130
|
+
variant: 'transparent'
|
|
131
|
+
}, {
|
|
132
|
+
text: 'Continue',
|
|
133
|
+
onPress: handleContinue,
|
|
134
|
+
icon: 'arrow-forward',
|
|
135
|
+
variant: 'primary',
|
|
136
|
+
loading: isValidating,
|
|
137
|
+
disabled: !username || username.trim().length < 2 || isValidating,
|
|
138
|
+
testID: 'username-next-button'
|
|
139
|
+
}],
|
|
140
|
+
colors: colors
|
|
141
|
+
})]
|
|
142
|
+
});
|
|
143
|
+
};
|
|
144
|
+
export default SignInUsernameStep;
|
|
145
|
+
//# sourceMappingURL=SignInUsernameStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","useEffect","View","Text","Ionicons","HighFive","GroupedPillButtons","TextField","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SignInUsernameStep","colors","styles","navigate","nextStep","username","setUsername","errorMessage","setErrorMessage","validationStatus","userProfile","isValidating","isAddAccountMode","user","validateUsername","inputRef","console","log","handleUsernameChange","text","handleContinue","trimmedUsername","trim","setTimeout","current","focus","length","isValid","error","children","width","height","style","modernHeader","modernTitle","color","modernSubtitle","secondaryText","modernInfoCard","backgroundColor","inputBackground","name","size","primary","modernInfoText","fontWeight","modernInputContainer","ref","label","leading","value","onChangeText","autoCapitalize","autoCorrect","testID","variant","undefined","loading","success","onSubmitEditing","autoFocus","buttons","onPress","icon","disabled"],"sourceRoot":"../../../../../src","sources":["ui/screens/steps/SignInUsernameStep.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRef, useEffect, useCallback } from 'react';
|
|
4
|
+
import { View, Text } from 'react-native';
|
|
5
|
+
import { Ionicons } from '@expo/vector-icons';
|
|
6
|
+
import GroupedPillButtons from '../../components/internal/GroupedPillButtons';
|
|
7
|
+
import TextField from '../../components/internal/TextField';
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
9
|
+
const SignUpIdentityStep = ({
|
|
10
|
+
colors,
|
|
11
|
+
styles,
|
|
12
|
+
navigate,
|
|
13
|
+
nextStep,
|
|
14
|
+
prevStep,
|
|
15
|
+
username,
|
|
16
|
+
email,
|
|
17
|
+
setUsername,
|
|
18
|
+
setEmail,
|
|
19
|
+
validationState,
|
|
20
|
+
setValidationState,
|
|
21
|
+
setErrorMessage,
|
|
22
|
+
validateEmail,
|
|
23
|
+
validateUsername
|
|
24
|
+
}) => {
|
|
25
|
+
const usernameRef = useRef(null);
|
|
26
|
+
const validationTimeoutRef = useRef(null);
|
|
27
|
+
|
|
28
|
+
// Debounced username validation
|
|
29
|
+
const debouncedValidateUsername = useCallback(usernameToValidate => {
|
|
30
|
+
if (validationTimeoutRef.current) {
|
|
31
|
+
clearTimeout(validationTimeoutRef.current);
|
|
32
|
+
}
|
|
33
|
+
validationTimeoutRef.current = setTimeout(async () => {
|
|
34
|
+
if (usernameToValidate.trim().length >= 3) {
|
|
35
|
+
await validateUsername(usernameToValidate.trim());
|
|
36
|
+
}
|
|
37
|
+
}, 500);
|
|
38
|
+
}, [validateUsername]);
|
|
39
|
+
|
|
40
|
+
// Cleanup timeout on unmount
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
return () => {
|
|
43
|
+
if (validationTimeoutRef.current) {
|
|
44
|
+
clearTimeout(validationTimeoutRef.current);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}, []);
|
|
48
|
+
const handleUsernameChange = text => {
|
|
49
|
+
setUsername(text);
|
|
50
|
+
setErrorMessage('');
|
|
51
|
+
// Reset validation state when user types
|
|
52
|
+
if (validationState.status !== 'idle') {
|
|
53
|
+
setValidationState({
|
|
54
|
+
status: 'idle',
|
|
55
|
+
message: ''
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Trigger debounced validation
|
|
60
|
+
debouncedValidateUsername(text);
|
|
61
|
+
};
|
|
62
|
+
const handleEmailChange = text => {
|
|
63
|
+
setEmail(text);
|
|
64
|
+
setErrorMessage('');
|
|
65
|
+
};
|
|
66
|
+
const handleNext = async () => {
|
|
67
|
+
if (!username.trim()) {
|
|
68
|
+
setErrorMessage('Please enter a username');
|
|
69
|
+
setTimeout(() => usernameRef.current?.focus(), 0);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (username.trim().length < 3) {
|
|
73
|
+
setErrorMessage('Username must be at least 3 characters');
|
|
74
|
+
setTimeout(() => usernameRef.current?.focus(), 0);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (!email.trim()) {
|
|
78
|
+
setErrorMessage('Please enter an email address');
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (!validateEmail(email)) {
|
|
82
|
+
setErrorMessage('Please enter a valid email address');
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Validate username availability
|
|
87
|
+
const isUsernameValid = await validateUsername(username.trim());
|
|
88
|
+
if (!isUsernameValid) {
|
|
89
|
+
setTimeout(() => usernameRef.current?.focus(), 0);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
nextStep();
|
|
93
|
+
};
|
|
94
|
+
const emailError = email && !validateEmail(email) ? 'Please enter a valid email address' : undefined;
|
|
95
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
96
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
97
|
+
style: styles.modernHeader,
|
|
98
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
99
|
+
style: [styles.modernTitle, {
|
|
100
|
+
color: colors.text
|
|
101
|
+
}],
|
|
102
|
+
children: "Who are you?"
|
|
103
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
104
|
+
style: [styles.modernSubtitle, {
|
|
105
|
+
color: colors.secondaryText
|
|
106
|
+
}],
|
|
107
|
+
children: "Choose your username and enter your email"
|
|
108
|
+
})]
|
|
109
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
110
|
+
style: styles.modernInputContainer,
|
|
111
|
+
children: [/*#__PURE__*/_jsx(TextField, {
|
|
112
|
+
ref: usernameRef,
|
|
113
|
+
label: "Username",
|
|
114
|
+
leading: /*#__PURE__*/_jsx(Ionicons, {
|
|
115
|
+
name: "person-outline",
|
|
116
|
+
size: 24,
|
|
117
|
+
color: colors.secondaryText
|
|
118
|
+
}),
|
|
119
|
+
value: username,
|
|
120
|
+
onChangeText: handleUsernameChange,
|
|
121
|
+
autoCapitalize: "none",
|
|
122
|
+
autoCorrect: false,
|
|
123
|
+
testID: "signup-username-input",
|
|
124
|
+
variant: "filled",
|
|
125
|
+
error: validationState.status === 'invalid' ? validationState.message : undefined,
|
|
126
|
+
loading: validationState.status === 'validating',
|
|
127
|
+
success: validationState.status === 'valid',
|
|
128
|
+
onSubmitEditing: handleNext,
|
|
129
|
+
autoFocus: true
|
|
130
|
+
}), /*#__PURE__*/_jsx(TextField, {
|
|
131
|
+
label: "Email",
|
|
132
|
+
leading: /*#__PURE__*/_jsx(Ionicons, {
|
|
133
|
+
name: "mail-outline",
|
|
134
|
+
size: 24,
|
|
135
|
+
color: colors.secondaryText
|
|
136
|
+
}),
|
|
137
|
+
value: email,
|
|
138
|
+
onChangeText: handleEmailChange,
|
|
139
|
+
keyboardType: "email-address",
|
|
140
|
+
autoCapitalize: "none",
|
|
141
|
+
autoCorrect: false,
|
|
142
|
+
testID: "signup-email-input",
|
|
143
|
+
variant: "filled",
|
|
144
|
+
error: emailError,
|
|
145
|
+
onSubmitEditing: handleNext
|
|
146
|
+
})]
|
|
147
|
+
}), /*#__PURE__*/_jsx(GroupedPillButtons, {
|
|
148
|
+
buttons: [{
|
|
149
|
+
text: 'Back',
|
|
150
|
+
onPress: prevStep,
|
|
151
|
+
icon: 'arrow-back',
|
|
152
|
+
variant: 'transparent'
|
|
153
|
+
}, {
|
|
154
|
+
text: 'Next',
|
|
155
|
+
onPress: handleNext,
|
|
156
|
+
icon: 'arrow-forward',
|
|
157
|
+
variant: 'primary',
|
|
158
|
+
loading: validationState.status === 'validating',
|
|
159
|
+
disabled: !username.trim() || username.trim().length < 3 || !email.trim() || !validateEmail(email) || validationState.status === 'validating' || validationState.status === 'invalid'
|
|
160
|
+
}],
|
|
161
|
+
colors: colors
|
|
162
|
+
})]
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
export default SignUpIdentityStep;
|
|
166
|
+
//# sourceMappingURL=SignUpIdentityStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","useEffect","useCallback","View","Text","Ionicons","GroupedPillButtons","TextField","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SignUpIdentityStep","colors","styles","navigate","nextStep","prevStep","username","email","setUsername","setEmail","validationState","setValidationState","setErrorMessage","validateEmail","validateUsername","usernameRef","validationTimeoutRef","debouncedValidateUsername","usernameToValidate","current","clearTimeout","setTimeout","trim","length","handleUsernameChange","text","status","message","handleEmailChange","handleNext","focus","isUsernameValid","emailError","undefined","children","style","modernHeader","modernTitle","color","modernSubtitle","secondaryText","modernInputContainer","ref","label","leading","name","size","value","onChangeText","autoCapitalize","autoCorrect","testID","variant","error","loading","success","onSubmitEditing","autoFocus","keyboardType","buttons","onPress","icon","disabled"],"sourceRoot":"../../../../../src","sources":["ui/screens/steps/SignUpIdentityStep.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRef } from 'react';
|
|
4
|
+
import { View, Text, TouchableOpacity } from 'react-native';
|
|
5
|
+
import { Ionicons } from '@expo/vector-icons';
|
|
6
|
+
import GroupedPillButtons from '../../components/internal/GroupedPillButtons';
|
|
7
|
+
import TextField from '../../components/internal/TextField';
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
9
|
+
const SignUpSecurityStep = ({
|
|
10
|
+
colors,
|
|
11
|
+
styles,
|
|
12
|
+
nextStep,
|
|
13
|
+
prevStep,
|
|
14
|
+
password,
|
|
15
|
+
confirmPassword,
|
|
16
|
+
setPassword,
|
|
17
|
+
setConfirmPassword,
|
|
18
|
+
showPassword,
|
|
19
|
+
showConfirmPassword,
|
|
20
|
+
setShowPassword,
|
|
21
|
+
setShowConfirmPassword,
|
|
22
|
+
setErrorMessage,
|
|
23
|
+
validatePassword
|
|
24
|
+
}) => {
|
|
25
|
+
const passwordRef = useRef(null);
|
|
26
|
+
const handlePasswordChange = text => {
|
|
27
|
+
setPassword(text);
|
|
28
|
+
setErrorMessage('');
|
|
29
|
+
};
|
|
30
|
+
const handleConfirmPasswordChange = text => {
|
|
31
|
+
setConfirmPassword(text);
|
|
32
|
+
setErrorMessage('');
|
|
33
|
+
};
|
|
34
|
+
const handleNext = () => {
|
|
35
|
+
if (!password) {
|
|
36
|
+
setErrorMessage('Please enter a password');
|
|
37
|
+
setTimeout(() => passwordRef.current?.focus(), 0);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (!validatePassword(password)) {
|
|
41
|
+
setErrorMessage('Password must be at least 8 characters long');
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (!confirmPassword) {
|
|
45
|
+
setErrorMessage('Please confirm your password');
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (password !== confirmPassword) {
|
|
49
|
+
setErrorMessage('Passwords do not match');
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
nextStep();
|
|
53
|
+
};
|
|
54
|
+
const passwordError = password && !validatePassword(password) ? 'Password must be at least 8 characters long' : undefined;
|
|
55
|
+
const confirmPasswordError = confirmPassword && password !== confirmPassword ? 'Passwords do not match' : undefined;
|
|
56
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
57
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
58
|
+
style: styles.modernHeader,
|
|
59
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
60
|
+
style: [styles.modernTitle, {
|
|
61
|
+
color: colors.text
|
|
62
|
+
}],
|
|
63
|
+
children: "Secure Your Account"
|
|
64
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
65
|
+
style: [styles.modernSubtitle, {
|
|
66
|
+
color: colors.secondaryText
|
|
67
|
+
}],
|
|
68
|
+
children: "Create a strong password to protect your account"
|
|
69
|
+
})]
|
|
70
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
71
|
+
style: styles.modernInputContainer,
|
|
72
|
+
children: [/*#__PURE__*/_jsx(TextField, {
|
|
73
|
+
ref: passwordRef,
|
|
74
|
+
label: "Password",
|
|
75
|
+
leading: /*#__PURE__*/_jsx(Ionicons, {
|
|
76
|
+
name: "lock-closed-outline",
|
|
77
|
+
size: 24,
|
|
78
|
+
color: colors.secondaryText
|
|
79
|
+
}),
|
|
80
|
+
trailing: /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
81
|
+
onPress: () => setShowPassword(!showPassword),
|
|
82
|
+
style: {
|
|
83
|
+
padding: 4
|
|
84
|
+
},
|
|
85
|
+
children: /*#__PURE__*/_jsx(Ionicons, {
|
|
86
|
+
name: showPassword ? "eye-off-outline" : "eye-outline",
|
|
87
|
+
size: 20,
|
|
88
|
+
color: colors.secondaryText
|
|
89
|
+
})
|
|
90
|
+
}),
|
|
91
|
+
value: password,
|
|
92
|
+
onChangeText: handlePasswordChange,
|
|
93
|
+
secureTextEntry: !showPassword,
|
|
94
|
+
autoCapitalize: "none",
|
|
95
|
+
autoCorrect: false,
|
|
96
|
+
testID: "signup-password-input",
|
|
97
|
+
variant: "filled",
|
|
98
|
+
error: passwordError,
|
|
99
|
+
onSubmitEditing: handleNext,
|
|
100
|
+
autoFocus: true
|
|
101
|
+
}), /*#__PURE__*/_jsx(TextField, {
|
|
102
|
+
label: "Confirm Password",
|
|
103
|
+
leading: /*#__PURE__*/_jsx(Ionicons, {
|
|
104
|
+
name: "lock-closed-outline",
|
|
105
|
+
size: 24,
|
|
106
|
+
color: colors.secondaryText
|
|
107
|
+
}),
|
|
108
|
+
trailing: /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
109
|
+
onPress: () => setShowConfirmPassword(!showConfirmPassword),
|
|
110
|
+
style: {
|
|
111
|
+
padding: 4
|
|
112
|
+
},
|
|
113
|
+
children: /*#__PURE__*/_jsx(Ionicons, {
|
|
114
|
+
name: showConfirmPassword ? "eye-off-outline" : "eye-outline",
|
|
115
|
+
size: 20,
|
|
116
|
+
color: colors.secondaryText
|
|
117
|
+
})
|
|
118
|
+
}),
|
|
119
|
+
value: confirmPassword,
|
|
120
|
+
onChangeText: handleConfirmPasswordChange,
|
|
121
|
+
secureTextEntry: !showConfirmPassword,
|
|
122
|
+
autoCapitalize: "none",
|
|
123
|
+
autoCorrect: false,
|
|
124
|
+
testID: "signup-confirm-password-input",
|
|
125
|
+
variant: "filled",
|
|
126
|
+
error: confirmPasswordError,
|
|
127
|
+
onSubmitEditing: handleNext
|
|
128
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
129
|
+
style: {
|
|
130
|
+
marginTop: 16
|
|
131
|
+
},
|
|
132
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
133
|
+
style: [styles.footerText, {
|
|
134
|
+
color: colors.secondaryText,
|
|
135
|
+
fontSize: 12
|
|
136
|
+
}],
|
|
137
|
+
children: "Password must be at least 8 characters long"
|
|
138
|
+
})
|
|
139
|
+
})]
|
|
140
|
+
}), /*#__PURE__*/_jsx(GroupedPillButtons, {
|
|
141
|
+
buttons: [{
|
|
142
|
+
text: 'Back',
|
|
143
|
+
onPress: prevStep,
|
|
144
|
+
icon: 'arrow-back',
|
|
145
|
+
variant: 'transparent'
|
|
146
|
+
}, {
|
|
147
|
+
text: 'Next',
|
|
148
|
+
onPress: handleNext,
|
|
149
|
+
icon: 'arrow-forward',
|
|
150
|
+
variant: 'primary',
|
|
151
|
+
disabled: !password || !confirmPassword || password !== confirmPassword
|
|
152
|
+
}],
|
|
153
|
+
colors: colors
|
|
154
|
+
})]
|
|
155
|
+
});
|
|
156
|
+
};
|
|
157
|
+
export default SignUpSecurityStep;
|
|
158
|
+
//# sourceMappingURL=SignUpSecurityStep.js.map
|