fleet/frontend/pages/RegistrationPage/RegistrationPage.jsx
Gabe Hernandez efb35b537a
add prettier and have it format all fleet application code (#625)
* add prettier and have it format all js code except website:
:

* trying running prettier check in CI

* fix runs on in CI

* change CI job name

* fix prettier erros and fix CI
2021-04-12 14:32:25 +01:00

107 lines
2.4 KiB
JavaScript

import React, { Component } from "react";
import PropTypes from "prop-types";
import { connect } from "react-redux";
import { max, noop } from "lodash";
import { push } from "react-router-redux";
import Breadcrumbs from "pages/RegistrationPage/Breadcrumbs";
import paths from "router/paths";
import RegistrationForm from "components/forms/RegistrationForm";
import { setup } from "redux/nodes/auth/actions";
import { showBackgroundImage } from "redux/nodes/app/actions";
import EnsureUnauthenticated from "components/EnsureUnauthenticated";
import fleetLogoText from "../../../assets/images/fleet-logo-text-white.svg";
export class RegistrationPage extends Component {
static propTypes = {
dispatch: PropTypes.func.isRequired,
};
static defaultProps = {
dispatch: noop,
};
constructor(props) {
super(props);
this.state = {
page: 1,
pageProgress: 1,
};
return false;
}
componentWillMount() {
const { dispatch } = this.props;
dispatch(showBackgroundImage);
return false;
}
onNextPage = () => {
const { page, pageProgress } = this.state;
const nextPage = page + 1;
this.setState({
page: nextPage,
pageProgress: max([nextPage, pageProgress]),
});
return false;
};
onRegistrationFormSubmit = (formData) => {
const { dispatch } = this.props;
const { MANAGE_HOSTS } = paths;
return dispatch(setup(formData))
.then(() => {
return dispatch(push(MANAGE_HOSTS));
})
.catch(() => {
return false;
});
};
onSetPage = (page) => {
const { pageProgress } = this.state;
if (page > pageProgress) {
return false;
}
this.setState({ page });
return false;
};
render() {
const { page, pageProgress } = this.state;
const { onRegistrationFormSubmit, onNextPage, onSetPage } = this;
return (
<div className="registration-page">
<img
alt="Fleet logo"
src={fleetLogoText}
className="registration-page__logo"
/>
<Breadcrumbs
onClick={onSetPage}
page={page}
pageProgress={pageProgress}
/>
<RegistrationForm
page={page}
onNextPage={onNextPage}
onSubmit={onRegistrationFormSubmit}
/>
</div>
);
}
}
const ConnectedComponent = connect()(RegistrationPage);
export default EnsureUnauthenticated(ConnectedComponent);