import { FormContainer, TextFieldElement } from '../src' import { useForm, useWatch } from 'react-hook-form' import { Button } from '@mui/material' import { action } from '@storybook/addon-actions' export default { title: 'FormContainer' } const SubComponent = () => { const [name, email] = useWatch({ name: ['name', 'email'] }) console.log(name, email) return ( <> <Button type={'submit'} color={'primary'} disabled={!(name && email)}>Submit</Button> </> ) } export const Basic = () => ( <FormContainer defaultValues={{ name: '' }} onSuccess={action('submit')} > <TextFieldElement name={'name'} label={'Name'} required /> <br /> <TextFieldElement name={'email'} label={'Email'} required type={'email'} /> <br /> <TextFieldElement name={'interest'} label={'Interest'} /> <br /> <SubComponent /> </FormContainer> ) export const WithContext = () => { const formContext = useForm<{ name: string }>({ defaultValues: { name: '' } }) return ( <FormContainer formContext={formContext} onSuccess={action('submit')} > <TextFieldElement name={'name'} label={'Name'} /><br /> <Button type={'submit'} color={'primary'}>Submit</Button> </FormContainer> ) } export const WithHandleSubmit = () => { const formContext = useForm<{ name: string }>({ defaultValues: { name: 'Hans' } }) const { handleSubmit } = formContext const actionFunc = action('submit') const onSubmit = handleSubmit((formData) => { actionFunc(formData) }) return ( <FormContainer formContext={formContext} handleSubmit={onSubmit}> <TextFieldElement name={'name'} label={'Name'} /><br /> <Button type={'submit'} color={'primary'}>Submit</Button> </FormContainer> ) }