UNPKG

@data-driven-forms/react-form-renderer

Version:

React Form Renderer. Data Driven Forms converts JSON form definitions into fully functional React forms.

42 lines (41 loc) 1.55 kB
import { ReactNode } from 'react'; import { FieldMetaState, FieldInputProps, UseFieldConfig } from 'react-final-form'; import { ValidatorDefinition } from './validator-helpers'; import { ValidatorFunction } from '../validators/validators'; import { AnyObject } from '../common-types'; import { DataType } from '../data-types/data-types'; export interface ValidatorType extends Object { type: string; message?: ReactNode; } export interface UseFieldApiConfig extends AnyObject { name: string; validate?: (ValidatorDefinition | ValidatorFunction)[]; skipRegistration?: boolean; useWarnings?: boolean; resolveProps?: (props: any, fieldProps: any, formOptions: any) => any; initializeOnMount?: boolean; component?: string; render?: any; clearOnUnmount?: boolean; dataType?: DataType; FieldProps?: any; clearedValue?: any; initialValue?: any; value?: any; type?: string; } export interface UseFieldApiComponentConfig extends UseFieldConfig<any> { name: string; } export interface Meta<FieldValue> extends FieldMetaState<FieldValue> { warning?: any; } export interface UseFieldApiProps<FieldValue, T extends HTMLElement = HTMLElement> extends AnyObject { input: FieldInputProps<FieldValue, T>; meta: Meta<FieldValue>; arrayValidator?: ValidatorFunction; } export type BaseFieldProps<P = {}> = UseFieldApiConfig & P; declare const useFieldApi: ({ name, resolveProps, skipRegistration, ...props }: UseFieldApiConfig) => UseFieldApiProps<any>; export default useFieldApi;