diff options
| author | HJ <spam@hjkos.com> | 2019-02-25 20:08:45 +0000 |
|---|---|---|
| committer | HJ <spam@hjkos.com> | 2019-02-25 20:08:45 +0000 |
| commit | d5348c13ff542ae77c3c87e381dc54f5e7619acc (patch) | |
| tree | 36cf96b098d62b20ca3b8d595e38d43aa0cf797b /src | |
| parent | fef0981bc400199c4466581f9bd16724d993782f (diff) | |
| parent | 7dbbd8e27028e7526154542d210c4f6452d5e433 (diff) | |
Merge branch 'issue-380-noification-unread' into 'develop'
#380: fix false alarm for unread notifications
Closes #380
See merge request pleroma/pleroma-fe!614
Diffstat (limited to 'src')
| -rw-r--r-- | src/modules/statuses.js | 2 | ||||
| -rw-r--r-- | src/services/notifications_fetcher/notifications_fetcher.service.js | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/modules/statuses.js b/src/modules/statuses.js index fd850d1a..826b544c 100644 --- a/src/modules/statuses.js +++ b/src/modules/statuses.js @@ -303,6 +303,8 @@ const addNewNotifications = (state, { dispatch, notifications, older, visibleNot setTimeout(notification.close.bind(notification), 5000) } } + } else if (notification.seen) { + state.notifications.idStore[notification.id].seen = true } }) } diff --git a/src/services/notifications_fetcher/notifications_fetcher.service.js b/src/services/notifications_fetcher/notifications_fetcher.service.js index b69ec643..3ecdae6a 100644 --- a/src/services/notifications_fetcher/notifications_fetcher.service.js +++ b/src/services/notifications_fetcher/notifications_fetcher.service.js @@ -16,7 +16,17 @@ const fetchAndUpdate = ({store, credentials, older = false}) => { args['until'] = timelineData.minId } } else { - args['since'] = timelineData.maxId + // load unread notifications repeadedly to provide consistency between browser tabs + const notifications = timelineData.data + const unread = notifications.filter(n => !n.seen).map(n => n.id) + if (!unread.length) { + args['since'] = timelineData.maxId + } else { + args['since'] = Math.min(...unread) - 1 + if (timelineData.maxId !== Math.max(...unread)) { + args['until'] = Math.max(...unread, args['since'] + 20) + } + } } args['timeline'] = 'notifications' |
