fga-eps-mds/2019.2-Vsign

View on GitHub
frontend/src/components/Routes/PrivateRoute.js

Summary

Maintainability
A
0 mins
Test Coverage
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { Route, Redirect } from 'react-router-dom';
import { LOGIN_URL } from '../../constants/routes';

class PrivateRoute extends Component {
    render() {
        const { component: Component, authenticated, ...rest } = this.props;
        return (
            <Route
                {...rest}
                render={props => authenticated ? (
                    <Component {...props} />
                ) : (
                    <Redirect
                        from={this.props.path}
                        to={LOGIN_URL}
                    />
                )}
            />
        )
    }
}

const mapStateToProps = (state) => ({
    authenticated: state.session.authenticated
});

export default connect(mapStateToProps)(PrivateRoute);