Skip to content

Wire the Dashboard 'What's New' panel to a real changelog source via WhatsNewContext #481

@Baskarayelu

Description

@Baskarayelu

📋 Description

The dashboard "What's New" surface is built from components/Dashboard/WhatsNewPanel.tsx, components/Dashboard/WhatsNewBadge.tsx, and lib/context/WhatsNewContext.tsx, with a changelog helper at lib/changelog.ts. The panel needs to read real changelog entries, track read/unread per user, and clear the badge once viewed.

Why this matters: an unread badge that never reflects real updates trains users to ignore it. A working changelog surface is how the product communicates new features (recurring sends, insurance) to existing users.

🎯 Requirements & Context

Functional requirements

  • Source changelog entries from lib/changelog.ts and expose them through WhatsNewContext.
  • Track last-seen entry id (persist to localStorage/preferences) so WhatsNewBadge shows unread count and clears on open.
  • Render entries (title, date, body) in WhatsNewPanel with newest first.
  • Empty state when there are no unseen entries.

Context & constraints

  • SSR-safe persistence (read on mount).
  • Keep the badge/panel visual design unchanged.

🛠️ Suggested Execution

git checkout -b feat/whats-new-changelog-wiring
  • Wire context to changelog, track read state, clear badge, add TSDoc.
npm run lint
npx tsc --noEmit
npm run test:coverage
npm run build
  • Edge cases: no entries, all read, new entry arrives, storage unavailable, reduced motion, mobile.
  • a11y: badge has accessible label with count; panel headings structured.
  • i18n: entry rendering locale-aware dates.

Example commit message

feat(dashboard): wire What's New panel to changelog + unread tracking

Sources entries from lib/changelog, tracks last-seen id in storage,
and clears the badge on open.

✅ Acceptance Criteria & Guidelines

Requirement Target
Real changelog entries rendered Required
Unread tracking + badge clear Required
Empty state Required
Persistence SSR-safe Required
Accessibility + responsive + i18n Required
Lint + typecheck + build clean Required
Timeframe 96 hours from assignment

💬 Community & Support

Join the RemitWise contributor community on Discord: https://discord.gg/CtQuPZFMA

Comment to claim before starting. 🚀

Metadata

Metadata

No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions