'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 }) toast.success('Returned to admin account') router.push('/admin/members') router.refresh() } catch (error) { toast.error(error instanceof Error ? error.message : 'Failed to end impersonation') } } return (