fastlion-amis
Version:
一种MIS页面生成工具
91 lines (90 loc) • 4.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
var antd_1 = require("antd");
var utils_1 = require("../../utils/utils");
var MobileModal = function (props) {
var onCancel = props.onCancel, onOk = props.onOk, afterClose = props.afterClose, visible = props.visible, children = props.children, restProps = tslib_1.__rest(props, ["onCancel", "onOk", "afterClose", "visible", "children"]);
// const [eventKey, setEventKey] = useState('');
var eventKeyRef = (0, react_1.useRef)('');
var handleCloseByState = function (e) {
handleClose(e, true);
};
var handleClose = function (e, isStateClose) {
// e?.preventDefault();
// e?.stopPropagation();
// setTimeout(() => {
// if (location.href.includes('?drawer=')) {
// const closeHref = location.href.split('?')[0];
// const closeHref = handleGetFinalHideUrl();
var _a = (0, utils_1.handleGetFinalHideState)(), state = _a.state, path = _a.path;
// const closeHref = location.href;
// const isPreview = closeHref.includes('?drawer=');
// console.log('debug-mobileModal-关闭Modal',`绑定的eventKey: ${eventKeyRef.current}`, `isStateClose:${isStateClose}` ,path, state);
// history.replaceState({ isPreview }, '', closeHref);
// 模拟返回
// history.back();
// history.pushState({ isPreview }, '', closeHref);
// if (isPreview) {
// history.pushState({ isPreview }, '', closeHref);
// } else {
// history.replaceState({ isPreview }, '', closeHref);
// }
// }
if (!isStateClose) {
history.back();
}
else {
history.replaceState(state, '', path);
}
window.removeEventListener(eventKeyRef.current, handleClose);
window.dispatchEvent(new Event('historyChange'));
onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);
// }, 300);
};
var handleModalShow = function () {
// const targetHref = handleGetFinalUrl(location.href, 'modal');
// const isPreview = targetHref.includes('?drawer=');
// 在显示的时候挂载关闭事件
var index = (0, utils_1.handleGetStateIndex)('modal');
var eventKey = "CLOSE_MODAL_".concat(index);
// setEventKey(eventKey);
eventKeyRef.current = eventKey;
// console.log('debug-挂载的Modal的key', eventKey);
window.addEventListener(eventKey, handleCloseByState);
var _a = (0, utils_1.handleGetFinalState)(location.href, 'modal'), state = _a.state, path = _a.path;
// console.log('debug-打开Modal', state, path);
// history?.pushState({ isPreview }, '', targetHref);
// if (!history.state?.['isPreview']) {
// history.pushState({ isPreview }, '', targetHref);
// } else {
// if (isPreview) {
// history.pushState({ isPreview }, '', targetHref);
// } else {
// history.replaceState({ isPreview }, '', targetHref);
// }
// }
history.pushState(state, '', path);
window.dispatchEvent(new Event('historyChange'));
// window.addEventListener(eventKey, handleCloseByState);
};
var handleAfterConfirm = function (e) {
// afterClose?.();
onOk === null || onOk === void 0 ? void 0 : onOk(e);
handleClose();
};
(0, react_1.useEffect)(function () {
return function () {
window.removeEventListener(eventKeyRef.current, handleCloseByState);
};
}, []);
(0, react_1.useEffect)(function () {
if (visible) {
handleModalShow();
}
}, [visible]);
return (react_1.default.createElement(antd_1.Modal, tslib_1.__assign({}, restProps, { visible: visible, onCancel: handleClose, onOk: handleAfterConfirm }), children));
};
exports.default = MobileModal;
//# sourceMappingURL=./components/MobileModal/index.js.map