refactor: Remove NavBarWrapper and update home page navigation

This commit is contained in:
wood chen 2025-02-22 00:43:03 +08:00
parent 263f62033f
commit a2964a177b
4 changed files with 30 additions and 25 deletions

View File

@ -18,12 +18,12 @@ import {
TypographyLead,
TypographyMuted,
} from "@/components/ui/typography";
import { NavBarWrapper } from "@/components/layout/nav-bar-wrapper";
import { NavBar } from "@/components/layout/nav-bar";
export default function HomePage() {
return (
<div className="flex min-h-screen flex-col">
<NavBarWrapper />
<NavBar />
<main className="flex-1">
<Section className="pb-0">
<Container>

View File

@ -1,6 +1,7 @@
import { redirect } from "next/navigation";
import { getCurrentUser } from "@/lib/session";
import { AuthStateSync } from "@/components/auth/auth-state-sync";
export default async function AuthLayout({
children,
@ -15,10 +16,13 @@ export default async function AuthLayout({
}
return (
<div className="min-h-screen">
<div className="flex h-screen w-screen flex-col items-center justify-center">
{children}
<>
<AuthStateSync />
<div className="min-h-screen">
<div className="flex h-screen w-screen flex-col items-center justify-center">
{children}
</div>
</div>
</div>
</>
);
}

View File

@ -0,0 +1,20 @@
"use client";
import { useEffect } from "react";
import { usePathname, useRouter } from "next/navigation";
import { useSession } from "next-auth/react";
export function AuthStateSync() {
const { data: session, status, update } = useSession();
const router = useRouter();
const pathname = usePathname();
useEffect(() => {
// 当状态从"loading"变为"authenticated"时,强制刷新路由
if (status === "authenticated" && session?.user) {
router.refresh();
}
}, [status, session]);
return null;
}

View File

@ -1,19 +0,0 @@
"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 <NavBar />;
}