react-hooks-dynamic-form
Version:
Dynamic form with react hooks
33 lines (32 loc) • 1.29 kB
TypeScript
import { Field, FieldValueType, FieldSettings } from "./field";
import { FormData, FormValues } from "./form";
export interface ValidationResult<T extends Field | FormData> {
isValid: boolean;
updatedData: T;
}
/**
* Generate form data by normalizing fields settings array
* @param fields Array field settings
* @param remoteValues fields values from parent
*/
export declare const generateFormData: (fields: FieldSettings[], defaultSettings?: Partial<FieldSettings> | undefined, remoteValues?: FormValues | undefined) => FormData;
/**
* Update formData object with modified field value
* @param formData current form data object
* @param fieldName field name
* @param newValue field new value
* @returns updated formData
*/
export declare const updateFormField: (formData: FormData, fieldName: string, newValue: FieldValueType) => FormData;
/**
* Validate field, update field state (pristine, error)
* @param fieldName field name
* @param formData current form data object
* @returns updated formData
*/
export declare const validateField: (formData: FormData, fieldName: string) => FormData;
/**
* Validate form, update form state
* @param formData current form data object
*/
export declare const validateForm: (formData: FormData) => ValidationResult<FormData>;