diff --git a/src/pages/SetPasswordPage.js b/src/pages/SetPasswordPage.js index 75112a8de3db..8139e59376f6 100644 --- a/src/pages/SetPasswordPage.js +++ b/src/pages/SetPasswordPage.js @@ -94,43 +94,45 @@ class SetPasswordPage extends Component { render() { return ( <> - - - - + + + + + + + Enter a password + this.setState({password: text})} + onSubmitEditing={this.submitForm} + /> + + + {this.state.formError && ( + + {this.state.formError} + + )} + {!_.isEmpty(this.props.account.error) && ( + + {this.props.account.error} + + )} - - Enter a password - this.setState({password: text})} - onSubmitEditing={this.submitForm} - /> - - - {this.state.formError && ( - - {this.state.formError} - - )} - {!_.isEmpty(this.props.account.error) && ( - - {this.props.account.error} - - )} - - + + ); } diff --git a/src/pages/signin/LoginForm/LoginFormNarrow.js b/src/pages/signin/LoginForm/LoginFormNarrow.js index 61c3f8571f38..58df13f81dd4 100644 --- a/src/pages/signin/LoginForm/LoginFormNarrow.js +++ b/src/pages/signin/LoginForm/LoginFormNarrow.js @@ -1,6 +1,8 @@ import React from 'react'; import { - Image, Text, TextInput, View, + Text, + TextInput, + View, } from 'react-native'; import {withOnyx} from 'react-native-onyx'; import PropTypes from 'prop-types'; @@ -9,9 +11,7 @@ import styles from '../../../styles/styles'; import themeColors from '../../../styles/themes/default'; import ButtonWithLoader from '../../../components/ButtonWithLoader'; import {fetchAccountDetails} from '../../../libs/actions/Session'; -import welcomeScreenshot from '../../../../assets/images/welcome-screenshot.png'; import ONYXKEYS from '../../../ONYXKEYS'; -import WelcomeText from '../../../components/WelcomeText'; const propTypes = { /* Onyx Props */ @@ -61,7 +61,7 @@ class LoginFormNarrow extends React.Component { render() { return ( - + <> Enter your phone or email: )} - - - - - - + ); } } diff --git a/src/pages/signin/LoginForm/LoginFormWide.js b/src/pages/signin/LoginForm/LoginFormWide.js index 7eccb16bf25b..13ab39458af4 100644 --- a/src/pages/signin/LoginForm/LoginFormWide.js +++ b/src/pages/signin/LoginForm/LoginFormWide.js @@ -7,7 +7,6 @@ import {fetchAccountDetails} from '../../../libs/actions/Session'; import styles from '../../../styles/styles'; import ButtonWithLoader from '../../../components/ButtonWithLoader'; import ONYXKEYS from '../../../ONYXKEYS'; -import WelcomeText from '../../../components/WelcomeText'; const propTypes = { /* Onyx Props */ @@ -58,44 +57,39 @@ class LoginFormWide extends React.Component { render() { return ( <> - - - Enter your phone or email: - this.setState({login: text})} - onSubmitEditing={this.validateAndSubmitForm} - autoCapitalize="none" - placeholder="Phone or Email" - autoFocus - /> - - - - - - {this.state.formError && ( - - {this.state.formError} - - )} - - {!_.isEmpty(this.props.account.error) && ( - - {this.props.account.error} - - )} + + Enter your phone or email: + this.setState({login: text})} + onSubmitEditing={this.validateAndSubmitForm} + autoCapitalize="none" + placeholder="Phone or Email" + autoFocus + /> - - + + + + {this.state.formError && ( + + {this.state.formError} + + )} + + {!_.isEmpty(this.props.account.error) && ( + + {this.props.account.error} + + )} ); } diff --git a/src/pages/signin/PasswordForm.js b/src/pages/signin/PasswordForm.js index 8e94fb6d0a8b..173d294586ff 100644 --- a/src/pages/signin/PasswordForm.js +++ b/src/pages/signin/PasswordForm.js @@ -65,7 +65,7 @@ class PasswordForm extends React.Component { render() { return ( - + <> Password )} - + ); } } diff --git a/src/pages/signin/ResendValidationForm.js b/src/pages/signin/ResendValidationForm.js index b5a598de5e1f..504b5601d817 100644 --- a/src/pages/signin/ResendValidationForm.js +++ b/src/pages/signin/ResendValidationForm.js @@ -66,7 +66,7 @@ class ResendValidationForm extends React.Component { render() { return ( - + <> We've sent you a magic sign in link – just click on it to log in! @@ -86,7 +86,7 @@ class ResendValidationForm extends React.Component { {this.state.formSuccess} )} - + ); } } diff --git a/src/pages/signin/SignInPage.js b/src/pages/signin/SignInPage.js index 1b5f6ed24bef..be8c9abc6bb5 100644 --- a/src/pages/signin/SignInPage.js +++ b/src/pages/signin/SignInPage.js @@ -12,7 +12,6 @@ import SignInPageLayout from './SignInPageLayout'; import LoginForm from './LoginForm'; import PasswordForm from './PasswordForm'; import ResendValidationForm from './ResendValidationForm'; -import TermsAndLicenses from './TermsAndLicenses'; const propTypes = { /* Onyx Props */ @@ -85,7 +84,10 @@ class SignInPage extends Component { return ( <> - + {showLoginForm && } {showPasswordForm && } @@ -102,8 +104,6 @@ class SignInPage extends Component { )} )} - - diff --git a/src/pages/signin/SignInPageLayout/SignInPageLayoutNarrow.js b/src/pages/signin/SignInPageLayout/SignInPageLayoutNarrow.js index e3e70ea20b57..843c4d7b89d2 100644 --- a/src/pages/signin/SignInPageLayout/SignInPageLayoutNarrow.js +++ b/src/pages/signin/SignInPageLayout/SignInPageLayoutNarrow.js @@ -1,18 +1,32 @@ import React from 'react'; import { + Image, ScrollView, Text, View, } from 'react-native'; import PropTypes from 'prop-types'; import styles from '../../../styles/styles'; import variables from '../../../styles/variables'; import ExpensifyCashLogo from '../../../../assets/images/expensify-cash.svg'; +import welcomeScreenshot from '../../../../assets/images/welcome-screenshot.png'; +import TermsAndLicenses from '../TermsAndLicenses'; +import WelcomeText from '../../../components/WelcomeText'; const propTypes = { + // The children to show inside the layout children: PropTypes.node.isRequired, + + // Whether we should show the welcome elements + shouldShowWelcomeText: PropTypes.bool, + shouldShowWelcomeScreenshot: PropTypes.bool, +}; + +const defaultProps = { + shouldShowWelcomeText: true, + shouldShowWelcomeScreenshot: true, }; -const SignInPageLayoutNarrow = ({children}) => ( +const SignInPageLayoutNarrow = props => ( @@ -26,13 +40,30 @@ const SignInPageLayoutNarrow = ({children}) => ( - {children} + + {props.children} + + {props.shouldShowWelcomeScreenshot + && ( + + + + )} + + {props.shouldShowWelcomeText && } + + ); SignInPageLayoutNarrow.propTypes = propTypes; +SignInPageLayoutNarrow.defaultProps = defaultProps; SignInPageLayoutNarrow.displayName = 'SignInPageLayoutNarrow'; diff --git a/src/pages/signin/SignInPageLayout/SignInPageLayoutWide.js b/src/pages/signin/SignInPageLayout/SignInPageLayoutWide.js index d2bfce6cdb44..248a8d657857 100644 --- a/src/pages/signin/SignInPageLayout/SignInPageLayoutWide.js +++ b/src/pages/signin/SignInPageLayout/SignInPageLayoutWide.js @@ -7,13 +7,23 @@ import styles from '../../../styles/styles'; import ExpensifyCashLogo from '../../../../assets/images/expensify-cash.svg'; import welcomeScreenshot from '../../../../assets/images/welcome-screenshot-wide.png'; import variables from '../../../styles/variables'; +import TermsAndLicenses from '../TermsAndLicenses'; +import WelcomeText from '../../../components/WelcomeText'; const propTypes = { // The children to show inside the layout children: PropTypes.node.isRequired, + + // Whether we should show the welcome text + // (the welcome screenshot always displays on wide views) + shouldShowWelcomeText: PropTypes.bool, +}; + +const defaultProps = { + shouldShowWelcomeText: true, }; -const SignInPageLayoutWide = ({children}) => ( +const SignInPageLayoutWide = props => ( @@ -35,14 +45,23 @@ const SignInPageLayoutWide = ({children}) => ( Expensify.cash - - {children} + + {props.children} + + {props.shouldShowWelcomeText + && ( + + + + )} + ); SignInPageLayoutWide.propTypes = propTypes; +SignInPageLayoutWide.defaultProps = defaultProps; SignInPageLayoutWide.displayName = 'SignInPageLayoutWide'; diff --git a/src/styles/styles.js b/src/styles/styles.js index fae27fd6d72c..5cae4f96ae15 100644 --- a/src/styles/styles.js +++ b/src/styles/styles.js @@ -398,7 +398,7 @@ const styles = { width: '100%', }, - loginFormContainer: { + signInPageFormContainer: { maxWidth: 295, width: '100%', },