- import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
 - import { Button } from '@/components/ui/button';
 - import { Container } from '@/components/ui/container';
 - import { Segmented, SegmentedValue } from '@/components/ui/segmented';
 - import { useTranslate } from '@/hooks/common-hooks';
 - import { useNavigatePage } from '@/hooks/logic-hooks/navigate-hooks';
 - import { useNavigateWithFromState } from '@/hooks/route-hook';
 - import { cn } from '@/lib/utils';
 - import { Routes } from '@/routes';
 - import {
 -   ChevronDown,
 -   Cpu,
 -   File,
 -   Github,
 -   House,
 -   Library,
 -   MessageSquareText,
 -   Search,
 -   Star,
 -   Zap,
 - } from 'lucide-react';
 - import { useCallback, useMemo } from 'react';
 - import { useLocation } from 'umi';
 - 
 - export function Header() {
 -   const { t } = useTranslate('header');
 -   const { pathname } = useLocation();
 -   const navigate = useNavigateWithFromState();
 -   const { navigateToHome, navigateToProfile } = useNavigatePage();
 - 
 -   const tagsData = useMemo(
 -     () => [
 -       { path: Routes.Datasets, name: t('knowledgeBase'), icon: Library },
 -       { path: Routes.Chats, name: t('chat'), icon: MessageSquareText },
 -       { path: Routes.Search, name: t('search'), icon: Search },
 -       { path: Routes.Agent, name: t('flow'), icon: Cpu },
 -       { path: Routes.Files, name: t('fileManager'), icon: File },
 -     ],
 -     [t],
 -   );
 - 
 -   const options = useMemo(() => {
 -     return tagsData.map((tag) => {
 -       const HeaderIcon = tag.icon;
 - 
 -       return {
 -         label: (
 -           <div className="flex items-center gap-1">
 -             <HeaderIcon className="size-5"></HeaderIcon>
 -             <span>{tag.name}</span>
 -           </div>
 -         ),
 -         value: tag.path,
 -       };
 -     });
 -   }, [tagsData]);
 - 
 -   const currentPath = useMemo(() => {
 -     return (
 -       tagsData.find((x) => pathname.startsWith(x.path))?.path || Routes.Home
 -     );
 -   }, [pathname, tagsData]);
 - 
 -   const isHome = Routes.Home === currentPath;
 - 
 -   const handleChange = (path: SegmentedValue) => {
 -     navigate(path as Routes);
 -   };
 - 
 -   const handleLogoClick = useCallback(() => {
 -     navigate(Routes.Home);
 -   }, [navigate]);
 - 
 -   return (
 -     <section className="py-6 px-10 flex justify-between items-center border-b">
 -       <div className="flex items-center gap-4">
 -         <img
 -           src={'/logo.svg'}
 -           alt="logo"
 -           className="w-[100] h-[100] mr-[12]"
 -           onClick={handleLogoClick}
 -         />
 -         <Button
 -           variant="secondary"
 -           className="bg-colors-background-inverse-standard"
 -         >
 -           <Github />
 -           21.5k stars
 -           <Star />
 -         </Button>
 -       </div>
 -       <div className="flex gap-2 items-center">
 -         <Button
 -           variant={'icon'}
 -           size={'icon'}
 -           onClick={navigateToHome}
 -           className={cn({
 -             'bg-colors-background-inverse-strong': isHome,
 -           })}
 -         >
 -           <House
 -             className={cn({
 -               'text-colors-text-inverse-strong': isHome,
 -             })}
 -           />
 -         </Button>
 -         <div className="h-8 w-[1px] bg-colors-outline-neutral-strong"></div>
 -         <Segmented
 -           options={options}
 -           value={currentPath}
 -           onChange={handleChange}
 -           className="bg-colors-background-inverse-standard text-backgroundInverseStandard-foreground"
 -         ></Segmented>
 -       </div>
 -       <div className="flex items-center gap-4">
 -         <Container className="bg-colors-background-inverse-standard hidden xl:flex">
 -           V 0.13.0
 -           <Button variant="secondary" className="size-8">
 -             <ChevronDown />
 -           </Button>
 -         </Container>
 -         <Container className="px-3 py-2 bg-colors-background-inverse-standard">
 -           <Avatar
 -             className="w-[30px] h-[30px] cursor-pointer"
 -             onClick={navigateToProfile}
 -           >
 -             <AvatarImage src="https://github.com/shadcn.png" />
 -             <AvatarFallback>CN</AvatarFallback>
 -           </Avatar>
 -           <span className="max-w-14 truncate"> yifanwu92@gmail.com</span>
 -           <Button
 -             variant="destructive"
 -             className="py-[2px] px-[8px] h-[23px] rounded-[4px]"
 -           >
 -             <Zap />
 -             Pro
 -           </Button>
 -         </Container>
 -       </div>
 -     </section>
 -   );
 - }
 
 
  |