import React, { Component } from "react"; import PropTypes from "prop-types"; import Form from "components/forms/Form"; import formFieldInterface from "interfaces/form_field"; import Button from "components/buttons/Button"; import InputField from "components/forms/fields/InputField"; import helpers from "./helpers"; const formFields = ["name", "password", "password_confirmation", "email"]; const { validate } = helpers; class AdminDetails extends Component { static propTypes = { className: PropTypes.string, currentPage: PropTypes.bool, fields: PropTypes.shape({ name: formFieldInterface.isRequired, email: formFieldInterface.isRequired, password: formFieldInterface.isRequired, password_confirmation: formFieldInterface.isRequired, }).isRequired, handleSubmit: PropTypes.func.isRequired, }; componentDidUpdate(prevProps) { if ( this.props.currentPage && this.props.currentPage !== prevProps.currentPage ) { // Component has a transition duration of 300ms set in // RegistrationForm/_styles.scss. We need to wait 300ms before // calling .focus() to preserve smooth transition. setTimeout(() => { this.firstInput.input.focus(); }, 300); } } render() { const { className, currentPage, fields, handleSubmit } = this.props; const tabIndex = currentPage ? 0 : -1; return (
); } } export default Form(AdminDetails, { fields: formFields, validate, });