diff --git a/src/api/auth-api.ts b/src/api/auth-api.ts index 745e60d..1727cde 100644 --- a/src/api/auth-api.ts +++ b/src/api/auth-api.ts @@ -7,3 +7,7 @@ export async function login(loginRequest: LoginRequest): Promise { }) return data } + +export async function logout() { + await WebClient.get("/auth/logout") +} diff --git a/src/layout/hero-layout/index.tsx b/src/layout/hero-layout/index.tsx index d1ef79c..6607963 100644 --- a/src/layout/hero-layout/index.tsx +++ b/src/layout/hero-layout/index.tsx @@ -1,7 +1,10 @@ import { Outlet, Link } from "react-router-dom" import { useMemo } from "react" import dayjs from "dayjs" -import { useAppSelector } from "@/store" +import { Dropdown } from "antd" +import { AuthApi } from "@/api" +import { useAppDispatch, useAppSelector } from "@/store" +import { clearCurrentUser } from "@/store/auth-slice" /** * Main application component that serves as the root layout. @@ -10,6 +13,15 @@ import { useAppSelector } from "@/store" export default function HeroLayout() { const today = useMemo(() => dayjs(), []) const user = useAppSelector((state) => state.auth.user) + const dispatch = useAppDispatch() + + async function handleLogout() { + try { + await AuthApi.logout() + } finally { + dispatch(clearCurrentUser()) + } + } return (
@@ -36,9 +48,23 @@ export default function HeroLayout() { 改枪码 {user ? ( - - {user.username} - + + + {user.username} + + ) : (