UNPKG

remix-validated-form

Version:

Form component and utils for easy form validation in remix

14 lines (13 loc) 706 B
import { atom } from "jotai"; import { atomFamily } from "jotai/utils"; import lodashGet from "lodash/get"; import { fieldErrorsAtom, formPropsAtom, hasBeenSubmittedAtom, touchedFieldsAtom, } from "./state"; import { controlledFieldsAtom } from "./state/controlledFields"; export const resetAtom = atomFamily((formId) => atom(null, (get, set) => { set(fieldErrorsAtom(formId), {}); set(touchedFieldsAtom(formId), {}); set(hasBeenSubmittedAtom(formId), false); const { defaultValues } = get(formPropsAtom(formId)); const controlledFields = get(controlledFieldsAtom(formId)); Object.entries(controlledFields).forEach(([name, atom]) => set(atom, lodashGet(defaultValues, name))); }));