"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { Eye, Loader2 } from "lucide-react"; import { authClient } from "@/lib/auth/auth-client"; /** * Sticky banner shown while an admin is impersonating a user. Reads the live * session; renders nothing for normal sessions. "Stop" ends impersonation and * returns to the admin surface. */ export function ImpersonationBanner() { const { data: session } = authClient.useSession(); const router = useRouter(); const [busy, setBusy] = useState(false); // `impersonatedBy` is set on the session row by the better-auth admin plugin. const impersonatedBy = session?.session ? (session.session as { impersonatedBy?: string | null }).impersonatedBy : null; if (!impersonatedBy) return null; const who = session?.user?.email ?? session?.user?.name ?? "this user"; async function stop() { setBusy(true); try { await authClient.admin.stopImpersonating(); } finally { router.push("/admin"); router.refresh(); } } return (