lbry-desktop/ui/redux/selectors/notifications.js

39 lines
1.1 KiB
JavaScript
Raw Normal View History

import { createSelector } from 'reselect';
export const selectState = state => state.notifications || {};
2020-07-23 16:22:57 +02:00
export const selectNotifications = createSelector(selectState, state => state.notifications);
export const selectIsFetchingNotifications = createSelector(selectState, state => state.fetchingNotifications);
export const selectUnreadNotificationCount = createSelector(selectNotifications, notifications => {
return notifications ? notifications.filter(notification => !notification.is_read).length : 0;
});
2020-08-21 21:44:54 +02:00
export const selectUnseenNotificationCount = createSelector(selectNotifications, notifications => {
return notifications ? notifications.filter(notification => !notification.is_seen).length : 0;
});
export const selectToast = createSelector(selectState, state => {
if (state.toasts.length) {
const { id, params } = state.toasts[0];
return {
id,
...params,
};
}
return null;
});
export const selectError = createSelector(selectState, state => {
if (state.errors.length) {
const { error } = state.errors[0];
return {
error,
};
}
return null;
});