import * as React from 'react'; import { CoreAdminContext } from '../core'; import { Form } from './Form'; import { InputProps, useInput } from './useInput'; export default { title: 'ra-core/form/useInput', }; const Input = (props: InputProps & { log?: boolean }) => { const { label, log } = props; const { id, field, fieldState } = useInput(props); if (log) { console.log(`Input ${id} rendered:`); } return ( {label ?? id}: {fieldState.error && {fieldState.error.message}} ); }; export const Basic = () => { const [submittedData, setSubmittedData] = React.useState(); return ( setSubmittedData(data)}> Submit {JSON.stringify(submittedData, null, 2)} ); }; export const DefaultValue = ({ initialValue, }: { initialValue: string | null | undefined; }) => { const [submittedData, setSubmittedData] = React.useState(); return ( setSubmittedData(data)} > Submit {JSON.stringify(submittedData, null, 2)} ); }; DefaultValue.args = { initialValue: 'valid', }; DefaultValue.argTypes = { initialValue: { options: ['valid', 'null', 'undefined'], mapping: { valid: 'initial value', null: null, undefined: undefined, }, control: { type: 'select' }, }, }; export const Large = () => { const [submittedData, setSubmittedData] = React.useState(); const fields = Array.from({ length: 15 }).map((_, index) => ( )); return ( setSubmittedData(data)} record={Array.from({ length: 15 }).reduce((acc, _, index) => { acc[`field${index + 1}`] = `value${index + 1}`; return acc; }, {})} > {fields} Submit {JSON.stringify(submittedData, null, 2)} ); };
{JSON.stringify(submittedData, null, 2)}