antd
Version:
An enterprise-class UI design language and React components implementation
66 lines (54 loc) • 2.01 kB
JavaScript
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = useModal;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var React = _interopRequireWildcard(require("react"));
var _usePatchElement3 = _interopRequireDefault(require("../../_util/usePatchElement"));
var _HookModal = _interopRequireDefault(require("./HookModal"));
var _confirm = require("../confirm");
var uuid = 0;
function useModal() {
var _usePatchElement = (0, _usePatchElement3["default"])(),
_usePatchElement2 = (0, _slicedToArray2["default"])(_usePatchElement, 2),
elements = _usePatchElement2[0],
patchElement = _usePatchElement2[1];
function getConfirmFunc(withFunc) {
return function hookConfirm(config) {
uuid += 1;
var modalRef = /*#__PURE__*/React.createRef();
var closeFunc;
var modal = /*#__PURE__*/React.createElement(_HookModal["default"], {
key: "modal-".concat(uuid),
config: withFunc(config),
ref: modalRef,
afterClose: function afterClose() {
closeFunc();
}
});
closeFunc = patchElement(modal);
return {
destroy: function destroy() {
if (modalRef.current) {
modalRef.current.destroy();
}
},
update: function update(newConfig) {
if (modalRef.current) {
modalRef.current.update(newConfig);
}
}
};
};
}
return [{
info: getConfirmFunc(_confirm.withInfo),
success: getConfirmFunc(_confirm.withSuccess),
error: getConfirmFunc(_confirm.withError),
warning: getConfirmFunc(_confirm.withWarn),
confirm: getConfirmFunc(_confirm.withConfirm)
}, /*#__PURE__*/React.createElement(React.Fragment, null, elements)];
}
;