From 85c058e95c04245dacf3ffb6b45a6eceb3253e7b Mon Sep 17 00:00:00 2001 From: shpuld Date: Fri, 28 Dec 2018 21:39:54 +0200 Subject: New routes, notifications, other impovements in side drwaer --- .../notification_utils/notification_utils.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/services/notification_utils/notification_utils.js (limited to 'src/services/notification_utils/notification_utils.js') diff --git a/src/services/notification_utils/notification_utils.js b/src/services/notification_utils/notification_utils.js new file mode 100644 index 00000000..f5ac0d47 --- /dev/null +++ b/src/services/notification_utils/notification_utils.js @@ -0,0 +1,20 @@ +import { filter, sortBy } from 'lodash' + +export const notificationsFromStore = store => store.state.statuses.notifications.data + +export const visibleTypes = store => ([ + store.state.config.notificationVisibility.likes && 'like', + store.state.config.notificationVisibility.mentions && 'mention', + store.state.config.notificationVisibility.repeats && 'repeat', + store.state.config.notificationVisibility.follows && 'follow' +].filter(_ => _)) + +export const visibleNotificationsFromStore = store => { + // Don't know why, but sortBy([seen, -action.id]) doesn't work. + let sortedNotifications = sortBy(notificationsFromStore(store), ({action}) => -action.id) + sortedNotifications = sortBy(sortedNotifications, 'seen') + return sortedNotifications.filter((notification) => visibleTypes(store).includes(notification.type)) +} + +export const unseenNotificationsFromStore = store => + filter(visibleNotificationsFromStore(store), ({seen}) => !seen) -- cgit v1.2.3-70-g09d2