taro-hooks
Version:
为 Taro 而设计的 Hooks Library
18 lines • 714 B
JavaScript
import { showModal } from '@tarojs/taro';
import { useRef, useEffect } from '@taro-hooks/core';
import usePromise from '../usePromise';
import { combineOptions, generateGeneralFail } from '../utils/tool';
function useModal(option) {
var generalOption = useRef(option);
useEffect(function () {
generalOption.current = option;
}, [option]);
var showModalAsync = usePromise(showModal);
var show = function show(option) {
if (!option && !generalOption.current) return Promise.reject(generateGeneralFail('showModal', 'please provide a option'));
var modalOption = combineOptions(generalOption.current, option);
return showModalAsync(modalOption);
};
return show;
}
export default useModal;