UNPKG

form-test-victor

Version:

# Performant forms and wizard library for React

34 lines 1.97 kB
import { Dispatch, SetStateAction } from 'react'; import { AnyRecord, FieldValue, FieldValues, ValidationStatus } from '../../shared'; import { WATCH_MODE } from '../types/WatchMode'; export declare type PublishSubscriber<T extends FieldValue | ValidationStatus> = Dispatch<SetStateAction<Record<string, T>>>; export interface FormInternal { registerField: (name: string, setValue: (value: FieldValue) => void) => void; unregisterField: (name: string) => void; addValueSubscriber: (publish: PublishSubscriber<FieldValue>, type: WATCH_MODE, name?: string[]) => void; removeValueSubscriber: (publish: PublishSubscriber<FieldValue>, type: WATCH_MODE, name?: string[]) => void; addValidationStatusSubscriber: (publish: PublishSubscriber<ValidationStatus>, name?: string[]) => void; removeValidationStatusSubscriber: (publish: PublishSubscriber<ValidationStatus>, names?: string[]) => void; handleOnChange: (name: string, value: FieldValue, hasFocus: boolean) => void; handleOnBlur: (name: string, data: AnyRecord | undefined) => void; getFormValuesForNames: (names?: string[]) => FieldValues; getFormErrorsForNames: (names?: string[]) => Record<string, ValidationStatus>; updateValidationStatus: (name: string, validationStatus: ValidationStatus) => void; } export interface FormContextApi { /** * DO NOT use outside of library components like Field, useValues, useValidations */ formInternal: FormInternal; getFormValues: () => FieldValues; resetForm: () => void; setFormValues: (newValues: FieldValues, eraseAll?: boolean) => void; } export declare const FORM_INTERVAL_DEFAULT: FormInternal; export declare const CONTEXT_FORM_DEFAULT: FormContextApi; export declare const FormContext: import("react").Context<FormContextApi>; /** * Get React Context for form */ export declare function useFormContext(): FormContextApi; //# sourceMappingURL=FormContext.d.ts.map