I have created a login component on which I have all the logic stuff.
The login reducer is:
const openState = {
loggedIn: null,
user: null
}
export default (state = openState, action) => {
switch (action.type) {
case LOGIN:
return { ...state, loggedIn: true, user: action.payload }
case LOGOUT:
return { ...state, loggedIn: false, user: null }
default:
return openState
}
}
The Action :
export const logIn = (user) => {
return {
type: LOGIN,
payload: user
}
}
export const logOut = () => {
return {
type: LOGOUT
}
}
everything is working just fine but I'm not sure how to pass the loggedIn and user props from action into the routes component in order to secure all routes:
const MainRoutes = props => {
const { loggedIn } = props;
console.log(props.loggedIn)
return (
<Router history={history}>
<Baseline />
<Menu/>
<Container maxWidth="md">
<Switch>
<Route exact path="/Login" component={Login} />
<Route exact path="/Carousel" component={Carousel} />
<Route exact path="/Stepper" component={Stepper} />
<Route component={NotFound} />
</Switch>
</Container>
</Router>
);
}
const mapStateToProps = (state) => {
return { loggedIn: state.loggedIn };
};
export default connect(mapStateToProps)(MainRoutes);
If I'll console.log the loggedIn props I get undefined :|
Based on loggedIn I can create a logic into the routes component.
state.loggedIninsidemapStateToProps? whats it return ?state.auth. loggedInis returning the default state which isnull. In the login component that is true but in any other component return nullapp.js?loggedIn?