From 5e917152f6dfb9c45d5771471ae27ff521698ee0 Mon Sep 17 00:00:00 2001 From: Essem Date: Wed, 5 Mar 2025 01:01:01 -0600 Subject: [PATCH] Actually fix notifications --- src/modules/statuses.js | 1 - src/services/api/api.service.js | 7 +++++-- src/services/notification_utils/notification_utils.js | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/modules/statuses.js b/src/modules/statuses.js index 8845c2af..347cbecf 100644 --- a/src/modules/statuses.js +++ b/src/modules/statuses.js @@ -349,7 +349,6 @@ const addNewNotifications = (state, { dispatch, notifications, older, visibleNot // Only add a new notification if we don't have one for the same action if (!state.notifications.idStore.hasOwnProperty(notification.id)) { updateNotificationsMinMaxId(state, notification) - notification.seen = false state.notifications.data.push(notification) state.notifications.idStore[notification.id] = notification diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index 020ed670..ca8e97c1 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -775,7 +775,7 @@ const fetchTimeline = ({ let statusText = '' let pagination = {} - return fetch(url, { headers: authHeaders(credentials) }) + return markerPromise.then(() => fetch(url, { headers: authHeaders(credentials) })) .then((data) => { status = data.status statusText = data.statusText @@ -794,7 +794,10 @@ const fetchTimeline = ({ throw new Error(data.error) } if (!data.errors) { - if (isNotifications) data.map((val) => val.last_read = markers.last_read_id) + if (isNotifications) data = data.map((val) => { + val.last_read = markers.last_read_id + return val + }) return { data: data.map(isNotifications ? parseNotification : parseStatus), pagination } } else { data.status = status diff --git a/src/services/notification_utils/notification_utils.js b/src/services/notification_utils/notification_utils.js index fc5b4d8b..cc396951 100644 --- a/src/services/notification_utils/notification_utils.js +++ b/src/services/notification_utils/notification_utils.js @@ -1,4 +1,4 @@ -import { filter, sortBy, includes } from 'lodash' +import { filter, orderBy, includes } from 'lodash' import { muteWordHits } from '../status_parser/status_parser.js' import { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js' @@ -65,7 +65,7 @@ export const maybeShowNotification = (store, notification) => { export const filteredNotificationsFromStore = (store, types) => { // map is just to clone the array since sort mutates it and it causes some issues let sortedNotifications = notificationsFromStore(store).map(_ => _).sort(sortById) - sortedNotifications = sortBy(sortedNotifications, 'seen') + sortedNotifications = orderBy(sortedNotifications, 'id', 'desc') return sortedNotifications.filter( (notification) => (types || visibleTypes(store)).includes(notification.type) )