@lvxiaowu/antd4
Version:
antd4-components
65 lines (54 loc) • 2.94 kB
JavaScript
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 { Drawer, Button, 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 MyDrawer(_ref2) {
var store = _ref2.store,
children = _ref2.children,
getProps = _ref2.getProps,
rest = _objectWithoutProperties(_ref2, _excluded);
var drawerStore = (store === null || store === void 0 ? void 0 : store.$drawer) || store;
if (!drawerStore) {
console.error('Drawer组件必须传store属性,并且是DrawerStore的实例');
return null;
}
var hasOpened = useRef(false);
var visible = drawerStore.visible,
openValues = drawerStore.openValues;
if (visible) {
hasOpened.current = true;
}
var propsByData = hasOpened.current ? getProps === null || getProps === void 0 ? void 0 : getProps(openValues) : {};
return /*#__PURE__*/React.createElement(Drawer, _extends({
visible: visible,
destroyOnClose: true,
placement: "left",
onClose: drawerStore.close,
footer: /*#__PURE__*/React.createElement(Footer, {
store: drawerStore
})
}, rest, propsByData), hasOpened.current && (DataType.isFunc(children) ? children(openValues) : children));
}
var SdDrawer = observer(MyDrawer);
export default SdDrawer;