"use client"

import { useTransition } from "react"
import { useRouter } from "next/navigation"

interface DeleteUserButtonProps {
  userName: string
  userEmail: string
  onDelete: () => Promise<{ success: boolean; error?: string }>
}

export function DeleteUserButton({ userName, userEmail, onDelete }: DeleteUserButtonProps) {
  const router = useRouter()
  const [isPending, startTransition] = useTransition()

  const handleClick = (e: React.MouseEvent) => {
    e.preventDefault()
    
    const confirmed = window.confirm(
      `Ești sigur că vrei să ștergi utilizatorul ${userName || userEmail}? Această acțiune este ireversibilă și va șterge toate datele asociate.`
    )

    if (confirmed) {
      startTransition(async () => {
        try {
          const result = await onDelete()
          if (result?.success) {
            router.push("/admin/users")
            router.refresh()
          } else {
            alert(result?.error || "A apărut o eroare la ștergerea utilizatorului.")
          }
        } catch (error) {
          console.error("Failed to delete user:", error)
          alert("A apărut o eroare la ștergerea utilizatorului.")
        }
      })
    }
  }

  return (
    <button
      type="button"
      disabled={isPending}
      onClick={handleClick}
      style={{
        padding: "0.65rem 1.5rem",
        background: "var(--danger)",
        color: "white",
        border: "none",
        borderRadius: "var(--radius-md)",
        fontWeight: 600,
        cursor: isPending ? "not-allowed" : "pointer",
        fontSize: "0.9rem",
        opacity: isPending ? 0.7 : 1,
      }}
    >
      {isPending ? "Se șterge..." : "Șterge utilizatorul definitiv"}
    </button>
  )
}
