fleet/frontend/components/forms/ConfirmSSOInviteForm/ConfirmSSOInviteForm.jsx
2022-02-08 19:40:38 -06:00

55 lines
1.5 KiB
JavaScript

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 InputFieldWithIcon from "components/forms/fields/InputFieldWithIcon";
import helpers from "./helpers";
const formFields = ["name", "password", "password_confirmation"];
const { validate } = helpers;
class ConfirmSSOInviteForm extends Component {
static propTypes = {
baseError: PropTypes.string,
className: PropTypes.string,
fields: PropTypes.shape({
name: formFieldInterface.isRequired,
password: formFieldInterface.isRequired,
password_confirmation: formFieldInterface.isRequired,
}).isRequired,
handleSubmit: PropTypes.func.isRequired,
};
render() {
const { baseError, className, fields, handleSubmit } = this.props;
return (
<form className={className} autoComplete="off">
{baseError && <div className="form__base-error">{baseError}</div>}
<div className="fields">
<InputFieldWithIcon
{...fields.name}
autofocus
placeholder="Full name"
inputOptions={{
maxLength: "80",
}}
/>
</div>
<div className="confirm-invite-button-wrap">
<Button onClick={handleSubmit} type="Submit" variant="brand">
Submit
</Button>
</div>
</form>
);
}
}
export default Form(ConfirmSSOInviteForm, {
fields: formFields,
validate,
});