From bbbbc7c5a720c08ca13712e6a858cbe69ede2f84 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Fri, 27 Jan 2023 10:13:16 -0700 Subject: [PATCH 01/23] add error to textinput --- src/pages/signin/PasswordForm.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pages/signin/PasswordForm.js b/src/pages/signin/PasswordForm.js index d984e6fd27b3..6c376ca749eb 100755 --- a/src/pages/signin/PasswordForm.js +++ b/src/pages/signin/PasswordForm.js @@ -151,6 +151,7 @@ class PasswordForm extends React.Component { } render() { + const hasError = this.state.formError || (this.props.account && !_.isEmpty(this.props.account.errors)); return ( <> @@ -166,6 +167,7 @@ class PasswordForm extends React.Component { onChangeText={text => this.setState({password: text})} onSubmitEditing={this.validateAndSubmitForm} blurOnSubmit={false} + hasError={hasError} /> )} From 56c3d7db44406647c9e04033e876a789672531fd Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Fri, 27 Jan 2023 10:15:16 -0700 Subject: [PATCH 02/23] add error for email field --- src/pages/signin/LoginForm.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pages/signin/LoginForm.js b/src/pages/signin/LoginForm.js index e64705de8239..1e7f32f7cf0a 100755 --- a/src/pages/signin/LoginForm.js +++ b/src/pages/signin/LoginForm.js @@ -183,6 +183,7 @@ class LoginForm extends React.Component { autoCapitalize="none" autoCorrect={false} keyboardType={CONST.KEYBOARD_TYPE.EMAIL_ADDRESS} + hasError={Boolean(error)} /> {!_.isEmpty(this.props.account.success) && ( From 99de66834bddca04b72d735d6e1a2f2c4a7edb4b Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Fri, 27 Jan 2023 14:07:29 -0700 Subject: [PATCH 03/23] rm hasError --- src/pages/signin/PasswordForm.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/pages/signin/PasswordForm.js b/src/pages/signin/PasswordForm.js index 6c376ca749eb..d984e6fd27b3 100755 --- a/src/pages/signin/PasswordForm.js +++ b/src/pages/signin/PasswordForm.js @@ -151,7 +151,6 @@ class PasswordForm extends React.Component { } render() { - const hasError = this.state.formError || (this.props.account && !_.isEmpty(this.props.account.errors)); return ( <> @@ -167,7 +166,6 @@ class PasswordForm extends React.Component { onChangeText={text => this.setState({password: text})} onSubmitEditing={this.validateAndSubmitForm} blurOnSubmit={false} - hasError={hasError} /> )} From 62f05efd931ec7ea4e4676014a355f93d16b89c2 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Fri, 27 Jan 2023 14:13:50 -0700 Subject: [PATCH 04/23] import form --- src/pages/signin/PasswordForm.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/pages/signin/PasswordForm.js b/src/pages/signin/PasswordForm.js index d984e6fd27b3..444de9c21d51 100755 --- a/src/pages/signin/PasswordForm.js +++ b/src/pages/signin/PasswordForm.js @@ -24,6 +24,7 @@ import * as ErrorUtils from '../../libs/ErrorUtils'; import {withNetwork} from '../../components/OnyxProvider'; import networkPropTypes from '../../components/networkPropTypes'; import OfflineIndicator from '../../components/OfflineIndicator'; +import Form from '../../components/Form'; const propTypes = { /* Onyx Props */ @@ -152,7 +153,12 @@ class PasswordForm extends React.Component { render() { return ( - <> +
this.inputPassword = el} @@ -219,7 +225,7 @@ class PasswordForm extends React.Component { - + ); } } From ad1a7a599c9b655863dfecbfad5333ea1e4f5751 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Fri, 27 Jan 2023 14:18:50 -0700 Subject: [PATCH 05/23] fix layout --- src/pages/signin/PasswordForm.js | 124 +++++++++++++++---------------- 1 file changed, 58 insertions(+), 66 deletions(-) diff --git a/src/pages/signin/PasswordForm.js b/src/pages/signin/PasswordForm.js index 444de9c21d51..0f1997382b90 100755 --- a/src/pages/signin/PasswordForm.js +++ b/src/pages/signin/PasswordForm.js @@ -153,79 +153,71 @@ class PasswordForm extends React.Component { render() { return ( -
- - this.inputPassword = el} - label={this.props.translate('common.password')} - secureTextEntry - autoCompleteType={ComponentUtils.PASSWORD_AUTOCOMPLETE_TYPE} - textContentType="password" - nativeID="password" - name="password" - value={this.state.password} - onChangeText={text => this.setState({password: text})} - onSubmitEditing={this.validateAndSubmitForm} - blurOnSubmit={false} - /> - - - - {this.props.translate('passwordForm.forgot')} - - - - - - {this.props.account.requiresTwoFactorAuth && ( + <> + this.input2FA = el} - label={this.props.translate('passwordForm.twoFactorCode')} - value={this.state.twoFactorAuthCode} - placeholder={this.props.translate('passwordForm.requiredWhen2FAEnabled')} - placeholderTextColor={themeColors.placeholderText} - onChangeText={text => this.setState({twoFactorAuthCode: text})} + ref={el => this.inputPassword = el} + label={this.props.translate('common.password')} + secureTextEntry + autoCompleteType={ComponentUtils.PASSWORD_AUTOCOMPLETE_TYPE} + textContentType="password" + nativeID="password" + name="password" + value={this.state.password} + onChangeText={text => this.setState({password: text})} onSubmitEditing={this.validateAndSubmitForm} - keyboardType={CONST.KEYBOARD_TYPE.NUMBER_PAD} blurOnSubmit={false} - maxLength={CONST.TFA_CODE_LENGTH} /> + + + + {this.props.translate('passwordForm.forgot')} + + + - )} - - {!this.state.formError && this.props.account && !_.isEmpty(this.props.account.errors) && ( - - {ErrorUtils.getLatestErrorMessage(this.props.account)} - - )} - - {this.state.formError && ( - - {this.props.translate(this.state.formError)} - - )} - -