Skip to content

feat(admin): dead-letter queue improvements - #1302

Merged
pope-h merged 1 commit into
Shelterflex:mainfrom
Devadakene:feature/dead-letter-queue-ui
Jun 30, 2026
Merged

feat(admin): dead-letter queue improvements#1302
pope-h merged 1 commit into
Shelterflex:mainfrom
Devadakene:feature/dead-letter-queue-ui

Conversation

@Devadakene

Copy link
Copy Markdown

this PR closes #1272

Summary

This PR enhances the operator dashboard's dead-letter queue outbox UI. It migrates the custom card list to a semantically correct, accessible HTML table, synchronizes filter and pagination states with the URL parameters, and introduces Radix-based confirmation dialogs to prevent accidental bulk-retries or record dismissals.

Linked issue (recommended)

Closes #1272

Changes

  • frontend/app/dashboard/admin/outbox/page.tsx
    • Wrapped page contents in a Suspense boundary to handle client-side useSearchParams safely during builds.
    • Linked pagination and filters directly to Next.js URL query parameters (page, eventType, dateFrom, dateTo).
    • Replaced standard browser confirmations with Radix UI-based <AlertDialog> components for individual retries, bulk retries, and dismiss actions.
    • Integrated loading indicators and disabled action triggers when operations are in-flight to ensure idempotency.
  • frontend/components/admin/DeadLetterTable.tsx
    • Converted the card-based layout to a semantic <table> layout utilizing the shared @/components/ui/table components.
    • Implemented expandable rows for displaying structured event payloads and failure stacks.
    • Added proper ARIA attributes, landmarks, and keyboard operability (allowing Enter or Space to toggle expanded payload views).
  • frontend/components/admin/DeadLetterFilters.tsx
    • Integrated the shared Input and Label primitives to visually polish the filters and maintain alignment with the design system.

Contract Upgrade Details (if applicable)

Not applicable.

How to test

  • All automated tests pass
  • Manual testing completed (describe what you tested):
    • Verified filter state changes are reflected in the URL parameters and load appropriately when copying/pasting URLs.
    • Checked that clicking "Retry", "Bulk Retry", and "Dismiss" prompts the custom <AlertDialog> validation overlay.
    • Checked accessibility tags and keyboard operability (toggling row details with space/enter).

Security Considerations

  • No secrets or sensitive data are logged
  • No changes to authentication/authorization logic without review
  • No changes to admin/upgrade logic without review

Screenshots (if UI)

Dead-Letter Queue Table & Filters View

Includes visual neo-brutalist table semantics, event type badges, and action buttons.
(Insert screenshot of the table dashboard)

Expandable Payload Preview

Shows full JSON payload detail and full error track for failed messages.
(Insert screenshot showing the expanded payload row)

Safe Confirmation Overlays

Confirmation dialog for bulk-retry and dismiss operations.
(Insert screenshots of the confirmation alert dialogs)

Checklist

  • I linked an issue (or explained why one is not needed)
  • I tested locally
  • I did not commit secrets
  • I updated docs if needed
  • Code follows the project's style guidelines
  • CI checks pass
  • If UI changes: I included before/after screenshots
  • If images added/changed: I verified they are optimized and accessible

@vercel

vercel Bot commented Jun 30, 2026

Copy link
Copy Markdown

Someone is attempting to deploy a commit to the pope-h's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Jun 30, 2026

Copy link
Copy Markdown

@Devadakene Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@pope-h
pope-h merged commit 24a6960 into Shelterflex:main Jun 30, 2026
3 of 4 checks 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.

Frontend: Admin dead-letter queue UI with safe retry/discard

2 participants