import {Form, Input, Select, Switch, Tabs} from 'antd' import {FormInstance} from 'antd/lib/form' import {TabPaneProps} from 'antd/lib/tabs' import React, {useEffect, useState} from 'react' import {AdminFormFieldFragment} from '../../../graphql/fragment/admin.form.fragment' interface Props extends TabPaneProps { form: FormInstance fields: AdminFormFieldFragment[] } export const SelfNotificationsTab: React.FC = props => { const [enabled, setEnabled] = useState() useEffect(() => { const next = props.form.getFieldValue(['form', 'selfNotifications', 'enabled']) if (next !== enabled) { setEnabled(next) } }, [props.form.getFieldValue(['form', 'selfNotifications', 'enabled'])]) useEffect(() => { props.form.validateFields([ ['form', 'selfNotifications', 'subject'], ['form', 'selfNotifications', 'htmlTemplate'], ]) }, [enabled]) const groups = {} props.fields.forEach(field => { if (!groups[field.type]) { groups[field.type] = [] } groups[field.type].push(field) }) return ( setEnabled(e.valueOf())} /> ) }