@kiosinc/commons-rn 0.1.43 → 0.1.44
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/auth/api/authentication.js.map +1 -1
- package/lib/commonjs/auth/hooks/useAuthentication.js +26 -1
- package/lib/commonjs/auth/hooks/useAuthentication.js.map +1 -1
- package/lib/commonjs/auth/screens/Login.js +130 -0
- package/lib/commonjs/auth/screens/Login.js.map +1 -0
- package/lib/commonjs/auth/screens/{LoginScreen.js → LoginWithEmail.js} +12 -57
- package/lib/commonjs/auth/screens/LoginWithEmail.js.map +1 -0
- package/lib/commonjs/auth/screens/LoginWithPhoneNumber.js +87 -0
- package/lib/commonjs/auth/screens/LoginWithPhoneNumber.js.map +1 -0
- package/lib/commonjs/auth/screens/ResetPassword.js +3 -3
- package/lib/commonjs/auth/screens/ResetPassword.js.map +1 -1
- package/lib/commonjs/auth/screens/SignUp.js +3 -3
- package/lib/commonjs/auth/screens/SignUp.js.map +1 -1
- package/lib/commonjs/auth/screens/VerifyPhoneNumber.js +6 -4
- package/lib/commonjs/auth/screens/VerifyPhoneNumber.js.map +1 -1
- package/lib/commonjs/auth/screens/VerifyPhoneNumberForLogin.js +109 -0
- package/lib/commonjs/auth/screens/VerifyPhoneNumberForLogin.js.map +1 -0
- package/lib/commonjs/auth/screens/index.js +10 -6
- package/lib/commonjs/auth/screens/index.js.map +1 -1
- package/lib/commonjs/auth/screens/validators.js +5 -1
- package/lib/commonjs/auth/screens/validators.js.map +1 -1
- package/lib/module/auth/api/authentication.js.map +1 -1
- package/lib/module/auth/hooks/useAuthentication.js +26 -1
- package/lib/module/auth/hooks/useAuthentication.js.map +1 -1
- package/lib/module/auth/screens/Login.js +120 -0
- package/lib/module/auth/screens/Login.js.map +1 -0
- package/lib/module/auth/screens/{LoginScreen.js → LoginWithEmail.js} +12 -57
- package/lib/module/auth/screens/LoginWithEmail.js.map +1 -0
- package/lib/module/auth/screens/LoginWithPhoneNumber.js +78 -0
- package/lib/module/auth/screens/LoginWithPhoneNumber.js.map +1 -0
- package/lib/module/auth/screens/ResetPassword.js +1 -1
- package/lib/module/auth/screens/ResetPassword.js.map +1 -1
- package/lib/module/auth/screens/SignUp.js +1 -1
- package/lib/module/auth/screens/SignUp.js.map +1 -1
- package/lib/module/auth/screens/VerifyPhoneNumber.js +4 -2
- package/lib/module/auth/screens/VerifyPhoneNumber.js.map +1 -1
- package/lib/module/auth/screens/VerifyPhoneNumberForLogin.js +101 -0
- package/lib/module/auth/screens/VerifyPhoneNumberForLogin.js.map +1 -0
- package/lib/module/auth/screens/index.js +12 -8
- package/lib/module/auth/screens/index.js.map +1 -1
- package/lib/module/auth/screens/validators.js +3 -0
- package/lib/module/auth/screens/validators.js.map +1 -1
- package/lib/typescript/src/auth/api/authentication.d.ts +6 -1
- package/lib/typescript/src/auth/api/authentication.d.ts.map +1 -1
- package/lib/typescript/src/auth/hooks/useAuthentication.d.ts +12 -1
- package/lib/typescript/src/auth/hooks/useAuthentication.d.ts.map +1 -1
- package/lib/typescript/src/auth/screens/Login.d.ts +3 -0
- package/lib/typescript/src/auth/screens/Login.d.ts.map +1 -0
- package/lib/typescript/src/auth/screens/LoginWithEmail.d.ts +3 -0
- package/lib/typescript/src/auth/screens/LoginWithEmail.d.ts.map +1 -0
- package/lib/typescript/src/auth/screens/LoginWithPhoneNumber.d.ts +3 -0
- package/lib/typescript/src/auth/screens/LoginWithPhoneNumber.d.ts.map +1 -0
- package/lib/typescript/src/auth/screens/ResetPassword.d.ts +1 -1
- package/lib/typescript/src/auth/screens/ResetPassword.d.ts.map +1 -1
- package/lib/typescript/src/auth/screens/SignUp.d.ts +1 -1
- package/lib/typescript/src/auth/screens/SignUp.d.ts.map +1 -1
- package/lib/typescript/src/auth/screens/VerifyPhoneNumber.d.ts +2 -2
- package/lib/typescript/src/auth/screens/VerifyPhoneNumber.d.ts.map +1 -1
- package/lib/typescript/src/auth/screens/VerifyPhoneNumberForLogin.d.ts +8 -0
- package/lib/typescript/src/auth/screens/VerifyPhoneNumberForLogin.d.ts.map +1 -0
- package/lib/typescript/src/auth/screens/index.d.ts.map +1 -1
- package/lib/typescript/src/auth/screens/validators.d.ts +5 -0
- package/lib/typescript/src/auth/screens/validators.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/auth/api/authentication.ts +6 -1
- package/src/auth/hooks/useAuthentication.ts +20 -1
- package/src/auth/screens/Login.tsx +140 -0
- package/src/auth/screens/LoginWithEmail.tsx +120 -0
- package/src/auth/screens/LoginWithPhoneNumber.tsx +78 -0
- package/src/auth/screens/ResetPassword.tsx +1 -1
- package/src/auth/screens/SignUp.tsx +1 -1
- package/src/auth/screens/VerifyPhoneNumber.tsx +8 -6
- package/src/auth/screens/VerifyPhoneNumberForLogin.tsx +112 -0
- package/src/auth/screens/index.tsx +13 -8
- package/src/auth/screens/validators.ts +5 -0
- package/lib/commonjs/auth/screens/LoginScreen.js.map +0 -1
- package/lib/module/auth/screens/LoginScreen.js.map +0 -1
- package/lib/typescript/src/auth/screens/LoginScreen.d.ts +0 -3
- package/lib/typescript/src/auth/screens/LoginScreen.d.ts.map +0 -1
- package/src/auth/screens/LoginScreen.tsx +0 -172
|
@@ -78,6 +78,25 @@ export const useAuthentication = () => {
|
|
|
78
78
|
}
|
|
79
79
|
},
|
|
80
80
|
}),
|
|
81
|
+
useConfirmPhoneNumber: () =>
|
|
82
|
+
useMutation(async ({ code }: { code: string }) => {
|
|
83
|
+
await confirmationResult.confirm(code);
|
|
84
|
+
}),
|
|
85
|
+
useVerifyPhoneNumberForLogin: () =>
|
|
86
|
+
useMutation(async ({ phoneNumber }: { phoneNumber: string }) => {
|
|
87
|
+
const response: any = await checkIsRegisteredAPI({ phoneNumber });
|
|
88
|
+
console.log('response', response);
|
|
89
|
+
if (response?.data?.isRegistered === true) {
|
|
90
|
+
confirmationResult = await auth().signInWithPhoneNumber(phoneNumber);
|
|
91
|
+
navigation.navigate('VerifyPhoneNumberForLogin', { phoneNumber });
|
|
92
|
+
} else {
|
|
93
|
+
Alert.show({
|
|
94
|
+
description: t('authentication.userDoesNotExist', {
|
|
95
|
+
emailOrPhoneNumber: phoneNumber,
|
|
96
|
+
}),
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}),
|
|
81
100
|
useVerifyPhoneNumber: () =>
|
|
82
101
|
useMutation(async (payload: TUserData): Promise<any> => {
|
|
83
102
|
try {
|
|
@@ -99,7 +118,7 @@ export const useAuthentication = () => {
|
|
|
99
118
|
} catch {
|
|
100
119
|
Alert.show({
|
|
101
120
|
description: t('authentication.userDoesNotExist', {
|
|
102
|
-
email,
|
|
121
|
+
emailOrPhoneNumber: email,
|
|
103
122
|
}),
|
|
104
123
|
});
|
|
105
124
|
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ParentView,
|
|
3
|
+
Text,
|
|
4
|
+
View,
|
|
5
|
+
LinkButton,
|
|
6
|
+
KeyboardAvoidingView,
|
|
7
|
+
Header,
|
|
8
|
+
} from '../../components';
|
|
9
|
+
import {
|
|
10
|
+
type NavigationProp,
|
|
11
|
+
useNavigation,
|
|
12
|
+
useTheme,
|
|
13
|
+
} from '@react-navigation/native';
|
|
14
|
+
import React, { useEffect } from 'react';
|
|
15
|
+
import { useTranslation } from 'react-i18next';
|
|
16
|
+
import AppLogo from '../../assets/icons/appLogo.svg';
|
|
17
|
+
import { useMMKVString } from 'react-native-mmkv';
|
|
18
|
+
import { MMKV_KEYS } from '../../constants';
|
|
19
|
+
import FastImage from 'react-native-fast-image';
|
|
20
|
+
import Config from 'react-native-config';
|
|
21
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
22
|
+
import { StyleSheet } from 'react-native';
|
|
23
|
+
import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';
|
|
24
|
+
import { LoginWithPhoneNumber } from './LoginWithPhoneNumber';
|
|
25
|
+
import { LoginWithEmail } from './LoginWithEmail';
|
|
26
|
+
|
|
27
|
+
const Tab = createMaterialTopTabNavigator();
|
|
28
|
+
|
|
29
|
+
const TabBarTitle =
|
|
30
|
+
({ title }: { title: string }) =>
|
|
31
|
+
({ focused }: { focused: boolean }) => {
|
|
32
|
+
return (
|
|
33
|
+
<Text variant="labelLarge" color={focused ? 'primary' : 'onBackground'}>
|
|
34
|
+
{title}
|
|
35
|
+
</Text>
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const Login = () => {
|
|
40
|
+
const { t } = useTranslation();
|
|
41
|
+
const navigation = useNavigation<NavigationProp<RootStackType>>();
|
|
42
|
+
|
|
43
|
+
const [_, setBusinessId] = useMMKVString(MMKV_KEYS.BUSINESS_ID);
|
|
44
|
+
const queryClient = useQueryClient();
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
queryClient.invalidateQueries();
|
|
47
|
+
setBusinessId(undefined);
|
|
48
|
+
FastImage.clearMemoryCache();
|
|
49
|
+
FastImage.clearDiskCache();
|
|
50
|
+
}, [queryClient, setBusinessId]);
|
|
51
|
+
|
|
52
|
+
const theme = useTheme();
|
|
53
|
+
const tabBarStyles = getStyles(theme);
|
|
54
|
+
|
|
55
|
+
return (
|
|
56
|
+
<ParentView px="16">
|
|
57
|
+
<Header left={10} position={'absolute'} zIndex={'100'} />
|
|
58
|
+
<View flex={1} justifyContent={'center'}>
|
|
59
|
+
<KeyboardAvoidingView
|
|
60
|
+
flex={1}
|
|
61
|
+
behavior="padding"
|
|
62
|
+
alignSelf="center"
|
|
63
|
+
justifyContent={'center'}
|
|
64
|
+
width={{ phone: '100%', tablet: 372 }}
|
|
65
|
+
>
|
|
66
|
+
<View alignItems="center">
|
|
67
|
+
<AppLogo />
|
|
68
|
+
<Text style={styles.text} variant="titleLarge">
|
|
69
|
+
{t('authentication.logIn')}
|
|
70
|
+
</Text>
|
|
71
|
+
</View>
|
|
72
|
+
<View height={340} pt="24">
|
|
73
|
+
<Tab.Navigator
|
|
74
|
+
screenOptions={{
|
|
75
|
+
tabBarIndicatorStyle: tabBarStyles.tabBarIndicatorStyle,
|
|
76
|
+
tabBarStyle: {
|
|
77
|
+
backgroundColor: theme.colors.background,
|
|
78
|
+
},
|
|
79
|
+
}}
|
|
80
|
+
>
|
|
81
|
+
<Tab.Screen
|
|
82
|
+
options={{
|
|
83
|
+
tabBarLabel: TabBarTitle({
|
|
84
|
+
title: t('authentication.phoneNumber'),
|
|
85
|
+
}),
|
|
86
|
+
}}
|
|
87
|
+
name="LoginWithPhoneNumber"
|
|
88
|
+
component={LoginWithPhoneNumber}
|
|
89
|
+
/>
|
|
90
|
+
<Tab.Screen
|
|
91
|
+
options={{
|
|
92
|
+
tabBarLabel: TabBarTitle({
|
|
93
|
+
title: t('authentication.email'),
|
|
94
|
+
}),
|
|
95
|
+
}}
|
|
96
|
+
name="LoginWithEmail"
|
|
97
|
+
component={LoginWithEmail}
|
|
98
|
+
/>
|
|
99
|
+
</Tab.Navigator>
|
|
100
|
+
</View>
|
|
101
|
+
{Config.APP_NAME !== 'git' && (
|
|
102
|
+
<View
|
|
103
|
+
alignItems="center"
|
|
104
|
+
justifyContent="center"
|
|
105
|
+
pt="4"
|
|
106
|
+
flexDirection="row"
|
|
107
|
+
>
|
|
108
|
+
<Text variant="labelLarge">{t('authentication.newToApp')}</Text>
|
|
109
|
+
<LinkButton
|
|
110
|
+
mode="text"
|
|
111
|
+
onPress={() => {
|
|
112
|
+
navigation.navigate('SignUp');
|
|
113
|
+
}}
|
|
114
|
+
>
|
|
115
|
+
{t('authentication.signUp')}
|
|
116
|
+
</LinkButton>
|
|
117
|
+
</View>
|
|
118
|
+
)}
|
|
119
|
+
</KeyboardAvoidingView>
|
|
120
|
+
</View>
|
|
121
|
+
</ParentView>
|
|
122
|
+
);
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
const styles = StyleSheet.create({
|
|
126
|
+
text: { paddingTop: '5%' },
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
const getStyles = (theme: any) =>
|
|
130
|
+
StyleSheet.create({
|
|
131
|
+
tabBarIndicatorStyle: {
|
|
132
|
+
backgroundColor: theme.colors.primary,
|
|
133
|
+
left: '20%',
|
|
134
|
+
width: '10%',
|
|
135
|
+
height: 3,
|
|
136
|
+
borderTopLeftRadius: 10,
|
|
137
|
+
borderTopRightRadius: 10,
|
|
138
|
+
alignSelf: 'center',
|
|
139
|
+
},
|
|
140
|
+
});
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import {
|
|
2
|
+
View,
|
|
3
|
+
TextInput,
|
|
4
|
+
Button,
|
|
5
|
+
LinkButton,
|
|
6
|
+
Snackbar,
|
|
7
|
+
} from '../../components';
|
|
8
|
+
import { type NavigationProp, useNavigation } from '@react-navigation/native';
|
|
9
|
+
import React, { useState } from 'react';
|
|
10
|
+
import { useTranslation } from 'react-i18next';
|
|
11
|
+
import { Controller, useForm } from 'react-hook-form';
|
|
12
|
+
import { yupResolver } from '@hookform/resolvers/yup';
|
|
13
|
+
import { loginValidationSchema } from './validators';
|
|
14
|
+
import auth from '@react-native-firebase/auth';
|
|
15
|
+
import { StyleSheet } from 'react-native';
|
|
16
|
+
|
|
17
|
+
type FormData = {
|
|
18
|
+
email: string;
|
|
19
|
+
password: string;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const LoginWithEmail = () => {
|
|
23
|
+
const { t } = useTranslation();
|
|
24
|
+
const navigation = useNavigation<NavigationProp<RootStackType>>();
|
|
25
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
26
|
+
|
|
27
|
+
const {
|
|
28
|
+
handleSubmit,
|
|
29
|
+
control,
|
|
30
|
+
formState: { errors },
|
|
31
|
+
} = useForm<FormData>({
|
|
32
|
+
resolver: yupResolver(loginValidationSchema(t)),
|
|
33
|
+
defaultValues: {
|
|
34
|
+
email: '',
|
|
35
|
+
password: '',
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const onSubmit = (data: FormData) => {
|
|
40
|
+
setIsLoading(true);
|
|
41
|
+
auth()
|
|
42
|
+
.signInWithEmailAndPassword(data.email, data.password)
|
|
43
|
+
.catch(() => {
|
|
44
|
+
Snackbar.show({ title: t('authentication.wrongCredentials') });
|
|
45
|
+
})
|
|
46
|
+
.finally(() => {
|
|
47
|
+
setIsLoading(false);
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<View paddingTop={'24'}>
|
|
53
|
+
<View height={160}>
|
|
54
|
+
<Controller
|
|
55
|
+
control={control}
|
|
56
|
+
render={({ field: { onChange, onBlur, value } }) => {
|
|
57
|
+
return (
|
|
58
|
+
<TextInput
|
|
59
|
+
my="5"
|
|
60
|
+
keyboardType="email-address"
|
|
61
|
+
autoCapitalize="none"
|
|
62
|
+
mode="outlined"
|
|
63
|
+
autoComplete="email"
|
|
64
|
+
error={!!errors.email?.message}
|
|
65
|
+
errorMessage={errors.email?.message}
|
|
66
|
+
onBlur={onBlur}
|
|
67
|
+
onChangeText={onChange}
|
|
68
|
+
value={value}
|
|
69
|
+
label={t('authentication.email')}
|
|
70
|
+
/>
|
|
71
|
+
);
|
|
72
|
+
}}
|
|
73
|
+
name="email"
|
|
74
|
+
/>
|
|
75
|
+
<Controller
|
|
76
|
+
control={control}
|
|
77
|
+
render={({ field: { onChange, onBlur, value } }) => {
|
|
78
|
+
return (
|
|
79
|
+
<TextInput
|
|
80
|
+
mt="5"
|
|
81
|
+
secureTextEntry={true}
|
|
82
|
+
mode="outlined"
|
|
83
|
+
autoComplete="current-password"
|
|
84
|
+
error={!!errors.password?.message}
|
|
85
|
+
errorMessage={errors.password?.message}
|
|
86
|
+
onBlur={onBlur}
|
|
87
|
+
onChangeText={onChange}
|
|
88
|
+
value={value}
|
|
89
|
+
label={t('authentication.password')}
|
|
90
|
+
/>
|
|
91
|
+
);
|
|
92
|
+
}}
|
|
93
|
+
name="password"
|
|
94
|
+
/>
|
|
95
|
+
<LinkButton
|
|
96
|
+
alignSelf="flex-end"
|
|
97
|
+
mode="text"
|
|
98
|
+
onPress={() => {
|
|
99
|
+
navigation.navigate('ResetPassword');
|
|
100
|
+
}}
|
|
101
|
+
>
|
|
102
|
+
{t('authentication.forgotPassword')}
|
|
103
|
+
</LinkButton>
|
|
104
|
+
</View>
|
|
105
|
+
<Button
|
|
106
|
+
loading={isLoading}
|
|
107
|
+
style={styles.button}
|
|
108
|
+
mode="contained"
|
|
109
|
+
onPress={handleSubmit(onSubmit)}
|
|
110
|
+
>
|
|
111
|
+
{t('authentication.logIn')}
|
|
112
|
+
</Button>
|
|
113
|
+
</View>
|
|
114
|
+
);
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const styles = StyleSheet.create({
|
|
118
|
+
button: { marginVertical: '5%' },
|
|
119
|
+
text: { paddingTop: '5%' },
|
|
120
|
+
});
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Button, PhoneInput, View } from '../../components';
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import { Controller, useForm } from 'react-hook-form';
|
|
5
|
+
import { yupResolver } from '@hookform/resolvers/yup';
|
|
6
|
+
import { loginWithPhoneNumberValidationSchema } from './validators';
|
|
7
|
+
import { StyleSheet } from 'react-native';
|
|
8
|
+
import { useAuthentication } from '../hooks/useAuthentication';
|
|
9
|
+
import { ICountry } from 'react-native-international-phone-number';
|
|
10
|
+
|
|
11
|
+
type FormData = {
|
|
12
|
+
phoneNumber: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const LoginWithPhoneNumber = () => {
|
|
16
|
+
const { t } = useTranslation();
|
|
17
|
+
const { useVerifyPhoneNumberForLogin } = useAuthentication();
|
|
18
|
+
const { mutate: sendCode, isLoading: isSendingCode } =
|
|
19
|
+
useVerifyPhoneNumberForLogin();
|
|
20
|
+
const [selectedCountry, setSelectedCountry] = useState<ICountry>();
|
|
21
|
+
|
|
22
|
+
const {
|
|
23
|
+
handleSubmit,
|
|
24
|
+
control,
|
|
25
|
+
formState: { errors },
|
|
26
|
+
} = useForm<FormData>({
|
|
27
|
+
resolver: yupResolver(loginWithPhoneNumberValidationSchema(t)),
|
|
28
|
+
defaultValues: {
|
|
29
|
+
phoneNumber: '',
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const onSubmit = (data: FormData) => {
|
|
34
|
+
sendCode({
|
|
35
|
+
phoneNumber: (
|
|
36
|
+
(selectedCountry?.callingCode ?? '') + data.phoneNumber
|
|
37
|
+
).replaceAll(' ', ''),
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<View paddingTop="24">
|
|
43
|
+
<View height={160}>
|
|
44
|
+
<Controller
|
|
45
|
+
control={control}
|
|
46
|
+
render={({ field: { onChange, onBlur, value } }) => {
|
|
47
|
+
return (
|
|
48
|
+
<PhoneInput
|
|
49
|
+
placeholder="Phone Number"
|
|
50
|
+
onBlur={onBlur}
|
|
51
|
+
onChangePhoneNumber={onChange}
|
|
52
|
+
value={value}
|
|
53
|
+
defaultCountry="US"
|
|
54
|
+
errorMessage={errors.phoneNumber?.message}
|
|
55
|
+
selectedCountry={selectedCountry as ICountry}
|
|
56
|
+
onChangeSelectedCountry={setSelectedCountry}
|
|
57
|
+
/>
|
|
58
|
+
);
|
|
59
|
+
}}
|
|
60
|
+
name="phoneNumber"
|
|
61
|
+
/>
|
|
62
|
+
</View>
|
|
63
|
+
<Button
|
|
64
|
+
loading={isSendingCode}
|
|
65
|
+
style={styles.button}
|
|
66
|
+
mode="contained"
|
|
67
|
+
onPress={handleSubmit(onSubmit)}
|
|
68
|
+
>
|
|
69
|
+
{t('authentication.logIn')}
|
|
70
|
+
</Button>
|
|
71
|
+
</View>
|
|
72
|
+
);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const styles = StyleSheet.create({
|
|
76
|
+
button: { marginVertical: '5%' },
|
|
77
|
+
text: { paddingTop: '5%' },
|
|
78
|
+
});
|
|
@@ -19,7 +19,7 @@ type FormData = {
|
|
|
19
19
|
email: string;
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
export const
|
|
22
|
+
export const ResetPassword = () => {
|
|
23
23
|
const { t } = useTranslation();
|
|
24
24
|
const navigation = useNavigation<NavigationProp<RootStackType>>();
|
|
25
25
|
const { useResetPassword } = useAuthentication();
|
|
@@ -31,7 +31,7 @@ export type TUserForm = {
|
|
|
31
31
|
name?: string;
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
export const
|
|
34
|
+
export const SignUp = () => {
|
|
35
35
|
const [selectedCountry, setSelectedCountry] = useState<ICountry>();
|
|
36
36
|
const { t } = useTranslation();
|
|
37
37
|
const { useIsCheckRegistered } = useAuthentication();
|
|
@@ -20,14 +20,14 @@ type FormData = {
|
|
|
20
20
|
code: string;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
type
|
|
23
|
+
type VerifyPhoneNumberProps = {
|
|
24
24
|
route: RouteProp<RootStackType, 'VerifyPhoneNumber'>;
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
export const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const params = route.params;
|
|
27
|
+
export const VerifyPhoneNumber: React.FC<VerifyPhoneNumberProps> = ({
|
|
28
|
+
route,
|
|
29
|
+
}) => {
|
|
30
|
+
const params = route.params as any;
|
|
31
31
|
const { t } = useTranslation();
|
|
32
32
|
const { useSignUp, useVerifyPhoneNumber } = useAuthentication();
|
|
33
33
|
|
|
@@ -65,7 +65,9 @@ export const VerifyPhoneNumberScreen: React.FC<
|
|
|
65
65
|
textAlign="center"
|
|
66
66
|
variant="bodyLarge"
|
|
67
67
|
>
|
|
68
|
-
{t('authentication.codeSent'
|
|
68
|
+
{t('authentication.codeSent', {
|
|
69
|
+
phoneNumber: params.phoneNumber,
|
|
70
|
+
})}
|
|
69
71
|
</Text>
|
|
70
72
|
</View>
|
|
71
73
|
<Controller
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ParentView,
|
|
3
|
+
Text,
|
|
4
|
+
View,
|
|
5
|
+
Button,
|
|
6
|
+
LinkButton,
|
|
7
|
+
OtpInputs,
|
|
8
|
+
KeyboardAvoidingView,
|
|
9
|
+
Header,
|
|
10
|
+
} from '../../components';
|
|
11
|
+
import type { RouteProp } from '@react-navigation/native';
|
|
12
|
+
import React from 'react';
|
|
13
|
+
import { useTranslation } from 'react-i18next';
|
|
14
|
+
import { Controller, useForm } from 'react-hook-form';
|
|
15
|
+
import { yupResolver } from '@hookform/resolvers/yup';
|
|
16
|
+
import { verificationValidationSchema } from './validators';
|
|
17
|
+
import { useAuthentication } from '../hooks/useAuthentication';
|
|
18
|
+
|
|
19
|
+
type FormData = {
|
|
20
|
+
code: string;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type VerifyPhoneNumberForLoginProps = {
|
|
24
|
+
route: RouteProp<RootStackType, 'VerifyPhoneNumberForLogin'>;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const VerifyPhoneNumberForLogin: React.FC<
|
|
28
|
+
VerifyPhoneNumberForLoginProps
|
|
29
|
+
> = ({ route }) => {
|
|
30
|
+
const params = route.params as any;
|
|
31
|
+
const { t } = useTranslation();
|
|
32
|
+
const { useVerifyPhoneNumberForLogin, useConfirmPhoneNumber } =
|
|
33
|
+
useAuthentication();
|
|
34
|
+
|
|
35
|
+
const { mutate: confirmCode, isLoading: isConfirmingCode } =
|
|
36
|
+
useConfirmPhoneNumber();
|
|
37
|
+
const { mutate: resendCode, isLoading: isResendingCode } =
|
|
38
|
+
useVerifyPhoneNumberForLogin();
|
|
39
|
+
|
|
40
|
+
const { handleSubmit, control } = useForm<FormData>({
|
|
41
|
+
resolver: yupResolver(verificationValidationSchema),
|
|
42
|
+
defaultValues: {
|
|
43
|
+
code: '',
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
const onSubmit = (data: FormData) => {
|
|
48
|
+
confirmCode({ code: data.code });
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<ParentView px="16">
|
|
53
|
+
<Header left={10} position={'absolute'} zIndex={'100'} />
|
|
54
|
+
<View flex={1} justifyContent={'center'}>
|
|
55
|
+
<KeyboardAvoidingView
|
|
56
|
+
alignSelf="center"
|
|
57
|
+
justifyContent={'center'}
|
|
58
|
+
width={{ phone: '100%', tablet: 372 }}
|
|
59
|
+
>
|
|
60
|
+
<View alignItems="center">
|
|
61
|
+
<Text pb="8" textAlign="center" variant="titleLarge">
|
|
62
|
+
{t('authentication.loginWithNumber')}
|
|
63
|
+
</Text>
|
|
64
|
+
<Text
|
|
65
|
+
color="onSurfaceVariant"
|
|
66
|
+
pb="48"
|
|
67
|
+
textAlign="center"
|
|
68
|
+
variant="bodyLarge"
|
|
69
|
+
>
|
|
70
|
+
{t('authentication.codeSent', {
|
|
71
|
+
phoneNumber: params.phoneNumber,
|
|
72
|
+
})}{' '}
|
|
73
|
+
</Text>
|
|
74
|
+
</View>
|
|
75
|
+
<Controller
|
|
76
|
+
control={control}
|
|
77
|
+
render={({ field: { onChange, value } }) => {
|
|
78
|
+
return (
|
|
79
|
+
<OtpInputs
|
|
80
|
+
handleChange={onChange}
|
|
81
|
+
code={value}
|
|
82
|
+
numberOfInputs={6}
|
|
83
|
+
/>
|
|
84
|
+
);
|
|
85
|
+
}}
|
|
86
|
+
name="code"
|
|
87
|
+
/>
|
|
88
|
+
<Button
|
|
89
|
+
mt="48"
|
|
90
|
+
disabled={isResendingCode}
|
|
91
|
+
loading={isConfirmingCode}
|
|
92
|
+
mode="contained"
|
|
93
|
+
onPress={handleSubmit(onSubmit)}
|
|
94
|
+
>
|
|
95
|
+
{t('continue')}
|
|
96
|
+
</Button>
|
|
97
|
+
<LinkButton
|
|
98
|
+
disabled={isResendingCode || isConfirmingCode}
|
|
99
|
+
loading={isResendingCode}
|
|
100
|
+
mt="48"
|
|
101
|
+
mode="text"
|
|
102
|
+
onPress={() => {
|
|
103
|
+
resendCode(params as any);
|
|
104
|
+
}}
|
|
105
|
+
>
|
|
106
|
+
{t('authentication.resendCode')}
|
|
107
|
+
</LinkButton>
|
|
108
|
+
</KeyboardAvoidingView>
|
|
109
|
+
</View>
|
|
110
|
+
</ParentView>
|
|
111
|
+
);
|
|
112
|
+
};
|
|
@@ -1,25 +1,30 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import { ResetPasswordScreen } from './ResetPassword';
|
|
2
|
+
import { ResetPassword } from './ResetPassword';
|
|
4
3
|
import { ResetPasswordInstructionSent } from './ResetPasswordInstructionsSent';
|
|
5
|
-
import {
|
|
6
|
-
import { VerifyPhoneNumberScreen } from './VerifyPhoneNumber';
|
|
4
|
+
import { SignUp } from './SignUp';
|
|
7
5
|
import { SignUpPassword } from './SignUpPassword';
|
|
8
6
|
import { ChangePassword } from './ChangePassword';
|
|
7
|
+
import { VerifyPhoneNumberForLogin } from './VerifyPhoneNumberForLogin';
|
|
8
|
+
import { VerifyPhoneNumber } from './VerifyPhoneNumber';
|
|
9
|
+
import { Login } from './Login';
|
|
9
10
|
|
|
10
11
|
export const renderAuthNavigator = (RootStack: any) => {
|
|
11
12
|
return (
|
|
12
13
|
<RootStack.Group>
|
|
13
|
-
<RootStack.Screen name="Login" component={
|
|
14
|
-
<RootStack.Screen name="ResetPassword" component={
|
|
14
|
+
<RootStack.Screen name="Login" component={Login} />
|
|
15
|
+
<RootStack.Screen name="ResetPassword" component={ResetPassword} />
|
|
15
16
|
<RootStack.Screen
|
|
16
17
|
name="ResetPasswordInstructionSent"
|
|
17
18
|
component={ResetPasswordInstructionSent}
|
|
18
19
|
/>
|
|
19
|
-
<RootStack.Screen name="SignUp" component={
|
|
20
|
+
<RootStack.Screen name="SignUp" component={SignUp} />
|
|
20
21
|
<RootStack.Screen
|
|
21
22
|
name="VerifyPhoneNumber"
|
|
22
|
-
component={
|
|
23
|
+
component={VerifyPhoneNumber}
|
|
24
|
+
/>
|
|
25
|
+
<RootStack.Screen
|
|
26
|
+
name="VerifyPhoneNumberForLogin"
|
|
27
|
+
component={VerifyPhoneNumberForLogin}
|
|
23
28
|
/>
|
|
24
29
|
<RootStack.Screen name="SignUpPassword" component={SignUpPassword} />
|
|
25
30
|
</RootStack.Group>
|
|
@@ -74,6 +74,11 @@ export const loginValidationSchema = (t: TFunction) =>
|
|
|
74
74
|
password: password(t),
|
|
75
75
|
});
|
|
76
76
|
|
|
77
|
+
export const loginWithPhoneNumberValidationSchema = (t: TFunction) =>
|
|
78
|
+
yup.object().shape({
|
|
79
|
+
phoneNumber: phoneNumber(t),
|
|
80
|
+
});
|
|
81
|
+
|
|
77
82
|
export const resetPasswordValidationSchema = (t: TFunction) =>
|
|
78
83
|
yup.object().shape({
|
|
79
84
|
email: emailForLogin(t),
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_native","_react","_interopRequireWildcard","_reactI18next","_appLogo","_interopRequireDefault","_reactHookForm","_yup","_validators","_auth","_reactNativeMmkv","_constants","_reactNativeFastImage","_reactNativeConfig","_reactQuery","_reactNative","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","LoginScreen","useTranslation","navigation","useNavigation","isLoading","setIsLoading","useState","_","setBusinessId","useMMKVString","MMKV_KEYS","BUSINESS_ID","queryClient","useQueryClient","useEffect","invalidateQueries","undefined","FastImage","clearMemoryCache","clearDiskCache","handleSubmit","control","formState","errors","useForm","resolver","yupResolver","loginValidationSchema","defaultValues","email","password","onSubmit","data","auth","signInWithEmailAndPassword","catch","Snackbar","show","title","finally","createElement","ParentView","px","Header","left","position","zIndex","View","flex","justifyContent","KeyboardAvoidingView","behavior","alignSelf","width","phone","tablet","alignItems","Text","style","styles","text","variant","Controller","render","field","onChange","onBlur","value","TextInput","my","keyboardType","autoCapitalize","mode","autoComplete","error","message","errorMessage","onChangeText","label","name","secureTextEntry","LinkButton","onPress","navigate","Button","loading","button","Config","APP_NAME","pt","flexDirection","exports","StyleSheet","create","marginVertical","paddingVertical"],"sourceRoot":"../../../../src","sources":["auth/screens/LoginScreen.tsx"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["ParentView","Text","View","TextInput","Button","LinkButton","KeyboardAvoidingView","Snackbar","Header","useNavigation","React","useEffect","useState","useTranslation","AppLogo","Controller","useForm","yupResolver","loginValidationSchema","auth","useMMKVString","MMKV_KEYS","FastImage","Config","useQueryClient","StyleSheet","LoginScreen","t","navigation","isLoading","setIsLoading","_","setBusinessId","BUSINESS_ID","queryClient","invalidateQueries","undefined","clearMemoryCache","clearDiskCache","handleSubmit","control","formState","errors","resolver","defaultValues","email","password","onSubmit","data","signInWithEmailAndPassword","catch","show","title","finally","createElement","px","left","position","zIndex","flex","justifyContent","behavior","alignSelf","width","phone","tablet","alignItems","style","styles","text","variant","render","field","onChange","onBlur","value","my","keyboardType","autoCapitalize","mode","autoComplete","error","message","errorMessage","onChangeText","label","name","secureTextEntry","onPress","navigate","loading","button","APP_NAME","pt","flexDirection","create","marginVertical","paddingVertical"],"sourceRoot":"../../../../src","sources":["auth/screens/LoginScreen.tsx"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LoginScreen.d.ts","sourceRoot":"","sources":["../../../../../src/auth/screens/LoginScreen.tsx"],"names":[],"mappings":";AA+BA,eAAO,MAAM,WAAW,mBAuIvB,CAAC"}
|