{"version":3,"file":"useSubmitButton.mjs","names":[],"sources":["../../../../../../../react-form/src/hooks/useSubmitButton.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\r\nimport { useForm } from \"./useForm\";\r\n\r\nexport function useSubmitButton() {\r\n  const [isSubmitting, setSubmitState] = useState(false);\r\n  const [disabled, disable] = useState(false);\r\n  const form = useForm();\r\n  const [isDirty, setIsDirty] = useState(form?.isDirty ?? false);\r\n\r\n  useEffect(() => {\r\n    if (!form) return;\r\n\r\n    const onSubmit = form.on(\"submit\", () => {\r\n      setSubmitState(form.isSubmitting());\r\n      disable(form.isSubmitting());\r\n    });\r\n\r\n    const inValidControls = form.on(\"invalidControls\", () => {\r\n      disable(true);\r\n    });\r\n\r\n    const isDisabledEvent = form.on(\"disable\", disable as any);\r\n    const validControl = form.on(\"validControls\", () => disable(false));\r\n    const resetEvent = form.on(\"reset\", () => disable(false));\r\n    const dirtyEvent = form.on(\"dirty\", () => setIsDirty(form.isDirty));\r\n\r\n    return () => {\r\n      onSubmit.unsubscribe();\r\n      validControl.unsubscribe();\r\n      inValidControls.unsubscribe();\r\n      isDisabledEvent.unsubscribe();\r\n      resetEvent.unsubscribe();\r\n      dirtyEvent.unsubscribe();\r\n    };\r\n  }, [form]);\r\n\r\n  return {\r\n    isSubmitting,\r\n    disabled,\r\n    disable,\r\n    setSubmitState,\r\n    isDirty,\r\n  };\r\n}\r\n"],"mappings":";;;;;;AAKA,SAAgB,kBAAkB;CAChC,MAAM,CAAC,cAAc,kBAAkB,SAAS,KAAK;CACrD,MAAM,CAAC,UAAU,WAAW,SAAS,KAAK;CAC1C,MAAM,OAAO,QAAQ;CACrB,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM,WAAW,KAAK;CAE7D,gBAAgB;EACd,IAAI,CAAC,MAAM;EAEX,MAAM,WAAW,KAAK,GAAG,gBAAgB;GACvC,eAAe,KAAK,aAAa,CAAC;GAClC,QAAQ,KAAK,aAAa,CAAC;EAC7B,CAAC;EAED,MAAM,kBAAkB,KAAK,GAAG,yBAAyB;GACvD,QAAQ,IAAI;EACd,CAAC;EAED,MAAM,kBAAkB,KAAK,GAAG,WAAW,OAAc;EACzD,MAAM,eAAe,KAAK,GAAG,uBAAuB,QAAQ,KAAK,CAAC;EAClE,MAAM,aAAa,KAAK,GAAG,eAAe,QAAQ,KAAK,CAAC;EACxD,MAAM,aAAa,KAAK,GAAG,eAAe,WAAW,KAAK,OAAO,CAAC;EAElE,aAAa;GACX,SAAS,YAAY;GACrB,aAAa,YAAY;GACzB,gBAAgB,YAAY;GAC5B,gBAAgB,YAAY;GAC5B,WAAW,YAAY;GACvB,WAAW,YAAY;EACzB;CACF,GAAG,CAAC,IAAI,CAAC;CAET,OAAO;EACL;EACA;EACA;EACA;EACA;CACF;AACF"}