import { useTranslation } from "react-i18next";
import MyAccount from "./MyAccount";
import Overview from "./Overview";
import Logins from "./config/Logins";
import ConfigFirebase from "./config/Firebase";
import ConfigSMTP from "./config/SMTP";
import APIConfig from "./APIConfig";
import License from "./License";
import Widget from "./Widget";
import BotConfig from "./BotConfig";
import APIDocument from "./APIDocument";
import ManageMembers from "../../common/component/ManageMembers";
import Version from "../../common/component/Version";
import ConfigAgora from "./config/Agora";
import { useAppSelector } from "../../app/store";
import ServerVersionChecker from "../../common/component/ServerVersionChecker";
const navs = [
{
name: "general",
items: [
{
name: "overview",
component:
},
{
name: "my_account",
component:
},
{
name: "members",
component: ,
admin: true
},
]
},
{
name: "config",
items: [
{
name: "bot",
component: ,
admin: true
},
{
name: "firebase",
component:
},
{
name: "agora",
component:
},
{
name: "smtp",
component:
},
{
name: "login_method",
component:
},
{
name: "third_app",
component:
},
{
name: "widget",
component:
},
{
name: "license",
component:
}
],
admin: true
},
{
name: "about",
items: [
{
name: "api_doc",
component:
},
{
name: "version",
component:
},
{
name: "faq",
link: "https://doc.voce.chat/faq",
},
{
name: "feedback",
link: `https://privoce.voce.chat/widget?from=${encodeURIComponent(location.host)}`,
},
]
}
];
const useNavs = () => {
const { t } = useTranslation("setting");
const { loginUser, upgraded } = useAppSelector((store) => {
return { loginUser: store.authData.user, upgraded: store.server.upgraded };
});
const transformedNavs = navs.map(n => {
const { name, items, ...rest } = n;
return {
name,
// @ts-ignore
title: t(`nav.${name}`),
items: items.map(item => {
const { name, ...rest } = item;
return {
name,
// @ts-ignore
title: t(`nav.${name}`),
...rest
};
}),
...rest
};
});
return transformedNavs.filter((nav) => {
if (loginUser?.is_admin) {
return true;
} else {
// about 特殊处理下
if (nav.name == "about") {
// 有付费,但是普通用户,则不显示about
return !upgraded;
} else {
return !nav.admin;
}
}
});
};
export default useNavs;