privateRoute.js 628 Bytes
Newer Older
1
import React from 'react';
2
import { Route } from "react-router-dom";
3
import { connect } from "react-redux";
4
import jsCookie from 'js-cookie'
zhanghaozhe committed
5
import Loading from './route-middle-page'
6 7 8


const PrivateRoute = ({component: Component, path, user, ...rest}) => {
9

10
    let authenticated = jsCookie.get('token') && jsCookie.get('uid')
11

12 13 14 15
    return (
        <Route {...rest} render={props => {
            return authenticated
                ? <Component {...props}/>
zhanghaozhe committed
16
                : <Loading state={{from: props.location}}/>
17 18 19 20 21 22 23 24
        }}/>
    );
};

export default connect(
    state => ({user: state.user}),
    null
)(PrivateRoute);