import { useContext, useMemo } from 'react'; import { HALF_A_SECOND } from '../constants.js'; import { Notification, NotificationsContext, } from '../providers/notifications/mod.js'; import { getExpiredItem } from '../utils/mod.js'; import { useConfig } from './useConfig.js'; import { useExtension } from './useExtension.js'; import { useInterval } from './useInterval.js'; export function useNotifications() { const { account } = useExtension(); const { addNotification, notifications, removeNotification } = useContext( NotificationsContext, ); const config = useConfig(); const parachainNotifications = useMemo(() => { if (!account) return []; return notifications ?? []; }, [notifications, account]); useInterval(() => { const expiredNotifications = getExpiredItem( parachainNotifications, config.notifications?.expiration, ); for (const notification of expiredNotifications) { removeNotification({ notificationId: notification.id }); } }, config.notifications?.checkInterval || HALF_A_SECOND); return { notifications: parachainNotifications, addNotification, removeNotification, }; }