From 98779535fe46b3100b46c37f5d423f672b57f756 Mon Sep 17 00:00:00 2001
From: Claire <claire.github-309c@sitedethib.com>
Date: Mon, 23 Jan 2023 13:21:50 +0100
Subject: [PATCH] Fix missing filtering on some notification types (#23211)

* Fix missing warning-type filtering on some notification types

* Fix missing hide-type filtering on some notification types
---
 .../notifications/components/notification.js  | 21 ++++++++++++++++---
 .../containers/notification_container.js      |  2 +-
 2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/app/javascript/mastodon/features/notifications/components/notification.js b/app/javascript/mastodon/features/notifications/components/notification.js
index ea2c9c0a42..746d085c6e 100644
--- a/app/javascript/mastodon/features/notifications/components/notification.js
+++ b/app/javascript/mastodon/features/notifications/components/notification.js
@@ -246,7 +246,11 @@ class Notification extends ImmutablePureComponent {
   }
 
   renderStatus (notification, link) {
-    const { intl, unread } = this.props;
+    const { intl, unread, status } = this.props;
+
+    if (!status) {
+      return null;
+    }
 
     return (
       <HotKeys handlers={this.getHandlers()}>
@@ -264,6 +268,7 @@ class Notification extends ImmutablePureComponent {
           <StatusContainer
             id={notification.get('status')}
             account={notification.get('account')}
+            contextType='notifications'
             muted
             withDismiss
             hidden={this.props.hidden}
@@ -278,7 +283,11 @@ class Notification extends ImmutablePureComponent {
   }
 
   renderUpdate (notification, link) {
-    const { intl, unread } = this.props;
+    const { intl, unread, status } = this.props;
+
+    if (!status) {
+      return null;
+    }
 
     return (
       <HotKeys handlers={this.getHandlers()}>
@@ -296,6 +305,7 @@ class Notification extends ImmutablePureComponent {
           <StatusContainer
             id={notification.get('status')}
             account={notification.get('account')}
+            contextType='notifications'
             muted
             withDismiss
             hidden={this.props.hidden}
@@ -310,10 +320,14 @@ class Notification extends ImmutablePureComponent {
   }
 
   renderPoll (notification, account) {
-    const { intl, unread } = this.props;
+    const { intl, unread, status } = this.props;
     const ownPoll  = me === account.get('id');
     const message  = ownPoll ? intl.formatMessage(messages.ownPoll) : intl.formatMessage(messages.poll);
 
+    if (!status) {
+      return null;
+    }
+
     return (
       <HotKeys handlers={this.getHandlers()}>
         <div className={classNames('notification notification-poll focusable', { unread })} tabIndex='0' aria-label={notificationForScreenReader(intl, message, notification.get('created_at'))}>
@@ -334,6 +348,7 @@ class Notification extends ImmutablePureComponent {
           <StatusContainer
             id={notification.get('status')}
             account={account}
+            contextType='notifications'
             muted
             withDismiss
             hidden={this.props.hidden}
diff --git a/app/javascript/mastodon/features/notifications/containers/notification_container.js b/app/javascript/mastodon/features/notifications/containers/notification_container.js
index 8bd5b3d782..8c5688acba 100644
--- a/app/javascript/mastodon/features/notifications/containers/notification_container.js
+++ b/app/javascript/mastodon/features/notifications/containers/notification_container.js
@@ -24,7 +24,7 @@ const makeMapStateToProps = () => {
     const notification = getNotification(state, props.notification, props.accountId);
     return {
       notification: notification,
-      status: notification.get('status') ? getStatus(state, { id: notification.get('status') }) : null,
+      status: notification.get('status') ? getStatus(state, { id: notification.get('status'), contextType: 'notifications' }) : null,
       report: notification.get('report') ? getReport(state, notification.get('report'), notification.getIn(['report', 'target_account', 'id'])) : null,
     };
   };