diff options
Diffstat (limited to 'src/state/queries/messages/list-converations.ts')
-rw-r--r-- | src/state/queries/messages/list-converations.ts | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/state/queries/messages/list-converations.ts b/src/state/queries/messages/list-converations.ts index f2c277068..4b4d50c49 100644 --- a/src/state/queries/messages/list-converations.ts +++ b/src/state/queries/messages/list-converations.ts @@ -10,6 +10,7 @@ import { import {useCurrentConvoId} from '#/state/messages/current-convo-id' import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' import {useAgent} from '#/state/session' +import {decrementBadgeCount} from 'lib/notifications/notifications' export const RQKEY = ['convo-list'] type RQPageParam = string | undefined @@ -116,10 +117,18 @@ export function useOnMarkAsRead() { return useCallback( (chatId: string) => { queryClient.setQueryData(RQKEY, (old: ConvoListQueryData) => { - return optimisticUpdate(chatId, old, convo => ({ - ...convo, - unreadCount: 0, - })) + return optimisticUpdate(chatId, old, convo => { + // We only want to decrement the badge by one no matter the unread count, since we only increment once per + // sender regardless of message count + if (convo.unreadCount > 0) { + decrementBadgeCount(1) + } + + return { + ...convo, + unreadCount: 0, + } + }) }) }, [queryClient], |