UNPKG

@antdp/authorized

Version:

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

85 lines (84 loc) 2.05 kB
import { useAuthorizedonfig } from "./hooks"; import React, { useMemo } from "react"; import { store } from "./utils"; import { jsx as _jsx } from "react/jsx-runtime"; export var AuthButton = props => { var { path, children } = props; var { auth_btn, auth_check_url, isCheckAuth } = useAuthorizedonfig(); var authBtns = useMemo(() => { var authBtnStr = store.getItem(auth_btn || ""); if (authBtnStr) { return JSON.parse(authBtnStr); } return []; }, [JSON.stringify({ auth_btn, auth_check_url })]); var checkPath = useMemo(() => { if (!isCheckAuth) { return true; } if (auth_check_url) { return !!authBtns.find(ite => ite[auth_check_url] === path); } else { return !!authBtns.find(ite => ite === path); } }, [authBtns, path, isCheckAuth]); if (!path || !isCheckAuth || checkPath) { return /*#__PURE__*/_jsx(React.Fragment, { children: children }); } return /*#__PURE__*/_jsx(React.Fragment, {}); }; /** * 判断按钮路径是否有权限 */ export var getAuthButton = function getAuthButton(path, other) { if (other === void 0) { other = {}; } var { auth_btn, auth_check_url } = other || {}; var authBtns = () => { var newAuthBtn = auth_btn; if (!newAuthBtn) { if (typeof ANTD_AUTH_CONF === "boolean") { newAuthBtn = ""; } else { newAuthBtn = ANTD_AUTH_CONF.auth_btn; } } var authBtnStr = store.getItem(newAuthBtn || ""); if (authBtnStr) { return JSON.parse(authBtnStr); } return []; }; var 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(ite => ite[newCheckUrl] === path); } else { return !!authBtns().find(ite => ite === path); } }; return checkPath(); };