diff -r adad5563603c -r 906a6c7c7943 client/src/components/GroupForm.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/components/GroupForm.js Tue Aug 01 12:20:14 2017 +0200
@@ -0,0 +1,106 @@
+import React, { Component } from 'react';
+import { connect } from 'react-redux';
+import { bindActionCreators } from 'redux';
+import { FormGroup, FormControl, Button, InputGroup, HelpBlock, Glyphicon } from 'react-bootstrap';
+import * as authActions from '../actions/authActions';
+import * as sessionsActions from '../actions/sessionsActions';
+
+class GroupForm extends Component {
+
+ state = {
+ createGroup: false,
+ groupName: ''
+ }
+
+ toggleCreateGroup = (e) => {
+ e.preventDefault();
+ const { createGroup } = this.state;
+ this.setState({ createGroup: !createGroup });
+ }
+
+ onClickCreateGroup = (e) => {
+ e.preventDefault();
+ const groupName = this.state.groupName;
+ this.props.sessionsActions.createGroupAndUpdateSession(this.props.session, groupName);
+ this.setState({
+ createGroup: false,
+ groupName: ''
+ })
+ }
+
+ handleInputChange = (e) => {
+ const target = e.target;
+ const value = target.value;
+ const name = target.name;
+
+ this.setState({
+ [name]: value
+ });
+ }
+
+
+ render = () => {
+ const { createGroup } = this.props;
+ const hasErrors = true === createGroup.get('error') && createGroup.get('errorMessages').has('name');
+
+ let errors = [];
+ if (hasErrors) {
+ const errorMessages = createGroup.get('errorMessages').toArray();
+ errors = errorMessages.map((message, key) => {
+ return (
+ { message }
+ )
+ })
+ }
+
+ if (this.state.createGroup) {
+ return (
+
+
+
+
+
+
+
+ { errors }
+
+
+
+ )
+ }
+
+ if(this.props.online) {
+ return (
+
+
+
+ )
+ }
+ return null;
+ }
+
+}
+
+function mapStateToProps(state, props) {
+
+ return {
+ createGroup: state.get('createGroup'),
+ online: state.getIn(['status', 'online']),
+ };
+}
+
+function mapDispatchToProps(dispatch) {
+ return {
+ sessionsActions: bindActionCreators(sessionsActions, dispatch),
+ authActions: bindActionCreators(authActions, dispatch),
+ }
+}
+
+export default connect(mapStateToProps, mapDispatchToProps)(GroupForm);