diff --git a/app/soapbox/actions/notifications.js b/app/soapbox/actions/notifications.js
index a4331bf8c..9ecf61687 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 a95574036..dfc656279 100644
--- a/app/soapbox/features/notifications/components/filter_bar.js
+++ b/app/soapbox/features/notifications/components/filter_bar.js
@@ -14,6 +14,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
@@ -79,6 +80,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 b3475e1b8..db4685a1e 100644
--- a/app/soapbox/features/notifications/components/notification.js
+++ b/app/soapbox/features/notifications/components/notification.js
@@ -325,6 +325,41 @@ class Notification extends ImmutablePureComponent {
);
}
+ renderStatus(notification) {
+ const { intl } = this.props;
+
+ const account = notification.get('account');
+ const link = this.renderLink(account);
+
+ return (
+
+
+
+ );
+ }
+
renderPoll(notification) {
const { intl } = this.props;
@@ -398,6 +433,8 @@ class Notification extends ImmutablePureComponent {
return this.renderFavourite(notification);
case 'reblog':
return this.renderReblog(notification);
+ case 'status':
+ return this.renderStatus(notification);
case 'poll':
return this.renderPoll(notification);
case 'move':
diff --git a/app/soapbox/locales/pl.json b/app/soapbox/locales/pl.json
index 51b349541..2ab4dd79c 100644
--- a/app/soapbox/locales/pl.json
+++ b/app/soapbox/locales/pl.json
@@ -669,6 +669,7 @@
"notification.pleroma:emoji_reaction": "{name} zareagował(a) na Twój wpis",
"notification.poll": "Głosowanie w którym brałeś(-aś) udział zakończyła się",
"notification.reblog": "{name} podbił(a) Twój wpis",
+ "notification.status": "{name} właśnie opublikował(a) wpis",
"notifications.clear": "Wyczyść powiadomienia",
"notifications.clear_confirmation": "Czy na pewno chcesz bezpowrotnie usunąć wszystkie powiadomienia?",
"notifications.clear_heading": "Wyczyść powiadomienia",
@@ -700,6 +701,7 @@
"notifications.filter.mentions": "Wspomienia",
"notifications.filter.moves": "Przenoszone konta",
"notifications.filter.polls": "Wyniki głosowania",
+ "notifications.filter.statuses": "Nowe wpisy osób, które subskrybujesz",
"notifications.group": "{count, number} {count, plural, one {powiadomienie} few {powiadomienia} many {powiadomień} more {powiadomień}}",
"notifications.queue_label": "Naciśnij aby zobaczyć {count} {count, plural, one {nowe powiadomienie} few {nowe powiadomienia} many {nowych powiadomień} other {nowe powiadomienia}}",
"password_reset.confirmation": "Sprawdź swoją pocztę e-mail, aby potwierdzić.",
diff --git a/app/soapbox/reducers/notifications.js b/app/soapbox/reducers/notifications.js
index fad2563c3..faade6a82 100644
--- a/app/soapbox/reducers/notifications.js
+++ b/app/soapbox/reducers/notifications.js
@@ -73,7 +73,7 @@ const isValid = notification => {
}
// 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;
}