30 lines
930 B
TypeScript
30 lines
930 B
TypeScript
"use client";
|
|
|
|
import { useSession, signOut } from "next-auth/react";
|
|
import { Button } from "@/components/ui/button";
|
|
import { LogOut, User } from "lucide-react";
|
|
|
|
export function Header() {
|
|
const { data: session } = useSession();
|
|
|
|
return (
|
|
<header className="flex h-16 items-center justify-between border-b bg-white px-6 dark:bg-slate-950">
|
|
<h1 className="text-lg font-semibold">GEO Platform</h1>
|
|
<div className="flex items-center gap-4">
|
|
<div className="flex items-center gap-2 text-sm text-muted-foreground">
|
|
<User className="h-4 w-4" />
|
|
<span>{session?.user?.name || session?.user?.email || "用户"}</span>
|
|
</div>
|
|
<Button
|
|
variant="ghost"
|
|
size="sm"
|
|
onClick={() => signOut({ callbackUrl: "/login" })}
|
|
>
|
|
<LogOut className="mr-2 h-4 w-4" />
|
|
退出登录
|
|
</Button>
|
|
</div>
|
|
</header>
|
|
);
|
|
}
|