import { FormAdapter } from "utils"; // eslint-disable-next-line @typescript-eslint/no-explicit-any export const useActions =
>(form: Form) => { const { store, reset, scrollToField, validate, validateField, reinitialize, getFieldTouched, setFieldTouched, setFieldError, getFieldError, setFieldValue, setValues, setFieldDirty, getFieldDirty, setFieldValidation, getFieldValidation, getFieldValue, getValues, getErrors, submit, } = form; const goToPage = (toPage: number | ((currentPage: number) => number)) => { const currentPage = store.getState().page; const nextPageToSet = typeof toPage === "function" ? toPage(currentPage) : Math.floor(toPage); form.store.setState((draft) => { draft.page = nextPageToSet; }); }; const goNext = () => { const { pages } = store.getState(); goToPage((page) => { return Math.min(page + 1, pages); }); }; const goBack = () => { form.store.setState((draft) => { draft.page = Math.max(draft.page - 1, 1); }); }; return { goToPage, goBack, goNext, reset, scrollToField, validate, validateField, reinitialize, getFieldTouched, setFieldTouched, setFieldDirty, getFieldDirty, setFieldError, getFieldError, setFieldValue, getFieldValue, setValues, getValues, getErrors, setFieldValidation, getFieldValidation, submit, }; };