client/src/components/Settings.js
author ymh <ymh.work@gmail.com>
Tue, 06 Nov 2018 16:19:26 +0100
changeset 170 7da1d5137b0b
parent 168 ea92f4fe783d
child 191 3f71ad81a5a9
permissions -rw-r--r--
Upgrade dependencies and correct theme colors
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';
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
     7
import './Settings.css';
168
ea92f4fe783d - move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents: 151
diff changeset
     8
import { getCurrentUser } from '../selectors/authSelectors';
53
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
class Settings extends Component {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    11
168
ea92f4fe783d - move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents: 151
diff changeset
    12
  updateSettings = (e) => {
ea92f4fe783d - move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents: 151
diff changeset
    13
    e.preventDefault();
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    14
    const username = this.props.currentUser.username;
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    15
    const firstname = this.firstname.value;
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    16
    const lastname = this.lastname.value;
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
    this.props.userActions.updateSettings(username, firstname, lastname);
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
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    21
  render() {
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
    const firstname = this.props.currentUser ? this.props.currentUser.first_name : '';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    24
    const lastname = this.props.currentUser ? this.props.currentUser.last_name : '';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    25
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    26
    return (
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    27
      <div>
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    28
        <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
    29
        <div className="container-fluid">
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    30
          <div className="row">
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    31
            <div className="col-lg-6 offset-md-3">
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    32
              <form>
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    33
                <div className="form-group">
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    34
                  <label className="col-form-label text-primary">Prénom</label>
170
7da1d5137b0b Upgrade dependencies and correct theme colors
ymh <ymh.work@gmail.com>
parents: 168
diff changeset
    35
                  <input className="form-control bg-irinotes-form text-muted"
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    36
                    name="firstname"
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    37
                    defaultValue={ firstname }
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    38
                    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
    39
                    ref={(firstname) => { this.firstname = firstname; }}
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    40
                  />
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    41
                </div>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    42
                <div className="form-group">
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    43
                  <label className="col-form-label text-primary">Nom</label>
170
7da1d5137b0b Upgrade dependencies and correct theme colors
ymh <ymh.work@gmail.com>
parents: 168
diff changeset
    44
                  <input className="form-control bg-irinotes-form text-muted"
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    45
                    name="lastname"
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    46
                    defaultValue={ lastname }
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    47
                    placeholder="Entrez un nom"
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    48
                    ref={(lastname) => { this.lastname = lastname; }}
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    49
                  />
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    50
                </div>
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    51
              </form>
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    52
              <button type="submit" className="btn btn-primary btn-lg text-secondary" onClick={this.updateSettings}>Enregistrer</button>
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    53
            </div>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    54
          </div>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    55
        </div>
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    56
      </div>
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
  }
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    59
}
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    60
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    61
function mapStateToProps(state, props) {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    62
  return {
168
ea92f4fe783d - move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents: 151
diff changeset
    63
    currentUser: getCurrentUser(state),
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    64
  };
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    65
}
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    66
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    67
function mapDispatchToProps(dispatch) {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    68
  return {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    69
    userActions: bindActionCreators(userActions, dispatch)
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    70
  }
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    71
}
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    72
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    73
export default connect(mapStateToProps, mapDispatchToProps)(Settings);