diff --git a/src/api/index.ts b/src/api/index.ts index f050a7f..f84b964 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -40,8 +40,8 @@ axios.interceptors.response.use( duration: 5 * 1000 }); if ([-401].includes(res.code)) { - const { logout } = useUser(); - logout(); + const { logoutHooks } = useUser(); + logoutHooks(); } return Promise.reject(new Error(res.msg || 'Error')); } diff --git a/src/components/NavBar/index.tsx b/src/components/NavBar/index.tsx index 5a8b8a2..55984b4 100644 --- a/src/components/NavBar/index.tsx +++ b/src/components/NavBar/index.tsx @@ -3,18 +3,11 @@ import { Avatar, Dropdown, Menu, - Divider, - Message, Button } from '@arco-design/web-react'; import { - IconUser, IconSettings, IconPoweroff, - IconExperiment, - IconDashboard, - IconInteraction, - IconTag, IconLoading } from '@arco-design/web-react/icon'; import { useSelector, useDispatch } from 'react-redux'; @@ -26,9 +19,11 @@ import styles from './style/index.module.less'; import useStorage from '@/utils/useStorage'; import { generatePermission } from '@/routes'; import logoImage from '@/public/assets/logo.png'; +import useUser from '@/hooks/user'; function Navbar({ show }: { show: boolean }) { const t = useLocale(); + const { logoutHooks } = useUser(); const { userInfo, userLoading } = useSelector((state: GlobalState) => state); const dispatch = useDispatch(); @@ -37,18 +32,13 @@ function Navbar({ show }: { show: boolean }) { const { setLang, lang, theme, setTheme } = useContext(GlobalContext); - function logout() { + function handleLogout() { setUserStatus('logout'); - window.location.href = '/login'; + logoutHooks() } function onMenuItemClick(key) { - if (key === 'logout') { - logout(); - } - else { - Message.info(`You clicked ${key}`); - } + handleLogout(); } useEffect(() => { @@ -82,48 +72,6 @@ function Navbar({ show }: { show: boolean }) { const droplist = (