UNPKG

@slan-health/taro-vueuse

Version:

taro vue版本hooks

75 lines (74 loc) 2.81 kB
import { getEnv, getSetting, requestSubscribeMessage, openSetting } from "@tarojs/taro"; import useModal from "../useModal/index.js"; import { ENV_TYPE } from "../constant.js"; function useRequestSubscribeMessage() { const env = getEnv(); const [show] = useModal({ content: "未授权发送通知,您将收不到通知!", confirmText: "重新授权", cancelText: "取消授权" }); const requestSubscribeMessageAsync = (tmplIds) => { return new Promise((resolve, reject) => { if (env !== ENV_TYPE.WEAPP || !(tmplIds == null ? void 0 : tmplIds.length)) { reject({ errMsg: "requestSubscribeMessage: fail" }); } else { try { getSetting({ withSubscriptions: true, success: (res) => { if (res.subscriptionsSetting.mainSwitch) { if (res.subscriptionsSetting.itemSettings != null) { let currTmplIds = []; let currItemSettings = {}; tmplIds.forEach((id) => { const moIdState = res.subscriptionsSetting.itemSettings[id]; if (moIdState == void 0) { currTmplIds.push(id); } else { currItemSettings[id] = moIdState; } }); if (currTmplIds.length == tmplIds.length) { requestSubscribeMessage({ tmplIds, success: ({ errMsg, ...result }) => resolve(result), fail: reject }).catch(reject); } else if (currTmplIds.length > 0) { requestSubscribeMessage({ tmplIds, success: ({ errMsg, ...result }) => resolve({ ...currItemSettings, ...result }), fail: reject }).catch(reject); } else { resolve(currItemSettings); } } else { requestSubscribeMessage({ tmplIds, success: ({ errMsg, ...result }) => resolve(result), fail: reject }).catch(reject); } } else { show().then(() => { openSetting(); reject({ errMsg: "用户主开关关闭 mainSwitch为false" }); }).catch(reject); } }, fail: reject }); } catch (e) { reject({ errMsg: "requestSubscribeMessage: fail", data: e }); } } }); }; return [requestSubscribeMessageAsync]; } export { useRequestSubscribeMessage as default }; //# sourceMappingURL=index.js.map