"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { useNotifications } from "@lynkd/messaging-inbox-sdk"; import { useUi } from "@/lib/ui-state"; import { relativeTime } from "@/lib/format"; import { AtSign, Heart, LifeBuoy, Bell, MessageSquare, X, CheckCheck } from "lucide-react"; const kindIcon: Record = { MENTION: AtSign, REACTION: Heart, SUPPORT_UPDATE: LifeBuoy, THREAD_REPLY: MessageSquare, SYSTEM: Bell, }; export function NotificationsPanel() { const { notifOpen, setNotifOpen } = useUi(); const { notifications } = useNotifications(); const router = useRouter(); const [readIds, setReadIds] = useState>(new Set()); if (!notifOpen) return null; const isRead = (id: string, base?: boolean) => base || readIds.has(id); const markAll = () => setReadIds(new Set(notifications.map((n) => n.id))); return (
setNotifOpen(false)}>
e.stopPropagation()}>
Notifications
{notifications.map((n) => { const Icon = kindIcon[n.kind] ?? Bell; const read = isRead(n.id, n.read); return ( ); })}
); }