diff --git a/app/soapbox/actions/notifications.js b/app/soapbox/actions/notifications.js
index ce7e5eca0..66918c698 100644
--- a/app/soapbox/actions/notifications.js
+++ b/app/soapbox/actions/notifications.js
@@ -98,7 +98,7 @@ export function updateNotificationsQueue(notification, intlMessages, intlLocale,
const isOnNotificationsPage = curPath === '/notifications';
- if (notification.type === 'mention') {
+ if (['mention', 'status'].includes(notification.type)) {
const regex = regexFromFilters(filters);
const searchIndex = notification.status.spoiler_text + '\n' + unescapeHTML(notification.status.content);
filtered = regex && regex.test(searchIndex);
@@ -170,7 +170,7 @@ export function dequeueNotifications() {
const excludeTypesFromSettings = getState => getSettings(getState()).getIn(['notifications', 'shows']).filter(enabled => !enabled).keySeq().toJS();
const excludeTypesFromFilter = filter => {
- const allTypes = ImmutableList(['follow', 'follow_request', 'favourite', 'reblog', 'mention', 'poll', 'move', 'pleroma:emoji_reaction']);
+ const allTypes = ImmutableList(['follow', 'follow_request', 'favourite', 'reblog', 'mention', 'status', 'poll', 'move', 'pleroma:emoji_reaction']);
return allTypes.filterNot(item => item === filter).toJS();
};
diff --git a/app/soapbox/features/notifications/components/filter_bar.js b/app/soapbox/features/notifications/components/filter_bar.js
index 05e182146..d443205a7 100644
--- a/app/soapbox/features/notifications/components/filter_bar.js
+++ b/app/soapbox/features/notifications/components/filter_bar.js
@@ -15,6 +15,7 @@ const messages = defineMessages({
follows: { id: 'notifications.filter.follows', defaultMessage: 'Follows' },
moves: { id: 'notifications.filter.moves', defaultMessage: 'Moves' },
emoji_reacts: { id: 'notifications.filter.emoji_reacts', defaultMessage: 'Emoji reacts' },
+ statuses: { id: 'notifications.filter.statuses', defaultMessage: 'Updates from people you follow' },
});
export default @injectIntl
@@ -80,6 +81,12 @@ class NotificationFilterBar extends React.PureComponent {
action: this.onClick('poll'),
name: 'poll',
});
+ items.push({
+ text: ,
+ title: intl.formatMessage(messages.statuses),
+ action: this.onClick('status'),
+ name: 'status',
+ });
items.push({
text: ,
title: intl.formatMessage(messages.follows),
diff --git a/app/soapbox/features/notifications/components/notification.js b/app/soapbox/features/notifications/components/notification.js
index 77fa5762e..00911e68e 100644
--- a/app/soapbox/features/notifications/components/notification.js
+++ b/app/soapbox/features/notifications/components/notification.js
@@ -36,13 +36,14 @@ const buildLink = (account) => (
);
-export const NOTIFICATION_TYPES = ['follow', 'mention', 'favourite', 'reblog'];
+export const NOTIFICATION_TYPES = ['follow', 'mention', 'favourite', 'reblog', 'status'];
const icons = {
follow: require('@tabler/icons/icons/user-plus.svg'),
mention: require('@tabler/icons/icons/at.svg'),
favourite: require('@tabler/icons/icons/heart.svg'),
reblog: require('@tabler/icons/icons/repeat.svg'),
+ status: require('@tabler/icons/icons/home.svg'),
};
const messages = {
@@ -62,6 +63,10 @@ const messages = {
id: 'notification.reblog',
defaultMessage: '{name} re-TRUTH your TRUTH',
},
+ status: {
+ id: 'notification.status',
+ defaultMessage: '{name} just posted',
+ },
};
const buildMessage = (type, account) => {
@@ -153,6 +158,7 @@ const Notification = (props) => {
case 'favourite':
case 'mention':
case 'reblog':
+ case 'status':
return (
{
}
// Mastodon can return status notifications with a null status
- if (['mention', 'reblog', 'favourite', 'poll'].includes(notification.type) && !notification.status.id) {
+ if (['mention', 'reblog', 'favourite', 'poll', 'status'].includes(notification.type) && !notification.status.id) {
return false;
}