import { IconFontFill } from '@/components/icon-font'; import { RAGFlowAvatar } from '@/components/ragflow-avatar'; import ThemeToggle from '@/components/theme-toggle'; import { Button } from '@/components/ui/button'; import { Domain } from '@/constants/common'; import { useSecondPathName } from '@/hooks/route-hook'; import { useLogout } from '@/hooks/use-login-request'; import { useFetchSystemVersion, useFetchUserInfo, } from '@/hooks/use-user-setting-request'; import { cn } from '@/lib/utils'; import { Routes } from '@/routes'; import { TFunction } from 'i18next'; import { Banknote, Box, Server, Unplug, User, Users } from 'lucide-react'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useHandleMenuClick } from './hooks'; const menuItems = (t: TFunction) => [ { icon: Server, label: t('setting.dataSources'), key: Routes.DataSource }, { icon: Box, label: t('setting.model'), key: Routes.Model }, { icon: Banknote, label: 'MCP', key: Routes.Mcp }, { icon: Users, label: t('setting.team'), key: Routes.Team }, { icon: User, label: t('setting.profile'), key: Routes.Profile }, { icon: Unplug, label: t('setting.api'), key: Routes.Api }, // { // icon: MessageSquareQuote, // label: 'Prompt Templates', // key: Routes.Profile, // }, // { icon: TextSearch, label: 'Retrieval Templates', key: Routes.Profile }, // { icon: Cog, label: t('setting.system'), key: Routes.System }, // { icon: Banknote, label: 'Plan', key: Routes.Plan }, ]; export function SideBar() { const pathName = useSecondPathName(); const { data: userInfo } = useFetchUserInfo(); const { handleMenuClick, active } = useHandleMenuClick(); const { version, fetchSystemVersion } = useFetchSystemVersion(); const { t } = useTranslation(); useEffect(() => { if (location.host !== Domain) { fetchSystemVersion(); } }, [fetchSystemVersion]); const { logout } = useLogout(); return ( ); }