handle decrement in useMarkAsRead

This commit is contained in:
Hailey
2024-05-16 11:58:18 -07:00
parent b303c88ac2
commit 6d81cef593
3 changed files with 14 additions and 13 deletions
-2
View File
@@ -6,7 +6,6 @@ import {useQueryClient} from '@tanstack/react-query'
import {logger} from '#/logger'
import {track} from 'lib/analytics/analytics'
import {useAccountSwitcher} from 'lib/hooks/useAccountSwitcher'
import {decrementBadgeCount} from 'lib/notifications/notifications'
import {NavigationProp} from 'lib/routes/types'
import {logEvent} from 'lib/statsig/statsig'
import {isAndroid} from 'platform/detection'
@@ -89,7 +88,6 @@ export function useNotificationsHandler() {
if (!payload) return
if (payload.reason === 'chat-message') {
decrementBadgeCount(1)
if (payload.recipientDid !== currentAccount?.did && !storedPayload) {
storedPayload = payload
closeAllActiveElements()
+1 -7
View File
@@ -15,7 +15,6 @@ import {isNative} from '#/platform/detection'
import {useProfileShadow} from '#/state/cache/profile-shadow'
import {useModerationOpts} from '#/state/preferences/moderation-opts'
import {useSession} from '#/state/session'
import {decrementBadgeCount} from 'lib/notifications/notifications'
import {sanitizeDisplayName} from 'lib/strings/display-names'
import {TimeElapsed} from '#/view/com/util/TimeElapsed'
import {UserAvatar} from '#/view/com/util/UserAvatar'
@@ -105,15 +104,10 @@ function ChatListItemReady({
}, [])
const onPress = useCallback(async () => {
if (convo.unreadCount > 0) {
// We only increment the badge once per conversation, so even if there are multiple unreads
// we only want to decrement by one.
decrementBadgeCount(1)
}
navigation.push('MessagesConversation', {
conversation: convo.id,
})
}, [convo.id, convo.unreadCount, navigation])
}, [convo.id, navigation])
return (
<View
@@ -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],