@modular-forms/react
Version:
The modular and type-safe form library for React
17 lines (16 loc) • 737 B
JavaScript
import { batch } from '@preact/signals-react';
import { updateFieldDirty } from './updateFieldDirty';
import { validateIfRequired } from './validateIfRequired';
export function handleFieldEvent(form, field, name, event, validationModes, inputValue) {
batch(() => {
// Update value state
field.value.value = field.transform.reduce((current, transformation) => transformation(current, event), inputValue ?? field.value.value);
// Update touched state
field.touched.value = true;
form.touched.value = true;
// Update dirty state
updateFieldDirty(form, field);
// Validate value if required
validateIfRequired(form, field, name, { on: validationModes });
});
}