"use client" import { useState } from "react" interface DeleteTournamentButtonProps { tournamentId: number tournamentName: string matchCount: number } export function DeleteTournamentButton({ tournamentId, tournamentName, matchCount }: DeleteTournamentButtonProps) { const [isOpen, setIsOpen] = useState(false) const [isDeleting, setIsDeleting] = useState(false) const [deleteOption, setDeleteOption] = useState<'delete' | 'orphan'>('orphan') const handleDelete = async () => { setIsDeleting(true) try { const response = await fetch(`/api/tournaments/${tournamentId}`, { method: "DELETE", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ deleteMatches: deleteOption === 'delete', }), }) if (!response.ok) { try { const errorData = await response.json() alert(`Error: ${errorData.error || 'Failed to delete tournament'}`) } catch { alert(`Error: ${response.status} ${response.statusText}`) } return } const data = await response.json() if (data.success) { alert(`Tournament "${tournamentName}" deleted successfully!`) window.location.href = "/admin/tournaments" } else { alert(`Error: ${data.error}`) } } catch (err: unknown) { alert(`Error: ${err instanceof Error ? err.message : 'Unknown error occurred'}`) } finally { setIsDeleting(false) setIsOpen(false) } } return ( <> {isOpen && (

Delete Tournament: {tournamentName}

This tournament has {matchCount} game{matchCount !== 1 ? 's' : ''} associated with it.

)} ) }