UNPKG

mobile-more

Version:

基于 antd-mobile v5 扩展移动端 UI 组件

85 lines (84 loc) 3.44 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.Preloader = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _antdMobile = require("antd-mobile"); var _render = require("rc-util/es/React/render"); var _classnames = _interopRequireDefault(require("classnames")); var _config = require("../../config"); require("./index.css"); var _BizConfigProvider = require("../BizConfigProvider"); var _excluded = ["className", "icon", "content"]; var prefixCls = "".concat(_config.prefixClass, "-preloader"); var BizPreloader = function BizPreloader(props) { var _useConfig = (0, _BizConfigProvider.useConfig)(), locale = _useConfig.locale; var className = props.className, _props$icon = props.icon, icon = _props$icon === void 0 ? /*#__PURE__*/_react.default.createElement(_antdMobile.SpinLoading, { style: { '--size': '48px', '--color': 'white' } }) : _props$icon, _props$content = props.content, content = _props$content === void 0 ? locale.preloader.content : _props$content, restProps = (0, _objectWithoutProperties2.default)(props, _excluded); return /*#__PURE__*/_react.default.createElement(_antdMobile.CenterPopup, (0, _objectSpread2.default)({ className: (0, _classnames.default)(prefixCls, className), getContainer: function getContainer() { return document.body; }, destroyOnClose: true }, restProps), /*#__PURE__*/_react.default.createElement("div", { className: "".concat(prefixCls, "-icon") }, icon), /*#__PURE__*/_react.default.createElement("div", { className: "".concat(prefixCls, "-content") }, content)); }; var container = document.createElement('div'); var props; var count = 0; var show = function show(options) { ++count; if (count > 1) { return; } var defaultProps = typeof options === 'string' ? { content: options } : options; props = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultProps), {}, { afterClose: function afterClose() { var _defaultProps$afterCl; defaultProps === null || defaultProps === void 0 ? void 0 : (_defaultProps$afterCl = defaultProps.afterClose) === null || _defaultProps$afterCl === void 0 ? void 0 : _defaultProps$afterCl.call(defaultProps); (0, _render.unmount)(container); }, visible: true }); (0, _render.render)(/*#__PURE__*/_react.default.createElement(BizPreloader, (0, _objectSpread2.default)({}, props)), container); }; var close = function close() { count = count > 0 ? count - 1 : 0; if (count === 0) { (0, _render.render)(/*#__PURE__*/_react.default.createElement(BizPreloader, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, { visible: false })), container); } }; var clear = function clear() { count = count > 1 ? 1 : count; close(); }; BizPreloader.show = show; BizPreloader.close = close; BizPreloader.clear = clear; /** * @deprecated 即将废弃,请使用 `BizPreloader` 替代。 */ var Preloader = exports.Preloader = BizPreloader; var _default = exports.default = BizPreloader;