feat: hidden about navs in normal user when upgraded license

This commit is contained in:
Tristan Yang
2023-03-17 21:01:42 +08:00
parent 5bf4baabd3
commit a986e7a6f2
+14 -5
View File
@@ -14,10 +14,11 @@ import Version from "../../common/component/Version";
import { useAppSelector } from "../../app/store"; import { useAppSelector } from "../../app/store";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import ServerVersionChecker from "../../common/component/ServerVersionChecker"; import ServerVersionChecker from "../../common/component/ServerVersionChecker";
import useLicense from "../../common/hook/useLicense";
const navs = [ const navs = [
{ {
title: "general", name: "general",
items: [ items: [
{ {
name: "overview", name: "overview",
@@ -35,7 +36,7 @@ const navs = [
] ]
}, },
{ {
title: "config", name: "config",
items: [ items: [
{ {
name: "bot", name: "bot",
@@ -74,7 +75,7 @@ const navs = [
admin: true admin: true
}, },
{ {
title: "about", name: "about",
items: [ items: [
{ {
name: "api_doc", name: "api_doc",
@@ -97,14 +98,16 @@ const navs = [
]; ];
const useNavs = () => { const useNavs = () => {
const { license: licenseInfo } = useLicense();
const { t } = useTranslation("setting"); const { t } = useTranslation("setting");
const loginUser = useAppSelector((store) => { const loginUser = useAppSelector((store) => {
return store.authData.user; return store.authData.user;
}); });
const transformedNavs = navs.map(n => { const transformedNavs = navs.map(n => {
const { title, items, ...rest } = n; const { name, items, ...rest } = n;
return { return {
title: t(`nav.${title}`), name,
title: t(`nav.${name}`),
items: items.map(item => { items: items.map(item => {
const { name, ...rest } = item; const { name, ...rest } = item;
return { return {
@@ -119,9 +122,15 @@ const useNavs = () => {
return transformedNavs.filter((nav) => { return transformedNavs.filter((nav) => {
if (loginUser?.is_admin) { if (loginUser?.is_admin) {
return true; return true;
} else {
// about 特殊处理下
if (nav.name == "about") {
// 有付费,但是普通用户,则不显示about
return licenseInfo?.user_limit === 20;
} else { } else {
return !nav.admin; return !nav.admin;
} }
}
}); });
}; };