// Domain Dropdown + Add Domain modal + Manage Domains modal + Settings drawer const Badge = ({ kind }) => { const map = { TOP: { bg: '#3a2a08', color: '#F59E0B', border: '#5c3e08' }, NEW: { bg: '#0a3a33', color: '#14B8A6', border: '#0f5048' }, HOT: { bg: '#0c2a4a', color: '#60A5FA', border: '#1e3f6b' }, }; const s = map[kind]; return ( {kind} ); }; const DomainDropdown = ({ open, onClose, domains, currentDomain, onSelect, onAddDomain, onToggleFav, onShowDns, onReverify, onRemove }) => { const [query, setQuery] = React.useState(''); if (!open) return null; const filter = (list) => list.filter((d) => d.domain.includes(query.toLowerCase())); const customFiltered = filter(domains.custom); const sharedFiltered = filter(domains.shared); return ( <>
Each chip maps to a separate field in the registrar's UI (Type / Host / Mail Server / Priority).
dig {domain} MX +short
dig _tempmail.{domain} TXT +short
Enter the root domain you control. You'll add MX + TXT records next.
{error &&{error}
}Add these two records at your DNS provider.
Namecheap, Cloudflare, Route 53 — all the same fields: Type, Host, Value{`, `}Priority (MX only).
{error}
}@{domain} is active.
Messages will start flowing in immediately.
{value}
You haven't received any mail on any address yet.
Pick an address using N and have something send mail to it — it'll show up here.
| DOMAIN | EMAILS | ||
|---|---|---|---|
|
{isCurrent && }
{i.address.split('@')[0]}
|
@{i.domain} | {i.emailCount} | e.stopPropagation()}
data-kebab-menu
>
{menuOpenId === i.id && (
|
| DOMAIN | STATUS | ADDED | EMAILS | ACTIONS |
|---|---|---|---|---|
| @{d.domain} | {d.status === 'verified' ? ( VERIFIED ) : ( PENDING )} | {d.added} | {d.count} |
{d.status === 'pending' &&
|
Custom domains don't expire. Email retention is configurable per-domain.
{subtitle}
}