UNPKG

rc-simple-hook-form

Version:
230 lines (229 loc) 12.9 kB
import { useForm as useFormHook } from "./hooks/useForm"; import FormController from "./component/Controller"; import { InputType as Input, ValidationFields as ValFields, EventElement as Element } from "./types/package"; export declare const useForm: <T extends Record<string, any>>(param?: import("./types/package").UseFormParam<T>) => { formState: { values: Record<string, any>; active: Record<string, boolean>; touched: Record<string, boolean>; errors: Record<string, string[]>; invalid: boolean; isEmpty: boolean; fieldPristine: Record<string, boolean>; formPristine: boolean; }; control: { getFormState: () => { values: Record<string, any>; active: Record<string, boolean>; touched: Record<string, boolean>; errors: Record<string, string[]>; invalid: boolean; fieldPristine: Record<string, boolean>; formPristine: boolean; }; register: (name: keyof T, type: Input, extra?: import("./types/package").RegisterExtraProps) => { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled: true; checked: any; value: string | undefined; multiple?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled?: undefined; checked: any; value: string | undefined; multiple?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled: true; multiple: boolean; checked?: undefined; value?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled?: undefined; multiple: boolean; checked?: undefined; value?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled: true; checked?: undefined; value?: undefined; multiple?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled?: undefined; checked?: undefined; value?: undefined; multiple?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled: true; value: any; checked?: undefined; multiple?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled?: undefined; value: any; checked?: undefined; multiple?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; }; resetForm: () => void; resetField: (name: keyof T) => void; setField: (name: string, value: any, options?: { shouldSetTouched?: boolean; shouldCheckPristine?: boolean; multipleValues?: boolean; validations?: ValFields; }) => void; }; useInitializeFormState: (initialState: T, deps: any[]) => void; handleSubmit: (submitCallback: (arg: T) => void) => (e: React.FormEvent<HTMLFormElement>) => void; register: (name: keyof T, type: Input, extra?: import("./types/package").RegisterExtraProps) => { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled: true; checked: any; value: string | undefined; multiple?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled?: undefined; checked: any; value: string | undefined; multiple?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled: true; multiple: boolean; checked?: undefined; value?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled?: undefined; multiple: boolean; checked?: undefined; value?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled: true; checked?: undefined; value?: undefined; multiple?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled?: undefined; checked?: undefined; value?: undefined; multiple?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled: true; value: any; checked?: undefined; multiple?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; } | { ref: (e: null | Element) => void; onChange: (e: import("react").ChangeEvent<Element>) => void; onBlur: (e: React.FocusEvent<Element, globalThis.Element>) => void; onFocus: (e: React.FocusEvent<Element, globalThis.Element>) => void; disabled?: undefined; value: any; checked?: undefined; multiple?: undefined; name: keyof T; type: "number" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "month" | "password" | "radio" | "range" | "search" | "tel" | "text" | "time" | "url" | "week" | "textarea" | "select-one" | "select-multiple"; }; resetForm: () => void; resetField: (name: keyof T) => void; setField: (name: string, value: any, options?: { shouldSetTouched?: boolean; shouldCheckPristine?: boolean; multipleValues?: boolean; validations?: ValFields; }) => void; }; export declare const Controller: typeof FormController; export type UseFormInputType = Input; export type UseFormControl = ReturnType<typeof useFormHook>["control"]; export type UseFormController = Parameters<typeof FormController>[0]; export type UseFormValidationField = ValFields; export type UseFormState = ReturnType<typeof useFormHook>["formState"]; export type UseFormElement = Element;