mirror of
https://github.com/empayre/fleet.git
synced 2024-11-07 01:15:22 +00:00
efb35b537a
* 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
107 lines
2.4 KiB
JavaScript
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);
|