import {Avatar, Button, Dropdown, Empty, Input, type MenuProps, message, Modal, Space, theme} from "antd"; import { ArrowDownOutlined, ArrowUpOutlined, EnterOutlined, FullscreenExitOutlined, FullscreenOutlined, GithubOutlined, HomeOutlined, SearchOutlined, SettingOutlined, UserOutlined, VerticalLeftOutlined } from "@ant-design/icons"; import useGlobalStore from "@/stores/global"; import useAuthStore from "@/stores/user"; import {useTranslation} from "react-i18next"; import {useNavigate} from "react-router"; import {useState} from "react"; import LanguageSwitcher from "@/components/LanguageSwitcher"; import useMobile from "@/hooks/useMobile"; const {useToken} = theme; const HeaderLeftRender = () => { const {token} = useToken(); const {t} = useTranslation(); const navigate = useNavigate() const themeDrawer = useGlobalStore(state => state.themeDrawer); const setThemeDrawer = useGlobalStore(state => state.setThemeDrawer); const userInfo = useAuthStore(state => state.userinfo); const logout = useAuthStore(state => state.logout); const isMobile = useMobile(); const [fullscreen, setFullscreen] = useState(false); const [searchOpen, setSearch] = useState(false); /** 全屏按钮操作事件 */ const onFullscreenClick = () => { /* 获取 documentElement () 以全屏显示页面 */ const elem = document.documentElement; /* 全屏查看 */ if (document.fullscreenElement) { document.exitFullscreen().then(() => { setFullscreen(false); }); } else { elem.requestFullscreen().then(() => { setFullscreen(true); }); } }; const userItems: MenuProps['items'] = [ { key: '1', label: t('layout.profile'), icon: , onClick: () => navigate('/user/profile') }, { key: '2', label: t('layout.logout'), icon: , onClick: async () => { logout().then(() => { message.success(t('layout.logoutSuccess')) window.location.href = '/login'; }).catch(() => { message.error(t('layout.logoutFailed')) }) }, }, ] return ( <> setSearch(false)} >
}/>
{/* TODO 可以帮忙实现菜单栏搜索 */}
{t('layout.searchConfirm')} {t('layout.searchSwitch')} Esc {t('layout.searchClose')}
{ !isMobile && ( <> : null } ) } export default HeaderLeftRender