'use client' import { getExpirationDate, getDaysUntilExpiration, getOwnershipDuration, getOwnershipMonths, isExpiringSoon, formatDate, getNextRenewalDate } from '@/lib/domains/utils' import Link from 'next/link' import { Calendar, Clock, ChevronRight, RefreshCw } from 'lucide-react' import type { DomainCardProps } from '@/lib/types' import { domainVisualConfig } from '@/lib/domains/config' export default function DomainCard({ domain }: DomainCardProps) { const expirationDate = getExpirationDate(domain) const nextRenewalDate = getNextRenewalDate(domain) const daysUntilExpiration = getDaysUntilExpiration(domain) const ownershipYears = getOwnershipDuration(domain) const ownershipMonths = getOwnershipMonths(domain) const expiringSoon = isExpiringSoon(domain) const statusVisual = domainVisualConfig.status[domain.status] const categoryVisual = domainVisualConfig.category[domain.category] const StatusIcon = statusVisual.icon return (
{expiringSoon && (
)}

{domain.domain}

{domain.usage}

{categoryVisual.label} {domain.registrar} {domain.autoRenew && ( <> Auto-renew )}
{ownershipYears < 1 ? `${ownershipMonths}mo owned` : `${ownershipYears}y owned`}
{expiringSoon ? `${daysUntilExpiration}d left` : formatDate(expirationDate)}
Next renewal: {formatDate(nextRenewalDate)}
) }