From b698932b4cc33188cbdb15ab7c14dcb4fb37543c Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Fri, 25 Mar 2022 11:36:10 -0600 Subject: [PATCH 1/5] use lodashget --- src/pages/signin/ChangeExpensifyLoginLink.js | 45 +++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/pages/signin/ChangeExpensifyLoginLink.js b/src/pages/signin/ChangeExpensifyLoginLink.js index 9469828a21e6..814353283124 100755 --- a/src/pages/signin/ChangeExpensifyLoginLink.js +++ b/src/pages/signin/ChangeExpensifyLoginLink.js @@ -3,6 +3,7 @@ import {TouchableOpacity, View} from 'react-native'; import {withOnyx} from 'react-native-onyx'; import PropTypes from 'prop-types'; import Str from 'expensify-common/lib/str'; +import lodashGet from 'lodash/get'; import Text from '../../components/Text'; import styles from '../../styles/styles'; import themeColors from '../../styles/themes/default'; @@ -27,28 +28,30 @@ const defaultProps = { }, }; -const ChangeExpensifyLoginLink = props => ( - - - {props.translate('common.not')} -   - {Str.isSMSLogin(props.credentials.login) - ? props.toLocalPhone(Str.removeSMSDomain(props.credentials.login)) - : Str.removeSMSDomain(props.credentials.login)} - {'? '} - - - - {props.translate('common.goBack')} - {'.'} +const ChangeExpensifyLoginLink = props => { + const login = lodashGet(props.credentials, 'login', ''); + return ( + + + {props.translate('common.not')} +   + {Str.isSMSLogin(login) + ? props.toLocalPhone(Str.removeSMSDomain(login)) + : Str.removeSMSDomain(login)} + {'? '} - - -); + + + {props.translate('common.goBack')} + {'.'} + + + +)}; ChangeExpensifyLoginLink.propTypes = propTypes; ChangeExpensifyLoginLink.defaultProps = defaultProps; From f70d455724eeef05c811166acb51e8c3633d0d8f Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Fri, 25 Mar 2022 11:46:51 -0600 Subject: [PATCH 2/5] fix lint --- src/pages/signin/ChangeExpensifyLoginLink.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pages/signin/ChangeExpensifyLoginLink.js b/src/pages/signin/ChangeExpensifyLoginLink.js index 814353283124..3b96101d9dc4 100755 --- a/src/pages/signin/ChangeExpensifyLoginLink.js +++ b/src/pages/signin/ChangeExpensifyLoginLink.js @@ -28,7 +28,7 @@ const defaultProps = { }, }; -const ChangeExpensifyLoginLink = props => { +const ChangeExpensifyLoginLink = (props) => { const login = lodashGet(props.credentials, 'login', ''); return ( @@ -51,7 +51,8 @@ const ChangeExpensifyLoginLink = props => { -)}; + ); +}; ChangeExpensifyLoginLink.propTypes = propTypes; ChangeExpensifyLoginLink.defaultProps = defaultProps; From 5ec043bd9324029468a28a01e837b49451ab0dab Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Fri, 25 Mar 2022 14:43:10 -0600 Subject: [PATCH 3/5] handle 405 --- src/libs/actions/Session/index.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/libs/actions/Session/index.js b/src/libs/actions/Session/index.js index c508ca2a72ef..a4a19fad5072 100644 --- a/src/libs/actions/Session/index.js +++ b/src/libs/actions/Session/index.js @@ -50,21 +50,19 @@ function setSuccessfulSignInData(data) { * @param {String} login */ function createAccount(login) { - Onyx.merge(ONYXKEYS.SESSION, {error: ''}); + Onyx.merge(ONYXKEYS.ACCOUNT, {error: ''}); API.User_SignUp({ email: login, }).then((response) => { - if (response.jsonCode === 200) { + // A 405 means that the account needs to be validated. We should let the user proceed to the ResendValidationForm view. + if (response.jsonCode === 200 || response.jsonCode === 405) { return; } let errorMessage = response.message || `Unknown API Error: ${response.jsonCode}`; - if (!response.message && response.jsonCode === 405) { - errorMessage = 'Cannot create an account that is under a controlled domain'; - } - Onyx.merge(ONYXKEYS.SESSION, {error: errorMessage}); Onyx.merge(ONYXKEYS.CREDENTIALS, {login: null}); + Onyx.merge(ONYXKEYS.ACCOUNT, {error: errorMessage}); }); } From 54c7dd85e8122e4c48f589cd8144c2585baab739 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Fri, 25 Mar 2022 14:49:29 -0600 Subject: [PATCH 4/5] remove errorMessage var --- src/libs/actions/Session/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/libs/actions/Session/index.js b/src/libs/actions/Session/index.js index a4a19fad5072..bccbee55f06d 100644 --- a/src/libs/actions/Session/index.js +++ b/src/libs/actions/Session/index.js @@ -60,9 +60,8 @@ function createAccount(login) { return; } - let errorMessage = response.message || `Unknown API Error: ${response.jsonCode}`; Onyx.merge(ONYXKEYS.CREDENTIALS, {login: null}); - Onyx.merge(ONYXKEYS.ACCOUNT, {error: errorMessage}); + Onyx.merge(ONYXKEYS.ACCOUNT, {error: response.message || `Unknown API Error: ${response.jsonCode}`}); }); } From e34008c93c6b1c29c11212128f9bb8c87418cea9 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Fri, 25 Mar 2022 16:47:35 -0600 Subject: [PATCH 5/5] revert changes to ChangeExpensifyLoginLink --- src/pages/signin/ChangeExpensifyLoginLink.js | 46 +++++++++----------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/src/pages/signin/ChangeExpensifyLoginLink.js b/src/pages/signin/ChangeExpensifyLoginLink.js index 3b96101d9dc4..9469828a21e6 100755 --- a/src/pages/signin/ChangeExpensifyLoginLink.js +++ b/src/pages/signin/ChangeExpensifyLoginLink.js @@ -3,7 +3,6 @@ import {TouchableOpacity, View} from 'react-native'; import {withOnyx} from 'react-native-onyx'; import PropTypes from 'prop-types'; import Str from 'expensify-common/lib/str'; -import lodashGet from 'lodash/get'; import Text from '../../components/Text'; import styles from '../../styles/styles'; import themeColors from '../../styles/themes/default'; @@ -28,31 +27,28 @@ const defaultProps = { }, }; -const ChangeExpensifyLoginLink = (props) => { - const login = lodashGet(props.credentials, 'login', ''); - return ( - - - {props.translate('common.not')} -   - {Str.isSMSLogin(login) - ? props.toLocalPhone(Str.removeSMSDomain(login)) - : Str.removeSMSDomain(login)} - {'? '} +const ChangeExpensifyLoginLink = props => ( + + + {props.translate('common.not')} +   + {Str.isSMSLogin(props.credentials.login) + ? props.toLocalPhone(Str.removeSMSDomain(props.credentials.login)) + : Str.removeSMSDomain(props.credentials.login)} + {'? '} + + + + {props.translate('common.goBack')} + {'.'} - - - {props.translate('common.goBack')} - {'.'} - - - - ); -}; + + +); ChangeExpensifyLoginLink.propTypes = propTypes; ChangeExpensifyLoginLink.defaultProps = defaultProps;