UNPKG

@lvxiaowu/antd4

Version:

antd4-components

70 lines (59 loc) 3.09 kB
var _excluded = ["store", "children", "getProps"]; function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } import React, { useRef } from 'react'; import { Button, Modal, Space } from 'antd'; import { observer } from 'mobx-react-lite'; import { DataType } from '@lvxiaowu/utils'; var Footer = observer(function (_ref) { var store = _ref.store; var loading = store.loading; return /*#__PURE__*/React.createElement(Space, { style: { width: '100%', justifyContent: 'flex-end' } }, /*#__PURE__*/React.createElement(Button, { disabled: loading, onClick: store.close }, "\u53D6\u6D88"), /*#__PURE__*/React.createElement(Button, { loading: loading, onClick: store.handleOk, type: "primary" }, "\u786E\u5B9A")); }); function MyModal(_ref2) { var store = _ref2.store, children = _ref2.children, getProps = _ref2.getProps, rest = _objectWithoutProperties(_ref2, _excluded); var modalStore = (store === null || store === void 0 ? void 0 : store.$modal) || store; if (!modalStore) { console.error('Modal组件必须传store属性,并且是ModalStore的实例'); return null; } var hasOpened = useRef(false); var visible = modalStore.visible, openValues = modalStore.openValues; if (visible) { hasOpened.current = true; } var propsByData = hasOpened.current ? getProps === null || getProps === void 0 ? void 0 : getProps(openValues) : {}; return /*#__PURE__*/React.createElement(Modal, _extends({ destroyOnClose: true, visible: visible, onCancel: modalStore.close, footer: /*#__PURE__*/React.createElement(Footer, { store: modalStore }) }, rest, propsByData), hasOpened.current && (DataType.isFunc(children) ? children(openValues) : children)); } var SdModal = observer(MyModal); SdModal.confirm = Modal.confirm; SdModal.info = Modal.info; SdModal.success = Modal.success; SdModal.error = Modal.error; SdModal.warning = Modal.warning; SdModal.useModal = Modal.useModal; export default SdModal;