From cd228a3155e13b04aa2af389e6a6680e185db173 Mon Sep 17 00:00:00 2001 From: Bilal Godil Date: Fri, 17 Apr 2026 17:24:37 -0700 Subject: [PATCH] fix(dashboard): resolve UI issues across email-* pages - email-sent: stack the log table and domain reputation card vertically below lg breakpoint instead of crushing them side-by-side on mobile/tablet - email-settings: render managed-domain statuses through a human-readable label map so users don't see raw enums like "pending_dns" - email-themes: make the Select Theme dialog grid one column on mobile, two on sm+, instead of forcing cramped 2 columns everywhere - email-templates: allow the template name row to shrink and truncate so long names don't push the Edit button off-card - email-sent: annotate the boosted capacity label with an arrow and a "(boosted)" text marker so the red/blue strikethrough isn't the only cue - email-drafts: shrink the step connectors on mobile so the 4-step progress bar no longer overflows the viewport at 375px --- .../[draftId]/draft-progress-bar.tsx | 4 ++-- .../email-sent/domain-reputation-card.tsx | 20 ++++++++++++++----- .../[projectId]/email-sent/page-client.tsx | 2 +- .../email-settings/domain-settings.tsx | 10 +++++++++- .../email-templates/page-client.tsx | 10 +++++----- .../[projectId]/email-themes/page-client.tsx | 2 +- 6 files changed, 33 insertions(+), 15 deletions(-) diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/email-drafts/[draftId]/draft-progress-bar.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/email-drafts/[draftId]/draft-progress-bar.tsx index 4dddf3ba0f..f9b4d16569 100644 --- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/email-drafts/[draftId]/draft-progress-bar.tsx +++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/email-drafts/[draftId]/draft-progress-bar.tsx @@ -55,7 +55,7 @@ export function DraftProgressBar({ steps, currentStep, onStepClick, disableNavig {!isLast && ( -
+
{step.label} - {!isLast &&
} + {!isLast &&
}
); })} diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/email-sent/domain-reputation-card.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/email-sent/domain-reputation-card.tsx index 08fd771a52..d43c6fa3d7 100644 --- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/email-sent/domain-reputation-card.tsx +++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/email-sent/domain-reputation-card.tsx @@ -247,10 +247,20 @@ export function DomainReputationCard() { const capacityLabel = isBoostActive ? ( {hourlyUsed} of{" "} - {Math.round(baseHourlyCapacity)} - {" "} - {Math.round(hourlyCapacity)} - /h max + + {Math.round(baseHourlyCapacity)} + + {" \u2192 "} + + {Math.round(hourlyCapacity)} + + /h max (boosted) ) : ( `${hourlyUsed} of ${Math.round(hourlyCapacity)}/h max` @@ -260,7 +270,7 @@ export function DomainReputationCard() {
diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/email-sent/page-client.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/email-sent/page-client.tsx index 153092b8e8..9852d6bf38 100644 --- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/email-sent/page-client.tsx +++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/email-sent/page-client.tsx @@ -134,7 +134,7 @@ export default function PageClient() { title="Sent" description="View email logs and domain reputation" > -
+
{/* Left side: Email Log with toggle inside card */}
= { standard: "Custom SMTP", }; +const MANAGED_DOMAIN_STATUS_LABELS: Record = { + pending_dns: "Pending DNS records", + pending_verification: "Pending verification", + verified: "Verified", + applied: "Applied", + failed: "Failed", +}; + const VISIBLE_FIELDS: Record = { shared: [], managed: [], @@ -317,7 +325,7 @@ function ManagedEmailSetupDialog(props: { trigger: React.ReactNode }) { {domain.senderLocalPart}@{domain.subdomain} - Status: {domain.status} + Status: {(MANAGED_DOMAIN_STATUS_LABELS as Record)[domain.status] ?? domain.status} -
-
-
+
+
+
- + {template.displayName}
-
+