react-form-with-constraints
Version:
Simple form validation for React
70 lines (69 loc) • 3.8 kB
TypeScript
import * as React from 'react';
import { Field } from './Field';
import { FieldFeedbackValidation } from './FieldFeedbackValidation';
import { FieldsStore } from './FieldsStore';
import { IHTMLInput, InputElement } from './InputElement';
export interface FormWithConstraintsChildContext {
form: FormWithConstraints;
}
export interface FormWithConstraintsProps extends React.FormHTMLAttributes<HTMLFormElement> {
}
declare class FormWithConstraintsComponent extends React.PureComponent<FormWithConstraintsProps> {
}
declare const FormWithConstraints_base: {
new (...args: any[]): {
fieldDidResetEventEmitter: import("./EventEmitter").EventEmitter<[Field], void>;
emitFieldDidResetEvent(field: Field): void[];
addFieldDidResetEventListener(listener: (field: Field) => void): void;
removeFieldDidResetEventListener(listener: (field: Field) => void): void;
};
} & {
new (...args: any[]): {
fieldWillValidateEventEmitter: import("./EventEmitter").EventEmitter<[string], void>;
emitFieldWillValidateEvent(fieldName: string): void[];
addFieldWillValidateEventListener(listener: (fieldName: string) => void): void;
removeFieldWillValidateEventListener(listener: (fieldName: string) => void): void;
};
} & {
new (...args: any[]): {
fieldDidValidateEventEmitter: import("./EventEmitter").EventEmitter<[Field], void>;
emitFieldDidValidateEvent(field: Field): void[];
addFieldDidValidateEventListener(listener: (field: Field) => void): void;
removeFieldDidValidateEventListener(listener: (field: Field) => void): void;
};
} & {
new (...args: any[]): {
validateFieldEventEmitter: import("./EventEmitter").EventEmitter<[InputElement], FieldFeedbackValidation | (FieldFeedbackValidation | undefined)[] | undefined>;
emitValidateFieldEvent(input: InputElement): Promise<(FieldFeedbackValidation | (FieldFeedbackValidation | undefined)[] | undefined)[]>;
addValidateFieldEventListener(listener: (input: InputElement) => FieldFeedbackValidation | (FieldFeedbackValidation | undefined)[] | Promise<FieldFeedbackValidation | (FieldFeedbackValidation | undefined)[] | undefined> | undefined): void;
removeValidateFieldEventListener(listener: (input: InputElement) => FieldFeedbackValidation | (FieldFeedbackValidation | undefined)[] | Promise<FieldFeedbackValidation | (FieldFeedbackValidation | undefined)[] | undefined> | undefined): void;
};
} & typeof FormWithConstraintsComponent;
export declare class FormWithConstraints extends FormWithConstraints_base implements React.ChildContextProvider<FormWithConstraintsChildContext> {
static childContextTypes: React.ValidationMap<FormWithConstraintsChildContext>;
getChildContext(): FormWithConstraintsChildContext;
private form;
fieldsStore: FieldsStore;
private fieldFeedbacksKeyCounter;
computeFieldFeedbacksKey(): string;
/**
* Validates the given fields, either HTMLInputElements or field names.
* If called without arguments, validates all fields ($('[name]')).
*/
validateFields(...inputsOrNames: Array<IHTMLInput | string>): Promise<Readonly<Field>[]>;
validateForm(): Promise<Readonly<Field>[]>;
/**
* Validates fields without feedback only.
*/
validateFieldsWithoutFeedback(...inputsOrNames: Array<IHTMLInput | string>): Promise<Readonly<Field>[]>;
private _validateFields;
private validateField;
protected normalizeInputs(...inputsOrNames: Array<IHTMLInput | string>): IHTMLInput[];
isValid(): boolean;
hasFeedbacks(): boolean;
reset(): Readonly<Field>[];
resetFields(...inputsOrNames: Array<IHTMLInput | string>): Readonly<Field>[];
private resetField;
render(): JSX.Element;
}
export {};