about summary refs log tree commit diff
path: root/src/lib/hooks/useNotificationHandler.ts
diff options
context:
space:
mode:
authordan <dan.abramov@gmail.com>2024-12-12 17:37:07 +0000
committerGitHub <noreply@github.com>2024-12-12 17:37:07 +0000
commitf8cdd6b9ae46a9a4efe0be87e55ee1debded4f91 (patch)
tree87884914d17ca8d466bcb57a1a668f77a1d7338f /src/lib/hooks/useNotificationHandler.ts
parent10e241e7eb5a45a0c35802618f52b411dcecd0b0 (diff)
downloadvoidsky-f8cdd6b9ae46a9a4efe0be87e55ee1debded4f91.tar.zst
[Notifications] Add a Mentions tab (#7044)
* Split out NotificationsTab

* Remove unused route parameter

* Refine the split between components

* Hoist some logic out of NotificationFeed

* Remove unused option

* Add all|conversations to query, hardcode "all"

* Add a Conversations tab

* Rename to Mentions

* Bump packages

* Rename fields

* Fix oopsie

* Simplify header

* Track active tab

* Fix types

* Separate logic for tabs

* Better border for first unread

* Highlight unread for all only

* Fix spinner races

* Fix fetchPage races

* Fix bottom bar border being obscured by glimmer

* Remember last tab within the session

* One tab at a time

* Fix TS

* Handle all RQKEY usages

* Nit
Diffstat (limited to 'src/lib/hooks/useNotificationHandler.ts')
-rw-r--r--src/lib/hooks/useNotificationHandler.ts15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/lib/hooks/useNotificationHandler.ts b/src/lib/hooks/useNotificationHandler.ts
index 69ae536d0..2ec3fcb79 100644
--- a/src/lib/hooks/useNotificationHandler.ts
+++ b/src/lib/hooks/useNotificationHandler.ts
@@ -239,14 +239,21 @@ export function useNotificationsHandler() {
           )
           logEvent('notifications:openApp', {})
           invalidateCachedUnreadPage()
-          truncateAndInvalidate(queryClient, RQKEY_NOTIFS())
+          const payload = e.notification.request.trigger
+            .payload as NotificationPayload
+          truncateAndInvalidate(queryClient, RQKEY_NOTIFS('all'))
+          if (
+            payload.reason === 'mention' ||
+            payload.reason === 'quote' ||
+            payload.reason === 'reply'
+          ) {
+            truncateAndInvalidate(queryClient, RQKEY_NOTIFS('mentions'))
+          }
           logger.debug('Notifications: handleNotification', {
             content: e.notification.request.content,
             payload: e.notification.request.trigger.payload,
           })
-          handleNotification(
-            e.notification.request.trigger.payload as NotificationPayload,
-          )
+          handleNotification(payload)
           Notifications.dismissAllNotificationsAsync()
         }
       })