import { Layout, Button, Dropdown, theme, Flex } from 'antd'; import { SearchOutlined, UserOutlined, MenuUnfoldOutlined, LogoutOutlined } from '@ant-design/icons'; import { memo, useState } from 'react'; import SearchDialog from './SearchDialog.tsx'; import { authApi } from '../api/auth.ts'; import { useNavigate } from 'react-router'; const { Header } = Layout; export interface TopHeaderProps { collapsed: boolean; onToggle(): void; } const TopHeader = memo(function TopHeader({ collapsed, onToggle }: TopHeaderProps) { const { token } = theme.useToken(); const [searchOpen, setSearchOpen] = useState(false); const navigate = useNavigate(); const handleLogout = () => { authApi.logout(); navigate('/login', { replace: true }); }; return (
{collapsed && ( setSearchOpen(false)} /> , onClick: handleLogout } ] }} >
); }); export default TopHeader;