@antdp/authorized
Version:
通过判断是否进入主界面还是登录界面。
94 lines (92 loc) • 2.84 kB
JavaScript
;
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();
};