import useForm, { UseFormResult } from "@saleor/hooks/useForm"; import React from "react"; export interface FormProps { children: (props: UseFormResult) => React.ReactNode; confirmLeave?: boolean; initial?: T; resetOnSubmit?: boolean; onSubmit?: (data: T) => void; } function Form(props: FormProps) { const { children, initial, resetOnSubmit, onSubmit } = 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;