diff -r 6fb4de54acea -r 48ddaa42b810 client/src/components/Session.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/client/src/components/Session.js Wed May 31 17:51:54 2017 +0200 @@ -0,0 +1,91 @@ +import React, { Component } from 'react'; +import { connect } from 'react-redux'; +import { bindActionCreators } from 'redux'; +import { Grid, Row, Col, Panel, FormGroup, ControlLabel, FormControl, Button } from 'react-bootstrap'; +import '../App.css'; +import Navbar from './Navbar'; +import NoteInput from './NoteInput'; +import NotesList from './NotesList'; +import * as sessionsActions from '../actions/sessionsActions'; +import * as notesActions from '../actions/notesActions'; + +class Session extends Component { + + saveSession = () => { + const title = this.title.value; + const description = this.description.value; + + this.props.sessionsActions.updateSession(this.props.currentSession, { + title: title, + description: description + }); + } + + render() { + return ( +
+ + + + + +
+ + Title + { this.title = ref; }} + /> + + + Description + { this.description = ref; }} + /> + + +
+
+ + + +
+ + +
+
+
+ ); + } +} + +function mapStateToProps(state, props) { + + const sessionId = props.match.params.id; + + const sessions = state.get('sessions'); + const notes = state.get('notes'); + + const currentSession = sessions.find(session => session.id === sessionId); + const notesBySession = notes.filter(note => note.session === sessionId); + + return { + currentSession: currentSession, + sessions: sessions, + notes: notesBySession + }; +} + +function mapDispatchToProps(dispatch) { + return { + sessionsActions: bindActionCreators(sessionsActions, dispatch), + notesActions: bindActionCreators(notesActions, dispatch), + } +} + +export default connect(mapStateToProps, mapDispatchToProps)(Session);