import useForm, { SubmitPromise, UseFormResult } from "@saleor/hooks/useForm"; import React from "react"; export interface FormProps extends Omit, "onSubmit"> { children: (props: UseFormResult) => React.ReactNode; confirmLeave?: boolean; initial?: T; resetOnSubmit?: boolean; onSubmit?: (data: T) => SubmitPromise | void; } function Form(props: FormProps) { const { children, initial, resetOnSubmit, onSubmit, ...rest } = props; const renderProps = useForm(initial, onSubmit); function handleSubmit(event?: React.FormEvent, cb?: () => void) { const { reset, submit } = renderProps; if (event) { event.stopPropagation(); event.preventDefault(); } if (cb) { cb(); } if (resetOnSubmit) { reset(); } submit(); } return (
{children(renderProps)}
); } Form.displayName = "Form"; export default Form;