niceform-hook
Version:
Dynamic workhorse for form in react
30 lines • 1.88 kB
TypeScript
import { FieldValues } from "react-hook-form";
import type { CreateConfig, CreatePropsDefinition, Field, RenderField, RenderFields, UseFormParameters } from "./types";
export declare function create<T extends CreatePropsDefinition>(config: CreateConfig<T>): <TFieldValues extends FieldValues = FieldValues>(parameters?: UseFormParameters<T, TFieldValues>) => {
methods: import("react-hook-form").UseFormReturn<TFieldValues, any, undefined>;
renderField: RenderField<T["fieldProps"], TFieldValues>;
renderFields: RenderFields<T["fieldProps"], TFieldValues>;
getField: (name: string) => Field<T["fieldProps"], TFieldValues> | undefined;
memoize: <T_1>(callback: T_1 | (() => T_1), dependencies: [key: any, ...deps: any[]]) => T_1;
memoizeCallback: <T_2 extends () => any>(callback: T_2, dependencies: [key: any, ...deps: any[]]) => T_2;
control: {
readonly errorsControl: (((parameters: import("./types").ErrorsControlParameters<T["fieldProps"]>) => string | boolean | void | undefined) | ((parameters: import("./types").ErrorsControlParameters<T["fieldProps"]>) => Promise<string | boolean | void | undefined>))[] | undefined;
readonly fieldsRegistered: Map<string, Field<T["fieldProps"], TFieldValues>>;
readonly fieldsInputedCalled: Set<string>;
readonly debounceSubmitDefinitions: {
debounceRegistry: {
registeredAt: number;
time: number;
};
set(time: number): void;
getRemainingTime(): number;
isActiveDebounce(): boolean;
};
readonly parameters: UseFormParameters<T, TFieldValues> | undefined;
readonly config: CreateConfig<T>;
};
};
export type Create = typeof create;
export type UseForm = ReturnType<Create>;
export type UseReturn = ReturnType<UseForm>;
//# sourceMappingURL=create.d.ts.map