diff --git a/src/app/()/page.tsx b/src/app/()/page.tsx index afc01bf..0b8c636 100644 --- a/src/app/()/page.tsx +++ b/src/app/()/page.tsx @@ -18,12 +18,12 @@ import { TypographyLead, TypographyMuted, } from "@/components/ui/typography"; -import { NavBar } from "@/components/layout/nav-bar"; +import { NavBarWrapper } from "@/components/layout/nav-bar-wrapper"; export default function HomePage() { return (
- +
diff --git a/src/components/layout/nav-bar-wrapper.tsx b/src/components/layout/nav-bar-wrapper.tsx new file mode 100644 index 0000000..b338c55 --- /dev/null +++ b/src/components/layout/nav-bar-wrapper.tsx @@ -0,0 +1,19 @@ +"use client"; + +import { useEffect } from "react"; +import { usePathname, useRouter } from "next/navigation"; + +import { NavBar } from "./nav-bar"; + +export function NavBarWrapper() { + const router = useRouter(); + const pathname = usePathname(); + + useEffect(() => { + if (pathname?.startsWith("/dashboard") || pathname?.startsWith("/admin")) { + router.refresh(); + } + }, [pathname, router]); + + return ; +} diff --git a/src/components/layout/nav-bar.tsx b/src/components/layout/nav-bar.tsx index b32deaa..3229aa7 100644 --- a/src/components/layout/nav-bar.tsx +++ b/src/components/layout/nav-bar.tsx @@ -21,18 +21,11 @@ import { ThemeToggle } from "../theme-toggle"; import { Button } from "../ui/button"; export function NavBar() { - const { data: session, status, update } = useSession(); + const { data: session, status } = useSession(); const router = useRouter(); const pathname = usePathname(); const user = session?.user; - // 在 dashboard 或 admin 页面时强制刷新一次 session - useEffect(() => { - if (pathname?.startsWith("/dashboard") || pathname?.startsWith("/admin")) { - update(); - } - }, [pathname, update]); - const handleSignOut = async () => { await signOut({ redirect: false }); router.refresh();