"use client"; import { useState, useEffect, useRef } from "react"; import Link from "next/link"; import { ThemeToggle } from "@/app/components/ThemeToggle"; import { Copyable } from "./Copyable"; import { pbLogout } from "@/app/lib/pocketbase"; import styles from "./vip.module.css"; function getAvatarLetter(email: string): string { const local = email.split("@")[0]; if (!local) return "?"; return local.slice(0, 1).toUpperCase(); } type VipHeaderProps = { isLoggedIn: boolean; userName?: string | null; userEmail?: string | null; onLogout?: () => void; }; export function VipHeader({ isLoggedIn, userName, userEmail, onLogout }: VipHeaderProps) { const [open, setOpen] = useState(false); const ref = useRef(null); useEffect(() => { const handleClickOutside = (e: MouseEvent) => { if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false); }; document.addEventListener("mousedown", handleClickOutside); return () => document.removeEventListener("mousedown", handleClickOutside); }, []); const handleLogout = async () => { await pbLogout(); setOpen(false); onLogout?.(); }; const showUser = isLoggedIn || userEmail; const displayName = userName || userEmail || "δΌšε‘˜"; return (
🌍 εΌ‚εΊ¦ζ˜Ÿηƒ
); }