'use client'
import * as React from 'react'
import { signOut } from '@admin/auth/client'
import { Button } from '@admin/components/ui/button'
import { DropdownMenuItem } from '@admin/components/ui/dropdown-menu'
import { Spinner } from '@admin/components/ui/spinner'
import { cn } from '@admin/utils/shared/cn'
import { LogOut } from 'lucide-react'
import { useRouter } from 'next/navigation'
export function AdminSignOut({
className,
mode = 'menu-item'
}: {
className?: string
mode?: 'menu-item' | 'button'
}) {
const router = useRouter()
const [isPending, startTransition] = React.useTransition()
function handleSignOut() {
startTransition(async () => {
await signOut()
router.push('/admin/login')
})
}
if (mode === 'button') {
return (
)
}
return (
{
handleSignOut()
}}
disabled={isPending}
aria-busy={isPending}
className={className}
>
{isPending ? 'Signing out…' : 'Sign out'}
{isPending ? : }
)
}