import { useEffect, useState } from 'react' import { Link } from 'react-router-dom' import { ChevronLeft, RefreshCw } from 'lucide-react' import { api } from '../../api/client' interface SubdomainItem { id: number subdomain: string domain: string accountId: number documentRoot: string status: string createdAt: string account: { username: string } } export default function Subdomains() { const [items, setItems] = useState([]) const [loading, setLoading] = useState(false) const fetchData = async () => { setLoading(true) try { const r = await api.get('/nixserver/accounts/subdomains') setItems(r.data.data) } finally { setLoading(false) } } useEffect(() => { fetchData() }, []) const statusColor: Record = { active: 'bg-emerald-500/10 text-emerald-400 border-emerald-500/20', inactive: 'bg-[#2a2d3e] text-[#64748b] border-[#2a2d3e]', } return (
Accounts / List Subdomains

List Subdomains

{items.length} subdomain{items.length !== 1 ? 's' : ''}

{['Subdomain', 'Full Domain', 'Username', 'Document Root', 'Status', 'Created'].map(h => ( ))} {loading && ( )} {!loading && items.map(sd => ( ))} {!loading && items.length === 0 && ( )}
{h}
Loading...
{sd.subdomain} {sd.domain} {sd.account.username} {sd.documentRoot} {sd.status} {new Date(sd.createdAt).toLocaleDateString()}
No subdomains found
) }