Skip to content

feat(admin): build email preview, analytics, blockchain replay, and content management pages - #1432

Open
Grace-CODE-D wants to merge 4 commits into
solutions-plug:mainfrom
Grace-CODE-D:feat/admin-dashboard-pages-1396-1399
Open

feat(admin): build email preview, analytics, blockchain replay, and content management pages#1432
Grace-CODE-D wants to merge 4 commits into
solutions-plug:mainfrom
Grace-CODE-D:feat/admin-dashboard-pages-1396-1399

Conversation

@Grace-CODE-D

Copy link
Copy Markdown
Contributor

Description

This PR resolves issues #1396, #1397, #1398, and #1399 by implementing four core Admin Dashboard pages and supporting design primitives:

  1. Email Template Preview & Test-Send Page ([Admin Dashboard] Build email template preview and test-send page #1396)

    • Path: frontend/src/app/admin/email/preview/page.tsx
    • Consumes GET /api/v1/email/preview/:template_name and POST /api/v1/email/test.
    • Renders template HTML inside a sandboxed <iframe> (sandbox="" via srcDoc) to ensure isolation and prevent XSS risks while permitting external resources (images/fonts) to load safely.
    • Includes template selector, subject inspector, HTML/Text/Source view toggles, and live test-send dispatching.
  2. Email Delivery Analytics Page ([Admin Dashboard] Build email analytics page #1397)

    • Path: frontend/src/app/admin/email/analytics/page.tsx
    • Consumes GET /api/v1/email/analytics to display open, click, delivery, and bounce rates.
    • Strictly guards against division-by-zero on zero-send periods or fresh deployments by safely returning 0% / N/A without NaN or Infinity.
    • Provides time window and template filtering along with summary KPI metric cards and daily breakdown data tables.
  3. Blockchain Replay / Admin Tooling Page ([Admin Dashboard] Build blockchain replay/admin tooling page #1398)

    • Path: frontend/src/app/admin/blockchain/replay/page.tsx
    • Consumes POST /api/blockchain/replay for state-mutating event replays.
    • Uses the modal component with backdrop-dismiss disabled (disableBackdropDismiss={true}) and requires typing an explicit confirmation phrase (CONFIRM REPLAY).
    • Fully disables action inputs and controls for unauthorized admin sessions lacking the blockchain:replay permission tier.
  4. Content Management Page ([Admin Dashboard] Build content management page #1399)

    • Path: frontend/src/app/admin/content/page.tsx
    • Consumes GET/POST /api/v1/content using form primitives (Form, FormField, Input, Textarea, Button).
    • Surfaces server field-level validation errors directly on invalid fields while keeping the admin's draft edits intact without discarding state on validation failure.
  5. Shared Admin Primitives & Layout


Closes #1396
Closes #1397
Closes #1398
Closes #1399

@drips-wave

drips-wave Bot commented Aug 27, 2026

Copy link
Copy Markdown

@Grace-CODE-D 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant