diff --git a/frontend/js/auth.js b/frontend/js/auth.js index cbd60f4..846e758 100644 --- a/frontend/js/auth.js +++ b/frontend/js/auth.js @@ -1,17 +1,19 @@ import React from "react"; import PropTypes from "prop-types"; -import { connect } from "react-redux"; +import { useDispatch, useSelector } from "react-redux"; import { Route, Redirect } from "react-router-dom"; + import { setUserToken } from "./actions/users"; -const protectedRoute = ({ - component: Component, - isLogged, - isActivated, - isTokenSet, - setUserToken, - ...otherProps -}) => { +export const ProtectedRoute = ({ component: Component, ...otherProps }) => { + const dispatch = useDispatch(); + + const isLogged = useSelector((state) => state.userStore.get("isLogged")); + const isActivated = useSelector((state) => + state.userStore.get("isActivated") + ); + const isTokenSet = useSelector((state) => state.userStore.get("isTokenSet")); + const isAuthenticated = () => { if (isTokenSet) { return true; @@ -20,7 +22,7 @@ const protectedRoute = ({ const token = localStorage.getItem("token"); if (isLogged || (token && token !== "")) { if (!isTokenSet) { - setUserToken(token); + dispatch(setUserToken(token)); } return true; } @@ -45,24 +47,12 @@ const protectedRoute = ({ /> ); }; -protectedRoute.propTypes = { +ProtectedRoute.propTypes = { component: PropTypes.func, - isLogged: PropTypes.bool.isRequired, - isActivated: PropTypes.bool.isRequired, - isTokenSet: PropTypes.bool.isRequired, - setUserToken: PropTypes.func.isRequired, }; -export const ProtectedRoute = connect( - (state) => ({ - isLogged: state.userStore.get("isLogged"), - isAdmin: state.userStore.get("isLogged"), - isActivated: state.userStore.get("isActivated"), - isTokenSet: state.userStore.get("isTokenSet"), - }), - { setUserToken } -)(protectedRoute); -const adminRoute = ({ component: Component, isAdmin, ...otherProps }) => { +export const AdminRoute = ({ component: Component, ...otherProps }) => { + const isAdmin = useSelector((state) => state.userStore.get("isAdmin")); return ( { /> ); }; -adminRoute.propTypes = { +AdminRoute.propTypes = { component: PropTypes.func, - isAdmin: PropTypes.bool.isRequired, }; -export const AdminRoute = connect((state) => ({ - isAdmin: state.userStore.get("isLogged"), -}))(adminRoute);