@altiore/form
Version:
Form helper for building powerful forms
51 lines (50 loc) • 1.52 kB
TypeScript
/// <reference types="react" />
import { FieldArrayProps, FieldOuterProps } from '../@common/types';
/**
* Создает массив полей
*
* @component
*
* @param component
*
* @typedef createFieldArray
* @return {Array} возвращает массив полей
*
*
* @example
*
* import React from 'react';
* import {createFieldArray} from './';
*
* const FieldArray = createFieldArray(({list}) => {
* return (
* <div>
* {list.map(({key, remove, append, prepend}) => {
* return (
* <div key={key}>
* <div style={{display: 'flex'}}>
* <Field label={''} name="ingredient" validate={[minLength(3)]} />
* <ArrayTags name="tags" />
* <button onClick={remove} type="button">
* -
* </button>
* <button onClick={append} type="button">
* after
* </button>
* <button onClick={prepend} type="button">
* before
* </button>
* </div>
* </div>
* );
* })}
* <button onClick={list.add} type="button">
* Добавить ингредиент
* </button>
* </div>
* );
* });
*/
export declare const createFieldArray: <CustomFieldProps extends Record<string, any> = {
name: string;
}, ArrayItemProps extends Record<string, any> = Record<string, any>>(component: (props: FieldArrayProps<CustomFieldProps, ArrayItemProps>) => JSX.Element) => <FormState extends Record<string, any> = Record<string, any>>(props: CustomFieldProps & FieldOuterProps<FormState>) => JSX.Element;