UNPKG

@slashid/react

Version:

React SDK for the /id platform

30 lines 1.28 kB
import { ReactNode, ChangeEventHandler } from "react"; import { Validator, ValidationError } from "../domain/types"; export type FormStatus = "valid" | "invalid"; type RegisteredFieldOptions = { defaultValue?: string; validator?: Validator<string>; }; type RegisterFieldFn = (fieldName: string, opts: RegisteredFieldOptions) => ChangeEventHandler<HTMLInputElement>; type RegisterSubmitFn = (onSubmit: React.FormEventHandler<HTMLFormElement>) => React.FormEventHandler<HTMLFormElement>; type SetErrorFn = (fieldName: string, error: ValidationError) => void; type HasErrorFn = (fieldName: string) => boolean; type ClearErrorFn = (fieldName: string) => void; export interface IFormContext { registerField: RegisterFieldFn; registerSubmit: RegisterSubmitFn; resetForm: () => void; setError: SetErrorFn; hasError: HasErrorFn; clearError: ClearErrorFn; values: Record<string, string>; errors: Record<string, ValidationError>; status: FormStatus; } export declare const FormContext: import("react").Context<IFormContext>; type FormProviderProps = { children?: ReactNode; }; export declare const FormProvider: ({ children }: FormProviderProps) => import("react/jsx-runtime").JSX.Element; export {}; //# sourceMappingURL=form-context.d.ts.map