tf-checkout-react-native 1.0.23 → 1.0.24
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/README.md +288 -30
- package/android/.gradle/7.4.2/checksums/checksums.lock +0 -0
- package/android/.gradle/7.4.2/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/7.4.2/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.4.2/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/7.4.2/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/7.4.2/fileChanges/last-build.bin +0 -0
- package/android/.gradle/7.4.2/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/7.4.2/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/assets/icons/ic_eye.png +0 -0
- package/assets/icons/ic_eye_off.png +0 -0
- package/ios/TFCheckoutRNModule.xcodeproj/project.xcworkspace/xcuserdata/jorgegutierrez.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/TFCheckoutRNModule.xcodeproj/xcshareddata/xcschemes/TFCheckoutRNModule.xcscheme +67 -0
- package/lib/api/ApiClient.d.ts +4 -1
- package/lib/api/ApiClient.js +88 -6
- package/lib/api/ApiClient.js.map +1 -1
- package/lib/api/types.d.ts +15 -0
- package/lib/components/checkbox/Checkbox.d.ts +1 -1
- package/lib/components/checkbox/Checkbox.js +8 -6
- package/lib/components/checkbox/Checkbox.js.map +1 -1
- package/lib/components/checkbox/types.d.ts +2 -0
- package/lib/components/enterPassword/EnterPassword.d.ts +4 -0
- package/lib/components/enterPassword/EnterPassword.js +21 -0
- package/lib/components/enterPassword/EnterPassword.js.map +1 -0
- package/lib/components/enterPassword/styles.d.ts +20 -0
- package/lib/components/enterPassword/styles.js +22 -0
- package/lib/components/enterPassword/styles.js.map +1 -0
- package/lib/components/enterPassword/types.d.ts +23 -0
- package/lib/components/enterPassword/types.js +2 -0
- package/lib/components/enterPassword/types.js.map +1 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +1 -0
- package/lib/components/index.js.map +1 -1
- package/lib/components/input/Input.js +14 -3
- package/lib/components/input/Input.js.map +1 -1
- package/lib/components/input/styles.d.ts +5 -0
- package/lib/components/input/styles.js +5 -0
- package/lib/components/input/styles.js.map +1 -1
- package/lib/components/input/types.d.ts +7 -1
- package/lib/components/login/Login.js +53 -6
- package/lib/components/login/Login.js.map +1 -1
- package/lib/components/login/LoginView.js +63 -91
- package/lib/components/login/LoginView.js.map +1 -1
- package/lib/components/login/components/LoginForm.d.ts +4 -0
- package/lib/components/login/components/LoginForm.js +28 -0
- package/lib/components/login/components/LoginForm.js.map +1 -0
- package/lib/components/login/components/types.d.ts +18 -0
- package/lib/components/login/components/types.js +3 -0
- package/lib/components/login/components/types.js.map +1 -0
- package/lib/components/login/styles.d.ts +5 -0
- package/lib/components/login/styles.js +5 -0
- package/lib/components/login/styles.js.map +1 -1
- package/lib/components/login/types.d.ts +29 -5
- package/lib/components/restorePassword/RestorePassword.d.ts +4 -0
- package/lib/components/restorePassword/RestorePassword.js +22 -0
- package/lib/components/restorePassword/RestorePassword.js.map +1 -0
- package/lib/components/restorePassword/ResultDialog.d.ts +4 -0
- package/lib/components/restorePassword/ResultDialog.js +11 -0
- package/lib/components/restorePassword/ResultDialog.js.map +1 -0
- package/lib/components/restorePassword/styles.d.ts +33 -0
- package/lib/components/restorePassword/styles.js +36 -0
- package/lib/components/restorePassword/styles.js.map +1 -0
- package/lib/components/restorePassword/types.d.ts +48 -0
- package/lib/components/restorePassword/types.js +3 -0
- package/lib/components/restorePassword/types.js.map +1 -0
- package/lib/containers/billingInfo/Billing.js +8 -3
- package/lib/containers/billingInfo/Billing.js.map +1 -1
- package/lib/containers/billingInfo/styles.d.ts +4 -0
- package/lib/containers/billingInfo/styles.js +4 -0
- package/lib/containers/billingInfo/styles.js.map +1 -1
- package/lib/containers/billingInfo/types.d.ts +1 -0
- package/lib/containers/index.d.ts +1 -0
- package/lib/containers/index.js +1 -0
- package/lib/containers/index.js.map +1 -1
- package/lib/containers/resetPassword/ResetPassword.d.ts +4 -0
- package/lib/containers/resetPassword/ResetPassword.js +63 -0
- package/lib/containers/resetPassword/ResetPassword.js.map +1 -0
- package/lib/containers/resetPassword/ResetPasswordView.d.ts +4 -0
- package/lib/containers/resetPassword/ResetPasswordView.js +24 -0
- package/lib/containers/resetPassword/ResetPasswordView.js.map +1 -0
- package/lib/containers/resetPassword/styles.d.ts +32 -0
- package/lib/containers/resetPassword/styles.js +34 -0
- package/lib/containers/resetPassword/styles.js.map +1 -0
- package/lib/containers/resetPassword/types.d.ts +47 -0
- package/lib/containers/resetPassword/types.js +2 -0
- package/lib/containers/resetPassword/types.js.map +1 -0
- package/lib/containers/tickets/Tickets.js +102 -18
- package/lib/containers/tickets/Tickets.js.map +1 -1
- package/lib/containers/tickets/TicketsView.d.ts +1 -1
- package/lib/containers/tickets/TicketsView.js +17 -6
- package/lib/containers/tickets/TicketsView.js.map +1 -1
- package/lib/containers/tickets/components/TicketGroupListHeader.d.ts +4 -0
- package/lib/containers/tickets/components/TicketGroupListHeader.js +5 -0
- package/lib/containers/tickets/components/TicketGroupListHeader.js.map +1 -0
- package/lib/containers/tickets/components/types.d.ts +8 -0
- package/lib/containers/tickets/components/types.js +1 -0
- package/lib/containers/tickets/components/types.js.map +1 -1
- package/lib/containers/tickets/types.d.ts +31 -3
- package/lib/core/LoginCore/LoginCore.js +16 -1
- package/lib/core/LoginCore/LoginCore.js.map +1 -1
- package/lib/core/LoginCore/LoginCoreTypes.d.ts +3 -1
- package/lib/core/ResetPasswordCore/ResetPasswordCore.d.ts +5 -0
- package/lib/core/ResetPasswordCore/ResetPasswordCore.js +12 -0
- package/lib/core/ResetPasswordCore/ResetPasswordCore.js.map +1 -0
- package/lib/core/ResetPasswordCore/ResetPasswordCoreTypes.d.ts +4 -0
- package/lib/core/ResetPasswordCore/ResetPasswordCoreTypes.js +2 -0
- package/lib/core/ResetPasswordCore/ResetPasswordCoreTypes.js.map +1 -0
- package/lib/core/TicketsCore/TicketsCore.js +83 -3
- package/lib/core/TicketsCore/TicketsCore.js.map +1 -1
- package/lib/core/TicketsCore/TicketsCoreTypes.d.ts +22 -3
- package/lib/core/index.d.ts +2 -0
- package/lib/core/index.js +1 -0
- package/lib/core/index.js.map +1 -1
- package/lib/helpers/Config.d.ts +9 -2
- package/lib/helpers/Config.js +9 -1
- package/lib/helpers/Config.js.map +1 -1
- package/lib/helpers/LocalStorage.d.ts +3 -0
- package/lib/helpers/LocalStorage.js +9 -0
- package/lib/helpers/LocalStorage.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/res/icons.d.ts +2 -0
- package/lib/res/icons.js +2 -0
- package/lib/res/icons.js.map +1 -1
- package/lib/res/index.d.ts +2 -0
- package/lib/types/ITicket.d.ts +4 -1
- package/package.json +1 -1
|
@@ -2,15 +2,23 @@ import React, { useRef, useState } from 'react';
|
|
|
2
2
|
import { Keyboard } from 'react-native';
|
|
3
3
|
import { LoginCore } from '../../core';
|
|
4
4
|
import LoginView from './LoginView';
|
|
5
|
-
const Login = ({ onLoginSuccessful, onLoginError, isLoginDialogVisible, showLoginDialog, hideLoginDialog, userFirstName, onLogoutSuccess, onLogoutError, texts, styles, refs, brandImages, }) => {
|
|
5
|
+
const Login = ({ onLoginSuccessful, onLoginError, isLoginDialogVisible, showLoginDialog, hideLoginDialog, userFirstName, onLogoutSuccess, onLogoutError, texts, styles, refs, brandImages, isShowPasswordButtonVisible, onRestorePasswordError, onRestorePasswordSuccess, }) => {
|
|
6
|
+
//#region State
|
|
6
7
|
const [isLoading, setIsLoading] = useState(false);
|
|
7
|
-
const [
|
|
8
|
+
const [loginApiError, setLoginApiError] = useState('');
|
|
9
|
+
const [restorePasswordApiError, setRestorePasswordApiError] = useState('');
|
|
10
|
+
const [restorePasswordSuccessMessage, setRestorePasswordSuccessMessage] = useState('');
|
|
8
11
|
const [userProfileData, setUserProfileData] = useState();
|
|
12
|
+
const [loginContentType, setLoginContentType] = useState('login');
|
|
13
|
+
const [isRestorePasswordLoading, setIsRestorePasswordLoading] = useState(false);
|
|
14
|
+
//#endregion State
|
|
9
15
|
const loginCoreRef = useRef(null);
|
|
16
|
+
//#region Handlers
|
|
17
|
+
const handleOnPressForgotPassword = () => setLoginContentType('restorePassword');
|
|
10
18
|
const handleOnPressLogin = async (fields) => {
|
|
11
19
|
var _a;
|
|
12
|
-
if (
|
|
13
|
-
|
|
20
|
+
if (loginApiError) {
|
|
21
|
+
setLoginApiError('');
|
|
14
22
|
}
|
|
15
23
|
if (!((_a = loginCoreRef.current) === null || _a === void 0 ? void 0 : _a.login)) {
|
|
16
24
|
return onLoginError === null || onLoginError === void 0 ? void 0 : onLoginError({
|
|
@@ -21,7 +29,7 @@ const Login = ({ onLoginSuccessful, onLoginError, isLoginDialogVisible, showLogi
|
|
|
21
29
|
const { data: authorizationData, error: authorizationError } = await loginCoreRef.current.login(fields);
|
|
22
30
|
if (authorizationError || !authorizationData) {
|
|
23
31
|
setIsLoading(false);
|
|
24
|
-
|
|
32
|
+
setLoginApiError((authorizationError === null || authorizationError === void 0 ? void 0 : authorizationError.message) || 'Auth error');
|
|
25
33
|
return onLoginError === null || onLoginError === void 0 ? void 0 : onLoginError(authorizationError);
|
|
26
34
|
}
|
|
27
35
|
Keyboard.dismiss();
|
|
@@ -39,8 +47,47 @@ const Login = ({ onLoginSuccessful, onLoginError, isLoginDialogVisible, showLogi
|
|
|
39
47
|
setUserProfileData(undefined);
|
|
40
48
|
onLogoutSuccess === null || onLogoutSuccess === void 0 ? void 0 : onLogoutSuccess();
|
|
41
49
|
};
|
|
50
|
+
const handleOnPressCancelRestorePasswordButton = () => setLoginContentType('login');
|
|
51
|
+
const handleOnPressRestorePasswordButton = async (email) => {
|
|
52
|
+
var _a;
|
|
53
|
+
if (!((_a = loginCoreRef.current) === null || _a === void 0 ? void 0 : _a.restorePassword)) {
|
|
54
|
+
return onRestorePasswordError === null || onRestorePasswordError === void 0 ? void 0 : onRestorePasswordError({
|
|
55
|
+
message: 'LoginCoreRef is not initialized',
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
setIsRestorePasswordLoading(true);
|
|
59
|
+
const { data: restorePasswordSuccessData, error: restorePassError } = await loginCoreRef.current.restorePassword(email);
|
|
60
|
+
setIsRestorePasswordLoading(false);
|
|
61
|
+
if (restorePassError || !restorePasswordSuccessData) {
|
|
62
|
+
setRestorePasswordApiError((restorePassError === null || restorePassError === void 0 ? void 0 : restorePassError.message) || 'Restore password unknown error');
|
|
63
|
+
setIsRestorePasswordLoading(false);
|
|
64
|
+
onRestorePasswordError === null || onRestorePasswordError === void 0 ? void 0 : onRestorePasswordError(restorePassError);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
setLoginContentType('restorePasswordSuccess');
|
|
68
|
+
setRestorePasswordSuccessMessage(restorePasswordSuccessData.message);
|
|
69
|
+
onRestorePasswordSuccess === null || onRestorePasswordSuccess === void 0 ? void 0 : onRestorePasswordSuccess();
|
|
70
|
+
};
|
|
71
|
+
const handleOnPressRestorePasswordSuccessButton = () => {
|
|
72
|
+
handleHideDialog();
|
|
73
|
+
};
|
|
74
|
+
const handleHideDialog = () => {
|
|
75
|
+
setLoginContentType('login');
|
|
76
|
+
hideLoginDialog();
|
|
77
|
+
};
|
|
78
|
+
//#endregion
|
|
79
|
+
//#region Render Main Content
|
|
42
80
|
return (React.createElement(LoginCore, { ref: loginCoreRef },
|
|
43
|
-
React.createElement(LoginView, { showDialog: showLoginDialog, hideDialog:
|
|
81
|
+
React.createElement(LoginView, { showDialog: showLoginDialog, hideDialog: handleHideDialog, isDialogVisible: isLoginDialogVisible, onPressLogin: handleOnPressLogin, isLoading: isLoading, userProfile: userProfileData, onPressLogout: handleOnPressLogout, texts: texts, styles: styles, userFirstName: userFirstName, loginApiError: loginApiError, refs: refs, brandImages: brandImages, isShowPasswordButtonVisible: isShowPasswordButtonVisible, content: loginContentType, onPressForgotPassword: handleOnPressForgotPassword, restorePasswordProps: {
|
|
82
|
+
apiError: restorePasswordApiError,
|
|
83
|
+
onPressRestorePasswordButton: handleOnPressRestorePasswordButton,
|
|
84
|
+
isLoading: isRestorePasswordLoading,
|
|
85
|
+
onPressCancelButton: handleOnPressCancelRestorePasswordButton,
|
|
86
|
+
}, resultDialogPropsProps: {
|
|
87
|
+
message: restorePasswordSuccessMessage,
|
|
88
|
+
onPressButton: handleOnPressRestorePasswordSuccessButton,
|
|
89
|
+
} })));
|
|
90
|
+
//#endregion Render Main Content
|
|
44
91
|
};
|
|
45
92
|
export default Login;
|
|
46
93
|
//# sourceMappingURL=Login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Login.js","sourceRoot":"","sources":["../../../src/components/login/Login.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,EAAE,SAAS,EAAmB,MAAM,YAAY,CAAA;AAEvD,OAAO,SAAS,MAAM,aAAa,CAAA;AAGnC,MAAM,KAAK,GAAoB,CAAC,EAC9B,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,aAAa,EACb,eAAe,EACf,aAAa,EACb,KAAK,EACL,MAAM,EACN,IAAI,EACJ,WAAW,
|
|
1
|
+
{"version":3,"file":"Login.js","sourceRoot":"","sources":["../../../src/components/login/Login.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,76 +1,27 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import React, { useMemo, useState } from 'react';
|
|
2
|
+
import { Alert, Image, Modal, Text, TouchableOpacity, View } from 'react-native';
|
|
3
|
+
import { useDebounced } from '../../helpers/Debounced';
|
|
4
|
+
import { validateEmail, validateMinLength } from '../../helpers/Validators';
|
|
4
5
|
import R from '../../res';
|
|
5
6
|
import Button from '../button/Button';
|
|
6
|
-
import
|
|
7
|
+
import RestorePassword from '../restorePassword/RestorePassword';
|
|
8
|
+
import ResultDialog from '../restorePassword/ResultDialog';
|
|
9
|
+
import LoginForm from './components/LoginForm';
|
|
7
10
|
import s from './styles';
|
|
8
11
|
const initialState = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
value: '',
|
|
12
|
-
error: undefined,
|
|
13
|
-
},
|
|
14
|
-
password: {
|
|
15
|
-
value: '',
|
|
16
|
-
error: undefined,
|
|
17
|
-
},
|
|
12
|
+
loginEmail: '',
|
|
13
|
+
loginPassword: '',
|
|
18
14
|
};
|
|
19
|
-
const LoginView = ({ showDialog, hideDialog, isDialogVisible, onPressLogin, isLoading, onPressLogout, styles, texts, userFirstName,
|
|
20
|
-
var _a, _b, _c, _d
|
|
15
|
+
const LoginView = ({ showDialog, hideDialog, isDialogVisible, onPressLogin, isLoading, onPressLogout, styles, texts, userFirstName, loginApiError, brandImages, isShowPasswordButtonVisible, content, onPressForgotPassword, restorePasswordProps, resultDialogPropsProps, }) => {
|
|
16
|
+
var _a, _b, _c, _d;
|
|
21
17
|
const [data, setData] = useState(initialState);
|
|
22
|
-
const {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
const setInputData = (id, value) => {
|
|
26
|
-
setData({ ...data, [id]: { value: value } });
|
|
27
|
-
};
|
|
28
|
-
return [
|
|
29
|
-
{
|
|
30
|
-
fieldType: 'input',
|
|
31
|
-
id: 'email',
|
|
32
|
-
inputProps: {
|
|
33
|
-
value: email.value,
|
|
34
|
-
onTextChanged: setInputData,
|
|
35
|
-
label: ((_a = texts === null || texts === void 0 ? void 0 : texts.dialog) === null || _a === void 0 ? void 0 : _a.emailLabel) || 'Email',
|
|
36
|
-
keyboardType: 'email-address',
|
|
37
|
-
autoCapitalize: 'none',
|
|
38
|
-
styles: (_b = styles === null || styles === void 0 ? void 0 : styles.dialog) === null || _b === void 0 ? void 0 : _b.input,
|
|
39
|
-
reference: (_c = refs === null || refs === void 0 ? void 0 : refs.inputs) === null || _c === void 0 ? void 0 : _c.email,
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
fieldType: 'input',
|
|
44
|
-
id: 'password',
|
|
45
|
-
inputProps: {
|
|
46
|
-
value: password.value,
|
|
47
|
-
onTextChanged: setInputData,
|
|
48
|
-
label: ((_d = texts === null || texts === void 0 ? void 0 : texts.dialog) === null || _d === void 0 ? void 0 : _d.passwordLabel) || 'Password',
|
|
49
|
-
secureTextEntry: true,
|
|
50
|
-
styles: (_e = styles === null || styles === void 0 ? void 0 : styles.dialog) === null || _e === void 0 ? void 0 : _e.input,
|
|
51
|
-
reference: (_f = refs === null || refs === void 0 ? void 0 : refs.inputs) === null || _f === void 0 ? void 0 : _f.password,
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
];
|
|
55
|
-
};
|
|
56
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
57
|
-
const formFields = useMemo(getFormFields, [data, email.value, password.value]);
|
|
58
|
-
const renderFormFields = useCallback(() => {
|
|
59
|
-
return _map(formFields, (item, index) => (React.createElement(FormField, { ...item, key: `loginModal.${index}.${item.id}` })));
|
|
60
|
-
}, [formFields]);
|
|
61
|
-
const checkIsDataValid = () => {
|
|
62
|
-
if (email.value.toString().length === 0) {
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
if (password.value.toString().length < 6) {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
return true;
|
|
69
|
-
};
|
|
18
|
+
const { loginEmail, loginPassword } = data;
|
|
19
|
+
const loginEmailError = useDebounced(loginEmail, validateEmail);
|
|
20
|
+
const loginPasswordError = useDebounced(loginPassword, (value) => validateMinLength(value, 6, 'Password'));
|
|
70
21
|
const handleOnPressLogin = () => {
|
|
71
22
|
onPressLogin({
|
|
72
|
-
email:
|
|
73
|
-
password:
|
|
23
|
+
email: loginEmail,
|
|
24
|
+
password: loginPassword,
|
|
74
25
|
});
|
|
75
26
|
};
|
|
76
27
|
const logoutTitle = ((_a = texts === null || texts === void 0 ? void 0 : texts.logoutDialog) === null || _a === void 0 ? void 0 : _a.title)
|
|
@@ -93,17 +44,14 @@ const LoginView = ({ showDialog, hideDialog, isDialogVisible, onPressLogin, isLo
|
|
|
93
44
|
onPressLogout();
|
|
94
45
|
}
|
|
95
46
|
};
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
text: logoutCancel,
|
|
105
|
-
},
|
|
106
|
-
]);
|
|
47
|
+
const checkIsLoginDataValid = () => {
|
|
48
|
+
if (loginEmailError) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
if (loginPasswordError) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
return true;
|
|
107
55
|
};
|
|
108
56
|
const LoggedComponent = () => {
|
|
109
57
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
@@ -132,26 +80,50 @@ const LoginView = ({ showDialog, hideDialog, isDialogVisible, onPressLogin, isLo
|
|
|
132
80
|
brandImages === null || brandImages === void 0 ? void 0 : brandImages.image2,
|
|
133
81
|
brandImages === null || brandImages === void 0 ? void 0 : brandImages.image2Style,
|
|
134
82
|
]);
|
|
83
|
+
//#region Button Press
|
|
84
|
+
const handleOnPressLogout = () => {
|
|
85
|
+
Alert.alert(logoutTitle, logoutMessage, [
|
|
86
|
+
{
|
|
87
|
+
text: logoutConfirm,
|
|
88
|
+
onPress: handleLogout,
|
|
89
|
+
style: 'destructive',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
text: logoutCancel,
|
|
93
|
+
},
|
|
94
|
+
]);
|
|
95
|
+
};
|
|
96
|
+
//#endregion Button Press
|
|
97
|
+
//#region Text Changed
|
|
98
|
+
const handleOnLoginEmailChanged = (text) => setData({ ...data, loginEmail: text });
|
|
99
|
+
const handleOnLoginPasswordChanged = (text) => setData({ ...data, loginPassword: text });
|
|
100
|
+
//#endregion Text Changed
|
|
101
|
+
const renderContent = () => {
|
|
102
|
+
switch (content) {
|
|
103
|
+
case 'login':
|
|
104
|
+
return (React.createElement(LoginForm, { email: loginEmail, emailError: loginEmailError, onEmailChanged: handleOnLoginEmailChanged, password: loginPassword, passwordError: loginPasswordError, onPasswordChanged: handleOnLoginPasswordChanged, onPressLoginButton: handleOnPressLogin, onPressForgotPassword: onPressForgotPassword, viewProps: {
|
|
105
|
+
styles: styles,
|
|
106
|
+
texts: texts,
|
|
107
|
+
}, loginApiError: loginApiError, isLoginButtonDisabled: !checkIsLoginDataValid(), isLoading: isLoading, brandImages: BrandImages, isShowPasswordButtonVisible: isShowPasswordButtonVisible }));
|
|
108
|
+
case 'restorePassword':
|
|
109
|
+
return (React.createElement(RestorePassword, { onPressRestorePasswordButton: restorePasswordProps.onPressRestorePasswordButton, onPressCancelButton: restorePasswordProps.onPressCancelButton, styles: styles === null || styles === void 0 ? void 0 : styles.restorePassword, texts: texts === null || texts === void 0 ? void 0 : texts.restorePassword, isLoading: restorePasswordProps.isLoading }));
|
|
110
|
+
case 'restorePasswordSuccess':
|
|
111
|
+
return (React.createElement(ResultDialog, { onPressButton: () => {
|
|
112
|
+
console.log('ALV');
|
|
113
|
+
resultDialogPropsProps === null || resultDialogPropsProps === void 0 ? void 0 : resultDialogPropsProps.onPressButton();
|
|
114
|
+
}, message: resultDialogPropsProps === null || resultDialogPropsProps === void 0 ? void 0 : resultDialogPropsProps.message }));
|
|
115
|
+
default:
|
|
116
|
+
return LoginForm;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
//#region Render main component
|
|
135
120
|
return (React.createElement(View, { style: s.rootContainer },
|
|
136
121
|
userFirstName ? LoggedComponent() : GuestComponent(),
|
|
137
122
|
isDialogVisible && (React.createElement(Modal, { transparent: true, presentationStyle: 'overFullScreen' },
|
|
138
123
|
React.createElement(View, { style: s.touchableContainer },
|
|
139
124
|
React.createElement(TouchableOpacity, { style: s.dismissibleArea, onPress: hideDialog },
|
|
140
|
-
React.createElement(
|
|
141
|
-
|
|
142
|
-
React.createElement(Text, { style: [s.dialogTitle, (_f = styles === null || styles === void 0 ? void 0 : styles.dialog) === null || _f === void 0 ? void 0 : _f.title] }, ((_g = texts === null || texts === void 0 ? void 0 : texts.dialog) === null || _g === void 0 ? void 0 : _g.title) || 'Login'),
|
|
143
|
-
BrandImages,
|
|
144
|
-
!!((_h = texts === null || texts === void 0 ? void 0 : texts.dialog) === null || _h === void 0 ? void 0 : _h.message) && (React.createElement(Text, { style: [s.message, (_j = styles === null || styles === void 0 ? void 0 : styles.dialog) === null || _j === void 0 ? void 0 : _j.message] }, texts.dialog.message)),
|
|
145
|
-
renderFormFields(),
|
|
146
|
-
!!loginError && React.createElement(Text, { style: [s.error] }, loginError),
|
|
147
|
-
React.createElement(Button, { styles: !checkIsDataValid()
|
|
148
|
-
? (_k = styles === null || styles === void 0 ? void 0 : styles.dialog) === null || _k === void 0 ? void 0 : _k.loginButtonDisabled
|
|
149
|
-
: {
|
|
150
|
-
container: [s.loginButton],
|
|
151
|
-
...(_l = styles === null || styles === void 0 ? void 0 : styles.dialog) === null || _l === void 0 ? void 0 : _l.loginButton,
|
|
152
|
-
}, text: ((_m = texts === null || texts === void 0 ? void 0 : texts.dialog) === null || _m === void 0 ? void 0 : _m.loginButton) || 'LOGIN', onPress: handleOnPressLogin, isLoading: isLoading, isDisabled: !checkIsDataValid(),
|
|
153
|
-
//@ts-ignore
|
|
154
|
-
ref: refs === null || refs === void 0 ? void 0 : refs.button })))))))));
|
|
125
|
+
React.createElement(TouchableOpacity, { activeOpacity: 1 }, renderContent())))))));
|
|
126
|
+
//#endregion Render main component
|
|
155
127
|
};
|
|
156
128
|
export default LoginView;
|
|
157
129
|
//# sourceMappingURL=LoginView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginView.js","sourceRoot":"","sources":["../../../src/components/login/LoginView.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"LoginView.js","sourceRoot":"","sources":["../../../src/components/login/LoginView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Text, View } from 'react-native';
|
|
3
|
+
import Button from '../../button/Button';
|
|
4
|
+
import Input from '../../input/Input';
|
|
5
|
+
import s from '../styles';
|
|
6
|
+
const LoginForm = ({ viewProps, email, emailError, onEmailChanged, password, passwordError, onPasswordChanged, loginApiError, isShowPasswordButtonVisible, onPressForgotPassword, isLoginButtonDisabled, isLoading, onPressLoginButton, brandImages, }) => {
|
|
7
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
8
|
+
const { styles, texts } = viewProps || {};
|
|
9
|
+
return (React.createElement(View, { style: [s.dialog, (_a = styles === null || styles === void 0 ? void 0 : styles.dialog) === null || _a === void 0 ? void 0 : _a.container] },
|
|
10
|
+
React.createElement(Text, { style: [s.dialogTitle, (_b = styles === null || styles === void 0 ? void 0 : styles.dialog) === null || _b === void 0 ? void 0 : _b.title] }, ((_c = texts === null || texts === void 0 ? void 0 : texts.dialog) === null || _c === void 0 ? void 0 : _c.title) || 'Login'),
|
|
11
|
+
brandImages,
|
|
12
|
+
!!((_d = texts === null || texts === void 0 ? void 0 : texts.dialog) === null || _d === void 0 ? void 0 : _d.message) && (React.createElement(Text, { style: [s.message, (_e = styles === null || styles === void 0 ? void 0 : styles.dialog) === null || _e === void 0 ? void 0 : _e.message] }, texts.dialog.message)),
|
|
13
|
+
React.createElement(Input, { label: ((_f = texts === null || texts === void 0 ? void 0 : texts.dialog) === null || _f === void 0 ? void 0 : _f.emailLabel) || 'Email', error: emailError, keyboardType: 'email-address', value: email, onChangeText: onEmailChanged, autoCapitalize: 'none' }),
|
|
14
|
+
React.createElement(Input, { label: ((_g = texts === null || texts === void 0 ? void 0 : texts.dialog) === null || _g === void 0 ? void 0 : _g.passwordLabel) || 'Password', error: passwordError, keyboardType: 'default', value: password, onChangeText: onPasswordChanged, autoCapitalize: 'none', secureTextEntry: true, isShowPasswordButtonVisible: isShowPasswordButtonVisible }),
|
|
15
|
+
!!loginApiError && React.createElement(Text, { style: [s.error] }, loginApiError),
|
|
16
|
+
React.createElement(Text, { onPress: onPressForgotPassword, style: [s.forgotPassword, (_h = styles === null || styles === void 0 ? void 0 : styles.dialog) === null || _h === void 0 ? void 0 : _h.forgotPassword] }, ((_j = texts === null || texts === void 0 ? void 0 : texts.dialog) === null || _j === void 0 ? void 0 : _j.forgotPassword) || 'Forgot Password'),
|
|
17
|
+
React.createElement(Button, { styles: isLoginButtonDisabled
|
|
18
|
+
? {
|
|
19
|
+
container: [s.loginButton],
|
|
20
|
+
...(_k = styles === null || styles === void 0 ? void 0 : styles.dialog) === null || _k === void 0 ? void 0 : _k.loginButtonDisabled,
|
|
21
|
+
}
|
|
22
|
+
: {
|
|
23
|
+
container: [s.loginButton],
|
|
24
|
+
...(_l = styles === null || styles === void 0 ? void 0 : styles.dialog) === null || _l === void 0 ? void 0 : _l.loginButton,
|
|
25
|
+
}, text: ((_m = texts === null || texts === void 0 ? void 0 : texts.dialog) === null || _m === void 0 ? void 0 : _m.loginButton) || 'LOGIN', onPress: onPressLoginButton, isLoading: isLoading, isDisabled: isLoginButtonDisabled })));
|
|
26
|
+
};
|
|
27
|
+
export default LoginForm;
|
|
28
|
+
//# sourceMappingURL=LoginForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginForm.js","sourceRoot":"","sources":["../../../../src/components/login/components/LoginForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ILoginDialogViewProps } from '../types';
|
|
3
|
+
export interface ILoginFormProps {
|
|
4
|
+
viewProps?: ILoginDialogViewProps;
|
|
5
|
+
email: string;
|
|
6
|
+
emailError?: string;
|
|
7
|
+
onEmailChanged: (text: string) => void;
|
|
8
|
+
password: string;
|
|
9
|
+
passwordError?: string;
|
|
10
|
+
onPasswordChanged: (text: string) => void;
|
|
11
|
+
loginApiError?: string;
|
|
12
|
+
onPressLoginButton: () => void;
|
|
13
|
+
isLoading?: boolean;
|
|
14
|
+
isShowPasswordButtonVisible?: boolean;
|
|
15
|
+
onPressForgotPassword: () => void;
|
|
16
|
+
isLoginButtonDisabled?: boolean;
|
|
17
|
+
brandImages?: React.ReactNode;
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/login/components/types.ts"],"names":[],"mappings":";AAqBA,sBAAsB"}
|
|
@@ -26,6 +26,7 @@ declare const _default: {
|
|
|
26
26
|
alignItems: "center";
|
|
27
27
|
};
|
|
28
28
|
dialogTitle: {
|
|
29
|
+
color: string;
|
|
29
30
|
fontSize: number;
|
|
30
31
|
fontWeight: "800";
|
|
31
32
|
};
|
|
@@ -45,6 +46,7 @@ declare const _default: {
|
|
|
45
46
|
tintColor: string;
|
|
46
47
|
};
|
|
47
48
|
message: {
|
|
49
|
+
color: string;
|
|
48
50
|
marginBottom: number;
|
|
49
51
|
marginTop: number;
|
|
50
52
|
};
|
|
@@ -52,5 +54,8 @@ declare const _default: {
|
|
|
52
54
|
color: string;
|
|
53
55
|
fontWeight: "600";
|
|
54
56
|
};
|
|
57
|
+
forgotPassword: {
|
|
58
|
+
color: string;
|
|
59
|
+
};
|
|
55
60
|
};
|
|
56
61
|
export default _default;
|
|
@@ -28,6 +28,7 @@ export default StyleSheet.create({
|
|
|
28
28
|
alignItems: 'center',
|
|
29
29
|
},
|
|
30
30
|
dialogTitle: {
|
|
31
|
+
color: R.colors.black,
|
|
31
32
|
fontSize: 18,
|
|
32
33
|
fontWeight: '800',
|
|
33
34
|
},
|
|
@@ -47,6 +48,7 @@ export default StyleSheet.create({
|
|
|
47
48
|
tintColor: R.colors.white,
|
|
48
49
|
},
|
|
49
50
|
message: {
|
|
51
|
+
color: R.colors.black,
|
|
50
52
|
marginBottom: 24,
|
|
51
53
|
marginTop: -8,
|
|
52
54
|
},
|
|
@@ -54,5 +56,8 @@ export default StyleSheet.create({
|
|
|
54
56
|
color: R.colors.danger,
|
|
55
57
|
fontWeight: '600',
|
|
56
58
|
},
|
|
59
|
+
forgotPassword: {
|
|
60
|
+
color: R.colors.black,
|
|
61
|
+
},
|
|
57
62
|
});
|
|
58
63
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/login/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,CAAC,MAAM,WAAW,CAAA;AACzB,eAAe,UAAU,CAAC,MAAM,CAAC;IAC/B,aAAa,EAAE;QACb,eAAe,EAAE,EAAE;KACpB;IACD,KAAK,EAAE;QACL,UAAU,EAAE,KAAK;KAClB;IACD,MAAM,EAAE;QACN,cAAc,EAAE,EAAE;KACnB;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,CAAC;KACR;IACD,eAAe,EAAE;QACf,IAAI,EAAE,CAAC;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB;QAC1C,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;KACrB;IACD,MAAM,EAAE;QACN,eAAe,EAAE,EAAE;QACnB,KAAK,EAAE,KAAK;QACZ,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;QAC/B,YAAY,EAAE,CAAC;QACf,iBAAiB,EAAE,EAAE;QACrB,UAAU,EAAE,QAAQ;KACrB;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;KAClB;IACD,UAAU,EAAE;QACV,YAAY,EAAE,EAAE;KACjB;IACD,WAAW,EAAE;QACX,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,EAAE;KACd;IACD,KAAK,EAAE;QACL,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;KAC1B;IACD,OAAO,EAAE;QACP,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC,CAAC;KACd;IACD,KAAK,EAAE;QACL,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;QACtB,UAAU,EAAE,KAAK;KAClB;CACF,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/login/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,CAAC,MAAM,WAAW,CAAA;AACzB,eAAe,UAAU,CAAC,MAAM,CAAC;IAC/B,aAAa,EAAE;QACb,eAAe,EAAE,EAAE;KACpB;IACD,KAAK,EAAE;QACL,UAAU,EAAE,KAAK;KAClB;IACD,MAAM,EAAE;QACN,cAAc,EAAE,EAAE;KACnB;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,CAAC;KACR;IACD,eAAe,EAAE;QACf,IAAI,EAAE,CAAC;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB;QAC1C,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;KACrB;IACD,MAAM,EAAE;QACN,eAAe,EAAE,EAAE;QACnB,KAAK,EAAE,KAAK;QACZ,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;QAC/B,YAAY,EAAE,CAAC;QACf,iBAAiB,EAAE,EAAE;QACrB,UAAU,EAAE,QAAQ;KACrB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;QACrB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;KAClB;IACD,UAAU,EAAE;QACV,YAAY,EAAE,EAAE;KACjB;IACD,WAAW,EAAE;QACX,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,EAAE;KACd;IACD,KAAK,EAAE;QACL,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;KAC1B;IACD,OAAO,EAAE;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;QACrB,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC,CAAC;KACd;IACD,KAAK,EAAE;QACL,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;QACtB,UAAU,EAAE,KAAK;KAClB;IACD,cAAc,EAAE;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;KACtB;CACF,CAAC,CAAA"}
|
|
@@ -3,12 +3,13 @@ import { TextStyle } from 'react-native';
|
|
|
3
3
|
import { StyleProp, ViewStyle } from 'react-native';
|
|
4
4
|
import { IError, IUserProfilePublic } from '../../types';
|
|
5
5
|
import { IButtonStyles } from '../button/types';
|
|
6
|
-
import { IFormField } from '../formField/types';
|
|
7
6
|
import { IInputStyles } from '../input/types';
|
|
7
|
+
import { IRestorePasswordCoreProps, IRestorePasswordStyles, IRestorePasswordTexts, IResultDialogCoreProps, IResultDialogStyles, IResultDialogTexts } from '../restorePassword/types';
|
|
8
8
|
export interface ILoginRefs {
|
|
9
9
|
inputs?: {
|
|
10
10
|
email?: any;
|
|
11
11
|
password?: any;
|
|
12
|
+
restorePasswordEmail?: any;
|
|
12
13
|
};
|
|
13
14
|
button?: {
|
|
14
15
|
containerView?: any;
|
|
@@ -24,6 +25,10 @@ export interface ILoginBrandImages {
|
|
|
24
25
|
image1Style?: StyleProp<ImageStyle>;
|
|
25
26
|
image2?: ImageSourcePropType;
|
|
26
27
|
image2Style?: StyleProp<ImageStyle>;
|
|
28
|
+
showPassword?: ImageSourcePropType;
|
|
29
|
+
hidePassword?: ImageSourcePropType;
|
|
30
|
+
showPasswordStyle?: StyleProp<ImageStyle>;
|
|
31
|
+
hidePasswordStyle?: StyleProp<ImageStyle>;
|
|
27
32
|
}
|
|
28
33
|
export interface ILoginProps {
|
|
29
34
|
onLoginSuccessful: (userProfile: IUserProfilePublic) => void;
|
|
@@ -38,6 +43,9 @@ export interface ILoginProps {
|
|
|
38
43
|
userFirstName?: string;
|
|
39
44
|
refs?: ILoginRefs;
|
|
40
45
|
brandImages?: ILoginBrandImages;
|
|
46
|
+
isShowPasswordButtonVisible?: boolean;
|
|
47
|
+
onRestorePasswordError?: (error: IError) => void;
|
|
48
|
+
onRestorePasswordSuccess?: () => void;
|
|
41
49
|
}
|
|
42
50
|
export interface ILoginViewStyles {
|
|
43
51
|
guest?: {
|
|
@@ -54,6 +62,8 @@ export interface ILoginViewStyles {
|
|
|
54
62
|
input?: IInputStyles;
|
|
55
63
|
title?: StyleProp<TextStyle>;
|
|
56
64
|
message?: StyleProp<TextStyle>;
|
|
65
|
+
showPasswordIcon?: StyleProp<ImageStyle>;
|
|
66
|
+
forgotPassword?: StyleProp<TextStyle>;
|
|
57
67
|
};
|
|
58
68
|
loggedIn?: {
|
|
59
69
|
container?: StyleProp<ViewStyle>;
|
|
@@ -62,6 +72,8 @@ export interface ILoginViewStyles {
|
|
|
62
72
|
button?: IButtonStyles;
|
|
63
73
|
message?: StyleProp<TextStyle>;
|
|
64
74
|
};
|
|
75
|
+
restorePassword?: IRestorePasswordStyles;
|
|
76
|
+
restorePasswordSuccess?: IResultDialogStyles;
|
|
65
77
|
}
|
|
66
78
|
export interface ILoginViewTexts {
|
|
67
79
|
loginButton?: string;
|
|
@@ -75,6 +87,7 @@ export interface ILoginViewTexts {
|
|
|
75
87
|
emailLabel?: string;
|
|
76
88
|
passwordLabel?: string;
|
|
77
89
|
title?: string;
|
|
90
|
+
forgotPassword?: string;
|
|
78
91
|
};
|
|
79
92
|
logoutDialog?: {
|
|
80
93
|
title?: string;
|
|
@@ -86,7 +99,14 @@ export interface ILoginViewTexts {
|
|
|
86
99
|
loggedAs?: string;
|
|
87
100
|
notYou?: string;
|
|
88
101
|
};
|
|
102
|
+
restorePassword?: IRestorePasswordTexts;
|
|
103
|
+
restorePasswordSuccess?: IResultDialogTexts;
|
|
89
104
|
}
|
|
105
|
+
export interface ILoginDialogViewProps {
|
|
106
|
+
styles?: ILoginViewStyles;
|
|
107
|
+
texts?: ILoginViewTexts;
|
|
108
|
+
}
|
|
109
|
+
export declare type LoginContentType = 'login' | 'restorePassword' | 'restorePasswordSuccess' | 'resetPassword';
|
|
90
110
|
export interface ILoginViewProps {
|
|
91
111
|
showDialog: () => void;
|
|
92
112
|
hideDialog: () => void;
|
|
@@ -97,17 +117,21 @@ export interface ILoginViewProps {
|
|
|
97
117
|
onPressLogout: () => void;
|
|
98
118
|
styles?: ILoginViewStyles;
|
|
99
119
|
texts?: ILoginViewTexts;
|
|
100
|
-
|
|
120
|
+
loginApiError?: string;
|
|
101
121
|
userFirstName?: string;
|
|
102
122
|
refs?: ILoginRefs;
|
|
103
123
|
brandImages?: ILoginBrandImages;
|
|
124
|
+
isShowPasswordButtonVisible?: boolean;
|
|
125
|
+
content: LoginContentType;
|
|
126
|
+
onPressForgotPassword: () => void;
|
|
127
|
+
restorePasswordProps: IRestorePasswordCoreProps;
|
|
128
|
+
resultDialogPropsProps?: IResultDialogCoreProps;
|
|
104
129
|
}
|
|
105
130
|
export interface ILoginFields {
|
|
106
131
|
email: string;
|
|
107
132
|
password: string;
|
|
108
133
|
}
|
|
109
134
|
export interface ILoginViewState {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
isDataValid: boolean;
|
|
135
|
+
loginEmail: string;
|
|
136
|
+
loginPassword: string;
|
|
113
137
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { Text, View } from 'react-native';
|
|
3
|
+
import { useDebounced } from '../../helpers/Debounced';
|
|
4
|
+
import { validateEmail } from '../../helpers/Validators';
|
|
5
|
+
import Button from '../button/Button';
|
|
6
|
+
import Input from '../input/Input';
|
|
7
|
+
import { restorePasswordStyles as s } from './styles';
|
|
8
|
+
const RestorePassword = ({ styles, texts, isLoading, onPressRestorePasswordButton, onPressCancelButton, apiError, }) => {
|
|
9
|
+
const [email, setEmail] = useState('');
|
|
10
|
+
const emailError = useDebounced(email, validateEmail);
|
|
11
|
+
const handleOnPressRestoreButton = () => {
|
|
12
|
+
onPressRestorePasswordButton(email);
|
|
13
|
+
};
|
|
14
|
+
return (React.createElement(View, { style: [s.rootContainer, styles === null || styles === void 0 ? void 0 : styles.rootContainer] },
|
|
15
|
+
React.createElement(Text, { style: [s.title, styles === null || styles === void 0 ? void 0 : styles.title] }, (texts === null || texts === void 0 ? void 0 : texts.title) || 'Enter your email to restore your password'),
|
|
16
|
+
React.createElement(Input, { label: (texts === null || texts === void 0 ? void 0 : texts.inputLabel) || 'Email', error: emailError, keyboardType: 'email-address', value: email, onChangeText: setEmail, autoCapitalize: 'none', styles: styles === null || styles === void 0 ? void 0 : styles.input }),
|
|
17
|
+
!!apiError && React.createElement(Text, { style: styles === null || styles === void 0 ? void 0 : styles.apiError }, apiError),
|
|
18
|
+
React.createElement(Button, { text: (texts === null || texts === void 0 ? void 0 : texts.restorePasswordButton) || 'RESTORE PASSWORD', onPress: handleOnPressRestoreButton, isLoading: isLoading, isDisabled: isLoading || !!emailError || email.length === 0, styles: styles === null || styles === void 0 ? void 0 : styles.restorePasswordButton }),
|
|
19
|
+
!isLoading && (React.createElement(Button, { text: (texts === null || texts === void 0 ? void 0 : texts.cancelButton) || 'CANCEL', onPress: onPressCancelButton, styles: styles === null || styles === void 0 ? void 0 : styles.cancelRestorePasswordButton }))));
|
|
20
|
+
};
|
|
21
|
+
export default RestorePassword;
|
|
22
|
+
//# sourceMappingURL=RestorePassword.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RestorePassword.js","sourceRoot":"","sources":["../../../src/components/restorePassword/RestorePassword.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,MAAM,MAAM,kBAAkB,CAAA;AACrC,OAAO,KAAK,MAAM,gBAAgB,CAAA;AAClC,OAAO,EAAE,qBAAqB,IAAI,CAAC,EAAE,MAAM,UAAU,CAAA;AAGrD,MAAM,eAAe,GAA8B,CAAC,EAClD,MAAM,EACN,KAAK,EACL,SAAS,EACT,4BAA4B,EAC5B,mBAAmB,EACnB,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAErD,MAAM,0BAA0B,GAAG,GAAG,EAAE;QACtC,4BAA4B,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC;QACnD,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,IAClC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,2CAA2C,CACvD;QAEP,oBAAC,KAAK,IACJ,KAAK,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,KAAI,OAAO,EACnC,KAAK,EAAE,UAAU,EACjB,YAAY,EAAC,eAAe,EAC5B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,QAAQ,EACtB,cAAc,EAAC,MAAM,EACrB,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,GACrB;QAED,CAAC,CAAC,QAAQ,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,IAAG,QAAQ,CAAQ;QAE/D,oBAAC,MAAM,IACL,IAAI,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,qBAAqB,KAAI,kBAAkB,EACxD,OAAO,EAAE,0BAA0B,EACnC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,SAAS,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAC3D,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,qBAAqB,GACrC;QAED,CAAC,SAAS,IAAI,CACb,oBAAC,MAAM,IACL,IAAI,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,KAAI,QAAQ,EACrC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,2BAA2B,GAC3C,CACH,CACI,CACR,CAAA;AACH,CAAC,CAAA;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Text, View } from 'react-native';
|
|
3
|
+
import Button from '../button/Button';
|
|
4
|
+
import { restorePasswordSuccessStyles as s } from './styles';
|
|
5
|
+
const ResultDialog = ({ styles, texts, message, onPressButton, }) => (React.createElement(View, { style: [s.rootContainer, styles === null || styles === void 0 ? void 0 : styles.rootContainer] },
|
|
6
|
+
React.createElement(Text, { style: [s.title, styles === null || styles === void 0 ? void 0 : styles.title] }, (texts === null || texts === void 0 ? void 0 : texts.title) || 'Email Sent!'),
|
|
7
|
+
!!(texts === null || texts === void 0 ? void 0 : texts.message) && (React.createElement(Text, { style: [s.message, styles === null || styles === void 0 ? void 0 : styles.message] }, texts.message)),
|
|
8
|
+
!!message && React.createElement(Text, null, message),
|
|
9
|
+
React.createElement(Button, { text: (texts === null || texts === void 0 ? void 0 : texts.button) || 'OK', onPress: onPressButton })));
|
|
10
|
+
export default ResultDialog;
|
|
11
|
+
//# sourceMappingURL=ResultDialog.js.map
|