@dock365/refield
Version:
react input field container
60 lines (59 loc) • 2.42 kB
TypeScript
import * as React from 'react';
import { validationTypes, IStringValidationOptions, INumberValidationOptions, IDateValidationOptions, IEmailValidationOptions, IValidationFailMessages, IArrayValidationOptions, IRegExValidationOptions } from '@dock365/validator';
import { IFieldRenderProps as IRenderProps } from "@dock365/reform";
export declare type validationRulesType = (IStringValidationOptions & {
type: validationTypes.String;
}) | (INumberValidationOptions & {
type: validationTypes.Number;
}) | (IDateValidationOptions & {
type: validationTypes.Date;
}) | (IArrayValidationOptions & {
type: validationTypes.Array;
}) | (IRegExValidationOptions & {
type: validationTypes.RegEx;
}) | (IEmailValidationOptions & {
type: validationTypes.Email;
});
export interface IFieldRenderProps extends IRenderProps {
defaultValueIsUpdatable?: boolean;
className?: string;
onClick?: (event: React.MouseEvent<any>) => void;
}
export declare enum ValidateOnTypes {
OnChange = 0,
OnBlur = 1
}
export interface IFieldProps {
name: string;
label?: string;
placeholder?: string;
defaultValue?: any;
defaultValueIsUpdatable?: boolean;
render: React.ComponentType<IFieldRenderProps>;
hideLabel?: boolean;
readOnly?: boolean;
onChange?: (value: any, name: string, resetFields: () => void) => any;
onBlur?: (value: any, name: string, errors: string[], resetFields: () => void) => any;
validationRules?: validationRulesType;
validate?: true;
showAsteriskOnRequired?: boolean;
customProps?: any;
className?: string;
customValidation?: (value?: any, validationRules?: validationRulesType) => string[];
validationMessages?: IValidationFailMessages;
onClick?: (event: React.MouseEvent<any>) => void;
}
export interface IFieldState {
value: any;
errors: string[];
customErrors: string[];
}
export default class Field extends React.Component<IFieldProps, IFieldState> {
private validator;
constructor(props: IFieldProps);
componentDidUpdate(prevProps: IFieldProps): void;
render(): React.ReactElement<IFieldRenderProps, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>;
private _resetField;
private _validateField;
private _updateCustomValidationMessage;
}