Files
payloadcms/demo/client/Routes.js
2018-08-01 16:11:20 -04:00

40 lines
1.4 KiB
JavaScript

import React, { Component } from 'react';
import { connect } from 'react-redux';
import { Route, Switch, withRouter } from 'react-router-dom';
import DefaultTemplate from 'payload/client/components/layout/DefaultTemplate';
import Dashboard from 'payload/client/components/views/Dashboard';
import Login from 'payload/client/components/views/Login';
const mapStateToProps = state => ({
collections: state.collections.all
});
class Routes extends Component {
render() {
return (
<Switch location={this.props.location}>
<Route path="/login" component={Login} />
<Route path="/forgot" component={ () => { return <h1>Forgot Password</h1>; } } />
<Route path="/" render={() => {
return (
<DefaultTemplate>
<Route path="/" exact component={Dashboard} />
{this.props.collections.map((collection) => {
return (
<React.Fragment key={collection.attrs.slug}>
<Route path={`/collections/${collection.attrs.slug}`} exact component={collection.components.archive} />
<Route path={`/collections/${collection.attrs.slug}/:id`} component={collection.components.edit} />
</React.Fragment>
);
})}
</DefaultTemplate>
);
}} />
</Switch>
);
}
}
export default withRouter(connect(mapStateToProps)(Routes));