diff --git a/components/notification/NotificationPaginator.vue b/components/notification/NotificationPaginator.vue index c6c3b531..5b3d7a3a 100644 --- a/components/notification/NotificationPaginator.vue +++ b/components/notification/NotificationPaginator.vue @@ -131,7 +131,21 @@ function preprocess(items: NotificationSlot[]): NotificationSlot[] { flattenedNotifications.push(item) } } - return groupItems(flattenedNotifications) + + // extract indices of notifications with filtered statuses + const isStrict = (filter: mastodon.v1.FilterResult) => filter.filter.filterAction === 'hide' && filter.filter.context.includes('notifications') + const filteredIndices = flattenedNotifications + .map((item, index) => ({ + status: item.status, + index, + })) + .filter(item => !item.status?.filtered?.find(isStrict)) + .map(item => item.index) + + // group the filtered elements given the indices + return groupItems( + flattenedNotifications.filter((item, index) => !filteredIndices.includes(index)), + ) } const { clearNotifications } = useNotifications()