UNPKG

@bytedance/mona-client-web

Version:

web for mona

57 lines 3.05 kB
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