/* eslint react/no-multi-comp:0, no-console:0 */ import { createForm } from '../index' import { regionStyle } from './styles' import { Switch } from 'antd' const TopForm = { props: { form: Object, }, render () { const { getFieldProps } = this.form return (<div style={ regionStyle }> <div>has email? </div> <div> <Switch {...getFieldProps('on', { initialValue: true, valuePropName: 'checked', })} /> </div> </div>) }, } const BottomForm = { props: { form: Object, on: Boolean, }, render () { const { form } = this const on = form.getFieldValue('on') const style = { ...regionStyle, display: on ? 'block' : 'none', } return (<div style={ style }> <div>email: </div> <div> <input {...form.getFieldProps('email', { rules: [{ type: 'email', }], hidden: !on, })} /> </div> </div>) }, } const Form = { props: { form: Object, }, methods: { onSubmit (e) { e.preventDefault() console.log(this.form.getFieldsValue()) }, }, render () { const { form } = this return (<div> <TopForm form={ form }/> <BottomForm form={ form }/> <div style={ regionStyle }> <button onClick={this.onSubmit}>submit</button> </div> </div>) }, } const NewForm = createForm()(Form) export default { render () { return (<div> <h2>parallel form</h2> <NewForm /> </div>) }, }