All files / libs/ext/formik/src/lib/components/form-with-submit-event FormWithSubmitEvent.tsx

29.03% Statements 9/31
100% Branches 0/0
100% Functions 0/0
29.03% Lines 9/31

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 321x 1x 1x 1x 1x 1x 1x 1x                                             1x  
import { Form, useFormikContext, type FormikFormProps } from 'formik';
import { memo, useCallback, type FormEvent, type FormEventHandler, type RefObject } from 'react';
 
export type FormWithSubmitEventProps = FormikFormProps & {
  readonly submitEventRef?: RefObject<FormEvent<HTMLFormElement> | null>;
};
 
export const FormWithSubmitEvent = memo(function FormWithSubmitEvent({
  submitEventRef,
  ...props
}: FormWithSubmitEventProps) {
  const { handleSubmit: submitForm } = useFormikContext();

  const handleSubmit: FormEventHandler<HTMLFormElement> = useCallback(
    (event) => {
      if (submitEventRef) {
        submitEventRef.current = event;
      }

      submitForm(event);
    },
    [submitForm, submitEventRef],
  );

  return (
    <Form
      {...props}
      onSubmit={handleSubmit}
    />
  );
});