Notifications Menu

About this component

Notifications Menu

Topbar bell trigger with an unread count and a popover feed: icon rows with title, description, timestamp, unread dots, a mark-all-read action, and a scrollable list. Manages read state internally.

Usage

The import and the props worth knowing about, in one place.

import { NotificationsMenu } from "@/components/beste/component/notifications-menu";
import { UserPlus } from "lucide-react";

<NotificationsMenu
  notifications={[
    {
      id: "1",
      title: "New customer signed up",
      description: "Amara joined the Scale plan.",
      time: "2m ago",
      icon: UserPlus,
      unread: true,
    },
  ]}
  onSelect={(id) => console.log("open:", id)}
  onMarkAllRead={() => console.log("all read")}
/>

Keyboard and gestures

Every one of these is in the component already. They are listed because a props table cannot mention a gesture, so nothing else on this page can tell you they exist.

Enter / SpaceOpen the panel from the bell.
Arrow keysMove through the notifications.
EscapeClose and put focus back on the bell.
Mark all as readClears every unread mark at once and calls `onMarkAllRead`; the badge on the bell goes with them.

Props

Read from the component's own type, so this cannot drift from what it accepts.

PropTypeDefaultDescription
notifications*NotificationItem[]—
onSelect(id: string) => void—
onMarkAllRead() => void—
align"start" | "center" | "end"—
classNamestring—

More Dashboard components

View all Dashboard
8 AM10 AM12 PM2 PM4 PM6 PM

Atrium Loft

Floor 3 · 12 seats

Studio B

Floor 2 · 8 seats

Garden Room

Ground · 20 seats

Rooftop Deck

Level 5 · 40 seats