UNPKG

@altiore/form

Version:

Form helper for building powerful forms

31 lines (30 loc) 1.59 kB
/// <reference types="react" /> import { FieldOptions, FieldProps, FieldResProps, FieldType } from '../@common/types'; /** * createField принимает пользовательский компонент и возвращает {name, validate, ...props} * * @see https://@altiore/form'.github.io/... * @category Components * * @typedef createField * @prop {React.ReactNode} [component] [React.ReactNode] Компонент * * @example * import {FieldProps, createField} from '@altiore/form'; * * interface IField { * label: string; * } * const Field = createField<CustomAdditionalFieldProps>(({error, label, name}: FieldProps<IField>) * => { return ( * <div> * <label>{label}</label> * <input name={name} /> * <span>{error}</span> * </div> * ); * }); */ export declare type FieldOpt = FieldOptions | FieldType; export declare function createField<FieldCustomProps extends Record<string, any> = Record<string, any>, Input extends HTMLElement = HTMLInputElement>(options: FieldOpt, component: (props: FieldProps<FieldCustomProps, Input>) => JSX.Element): <FormState extends Record<string, any> = Record<string, any>>(props: FieldResProps<FormState, FieldCustomProps>) => JSX.Element; export declare function createField<FieldCustomProps extends Record<string, any> = Record<string, any>, Input extends HTMLElement = HTMLInputElement>(component: (props: FieldProps<FieldCustomProps, Input>) => JSX.Element): <FormState extends Record<string, any> = Record<string, any>>(props: FieldResProps<FormState, FieldCustomProps>) => JSX.Element;