UNPKG

@antdp/authorized

Version:

通过判断是否进入主界面还是登录界面。

94 lines (92 loc) 2.84 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAuthButton = exports.AuthButton = void 0; var _hooks = require("./hooks"); var _react = _interopRequireWildcard(require("react")); var _utils = require("./utils"); var _jsxRuntime = require("react/jsx-runtime"); var AuthButton = exports.AuthButton = function AuthButton(props) { var path = props.path, children = props.children; var _useAuthorizedonfig = (0, _hooks.useAuthorizedonfig)(), auth_btn = _useAuthorizedonfig.auth_btn, auth_check_url = _useAuthorizedonfig.auth_check_url, isCheckAuth = _useAuthorizedonfig.isCheckAuth; var authBtns = (0, _react.useMemo)(function () { var authBtnStr = _utils.store.getItem(auth_btn || ""); if (authBtnStr) { return JSON.parse(authBtnStr); } return []; }, [JSON.stringify({ auth_btn: auth_btn, auth_check_url: auth_check_url })]); var checkPath = (0, _react.useMemo)(function () { if (!isCheckAuth) { return true; } if (auth_check_url) { return !!authBtns.find(function (ite) { return ite[auth_check_url] === path; }); } else { return !!authBtns.find(function (ite) { return ite === path; }); } }, [authBtns, path, isCheckAuth]); if (!path || !isCheckAuth || checkPath) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react["default"].Fragment, { children: children }); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react["default"].Fragment, {}); }; /** * 判断按钮路径是否有权限 */ var getAuthButton = exports.getAuthButton = function getAuthButton(path) { var other = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var _ref = other || {}, auth_btn = _ref.auth_btn, auth_check_url = _ref.auth_check_url; var authBtns = function authBtns() { var newAuthBtn = auth_btn; if (!newAuthBtn) { if (typeof ANTD_AUTH_CONF === "boolean") { newAuthBtn = ""; } else { newAuthBtn = ANTD_AUTH_CONF.auth_btn; } } var authBtnStr = _utils.store.getItem(newAuthBtn || ""); if (authBtnStr) { return JSON.parse(authBtnStr); } return []; }; var checkPath = function checkPath() { var newCheckUrl = auth_check_url || ""; if (!newCheckUrl) { if (typeof ANTD_AUTH_CONF === "boolean") { newCheckUrl = ""; } else { newCheckUrl = ANTD_AUTH_CONF.auth_check_url; } } if (newCheckUrl) { return !!authBtns().find(function (ite) { return ite[newCheckUrl] === path; }); } else { return !!authBtns().find(function (ite) { return ite === path; }); } }; return checkPath(); };