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