betanet-mini-ui
Version:
为 Taro 而设计的 UI Library
43 lines (36 loc) • 1.28 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _taro = require("@tarojs/taro");
var _react = require("react");
function useModal(option) {
var initialOption = (0, _react.useRef)();
(0, _react.useEffect)(function () {
initialOption.current = option;
}, [option]);
var showModalAsync = (0, _react.useCallback)(function (option) {
return new Promise(function (resolve, reject) {
try {
if (!option && !initialOption.current) {
console.warn('please provide a option');
return reject(new Error('please provide a option'));
} else {
var options = Object.assign({}, initialOption.current || {}, option || {});
(0, _taro.showModal)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, options), {}, {
success: resolve,
fail: reject
})).catch(reject);
}
} catch (e) {
reject(e);
}
});
}, [initialOption]);
return [showModalAsync];
}
var _default = useModal;
exports.default = _default;