PublicRoute.tsx 610 B

12345678910111213141516171819202122232425262728
  1. import { Route, Redirect } from 'react-router-dom';
  2. import { connect } from 'react-redux';
  3. import {
  4. IPublicState,
  5. IPublicProps,
  6. } from '../../../typescript/components/Routes/interfaces';
  7. function PublicRoute({
  8. children,
  9. restricted = false,
  10. token,
  11. ...routeProps
  12. }: IPublicProps) {
  13. const shouldRedirect = token && restricted;
  14. return (
  15. <Route {...routeProps}>
  16. {shouldRedirect ? <Redirect to="/" /> : children}
  17. </Route>
  18. );
  19. }
  20. const mapStateToProps = (state: IPublicState) => ({
  21. token: state.authorization.token,
  22. });
  23. export default connect(mapStateToProps, null)(PublicRoute);