client/src/components/Settings.js
author salimr <riwad.salim@yahoo.fr>
Tue, 14 Aug 2018 20:34:50 +0200
changeset 143 cfcbf4bc66f1
parent 142 56850f5c73f6
child 151 57d63a248f0d
permissions -rw-r--r--
Remove react-bootstrap from components except Modal, Collapse and Dropdown
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     1
import React, { Component } from 'react';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     2
import { connect } from 'react-redux';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     3
import { bindActionCreators } from 'redux';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     4
import '../App.css';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     5
import Navbar from './Navbar';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     6
import * as userActions from '../actions/userActions';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     7
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     8
class Settings extends Component {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     9
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    10
  updateSettings = () => {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    11
    const username = this.props.currentUser.username;
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    12
    const firstname = this.firstname.value;
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    13
    const lastname = this.lastname.value;
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    14
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    15
    this.props.userActions.updateSettings(username, firstname, lastname);
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    16
  }
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    17
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    18
  render() {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    19
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    20
    const firstname = this.props.currentUser ? this.props.currentUser.first_name : '';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    21
    const lastname = this.props.currentUser ? this.props.currentUser.last_name : '';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    22
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    23
    return (
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    24
      <div>
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    25
        <Navbar history={this.props.history} />
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    26
        <div className="container-fluid">
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    27
          <div className="row">
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    28
            <div className="col-md-6 col-md-offset-3">
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    29
              <form>
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    30
                <div className="form-group">
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    31
                  <label className="control-label">Prénom</label>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    32
                  <input className="form-control"
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    33
                    name="firstname"
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    34
                    defaultValue={ firstname }
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    35
                    placeholder="Entrez un prénom"
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    36
                    ref={(firstname) => { this.firstname = firstname; }}
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    37
                  />
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    38
                </div>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    39
                <div className="form-group">
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    40
                  <label className="control-label">Nom</label>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    41
                  <input className="form-control"
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    42
                    name="lastname"
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    43
                    defaultValue={ lastname }
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    44
                    placeholder="Entrez un nom"
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    45
                    ref={(lastname) => { this.lastname = lastname; }}
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    46
                  />
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    47
                </div>
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    48
              </form>
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    49
              <button type="submit" className="btn btn-primary btn-lg" onClick={this.updateSettings}>Enregistrer</button>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    50
            </div>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    51
          </div>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    52
        </div>
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    53
      </div>
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    54
    );
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    55
  }
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    56
}
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    57
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    58
function mapStateToProps(state, props) {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    59
  return {
129
d48946d164c6 Add a first version of synchronisation
ymh <ymh.work@gmail.com>
parents: 66
diff changeset
    60
    currentUser: state.getIn(['authStatus', 'currentUser']),
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    61
  };
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    62
}
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    63
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    64
function mapDispatchToProps(dispatch) {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    65
  return {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    66
    userActions: bindActionCreators(userActions, dispatch)
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    67
  }
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    68
}
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    69
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    70
export default connect(mapStateToProps, mapDispatchToProps)(Settings);