Skip to content

feat: add inbox page for GitHub notifications#125

Merged
stylessh merged 3 commits intomainfrom
stylessh/inbox-page
Apr 15, 2026
Merged

feat: add inbox page for GitHub notifications#125
stylessh merged 3 commits intomainfrom
stylessh/inbox-page

Conversation

@stylessh
Copy link
Copy Markdown
Owner

Summary

  • Adds a split-view Inbox page (Linear-style) with a notification list sidebar and a content preview pane that renders actual PR/Issue detail pages inline
  • Notifications show state-aware icons/colors (open/closed/merged), participant avatar stacks (author, assignees, reviewers, commenters), and support mark-as-read, mark-as-done, and archive actions with optimistic UI updates
  • Prefetches the next notification's detail data on selection for instant navigation
  • Fixes closed PR merge status display across PR detail header and user activity feed — branch refs and "wants to merge" text no longer show for closed-unmerged PRs

Changes

  • New: apps/dashboard/src/components/inbox/inbox-page.tsx — full inbox UI with InboxPage, InboxSidebar, InboxRow, InboxPreview, AvatarStack
  • New: apps/dashboard/src/routes/_protected/inbox.tsx — route definition
  • New: packages/icons/src/archive-down-icon.tsx — custom archive icon
  • Modified: github.functions.tsgetNotifications, markNotificationRead, markNotificationDone, markAllNotificationsRead server functions; fetches participants (commenters, reviewers) and subject state
  • Modified: github.types.tsNotificationItem, NotificationSubject, NotificationParticipant types
  • Modified: github.query.ts — notification query options
  • Modified: pull-detail-page.tsx / issue-detail-page.tsx — extracted reusable PullDetailContent / IssueDetailContent components
  • Modified: pull-detail-header.tsx — hide merge info for closed-unmerged PRs, show "merged into" for merged PRs
  • Modified: user-activity-feed.tsx — hide branch refs for closed-unmerged PRs
  • Modified: topbar + mobile nav — added Inbox nav item

Test plan

  • Navigate to /inbox and verify notifications load with correct state icons/colors
  • Click a PR notification — verify PR detail renders in preview pane
  • Click an Issue notification — verify Issue detail renders in preview pane
  • Verify avatar stack shows participants (hover for login tooltips)
  • Archive a notification — verify it animates out
  • Mark as read — verify unread dot disappears without removing the item
  • Switch between Unread/All filters
  • Use ellipsis menu to mark all as read / archive all read
  • Verify closed-unmerged PRs don't show "wants to merge" or branch refs
  • Verify merged PRs show "merged into" text

Adds a split-view inbox page (Linear-style) with notification list sidebar
and content preview pane that renders actual PR/Issue detail pages.

- Notification list with unread/all filter, mark as read/done, archive actions
- Avatar stack showing all participants (author, assignees, reviewers, commenters)
- Subject state-aware icons and colors (open/closed/merged)
- Prefetch next notification's data on selection for instant navigation
- Fix closed PR merge status display in detail header and activity feed
- Repo name in preview header links to repo overview
- Hoisted regexes and memoized components for performance
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 15, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
diffkit cd5abc9 Apr 15 2026, 12:38 AM

- Show blue dot on Inbox nav tab when unread notifications exist
- Remove bottom border from last inbox list item
@stylessh stylessh merged commit ca5c60e into main Apr 15, 2026
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.

1 participant