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 32 | 1x 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}
/>
);
});
|