@andydowell/use-form-state
Version:
A React hook for managing form state and validation
26 lines (25 loc) • 1.47 kB
TypeScript
import { ValidationParams, FormFieldParams, FormState, FormFieldState } from "../types";
declare const appendToFormData: (formData: FormData, key: string, value: unknown) => void;
/**
* Runs validations using the provided state and field params.
* Makes a cloned, frozen snapshot so validators cannot mutate the live state.
*/
declare const applyValidation: <Data>(currentState: FormState<Data>, formFieldParams: FormFieldParams<Data>, options?: {
updateAllFieldsError?: boolean | undefined;
} | undefined) => {
nextState: FormState<Data>;
allValid: boolean;
};
declare const checkIfRequiredValueFilled: <T>(value: T) => boolean;
declare const createInitialStateSnapshot: <Data>(formFieldParams: FormFieldParams<Data>) => FormState<Data>;
declare const getOrderedValidationEntries: <Value, Data>(validationParams: ValidationParams<Value, Data>) => (readonly [string, {
validator: (value: Value, formState: FormState<Data>) => boolean;
message?: string | undefined;
order?: number | undefined;
}])[];
declare type FieldValidationResult = {
isValid: boolean;
error?: FormFieldState["error"];
};
declare const getFieldValidationOutcome: <Data>(key: keyof Data, formFieldParams: FormFieldParams<Data>, state: FormState<Data>) => FieldValidationResult;
export { appendToFormData, applyValidation, checkIfRequiredValueFilled, createInitialStateSnapshot, getOrderedValidationEntries, getFieldValidationOutcome, };