handle decrement in useMarkAsRead
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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],
|
||||
|
||||
Reference in New Issue
Block a user