73 lines
2.2 KiB
JavaScript
73 lines
2.2 KiB
JavaScript
import React from 'react';
|
|
import Page from './page';
|
|
import { ExtendedUserForm as UserForm } from '../components/UserForm';
|
|
import { connect } from 'react-redux';
|
|
import { createUser } from '../actions/user.actions';
|
|
import { UserFormFormik } from '../components/UserFormFormik';
|
|
|
|
export class HomePage extends React.PureComponent {
|
|
|
|
render() {
|
|
const { createUserFormError, formikCreateUserFormError } = this.props;
|
|
|
|
const onUserFormSubmit = ({ username, password }) => {
|
|
this.props.dispatch(createUser(username, password));
|
|
};
|
|
|
|
return (
|
|
<Page title="home">
|
|
<div className="section">
|
|
<h1 className="title">Bienvenue sur PleaseWait !</h1>
|
|
<h2 className="subtitle">Le gestionnaire de ticket simplifié.</h2>
|
|
<a href="#/logout">Se déconnecter</a>
|
|
<UserForm onSubmit={onUserFormSubmit} errors={createUserFormError} />
|
|
<UserFormFormik onSubmit={onUserFormSubmit} errors={formikCreateUserFormError} />
|
|
</div>
|
|
</Page>
|
|
);
|
|
}
|
|
}
|
|
|
|
function transformErrorCode(code) {
|
|
switch (code) {
|
|
case 0:
|
|
return {
|
|
username: {
|
|
hasError: true,
|
|
message: 'Le nom d\'utilisateur ne peut pas être vide. (API)'
|
|
}
|
|
};
|
|
case 2:
|
|
return {
|
|
hasError: true,
|
|
username: 'Le mot de passe doit avoir 8 caractères au minimum (API)'
|
|
}
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
function formikTransformErrorCode(code) {
|
|
switch (code) {
|
|
case 0:
|
|
return {
|
|
username: 'Le nom d\'utilisateur ne peut pas être vide. (API)'
|
|
};
|
|
case 2:
|
|
return {
|
|
password: 'Le mot de passe doit avoir 8 caractères au minimum (API)'
|
|
}
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
function mapStateToProps({ users }) {
|
|
return {
|
|
createUserFormError: transformErrorCode(users.createUserForm.errorCode),
|
|
formikCreateUserFormError: formikTransformErrorCode(users.createUserForm.errorCode),
|
|
};
|
|
}
|
|
|
|
export const ConnectedHomePage = connect(mapStateToProps)(HomePage);
|