diff options
author | dan <dan.abramov@gmail.com> | 2024-12-12 17:37:07 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-12 17:37:07 +0000 |
commit | f8cdd6b9ae46a9a4efe0be87e55ee1debded4f91 (patch) | |
tree | 87884914d17ca8d466bcb57a1a668f77a1d7338f /src/lib/hooks/useNotificationHandler.ts | |
parent | 10e241e7eb5a45a0c35802618f52b411dcecd0b0 (diff) | |
download | voidsky-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.ts | 15 |
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() } }) |