diff --git a/client/src/components/Donation/Donation.js b/client/src/components/Donation/Donation.js index 8006a1af2a..515fc1270a 100644 --- a/client/src/components/Donation/Donation.js +++ b/client/src/components/Donation/Donation.js @@ -1,4 +1,4 @@ -import React, { PureComponent } from 'react'; +import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; @@ -40,7 +40,7 @@ const propTypes = { const stripeKey = 'pk_live_E6Z6xPM8pEsJziHW905zpAvF'; -class DonationModal extends PureComponent { +class DonationModal extends Component { constructor(...props) { super(...props); this.state = { diff --git a/client/src/components/Donation/components/CardForm.js b/client/src/components/Donation/components/CardForm.js index 0a4b39f1bd..5da0f1be26 100644 --- a/client/src/components/Donation/components/CardForm.js +++ b/client/src/components/Donation/components/CardForm.js @@ -1,4 +1,4 @@ -import React, { PureComponent } from 'react'; +import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { Button } from '@freecodecamp/react-bootstrap'; @@ -9,7 +9,7 @@ const propTypes = { handleSubmit: PropTypes.func.isRequired }; -class CardForm extends PureComponent { +class CardForm extends Component { constructor(...props) { super(...props); diff --git a/client/src/components/Donation/components/DonateForm.js b/client/src/components/Donation/components/DonateForm.js index 35ab8e38c2..33666a1164 100644 --- a/client/src/components/Donation/components/DonateForm.js +++ b/client/src/components/Donation/components/DonateForm.js @@ -1,4 +1,4 @@ -import React, { PureComponent, Fragment } from 'react'; +import React, { Component, Fragment } from 'react'; import PropTypes from 'prop-types'; import isEmail from 'validator/lib/isEmail'; @@ -23,7 +23,7 @@ const initialSate = { } }; -class DonateForm extends PureComponent { +class DonateForm extends Component { constructor(...args) { super(...args); const [props] = args; diff --git a/client/src/components/Donation/components/StripeCardForm.js b/client/src/components/Donation/components/StripeCardForm.js index 984bf28ba3..70ca22b56a 100644 --- a/client/src/components/Donation/components/StripeCardForm.js +++ b/client/src/components/Donation/components/StripeCardForm.js @@ -1,4 +1,4 @@ -import React, { PureComponent } from 'react'; +import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { CardNumberElement, @@ -17,7 +17,7 @@ const style = { } }; -class StripCardForm extends PureComponent { +class StripCardForm extends Component { constructor(...props) { super(...props); diff --git a/client/src/components/Header/components/Login.js b/client/src/components/Header/components/Login.js index d7392fc0f7..8dad072133 100644 --- a/client/src/components/Header/components/Login.js +++ b/client/src/components/Header/components/Login.js @@ -1,30 +1,37 @@ import React from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; +import { createSelector } from 'reselect'; import { Button } from '@freecodecamp/react-bootstrap'; -import { hardGoTo } from '../../../redux'; +import { hardGoTo, isSignedInSelector } from '../../../redux'; import { apiLocation } from '../../../../config/env.json'; import { gtagReportConversion } from '../../../analytics/gtag'; import './login.css'; -const mapStateToProps = () => ({}); +const mapStateToProps = createSelector( + isSignedInSelector, + ({ isSingedIn }) => ({ isSingedIn }) +); const mapDispatchToProps = dispatch => ({ navigate: location => dispatch(hardGoTo(location)) }); -const createOnClick = navigate => e => { +const createOnClick = (navigate, isSingedIn) => e => { e.preventDefault(); gtagReportConversion(); + if (isSingedIn) { + return navigate('/welcome'); + } return navigate(`${apiLocation}/signin`); }; function Login(props) { - const { children, navigate, ...restProps } = props; + const { children, navigate, isSingedIn, ...restProps } = props; return ( - +