on 21d1c95 help sign in
bridge/src/form/SubmitButton.js
36 lines 813 B history raw
1import React from 'react';
2import cn from 'classnames';
4import { ForwardButton } from 'components/Buttons';
6import { blinkIf } from 'components/Blinky';
7import { useFormState } from 'react-final-form';
9export default function SubmitButton({
10 as: As = ForwardButton,
11 className,
12 children,
13 handleSubmit,
14 ...rest
15}) {
16 const { valid, validating, submitting, submitError } = useFormState({
17 subscription: {
18 valid: true,
19 validating: true,
20 submitting: true,
21 submitError: true,
22 },
23 });
25 return (
26 <As
27 className={cn('mt4', className)}
28 disabled={!valid || validating || submitting}
29 accessory={blinkIf(validating || submitting)}
30 onClick={handleSubmit}
31 solid
32 {...rest}>
33 {submitError ? 'Error submitting' : children}
34 </As>
35 );