UNPKG

taro-hooks

Version:
75 lines (74 loc) 2.81 kB
"use strict"; function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var taro_1 = require("@tarojs/taro"); var core_1 = require("@taro-hooks/core"); var useVisible_1 = tslib_1.__importDefault(require("../useVisible")); var usePromise_1 = tslib_1.__importDefault(require("../usePromise")); function useAuthorize(withSubscriptions, withAppAuthSetting) { var visible = (0, useVisible_1["default"])(); var _ref = (0, core_1.useState)({ mini: {} }), authSetting = _ref[0], setAuthSetting = _ref[1]; var _ref2 = (0, core_1.useState)({}), subscriptionsSetting = _ref2[0], setSubscriptionsSetting = _ref2[1]; var authorizeAsync = (0, usePromise_1["default"])(taro_1.authorize); var authorizeForMiniProgramAsync = (0, usePromise_1["default"])(taro_1.authorizeForMiniProgram); var authorize = function authorize(scope, mini) { var payload = { scope: scope }; return mini ? authorizeForMiniProgramAsync(payload) : authorizeAsync(payload); }; var getAsync = (0, usePromise_1["default"])(taro_1.getSetting); var get = function get(withSubscriptions) { return getAsync({ withSubscriptions: withSubscriptions }).then(function (res) { var authSetting = res.authSetting, subscriptionsSetting = res.subscriptionsSetting, miniprogramAuthSetting = res.miniprogramAuthSetting; var latestAuthSetting = _extends({}, authSetting, { mini: miniprogramAuthSetting }); if (withAppAuthSetting) { var app = (0, taro_1.getAppAuthorizeSetting)(); latestAuthSetting.app = app; } setAuthSetting(latestAuthSetting); setSubscriptionsSetting(subscriptionsSetting); return res; }); }; var openAsync = (0, usePromise_1["default"])(taro_1.openSetting); var open = function open(withSubscriptions) { return openAsync({ withSubscriptions: withSubscriptions }).then(function (res) { var openSettingAuthSetting = res.authSetting, subscriptionsSetting = res.subscriptionsSetting; setAuthSetting(_extends({}, openSettingAuthSetting, { mini: authSetting.mini })); setSubscriptionsSetting(subscriptionsSetting); return res; }); }; (0, core_1.useEffect)(function () { get(withSubscriptions); }, [visible]); return { authSetting: authSetting, subscriptionsSetting: subscriptionsSetting, authorize: authorize, get: get, open: open }; } exports["default"] = useAuthorize;