import { getRegistrationDate, getExpirationDate, getDaysUntilExpiration, getOwnershipDuration, getOwnershipMonths, formatDate, isExpiringSoon, getRenewalProgress, getOwnershipDays } from '@/lib/domains/utils' import { registrars } from '@/lib/domains/data' import { domainVisualConfig } from '@/lib/domains/config' import { Shield, Tag, AlertCircle, ToggleLeft, ToggleRight, Activity } from 'lucide-react' import type { DomainDetailsProps } from '@/lib/types' export default function DomainDetails({ domain }: DomainDetailsProps) { const registrationDate = getRegistrationDate(domain) const expirationDate = getExpirationDate(domain) const daysUntilExpiration = getDaysUntilExpiration(domain) const ownershipYears = getOwnershipDuration(domain) const ownershipMonths = getOwnershipMonths(domain) const ownershipDays = getOwnershipDays(domain) const expiringSoon = isExpiringSoon(domain) const renewalProgress = getRenewalProgress(domain) const registrarConfig = registrars[domain.registrar] const statusVisual = domainVisualConfig.status[domain.status] const categoryVisual = domainVisualConfig.category[domain.category] const StatusIcon = statusVisual.icon const CategoryIcon = categoryVisual.icon return (

Status

{statusVisual.label}

Category

{categoryVisual.label}

Domain Lifecycle

Owned for {ownershipDays} days ({ownershipYears < 1 ? `${ownershipMonths} months` : `${ownershipYears} years`})
Registered Expires
{expiringSoon && (
)}
{formatDate(registrationDate)} 75 ? 'text-slate-400' : 'text-gray-400' }`}> {formatDate(expirationDate)}
{Math.floor(renewalProgress)}%
Period Used
{daysUntilExpiration}
Days Left
{expiringSoon && (
Domain expires soon
)}

Registrar

{registrarConfig && (
)} {domain.registrar}

Auto-Renewal

Tags

{domain.tags.map(tag => ( #{tag} ))}
) }