import { useState } from 'react' import { Link } from 'react-router-dom' import { ChevronLeft, Trash2, AlertTriangle } from 'lucide-react' import { api } from '../../api/client' import AccountPicker, { type PickedAccount } from './AccountPicker' export default function Terminate() { const [selected, setSelected] = useState(null) const [confirm, setConfirm] = useState('') const [removeFiles, setRemoveFiles] = useState(false) const [loading, setLoading] = useState(false) const [message, setMessage] = useState('') const [error, setError] = useState('') const handleTerminate = async () => { if (!selected) return setLoading(true); setMessage(''); setError('') try { await api.delete(`/nixserver/accounts/${selected.id}`, { data: { removeFiles } }) setMessage(`Account "${selected.username}" has been terminated.`) setSelected(null) setConfirm('') } catch (e: unknown) { setError((e as { response?: { data?: { error?: string } } })?.response?.data?.error ?? 'Action failed') } finally { setLoading(false) } } const canTerminate = selected && confirm === selected.username return (
Accounts / Terminate Accounts

Terminate Accounts

Permanently terminate a hosting account. This action cannot be undone.

{ setSelected(acc); setConfirm('') }} selected={selected} /> {selected && (

Warning: Irreversible Action

Terminating {selected.username} will permanently delete the account, DNS zones, email accounts, databases, and SSL certificates.

setConfirm(e.target.value)} placeholder={selected.username} className="w-full bg-[#0f1117] border border-[#2a2d3e] text-white text-sm rounded-lg px-3 py-2 focus:outline-none focus:border-red-500" />
)} {message && (

{message}

)} {error && (

{error}

)}
) }