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