@antmjs/vantui
Version:
一套适用于Taro3及React的vantui组件库
78 lines • 3.9 kB
JavaScript
import _typeof from "@babel/runtime/helpers/typeof";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
import _assign from 'lodash/assign';
import VanOverlay from '../overlay/index';
import { createExtraNode } from '../wxs/extra-node';
import { Toast } from './toast';
import { jsx as _jsx } from "react/jsx-runtime";
var extraNode = createExtraNode();
var overlayNode = createExtraNode();
var defaultDuration = 2500;
var timer = null;
var hasMask = false;
var defaultToastOptions = {
duration: 2500
};
var _defaultOptions = _objectSpread({}, defaultToastOptions);
export function setDefaultOptions(options) {
_assign(_defaultOptions, options);
}
export function resetDefaultOptions() {
_defaultOptions = _objectSpread({}, defaultToastOptions);
}
export function show_(options) {
var _extraNode$renderNode;
if (timer) {
clearTimeout(timer);
timer = null;
}
if (!hasMask) {
var _overlayNode$renderNo;
hasMask = true;
(_overlayNode$renderNo = overlayNode.renderNode) === null || _overlayNode$renderNo === void 0 ? void 0 : _overlayNode$renderNo.call(overlayNode, /*#__PURE__*/_jsx(VanOverlay, {
show: true,
zIndex: options.zIndex,
style: options.mask ? '' : 'background-color: transparent;'
}));
}
(_extraNode$renderNode = extraNode.renderNode) === null || _extraNode$renderNode === void 0 ? void 0 : _extraNode$renderNode.call(extraNode, /*#__PURE__*/_jsx(Toast, _objectSpread({}, _objectSpread(_objectSpread({}, _defaultOptions), options))));
if (options.duration !== 0) {
var _defaultOptions2;
timer = setTimeout(function () {
var _options$onClose;
clear();
options === null || options === void 0 ? void 0 : (_options$onClose = options.onClose) === null || _options$onClose === void 0 ? void 0 : _options$onClose.call(options);
}, options.duration || ((_defaultOptions2 = _defaultOptions) === null || _defaultOptions2 === void 0 ? void 0 : _defaultOptions2.duration) || defaultDuration);
}
}
export function createAction() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return function (options_) {
var options = _objectSpread({}, params);
if (options_ && typeof options_ === 'string') {
options.message = options_;
} else if (_typeof(options_) === 'object') {
options = _objectSpread(_objectSpread({}, options), options_);
}
show_(options);
};
}
export var show = createAction({});
export var success = createAction({
type: 'success'
});
export var fail = createAction({
type: 'fail'
});
export var loading = createAction({
type: 'loading',
duration: 0
});
export function clear() {
var _extraNode$removeNode, _overlayNode$removeNo;
hasMask = false;
(_extraNode$removeNode = extraNode.removeNode) === null || _extraNode$removeNode === void 0 ? void 0 : _extraNode$removeNode.call(extraNode);
(_overlayNode$removeNo = overlayNode.removeNode) === null || _overlayNode$removeNo === void 0 ? void 0 : _overlayNode$removeNo.call(overlayNode);
}