client/src/components/Register.js
author ymh <ymh.work@gmail.com>
Fri, 30 Nov 2018 10:53:15 +0100
changeset 183 f8f3af9e5c83
parent 170 7da1d5137b0b
child 191 3f71ad81a5a9
permissions -rw-r--r--
Change the settings to avoid using Session authentication for rest framework as it raise exceptions in case client and backend are on the same domain On the filter, adapt to take into account new version of django_filters
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
89
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     1
import React, { Component } from 'react';
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     2
import { connect } from 'react-redux';
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     3
import { bindActionCreators } from 'redux';
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     4
import '../App.css';
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
     5
import './Register.css';
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
     6
// import Navbar from './Navbar';
89
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     7
import * as authActions from '../actions/authActions';
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     8
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     9
class Register extends Component {
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    10
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    11
  register = () => {
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    12
    const username = this.username.value;
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    13
    const email = this.email.value;
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    14
    const password1 = this.password1.value;
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    15
    const password2 = this.password2.value;
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    16
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    17
    this.props.authActions.registerSubmit(username, email, password1, password2);
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    18
  }
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    19
94
2c2a9c8dc216 Submit form on enter.
Alexandre Segura <mex.zktk@gmail.com>
parents: 90
diff changeset
    20
  submit = (e) => {
2c2a9c8dc216 Submit form on enter.
Alexandre Segura <mex.zktk@gmail.com>
parents: 90
diff changeset
    21
    e.preventDefault();
2c2a9c8dc216 Submit form on enter.
Alexandre Segura <mex.zktk@gmail.com>
parents: 90
diff changeset
    22
2c2a9c8dc216 Submit form on enter.
Alexandre Segura <mex.zktk@gmail.com>
parents: 90
diff changeset
    23
    this.register();
2c2a9c8dc216 Submit form on enter.
Alexandre Segura <mex.zktk@gmail.com>
parents: 90
diff changeset
    24
  }
2c2a9c8dc216 Submit form on enter.
Alexandre Segura <mex.zktk@gmail.com>
parents: 90
diff changeset
    25
89
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    26
  onClickLogin = (e) => {
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    27
    e.preventDefault();
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    28
    this.props.history.push('/login');
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    29
  }
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    30
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    31
  renderErrorMessage(errorMessages, fieldname) {
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    32
    if (errorMessages && errorMessages.has(fieldname)) {
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    33
      return errorMessages.get(fieldname).map((message, key) =>
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    34
        <p className="form-text" key={ key }>{ message }</p>
89
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    35
      );
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    36
    }
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    37
  }
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    38
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    39
  render() {
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    40
168
ea92f4fe783d - move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents: 161
diff changeset
    41
    // const errorMessages = this.props.register.errorMessages;
89
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    42
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    43
    return (
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    44
      <div>
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    45
        {/* <Navbar history={this.props.history} /> */}
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    46
        <div className="container-fluid">
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    47
          <div className="row">
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    48
            <div className="col-lg-6 offset-md-3">
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    49
              <div className="panel-login panel panel-default">
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    50
                <div className="card-header bg-secondary border-0 mt-5 pt-5">
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    51
                  <h4 className="text-center card-title font-weight-bold text-lg" onClick={this.onClickHome}>IRI Notes</h4>
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    52
                  <form className="pt-3 ml-5 pl-5" onSubmit={this.submit}>
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    53
                    <div className="form-group mb-2 ml-3 w-75" /*validationState={ errorMessages && errorMessages.has('username') ? 'error' : null }*/>
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    54
                      <label className="col-form-label text-primary font-weight-bold mt-2">Nom d'utilisateur</label>
170
7da1d5137b0b Upgrade dependencies and correct theme colors
ymh <ymh.work@gmail.com>
parents: 168
diff changeset
    55
                      <input className="form-control bg-irinotes-form border-0 text-muted" type="text" /*inputRef={ref => { this.username = ref; }}*/ />
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    56
                      {/* { this.renderErrorMessage(errorMessages, 'username') } */}
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    57
                    </div>
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    58
                    <div className="form-group mb-2 ml-3 w-75" /*validationState={ errorMessages && errorMessages.has('email') ? 'error' : null }*/>
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    59
                      <label className="col-form-label text-primary font-weight-bold mt-2">Email</label>
170
7da1d5137b0b Upgrade dependencies and correct theme colors
ymh <ymh.work@gmail.com>
parents: 168
diff changeset
    60
                      <input className="form-control bg-irinotes-form border-0 text-muted" type="email" /*inputRef={ref => { this.email = ref; }}*/ />
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    61
                      {/* { this.renderErrorMessage(errorMessages, 'email') } */}
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    62
                    </div>
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    63
                    <div className="form-group mb-2 ml-3 w-75" /*validationState={ errorMessages && errorMessages.has('password1') ? 'error' : null }*/>
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    64
                      <label className="col-form-label text-primary font-weight-bold mt-2">Mot de passe</label>
170
7da1d5137b0b Upgrade dependencies and correct theme colors
ymh <ymh.work@gmail.com>
parents: 168
diff changeset
    65
                      <input className="form-control bg-irinotes-form border-0 text-muted" type="password" /*inputRef={ref => { this.password1 = ref; }}*/ />
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    66
                      {/* { this.renderErrorMessage(errorMessages, 'password1') } */}
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    67
                    </div>
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    68
                    <div className="form-group mb-2 ml-3 w-75" /*validationState={ errorMessages && errorMessages.has('password2') ? 'error' : null }*/>
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    69
                      <label className="col-form-label text-primary font-weight-bold mt-2">Confirmer le mot de passe</label>
170
7da1d5137b0b Upgrade dependencies and correct theme colors
ymh <ymh.work@gmail.com>
parents: 168
diff changeset
    70
                      <input className="form-control bg-irinotes-form border-0 text-muted" type="password" /*inputRef={ref => { this.password2 = ref; }}*/ />
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    71
                      {/* { this.renderErrorMessage(errorMessages, 'password2') } */}
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    72
                    </div>
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    73
                    <div className="text-center mr-5 pr-5">
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    74
                    <button type="submit" onClick={this.submit} className="btn btn-primary btn-lg text-secondary font-weight-bold mt-3">S'inscrire</button>
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 151
diff changeset
    75
                    </div>
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    76
                  </form>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    77
                </div>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    78
              </div>
89
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    79
              <p className="text-center">
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    80
                <a className="text-muted" href="/login" onClick={ this.onClickLogin }>Déjà inscrit ? Se connecter.</a>
89
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    81
              </p>
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    82
            </div>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    83
          </div>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 129
diff changeset
    84
        </div>
89
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    85
      </div>
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    86
    );
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    87
  }
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    88
}
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    89
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    90
function mapStateToProps(state, props) {
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    91
  return {
168
ea92f4fe783d - move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents: 161
diff changeset
    92
    register: state.register
89
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    93
  };
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    94
}
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    95
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    96
function mapDispatchToProps(dispatch) {
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    97
  return {
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    98
    authActions: bindActionCreators(authActions, dispatch)
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    99
  }
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
   100
}
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
   101
06f609adfbf8 Add registration page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
   102
export default connect(mapStateToProps, mapDispatchToProps)(Register);