From 41417e4655def22bab3047e67d5ef8a73b39418a Mon Sep 17 00:00:00 2001 From: Nikki Wines Date: Fri, 14 Apr 2023 17:52:43 -0700 Subject: [PATCH 01/13] add useState logic and convert to functional component --- .../settings/Payments/AddPayPalMePage.js | 111 ++++++++---------- 1 file changed, 51 insertions(+), 60 deletions(-) diff --git a/src/pages/settings/Payments/AddPayPalMePage.js b/src/pages/settings/Payments/AddPayPalMePage.js index c800b49cd804..7f79c51f591c 100644 --- a/src/pages/settings/Payments/AddPayPalMePage.js +++ b/src/pages/settings/Payments/AddPayPalMePage.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, {useState} from 'react'; import {View} from 'react-native'; import _ from 'underscore'; import CONST from '../../../CONST'; @@ -16,33 +16,25 @@ import TextInput from '../../../components/TextInput'; import * as ValidationUtils from '../../../libs/ValidationUtils'; import * as User from '../../../libs/actions/User'; -class AddPayPalMePage extends React.Component { - constructor(props) { - super(props); +const AddPayPalMePage = (props) => { - this.state = { - payPalMeUsername: '', - payPalMeUsernameError: false, - }; - this.setPayPalMeUsername = this.setPayPalMeUsername.bind(this); - this.focusPayPalMeInput = this.focusPayPalMeInput.bind(this); - } + const [payPalMeUsername, setPayPalMeUsername] = useState(''); + const [payPalMeUsernameError, setPayPalMeUsernameError] = useState(false); /** - * Sets the payPalMeUsername for the current user + * Sets the payPalMe username and error data for the current user */ - setPayPalMeUsername() { - const isValid = ValidationUtils.isValidPaypalUsername(this.state.payPalMeUsername); - if (!isValid) { - this.setState({payPalMeUsernameError: true}); + const setPayPalMeData = () => { + if (!ValidationUtils.isValidPaypalUsername(payPalMeUsername)) { + setPayPalMeUsernameError(true); return; } - this.setState({payPalMeUsernameError: false}); - User.addPaypalMeAddress(this.state.payPalMeUsername); + setPayPalMeUsernameError(false); + User.addPaypalMeAddress(payPalMeUsername); - Growl.show(this.props.translate('addPayPalMePage.growlMessageOnSave'), CONST.GROWL.SUCCESS, 3000); + Growl.show(props.translate('addPayPalMePage.growlMessageOnSave'), CONST.GROWL.SUCCESS, 3000); Navigation.navigate(ROUTES.SETTINGS_PAYMENTS); - } + }; focusPayPalMeInput() { if (!this.payPalMeInputRef) { @@ -52,49 +44,48 @@ class AddPayPalMePage extends React.Component { this.payPalMeInputRef.focus(); } - render() { - return ( - - Navigation.navigate(ROUTES.SETTINGS_PAYMENTS)} - onCloseButtonPress={() => Navigation.dismissModal(true)} - /> - - - - {this.props.translate('addPayPalMePage.enterYourUsernameToGetPaidViaPayPal')} - - this.payPalMeInputRef = el} - label={this.props.translate('addPayPalMePage.payPalMe')} - autoCompleteType="off" - autoCorrect={false} - value={this.state.payPalMeUsername} - placeholder={this.props.translate('addPayPalMePage.yourPayPalUsername')} - onChangeText={text => this.setState({payPalMeUsername: text, payPalMeUsernameError: false})} - returnKeyType="done" - hasError={this.state.payPalMeUsernameError} - errorText={this.state.payPalMeUsernameError ? this.props.translate('addPayPalMePage.formatError') : ''} - /> - - - -