import { NavLink, Outlet, useLocation, useNavigate } from "react-router"; import { useTranslation } from "react-i18next"; import React from "react"; import SettingsIcon from "#/icons/settings.svg?react"; import { cn } from "#/utils/utils"; import { useConfig } from "#/hooks/query/use-config"; import { I18nKey } from "#/i18n/declaration"; function SettingsScreen() { const { t } = useTranslation(); const navigate = useNavigate(); const { pathname } = useLocation(); const { data: config } = useConfig(); const isSaas = config?.APP_MODE === "saas"; const saasNavItems = [ { to: "/settings/user", text: t("SETTINGS$NAV_USER") }, { to: "/settings/git", text: t("SETTINGS$NAV_GIT") }, { to: "/settings/app", text: t("SETTINGS$NAV_APPLICATION") }, { to: "/settings/billing", text: t("SETTINGS$NAV_CREDITS") }, { to: "/settings/secrets", text: t("SETTINGS$NAV_SECRETS") }, { to: "/settings/api-keys", text: t("SETTINGS$NAV_API_KEYS") }, ]; const ossNavItems = [ { to: "/settings", text: t("SETTINGS$NAV_LLM") }, { to: "/settings/mcp", text: t("SETTINGS$NAV_MCP") }, { to: "/settings/git", text: t("SETTINGS$NAV_GIT") }, { to: "/settings/app", text: t("SETTINGS$NAV_APPLICATION") }, { to: "/settings/secrets", text: t("SETTINGS$NAV_SECRETS") }, ]; React.useEffect(() => { if (isSaas) { if (pathname === "/settings") { navigate("/settings/user"); } } else { const noEnteringPaths = [ "/settings/user", "/settings/billing", "/settings/credits", "/settings/api-keys", ]; if (noEnteringPaths.includes(pathname)) { navigate("/settings"); } } }, [isSaas, pathname]); const navItems = isSaas ? saasNavItems : ossNavItems; return (

{t(I18nKey.SETTINGS$TITLE)}

); } export default SettingsScreen;