diff options
| author | Shpuld Shpludson <shp@cock.li> | 2018-12-31 17:35:31 +0000 |
|---|---|---|
| committer | Shpuld Shpludson <shp@cock.li> | 2018-12-31 17:35:31 +0000 |
| commit | 76cfb15b3c76531b7c3da0261720d13004c8cfdd (patch) | |
| tree | 12d63c530bc9080c8d7449a5f393d0549355b288 /src/services/notification_utils/notification_utils.js | |
| parent | 7aa42c01eb5f05c2e3ed71fc52be6a30e45802bf (diff) | |
| parent | ace042015e77e507d6323c493596943dd8c657bb (diff) | |
Merge branch 'feature/replace-panel-switcher' into 'develop'
Mobile side drawer
See merge request pleroma/pleroma-fe!443
Diffstat (limited to 'src/services/notification_utils/notification_utils.js')
| -rw-r--r-- | src/services/notification_utils/notification_utils.js | 20 |
1 files changed, 20 insertions, 0 deletions
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) |
