Skip to content

Comments

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

Open
jaydendancer12 wants to merge 1 commit intoboundlessfi:mainfrom
jaydendancer12:fix/issue-396
Open

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

Conversation

@jaydendancer12
Copy link

@jaydendancer12 jaydendancer12 commented Feb 23, 2026

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
Copy link

vercel bot commented Feb 23, 2026

@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