import { ReactComponent as FileIcon } from '@/assets/svg/file-management.svg'; import { ReactComponent as GraphIcon } from '@/assets/svg/graph.svg'; import { ReactComponent as KnowledgeBaseIcon } from '@/assets/svg/knowledge-base.svg'; import { useTranslate } from '@/hooks/common-hooks'; import { useNavigateWithFromState } from '@/hooks/route-hook'; import { Flex, Layout, Radio, Space, theme } from 'antd'; import { useCallback, useMemo } from 'react'; import { useLocation } from 'umi'; import Toolbar from '../right-toolbar'; import { useFetchAppConf } from '@/hooks/logic-hooks'; import { MessageOutlined } from '@ant-design/icons'; import styles from './index.less'; const { Header } = Layout; const RagHeader = () => { const { token: { colorBgContainer }, } = theme.useToken(); const navigate = useNavigateWithFromState(); const { pathname } = useLocation(); const { t } = useTranslate('header'); const appConf = useFetchAppConf(); const tagsData = useMemo( () => [ { path: '/knowledge', name: t('knowledgeBase'), icon: KnowledgeBaseIcon }, { path: '/chat', name: t('chat'), icon: MessageOutlined }, { path: '/flow', name: t('flow'), icon: GraphIcon }, { path: '/file', name: t('fileManager'), icon: FileIcon }, ], [t], ); const currentPath = useMemo(() => { return ( tagsData.find((x) => pathname.startsWith(x.path))?.name || 'knowledge' ); }, [pathname, tagsData]); const handleChange = (path: string) => { navigate(path); }; const handleLogoClick = useCallback(() => { navigate('/'); }, [navigate]); return (
{appConf.appName} {tagsData.map((item) => ( handleChange(item.path)} key={item.name} > {item.name} ))}
); }; export default RagHeader;