--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/components/SessionList.js Tue Jun 20 14:13:15 2017 +0200
@@ -0,0 +1,58 @@
+import React, { Component } from 'react';
+import { connect } from 'react-redux';
+import { bindActionCreators } from 'redux';
+import { Grid, Row, Col, ListGroup, ListGroupItem, Button } from 'react-bootstrap';
+import moment from 'moment';
+import '../App.css';
+import Navbar from './Navbar';
+import * as sessionsActions from '../actions/sessionsActions';
+import uuidV1 from 'uuid/v1';
+
+class SessionList extends Component {
+
+ createSession = () => {
+ const sessionId = uuidV1();
+ this.props.sessionsActions.createSession(sessionId);
+ this.props.history.push('/sessions/' + sessionId);
+ }
+
+ render() {
+ return (
+ <div>
+ <Navbar history={this.props.history} />
+ <Grid fluid>
+ <Row>
+ <Col md={6} mdOffset={3}>
+ <ListGroup>
+ {this.props.sessions.map((session) =>
+ <ListGroupItem
+ key={session.get('_id')}
+ onClick={() => this.props.history.push('/sessions/' + session.get('_id'))}>
+ {session.title || 'No title'} {session.get('_id')} {moment(session.get('date')).format('DD/MM/YYYY')}
+ </ListGroupItem>
+ )}
+ </ListGroup>
+ <Button bsStyle="success" onClick={this.createSession}>Create new session</Button>
+ </Col>
+ </Row>
+ </Grid>
+ </div>
+ );
+ }
+}
+
+function mapStateToProps(state, props) {
+ return {
+ // currentSession: state.get('currentSession'),
+ // sessions: state.get('sessions')
+ sessions: state['sessions']
+ };
+}
+
+function mapDispatchToProps(dispatch) {
+ return {
+ sessionsActions: bindActionCreators(sessionsActions, dispatch)
+ }
+}
+
+export default connect(mapStateToProps, mapDispatchToProps)(SessionList);