diff --git a/client/components/createRedirectWithUsername.jsx b/client/components/createRedirectWithUsername.jsx index a6b69233c4..b8fb3485dd 100644 --- a/client/components/createRedirectWithUsername.jsx +++ b/client/components/createRedirectWithUsername.jsx @@ -1,29 +1,23 @@ -import React from 'react'; -import { connect } from 'react-redux'; +import { useEffect } from 'react'; +import { useSelector } from 'react-redux'; +import PropTypes from 'prop-types'; import browserHistory from '../browserHistory'; -const RedirectToUser = ({ username, url = '/:username/sketches' }) => { - React.useEffect(() => { +const RedirectToUser = ({ url = '/:username/sketches' }) => { + const username = useSelector((state) => + state.user ? state.user.username : null + ); + useEffect(() => { if (username == null) { return; } - browserHistory.replace(url.replace(':username', username)); - }, [username]); - + }, [username, url]); return null; }; -function mapStateToProps(state) { - return { - username: state.user ? state.user.username : null - }; -} - -const ConnectedRedirectToUser = connect(mapStateToProps)(RedirectToUser); - -const createRedirectWithUsername = (url) => (props) => ( - -); +RedirectToUser.propTypes = { + url: PropTypes.string.isRequired +}; -export default createRedirectWithUsername; +export default RedirectToUser; diff --git a/client/routes.jsx b/client/routes.jsx index 418a5bf99d..c0e189441d 100644 --- a/client/routes.jsx +++ b/client/routes.jsx @@ -17,7 +17,7 @@ import NewPasswordView from './modules/User/pages/NewPasswordView'; import AccountView from './modules/User/pages/AccountView'; import CollectionView from './modules/User/pages/CollectionView'; import DashboardView from './modules/User/pages/DashboardView'; -import createRedirectWithUsername from './components/createRedirectWithUsername'; +import RedirectToUser from './components/createRedirectWithUsername'; import { getUser } from './modules/User/actions'; import { userIsAuthenticated, @@ -84,11 +84,11 @@ const routes = ( } /> } />