Currently, the NotificationsDropdown component only allows users to dismiss notifications one at a time by clicking each individually. There is no bulk action, which becomes frustrating when multiple notifications pile up. Additionally, the unread indicator on the bell icon is just a small red dot with no count — users have no idea how many unread notifications they have without opening the dropdown. This PR adds a "Mark all read" button in the dropdown header that calls a single Supabase .update().in() to mark all unread notifications as read in one round trip, then reflects that locally without a refetch. It also replaces the dot badge with a numeric bubble showing the exact count, capped at "9+" for cleanliness.
PLEASE ASSIGN THE ISSUE TO ME UNDER GSSOC'26
Currently, the NotificationsDropdown component only allows users to dismiss notifications one at a time by clicking each individually. There is no bulk action, which becomes frustrating when multiple notifications pile up. Additionally, the unread indicator on the bell icon is just a small red dot with no count — users have no idea how many unread notifications they have without opening the dropdown. This PR adds a "Mark all read" button in the dropdown header that calls a single Supabase .update().in() to mark all unread notifications as read in one round trip, then reflects that locally without a refetch. It also replaces the dot badge with a numeric bubble showing the exact count, capped at "9+" for cleanliness.
PLEASE ASSIGN THE ISSUE TO ME UNDER GSSOC'26