import * as React from 'react'; import fakeRestDataProvider from 'ra-data-fakerest'; import { useWrappedSource } from '../../core/useWrappedSource'; import { useFieldValue } from '../../util/useFieldValue'; import { TestMemoryRouter } from '../../routing/TestMemoryRouter'; import { Admin, DataTable, SimpleForm, TextInput } from '../../test-ui'; import { Resource } from '../../core/Resource'; import { ListBase } from '../list/ListBase'; import { EditBase } from '../edit/EditBase'; import { ArrayInputBase } from './ArrayInputBase'; import { useArrayInput } from './useArrayInput'; import { SimpleFormIteratorItemBase } from './SimpleFormIteratorItemBase'; import { useSimpleFormIteratorItem } from './useSimpleFormIteratorItem'; import { useSimpleFormIterator } from './useSimpleFormIterator'; import { SimpleFormIteratorBase, SimpleFormIteratorBaseProps, } from './SimpleFormIteratorBase'; import { useGetArrayInputNewItemDefaults } from './useGetArrayInputNewItemDefaults'; import { useEvent } from '../../util'; export default { title: 'ra-core/controller/input/SimpleFormIteratorBase' }; const SimpleFormIterator = ({ children, ...props }: SimpleFormIteratorBaseProps) => { const { fields } = useArrayInput(props); // Get the parent source by passing an empty string as source const source = useWrappedSource(''); const records = useFieldValue({ source }); const getArrayInputNewItemDefaults = useGetArrayInputNewItemDefaults(fields); const getItemDefaults = useEvent((item: any = undefined) => { if (item != null) return item; return getArrayInputNewItemDefaults(children); }); return ( ); }; const RemoveItemButton = () => { const { remove } = useSimpleFormIteratorItem(); return ( ); }; const AddItemButton = () => { const { add } = useSimpleFormIterator(); return ( ); }; export const Basic = (props: Partial) => ( record.tags ? record.tags .map((tag: any) => tag.name) .join(', ') : '' } /> } edit={
Tags:
} />
); Basic.args = { disableAutoFocus: false, }; Basic.argTypes = { disableAutoFocus: { control: 'boolean' }, };