UNPKG

react-signal-forms

Version:

A forms library focusing on performance and modular extensibility.

25 lines 1.56 kB
/// <reference types="react" /> import { Field, FieldCollection } from "."; import { FieldContextCollection } from "./fieldContext"; import { FieldBase } from "./fields"; import { ExpandFormContextProperties, SignalFormPlugin } from "./plugins/types"; import { FormValues } from "./types"; export declare const useFormContext: () => IFormContext<FormValues, []>; export type IFormContextLike<TForm = FormValues, TParentForm extends IFormContextLike = any, TPlugins extends SignalFormPlugin[] = []> = { fields: FieldContextCollection<TForm, TPlugins>; parent: TParentForm; } & ExpandFormContextProperties<TPlugins>; export type IFormContext<TForm = FormValues, TPlugins extends SignalFormPlugin[] = []> = IFormContextLike<TForm, any, TPlugins> & { fieldSpecifications: FieldCollection<TForm>; plugins: Array<SignalFormPlugin>; isSubmitting: boolean; peekValues(): FormValues; setValues(values: FormValues): void; submit(values: FormValues): Promise<void>; }; export declare function useFormContextProvider(fields: FieldCollection, plugins: Array<SignalFormPlugin<any, any, any>>, onSubmit?: (values: FormValues) => Promise<void>, initialValues?: FormValues): { formContext: import("react").MutableRefObject<IFormContext<FormValues, []>>; ContextProvider: import("react").Provider<IFormContext<FormValues, []>>; }; export declare function addFieldExtensions(formContext: IFormContextLike, field: Field<any, string, FieldBase<any>>, plugins: SignalFormPlugin<any, any, any>[]): void; //# sourceMappingURL=formContext.d.ts.map