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 (
-
+