import { Helmet } from "react-helmet-async"; import { getAppName } from "@/lib/config.ts"; import SettingsTitle from "@/components/settings/settings-title.tsx"; import React from "react"; import useUserRole from "@/hooks/use-user-role.tsx"; import { useTranslation } from "react-i18next"; import EnableAiSearch from "@/ee/ai/components/enable-ai-search.tsx"; import EnableGenerativeAi from "@/ee/ai/components/enable-generative-ai.tsx"; import EnableAiChat from "@/ee/ai-chat/components/enable-ai-chat.tsx"; import McpSettings from "@/ee/ai/components/mcp-settings.tsx"; import { Alert, Stack, Tabs } from "@mantine/core"; import { IconInfoCircle } from "@tabler/icons-react"; import { useHasFeature } from "@/ee/hooks/use-feature"; import { Feature } from "@/ee/features"; import { useUpgradeLabel } from "@/ee/hooks/use-upgrade-label"; import { isCloud } from "@/lib/config.ts"; import { useLocation, useNavigate } from "react-router-dom"; export default function AiSettings() { const { t } = useTranslation(); const { isAdmin } = useUserRole(); const hasAccess = useHasFeature(Feature.AI); const upgradeLabel = useUpgradeLabel(); const location = useLocation(); const navigate = useNavigate(); const activeTab = location.pathname.endsWith("/mcp") ? "mcp" : "ai"; if (!isAdmin) { return null; } const handleTabChange = (value: string | null) => { if (value === "mcp") { navigate("/settings/ai/mcp"); } else { navigate("/settings/ai"); } }; return ( <> AI settings - {getAppName()} {t("AI")} {t("MCP")} {!hasAccess && ( } title={upgradeLabel} color="blue" mb="lg" > {t( "AI is only available in the Docmost enterprise edition. Contact sales@docmost.com.", )} )} {!isCloud() && } ); }