Skip to content

Conversation

@jcscottiii
Copy link
Collaborator

Implements the new "Notification Channels" page, providing users with a centralized location to manage how they receive updates. This feature is a foundational step towards enabling subscriptions and personalized notifications.

Key changes include:

  • New Page Component: Adds a new page at /settings/notification-channels, accessible only to authenticated users.
  • Component Architecture: The page is composed of a main container and three distinct panel components for each notification type (Email, RSS, Webhook), following a composition-over-inheritance pattern.
  • Base Panel Component: A new reusable <webstatus-notification-panel> was created to ensure a consistent look and feel across all panels and to handle loading states gracefully with skeleton placeholders.
  • Email Channel Display: The page now fetches and displays the user's email notification channels, which are synced from their verified GitHub emails via the existing pingUser flow. A tooltip has been added to inform users of this behavior.
  • Coming Soon Placeholders: The RSS and Webhook panels are included as placeholders with "Coming soon" messages and disabled "Create" buttons, preparing the UI for future implementation.
  • Sidebar Refactoring: The main sidebar has been refactored to use a renderNavItem helper function for top-level links, improving code consistency. The "Notification Channels" link now appears as a top-level item under a "Settings" section that is only visible to logged-in users.
  • Testing: Comprehensive unit tests for the new page and all panel components have been added. A new end-to-end (Playwright) test ensures the page functions correctly for both authenticated and unauthenticated users, and includes visual regression snapshots.

Implements the new "Notification Channels" page, providing users with a centralized location to manage how they receive updates. This feature is a foundational step towards enabling subscriptions and personalized notifications.

Key changes include:
- **New Page Component:** Adds a new page at `/settings/notification-channels`, accessible only to authenticated users.
- **Component Architecture:** The page is composed of a main container and three distinct panel components for each notification type (Email, RSS, Webhook), following a composition-over-inheritance pattern.
- **Base Panel Component:** A new reusable `<webstatus-notification-panel>` was created to ensure a consistent look and feel across all panels and to handle loading states gracefully with skeleton placeholders.
- **Email Channel Display:** The page now fetches and displays the user's email notification channels, which are synced from their verified GitHub emails via the existing `pingUser` flow. A tooltip has been added to inform users of this behavior.
- **Coming Soon Placeholders:** The RSS and Webhook panels are included as placeholders with "Coming soon" messages and disabled "Create" buttons, preparing the UI for future implementation.
- **Sidebar Refactoring:** The main sidebar has been refactored to use a `renderNavItem` helper function for top-level links, improving code consistency. The "Notification Channels" link now appears as a top-level item under a "Settings" section that is only visible to logged-in users.
- **Testing:** Comprehensive unit tests for the new page and all panel components have been added. A new end-to-end (Playwright) test ensures the page functions correctly for both authenticated and unauthenticated users, and includes visual regression snapshots.
jcscottiii added a commit that referenced this pull request Jan 2, 2026
I had the gemini CLI examine some of its shortcomings while working on
#2152

It updated GEMINI.md with its learnings
@jcscottiii jcscottiii requested a review from jrobbins January 3, 2026 21:10
@jcscottiii jcscottiii linked an issue Jan 5, 2026 that may be closed by this pull request
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.

[Frontend] Build 'My Notification Channels' Management Page

1 participant