{/* Desktop Ledger Table (≥ 768px) */} {/* Mobile Adaptive Cards View (< 768px) */}
{invites.map((inv) => { const usesCount = inv.uses_count || 0; const maxUses = inv.max_uses; const isUnlimited = maxUses === null; const isExhausted = !isUnlimited && usesCount >= maxUses; const isExpired = new Date(inv.expires_at) < new Date(); const isActive = !isExhausted && !isExpired; return (
{inv.code}
{inv.app_name || "Global / Open"} • Role:{" "} {inv.role}
{isExhausted && ( Exhausted )} {isExpired && !isExhausted && ( Expired )} {isActive && Active}
Capacity:{" "} {isUnlimited ? "Unlimited" : `${usesCount} / ${maxUses}`} Expires: {new Date(inv.expires_at).toLocaleDateString()}
{!isUnlimited && (
)}
{isActive && ( )} {usesCount > 0 && ( )} {isActive && ( )}
); })}
{/* Redemptions Modal */}