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 (