mui-extended
Version:
Extended UI Components built on Material UI
26 lines (25 loc) • 1.1 kB
TypeScript
import { JSONSchema7 } from "decorated-ajv";
import { Component, PropsWithChildren } from "react";
import { FormContextType } from "./FormContext";
export type FormFieldValidatorType = (name: string, value: unknown) => Promise<void>;
export type FormProps<T extends Record<string, unknown>> = PropsWithChildren<{
initialValues: T;
initialErrors?: Partial<Record<keyof T, string>>;
onSubmit: (values: T) => Promise<void>;
schemas?: Partial<Record<keyof T, JSONSchema7>>;
validators?: Partial<Record<keyof T, FormFieldValidatorType>>;
}>;
export declare class Form<T extends Record<string, unknown>> extends Component<FormProps<T>, FormContextType<T>> {
private validationErrors;
constructor(props: FormProps<T>);
private _getInitialState;
onFieldBlur(name: keyof T): void;
onFieldChange(name: keyof T, value: T[keyof T]): void;
private _validateField;
private _validateWrapper;
validateField(name: keyof T): Promise<void>;
validate(): Promise<void>;
reset(): void;
submit(): void;
render(): import("react/jsx-runtime").JSX.Element;
}