Files
codecrumbs/example-project/src-client/views/app/app.js
Bogdan Lyashenko 43451bdaff fix: cc comments
2019-05-14 19:36:20 +02:00

51 lines
1.3 KiB
JavaScript

import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { withRouter } from 'react-router-dom';
import { authActions, getAuth } from '../../auth';
import Header from '../components/header';
import RequireAuthRoute from '../components/require-auth-route';
import RequireUnauthRoute from '../components/require-unauth-route';
import SignInPage from '../pages/sign-in';
import TasksPage from '../pages/tasks';
//cc:layout#1;describe pages;some details long description for separare popup
const App = ({authenticated, signOut}) => (
<div>
<Header
authenticated={authenticated}
signOut={signOut}
/>
<main>
<RequireAuthRoute authenticated={authenticated} exact path="/" component={TasksPage}/>
<RequireUnauthRoute authenticated={authenticated} path="/sign-in" component={SignInPage}/>
</main>
</div>
);
App.propTypes = {
authenticated: PropTypes.bool.isRequired,
signOut: PropTypes.func.isRequired
};
//=====================================
// CONNECT
//-------------------------------------
const mapStateToProps = getAuth;
const mapDispatchToProps = {
signOut: authActions.signOut
};
//cc:here
export default withRouter(
connect(
mapStateToProps,
mapDispatchToProps
)(App)
);