import { useEffect } from 'react'; import { FormattedMessage } from 'react-intl'; import { Link } from 'react-router-dom'; import { useDispatch, useSelector } from 'react-redux'; import InventoryIcon from '@/material-icons/400-24px/inventory_2.svg?react'; import { fetchNotificationPolicy } from 'mastodon/actions/notifications'; import { Icon } from 'mastodon/components/icon'; import { toCappedNumber } from 'mastodon/utils/numbers'; export const FilteredNotificationsBanner = () => { const dispatch = useDispatch(); const policy = useSelector(state => state.get('notificationPolicy')); useEffect(() => { dispatch(fetchNotificationPolicy()); const interval = setInterval(() => { dispatch(fetchNotificationPolicy()); }, 120000); return () => { clearInterval(interval); }; }, [dispatch]); if (policy === null || policy.getIn(['summary', 'pending_notifications_count']) === 0) { return null; } return (
{toCappedNumber(policy.getIn(['summary', 'pending_notifications_count']))}
); };