From 0e143c2caf431105a94ea895ba03856bdfadafa4 Mon Sep 17 00:00:00 2001 From: Oliver Eyton-Williams Date: Thu, 17 Oct 2019 15:28:16 +0200 Subject: [PATCH] fix: replace navigate with hardgoto in showUser (#37363) * fix: use hardGoTo in ShowUser * refactor: clean up hardGoTo Rather than using both navigate and hardGoTo this imports hardGoTo as navigate and uses navigate everywhere Co-authored-by: mrugesh <1884376+raisedadead@users.noreply.github.com> --- client/src/client-only-routes/ShowSettings.js | 38 ++++++++----------- client/src/client-only-routes/ShowUser.js | 15 +++----- .../src/components/Header/components/Login.js | 8 ++-- client/src/pages/donate.js | 12 ++++-- client/src/pages/portfolio.js | 15 ++------ 5 files changed, 36 insertions(+), 52 deletions(-) diff --git a/client/src/client-only-routes/ShowSettings.js b/client/src/client-only-routes/ShowSettings.js index 75e8a74bc0..1cdd9f94f5 100644 --- a/client/src/client-only-routes/ShowSettings.js +++ b/client/src/client-only-routes/ShowSettings.js @@ -1,6 +1,5 @@ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; -import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; import { createSelector } from 'reselect'; import { Grid, Button } from '@freecodecamp/react-bootstrap'; @@ -11,7 +10,7 @@ import { signInLoadingSelector, userSelector, isSignedInSelector, - hardGoTo + hardGoTo as navigate } from '../redux'; import { submitNewAbout, updateUserFlag, verifyCert } from '../redux/settings'; import { createFlashMessage } from '../components/Flash/redux'; @@ -28,7 +27,6 @@ import DangerZone from '../components/settings/DangerZone'; const propTypes = { createFlashMessage: PropTypes.func.isRequired, - hardGoTo: PropTypes.func.isRequired, isSignedIn: PropTypes.bool.isRequired, navigate: PropTypes.func.isRequired, showLoading: PropTypes.bool.isRequired, @@ -98,32 +96,26 @@ const mapStateToProps = createSelector( }) ); -const mapDispatchToProps = dispatch => - bindActionCreators( - { - createFlashMessage, - hardGoTo, - navigate: location => dispatch(hardGoTo(location)), - submitNewAbout, - toggleNightMode: theme => updateUserFlag({ theme }), - updateInternetSettings: updateUserFlag, - updateIsHonest: updateUserFlag, - updatePortfolio: updateUserFlag, - updateQuincyEmail: sendQuincyEmail => updateUserFlag({ sendQuincyEmail }), - verifyCert - }, - dispatch - ); +const mapDispatchToProps = { + createFlashMessage, + navigate, + submitNewAbout, + toggleNightMode: theme => updateUserFlag({ theme }), + updateInternetSettings: updateUserFlag, + updateIsHonest: updateUserFlag, + updatePortfolio: updateUserFlag, + updateQuincyEmail: sendQuincyEmail => updateUserFlag({ sendQuincyEmail }), + verifyCert +}; -const createHandleSignoutClick = hardGoTo => e => { +const createHandleSignoutClick = navigate => e => { e.preventDefault(); - return hardGoTo(`${apiLocation}/signout`); + return navigate(`${apiLocation}/signout`); }; export function ShowSettings(props) { const { createFlashMessage, - hardGoTo, isSignedIn, submitNewAbout, toggleNightMode, @@ -194,7 +186,7 @@ export function ShowSettings(props) { bsStyle='primary' className='btn-invert' href={'/signout'} - onClick={createHandleSignoutClick(hardGoTo)} + onClick={createHandleSignoutClick(navigate)} > Sign me out of freeCodeCamp diff --git a/client/src/client-only-routes/ShowUser.js b/client/src/client-only-routes/ShowUser.js index e8d2cfafc1..226c09fb44 100644 --- a/client/src/client-only-routes/ShowUser.js +++ b/client/src/client-only-routes/ShowUser.js @@ -1,7 +1,5 @@ import React, { Component, Fragment } from 'react'; import PropTypes from 'prop-types'; -import { bindActionCreators } from 'redux'; -import { navigate } from '@reach/router'; import { connect } from 'react-redux'; import { createSelector } from 'reselect'; import { @@ -18,6 +16,7 @@ import Helmet from 'react-helmet'; import { apiLocation } from '../../config/env.json'; import { + hardGoTo as navigate, isSignedInSelector, userFetchStateSelector, userSelector, @@ -49,14 +48,10 @@ const mapStateToProps = createSelector( }) ); -const mapDispatchToProps = dispatch => - bindActionCreators( - { - navigate, - reportUser - }, - dispatch - ); +const mapDispatchToProps = { + navigate, + reportUser +}; class ShowUser extends Component { constructor(props) { diff --git a/client/src/components/Header/components/Login.js b/client/src/components/Header/components/Login.js index 4996684039..0974d09fb9 100644 --- a/client/src/components/Header/components/Login.js +++ b/client/src/components/Header/components/Login.js @@ -5,7 +5,7 @@ import { createSelector } from 'reselect'; import { navigate as gatsbyNavigate } from 'gatsby'; import { Button } from '@freecodecamp/react-bootstrap'; -import { hardGoTo, isSignedInSelector } from '../../../redux'; +import { hardGoTo as navigate, isSignedInSelector } from '../../../redux'; import { apiLocation } from '../../../../config/env.json'; import { gtagReportConversion } from '../../../analytics/gtag'; @@ -18,9 +18,9 @@ const mapStateToProps = createSelector( isSignedIn }) ); -const mapDispatchToProps = dispatch => ({ - navigate: location => dispatch(hardGoTo(location)) -}); +const mapDispatchToProps = { + navigate +}; const createOnClick = (navigate, isSignedIn) => e => { e.preventDefault(); diff --git a/client/src/pages/donate.js b/client/src/pages/donate.js index 31fa475ef1..3c07f27e62 100644 --- a/client/src/pages/donate.js +++ b/client/src/pages/donate.js @@ -12,7 +12,11 @@ import DonateOther from '../components/Donation/components/DonateOther'; import DonateForm from '../components/Donation/components/DonateForm'; import DonateText from '../components/Donation/components/DonateText'; import PoweredByStripe from '../components/Donation/components/poweredByStripe'; -import { signInLoadingSelector, isSignedInSelector, hardGoTo } from '../redux'; +import { + signInLoadingSelector, + isSignedInSelector, + hardGoTo as navigate +} from '../redux'; import { stripeScriptLoader } from '../utils/scriptLoaders'; const mapStateToProps = createSelector( @@ -24,9 +28,9 @@ const mapStateToProps = createSelector( }) ); -const mapDispatchToProps = dispatch => ({ - navigate: location => dispatch(hardGoTo(location)) -}); +const mapDispatchToProps = { + navigate +}; const propTypes = { isSignedIn: PropTypes.bool.isRequired, diff --git a/client/src/pages/portfolio.js b/client/src/pages/portfolio.js index 9da2fe1589..a9d5f933eb 100644 --- a/client/src/pages/portfolio.js +++ b/client/src/pages/portfolio.js @@ -1,7 +1,6 @@ import React from 'react'; import { connect } from 'react-redux'; -import { bindActionCreators } from 'redux'; import { createSelector } from 'reselect'; import PropTypes from 'prop-types'; @@ -11,7 +10,7 @@ import { signInLoadingSelector, userSelector, isSignedInSelector, - hardGoTo + hardGoTo as navigate } from '../redux'; import Loader from '../components/helpers/Loader'; @@ -27,17 +26,11 @@ const mapStateToProps = createSelector( }) ); -const mapDispatchToProps = dispatch => - bindActionCreators( - { - hardGoTo, - navigate: location => dispatch(hardGoTo(location)) - }, - dispatch - ); +const mapDispatchToProps = { + navigate +}; const propTypes = { - hardGoTo: PropTypes.func.isRequired, isSignedIn: PropTypes.bool.isRequired, navigate: PropTypes.func.isRequired, showLoading: PropTypes.bool.isRequired,