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