Skip to content

feat(notifications): implement /me/notifications with global unread sync#400

Closed
jaydendancer12 wants to merge 1 commit into
boundlessfi:mainfrom
jaydendancer12:fix/issue-396
Closed

feat(notifications): implement /me/notifications with global unread sync#400
jaydendancer12 wants to merge 1 commit into
boundlessfi:mainfrom
jaydendancer12:fix/issue-396

Conversation

@jaydendancer12

@jaydendancer12 jaydendancer12 commented Feb 23, 2026

Copy link
Copy Markdown

Implemented the new notifications experience for /me/notifications and wired it so unread state stays globally in sync across navigation surfaces.

What’s included

  • Added canonical notifications page at /me/notifications
  • Kept /notifications for compatibility and redirected it to /me/notifications
  • Introduced shared notification provider for global unread/read state consistency
  • Updated sidebar notification badge to use live shared unreadCount (removed hardcoded value)
  • Grouped feed into:
    • New
    • Earlier
    • Archived
  • Added section separators and empty states for each group
  • Clicking any notification opens BoundlessSheet with full content + metadata
  • Opening unread notifications marks them read immediately
  • Added Mark all as read at top of feed when unread items exist
  • Added Framer Motion transitions for:
    • unread indicator fade-out
    • mark-all button enter/exit

--

Technical changes

  • Added:

    • app/me/notifications/page.tsx
    • components/providers/notification-provider.tsx
  • Updated:

    • app/(landing)/notifications/page.tsx
    • app/providers.tsx
    • components/app-sidebar.tsx
    • components/nav-main.tsx
    • components/notifications/NotificationBell.tsx
    • components/notifications/NotificationDropdown.tsx
    • components/notifications/NotificationItem.tsx
    • components/notifications/NotificationList.tsx
    • hooks/use-notification-polling.ts
    • hooks/useNotifications.ts

--

Validation

  • Automated:

    • npm run lint
    • npm run build
  • Manual:

    • Page loads and renders notifications feed ✅
    • Polling path is active ✅
    • Notifications grouped into New, Earlier, Archived
    • Clicking notification opens BoundlessSheet with full details ✅
    • Opening notification marks as read in real time ✅
    • Sidebar unread badge updates immediately ✅
    • Mark all as read updates UI + count and animates out ✅
    • Empty states for all three sections render ✅
    • Escape key dismissal and expected sheet behavior confirmed ✅

--

Evidence

  • Notification center before receiving notification
Screenshot 2026-02-23 at 10 07 04
  • DevTools command used to simulate receiving notification
Screenshot 2026-02-23 at 10 03 56
  • Notification center after receiving notification
Screenshot 2026-02-23 at 10 07 23
  • Notification opened in sheet/detail view
Screenshot 2026-02-23 at 10 07 33

Closes #396

@0xdevcollins would you mind looking this over for me whenever you get the chance? Hope I could be a helping hand for your project!

@vercel

vercel Bot commented Feb 23, 2026

Copy link
Copy Markdown

@jaydendancer12 is attempting to deploy a commit to the Threadflow Team on Vercel.

A member of the Team first needs to authorize it.

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.

Implementation of "Notifications" Page

2 participants