Notifications
Render unread indicators, popovers, and full notification panels in TanStack Router.
<NotificationBell/>
<NotificationBell /> is the compact header trigger for unread notifications. It reads the unread count, shows the badge when needed, and opens the notification popover.
export default function Header() { return ( <header className="flex items-center justify-end gap-3 border-b border-border px-6 py-4"> <NotificationBell /> </header> );}<NotificationPopover/>
<NotificationPopover /> is the dropdown-sized notification surface. It is the same content as the panel, just mounted as a floating popover instead of a full-width page block.
export default function Header() { return ( <div className="relative"> <NotificationPopover scope="all" /> </div> );}<NotificationPanel/>
<NotificationPanel /> is the full notification surface. It shows the inbox tabs, unread filter, bulk actions, and the notification list itself.
export default function NotificationsPage() { return <NotificationPanel fullWidth />;}›scope?: NotificationListParams['scope'] | undefined;
scope?: NotificationListParams['scope'] | undefined;Limits the notifications to a single scope or shows the aggregate inbox.
›onAction?: (payload: any) => void | undefined;
onAction?: (payload: any) => void | undefined;Called when the panel emits an action from a notification CTA.
›fullWidth?: boolean | undefined;
fullWidth?: boolean | undefined;Expands the panel to fill the available width instead of using the compact popover width.
›maxHeight?: string | undefined;
maxHeight?: string | undefined;Controls the maximum panel height when you embed it in a fixed surface.
›className?: string | undefined;
className?: string | undefined;Optional class name for custom styling.