Skip to content

Polish Postmark Settings admin UI#2

Merged
drudge merged 1 commit intomainfrom
drudge/postmark-ui-polish
May 1, 2026
Merged

Polish Postmark Settings admin UI#2
drudge merged 1 commit intomainfrom
drudge/postmark-ui-polish

Conversation

@drudge
Copy link
Copy Markdown
Owner

@drudge drudge commented May 1, 2026

Summary

UI polish from end-to-end testing of v0.1.0 against a live Postmark account.

  • Persistent error banners for Send test email and Test connection failures — toasts auto-dismissed too quickly to read full Postmark API errors.
  • "Make active provider" button moved up next to the alert banner so the required action is immediately actionable.
  • "Test connection" grouped with the picker refresh buttons under a shared divider — they're all API health checks.
  • Stats widget rendering crash fixed — Block Kit's StatsBlock expects items: StatItem[], not stats: ... (the reference doc was misleading).
  • SubmittedSent to match Postmark's own dashboard vocabulary.
  • Added Failed stat card and red #DC2626 chart series so Postmark API rejections are visually distinct from recipient bounces.
  • Hide the Opened stat card and Opens table column when Track opens is off, so disabled metrics don't add noise.
  • Sent metric now counts only status === "sent" (in-flight, or terminal when no webhook). Previous behavior conflated "in-flight" with "all attempts."

Test plan

  • pnpm typecheck — clean
  • pnpm test — 110/110 pass
  • pnpm build — clean
  • Test against live Postmark account: trigger 401 (bad token), 422 (bad sender), and 200 success — confirm error banners persist with full message
  • Verify dashboard widget cards: Sent / Delivered / Bounced / Failed (red ▼) / Opened (only when Track opens is on)
  • Toggle Track opens off — confirm Opens column disappears from the recent deliveries table

Iterations from end-to-end testing against a live Postmark account:

- Surface persistent error banners for sendTestEmail and testConnection
  failures (toasts auto-dismissed too quickly to read full Postmark API
  errors).
- Move "Make active provider" button up next to the alert banner so the
  required action is immediately actionable instead of buried at the
  bottom of the form.
- Group "Test connection" with the picker refresh buttons under a
  shared divider — they're all API health-check actions.
- Fix stats widget rendering crash: Block Kit's StatsBlock expects
  `items: StatItem[]`, not `stats: ...` (Block Kit reference doc was
  misleading).
- Rename widget metric "Submitted" → "Sent" to match Postmark's own
  dashboard vocabulary.
- Add "Failed" stat card and a red `#DC2626` chart series so Postmark
  API rejections are visually distinct from recipient bounces.
- Hide the "Opened" stat card when Track opens is disabled — same for
  the "Opens" column in the recent deliveries table — so disabled
  metrics don't add noise.
- Sent metric now counts only rows with status=="sent" (in-flight or
  terminal-when-no-webhook), not all attempts. Previous behavior
  conflated the two.
@drudge drudge merged commit b560f41 into main May 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant