"use client"; import { useSyncExternalStore } from "react"; import type { AppNotification } from "./store"; import { clearAll, getNotifications, getUnreadCount, markAllRead, markRead, removeNotification, subscribe, } from "./store"; const SERVER_NOTIFICATIONS: AppNotification[] = []; const SERVER_UNREAD_COUNT = 0; function subscribeAll(cb: () => void) { return subscribe(cb); } function getSnapshot() { return getNotifications(); } function getUnreadSnapshot() { return getUnreadCount(); } function getServerNotifications() { return SERVER_NOTIFICATIONS; } function getServerUnreadCount() { return SERVER_UNREAD_COUNT; } export function useNotifications() { const notifications = useSyncExternalStore( subscribeAll, getSnapshot, getServerNotifications ); const unreadCount = useSyncExternalStore( subscribeAll, getUnreadSnapshot, getServerUnreadCount ); return { notifications, unreadCount, markRead, markAllRead, clearAll, removeNotification, }; }