@bytedance/mona-client-web
Version:
web for mona
57 lines • 3.05 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
import React, { useCallback } from 'react';
import ReactDOM from 'react-dom';
import { Masking } from '../Masking/index';
import { hide } from '../util';
import './index.module.less';
var MONA_WEB_MODAL = 'mona-web-modal';
export function Modal(props) {
var btnConfirm = useCallback(function (_a) {
var _b, _c;
var _d = _a.confirm, confirm = _d === void 0 ? false : _d, _e = _a.cancel, cancel = _e === void 0 ? false : _e, _f = _a.errMsg, errMsg = _f === void 0 ? '' : _f;
(_b = props.success) === null || _b === void 0 ? void 0 : _b.call(props, { confirm: confirm, cancel: cancel, errMsg: errMsg });
(_c = props.complete) === null || _c === void 0 ? void 0 : _c.call(props, { confirm: confirm, cancel: cancel, errMsg: errMsg });
hide(MONA_WEB_MODAL);
}, [props]);
return (React.createElement(React.Fragment, null,
React.createElement("div", { className: "mona-web-modal-body" },
props.title && React.createElement("div", { className: "mona-web-modal-title" }, props.title),
React.createElement("div", { className: "mona-web-modal-content ".concat(props.content ? 'mona-web-modal-has-border' : '') }, props.content),
React.createElement("div", { className: "mona-web-modal-footer" },
props.showCancel && (React.createElement("div", { className: "mona-web-modal-button", onClick: function () { return btnConfirm({ cancel: true }); } }, props.confirmText || '取消')),
React.createElement("div", { className: "mona-web-modal-button", onClick: function () { return btnConfirm({ confirm: true }); } }, props.cancelText || '确认'))),
React.createElement(Masking, { onHandle: function () { return hide(MONA_WEB_MODAL); } })));
}
function confirm(props) {
var container = document.createElement('div');
container.id = MONA_WEB_MODAL;
function render() {
document.body.append(container);
setTimeout(function () {
ReactDOM.render(React.createElement(Modal, __assign({}, props)), container);
});
}
render();
}
export function webShowModal(props) {
var _a, _b;
if (props === void 0) { props = {}; }
if (!props.title && !props.content) {
(_a = props === null || props === void 0 ? void 0 : props.fail) === null || _a === void 0 ? void 0 : _a.call(props, { errMsg: 'showModal: error' });
(_b = props === null || props === void 0 ? void 0 : props.complete) === null || _b === void 0 ? void 0 : _b.call(props, { errMsg: 'showModal: error' });
}
else {
confirm(__assign({ showCancel: true }, props));
}
}
//# sourceMappingURL=index.js.map