'use client' import { useSession } from 'next-auth/react' import { useRouter } from 'next/navigation' import { trpc } from '@/lib/trpc/client' import { Button } from '@/components/ui/button' import { ArrowLeft, Loader2 } from 'lucide-react' import { toast } from 'sonner' export function ImpersonationBanner() { const { data: session, update } = useSession() const router = useRouter() const endImpersonation = trpc.user.endImpersonation.useMutation() if (!session?.user?.impersonating) return null const handleReturn = async () => { try { await endImpersonation.mutateAsync() await update({ endImpersonation: true }) // Full page navigation to ensure updated JWT cookie is sent window.location.href = '/admin/members' } catch (error) { toast.error(error instanceof Error ? error.message : 'Failed to end impersonation') } } return (
Impersonating {session.user.name || session.user.email}{' '} ({session.user.role.replace('_', ' ')})
) }