import Row from 'react-bootstrap/Row'; import Col from 'react-bootstrap/Col'; import Container from 'react-bootstrap/Container'; import { ArrayFieldTemplateItemType, ArrayFieldTemplateProps, FormContextType, getTemplate, getUiOptions, RJSFSchema, StrictRJSFSchema, } from '@rjsf/utils'; export default function ArrayFieldTemplate< T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any >(props: ArrayFieldTemplateProps) { const { canAdd, disabled, idSchema, uiSchema, items, onAddClick, readonly, registry, required, schema, title } = props; const uiOptions = getUiOptions(uiSchema); const ArrayFieldDescriptionTemplate = getTemplate<'ArrayFieldDescriptionTemplate', T, S, F>( 'ArrayFieldDescriptionTemplate', registry, uiOptions ); const ArrayFieldItemTemplate = getTemplate<'ArrayFieldItemTemplate', T, S, F>( 'ArrayFieldItemTemplate', registry, uiOptions ); const ArrayFieldTitleTemplate = getTemplate<'ArrayFieldTitleTemplate', T, S, F>( 'ArrayFieldTitleTemplate', registry, uiOptions ); // Button templates are not overridden in the uiSchema const { ButtonTemplates: { AddButton }, } = registry.templates; return (
{items && items.map(({ key, ...itemProps }: ArrayFieldTemplateItemType) => ( ))} {canAdd && ( )}
); }