@modular-forms/solid
Version:
The modular and type-safe form library for SolidJS
31 lines (30 loc) • 1.41 kB
TypeScript
import { type JSX } from 'solid-js';
import type { FieldArrayPath, FieldValues, FormStore, Maybe, MaybeArray, ResponseData, ValidateFieldArray, ValidationMode } from '../types';
/**
* Value type ot the field store.
*/
export type FieldArrayStore<TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues>> = {
get name(): TFieldArrayName;
get items(): number[];
get error(): string;
get active(): boolean;
get touched(): boolean;
get dirty(): boolean;
};
/**
* Value type of the field array props.
*/
export type FieldArrayProps<TFieldValues extends FieldValues, TResponseData extends ResponseData, TFieldArrayName extends FieldArrayPath<TFieldValues>> = {
of: FormStore<TFieldValues, TResponseData>;
name: TFieldArrayName;
children: (store: FieldArrayStore<TFieldValues, TFieldArrayName>) => JSX.Element;
validate?: Maybe<MaybeArray<ValidateFieldArray<number[]>>>;
validateOn?: Maybe<ValidationMode>;
revalidateOn?: Maybe<ValidationMode>;
keepActive?: Maybe<boolean>;
keepState?: Maybe<boolean>;
};
/**
* Headless field array that provides reactive properties and state.
*/
export declare function FieldArray<TFieldValues extends FieldValues, TResponseData extends ResponseData, TFieldArrayName extends FieldArrayPath<TFieldValues>>(props: FieldArrayProps<TFieldValues, TResponseData, TFieldArrayName>): JSX.Element;