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 (
Fleet logo
); } } const ConnectedComponent = connect()(RegistrationPage); export default EnsureUnauthenticated(ConnectedComponent);