import React, { useContext } from 'react'; import { Spin, Button, Drawer, Form } from 'antd'; import _debounce from 'lodash/debounce'; import _get from 'lodash/get'; import { DrawerProps } from 'antd/lib/drawer'; import { WrappedFormUtils } from 'antd/lib/form/Form'; import { PopupProps } from '../DetailModal/index'; import ConfigContext from '../../config-provider/context'; export type CustomModalProps = Omit export interface DetailDrawerProps extends PopupProps { drawerProps?: CustomModalProps; } function DetailDrawer(props: DetailDrawerProps) { const { acLocale, debounceWait, createFormItemsFn } = useContext(ConfigContext); const { loading = false, setItemsConfig, itemsLayout, getFormInstance = () => { }, onOk: handleOk = () => { }, onClose, visible, afterClose = () => { }, title, drawerProps = {}, form = {} as WrappedFormUtils, } = props; getFormInstance(form); const itemsConfig = setItemsConfig(form); const okHandle = _debounce(() => { console.log('DetailFormDrawer _debounce onOk'); form.validateFieldsAndScroll((err?: any, fieldsValue?: any) => { if (err) return; handleOk(fieldsValue); }); }, debounceWait); return ( { if (!isVisible) { afterClose(); } }} title={title} onClose={onClose} > {createFormItemsFn(form)(itemsConfig, itemsLayout)}
); }; export default Form.create()(DetailDrawer);