From 92f1d739b554b6d5496013fb50196a14434943e2 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 19 May 2021 23:51:05 +0200 Subject: [PATCH] Fix unread notification count when polling (#16272) * Fix unread notification count when polling Fixes #16236 * Immediately fetch markers to avoid incorrect unread notification count --- app/javascript/mastodon/features/ui/index.js | 2 +- app/javascript/mastodon/reducers/notifications.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.js index 2b9fe1603..c1c6ac739 100644 --- a/app/javascript/mastodon/features/ui/index.js +++ b/app/javascript/mastodon/features/ui/index.js @@ -361,9 +361,9 @@ class UI extends React.PureComponent { this.props.dispatch(closeOnboarding()); } + this.props.dispatch(fetchMarkers()); this.props.dispatch(expandHomeTimeline()); this.props.dispatch(expandNotifications()); - setTimeout(() => this.props.dispatch(fetchMarkers()), 500); setTimeout(() => this.props.dispatch(fetchFilters()), 500); this.hotkeys.__mousetrap__.stopCallback = (e, element) => { diff --git a/app/javascript/mastodon/reducers/notifications.js b/app/javascript/mastodon/reducers/notifications.js index 1d4874717..b587b6d0f 100644 --- a/app/javascript/mastodon/reducers/notifications.js +++ b/app/javascript/mastodon/reducers/notifications.js @@ -106,7 +106,7 @@ const expandNormalizedNotifications = (state, notifications, next, isLoadingRece } if (shouldCountUnreadNotifications(state)) { - mutable.update('unread', unread => unread + items.count(item => compareId(item.get('id'), lastReadId) > 0)); + mutable.set('unread', mutable.get('pendingItems').count(item => item !== null) + mutable.get('items').count(item => item && compareId(item.get('id'), lastReadId) > 0)); } else { const mostRecent = items.find(item => item !== null); if (mostRecent && compareId(lastReadId, mostRecent.get('id')) < 0) {