UNPKG

remix-validated-form

Version:

Form component and utils for easy form validation in remix

29 lines (28 loc) 1.31 kB
import React from "react"; export type FieldArrayValidationBehavior = "onChange" | "onSubmit"; export type FieldArrayValidationBehaviorOptions = { initial: FieldArrayValidationBehavior; whenSubmitted: FieldArrayValidationBehavior; }; export type FieldArrayHelpers<Item = any> = { push: (item: Item) => void; swap: (indexA: number, indexB: number) => void; move: (from: number, to: number) => void; insert: (index: number, value: Item) => void; unshift: (value: Item) => void; remove: (index: number) => void; pop: () => void; replace: (index: number, value: Item) => void; }; export type UseFieldArrayOptions = { formId?: string; validationBehavior?: Partial<FieldArrayValidationBehaviorOptions>; }; export declare function useFieldArray<Item = any>(name: string, { formId, validationBehavior }?: UseFieldArrayOptions): [itemDefaults: Item[], helpers: FieldArrayHelpers<any>, error: string | undefined]; export type FieldArrayProps = { name: string; children: (itemDefaults: any[], helpers: FieldArrayHelpers, error: string | undefined) => React.ReactNode; formId?: string; validationBehavior?: FieldArrayValidationBehaviorOptions; }; export declare const FieldArray: ({ name, children, formId, validationBehavior, }: FieldArrayProps) => JSX.Element;