ignore groups in aa

This commit is contained in:
Samuel Newman
2026-06-09 18:20:07 +03:00
parent c52231a449
commit de3f3b2ab9
2 changed files with 12 additions and 2 deletions
+5 -2
View File
@@ -1,7 +1,7 @@
import {useCallback, useEffect, useMemo, useRef, useState} from 'react' import {useCallback, useEffect, useMemo, useRef, useState} from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {useAnimatedRef} from 'react-native-reanimated' import {useAnimatedRef} from 'react-native-reanimated'
import {type ChatBskyActorGetStatus, type ChatBskyConvoDefs} from '@atproto/api' import {type ChatBskyActorGetStatus, ChatBskyConvoDefs} from '@atproto/api'
import {Trans, useLingui} from '@lingui/react/macro' import {Trans, useLingui} from '@lingui/react/macro'
import {useFocusEffect, useIsFocused} from '@react-navigation/native' import {useFocusEffect, useIsFocused} from '@react-navigation/native'
import {type NativeStackScreenProps} from '@react-navigation/native-stack' import {type NativeStackScreenProps} from '@react-navigation/native-stack'
@@ -475,7 +475,10 @@ export function Header({
convo => convo =>
!leftConvos.includes(convo.id) && !leftConvos.includes(convo.id) &&
!convo.muted && !convo.muted &&
convo.members.every(member => member.handle !== 'missing.invalid'), convo.members.every(member => member.handle !== 'missing.invalid') &&
(ChatBskyConvoDefs.isGroupConvo(convo.kind)
? !aa.flags.groupChatDisabled
: true),
) ?? [] ) ?? []
const openChatControl = useCallback(() => { const openChatControl = useCallback(() => {
@@ -21,6 +21,7 @@ import {useModerationOpts} from '#/state/preferences/moderation-opts'
import {useAgent, useSession} from '#/state/session' import {useAgent, useSession} from '#/state/session'
import {parseConvoView} from '#/components/dms/util' import {parseConvoView} from '#/components/dms/util'
import {useAgeAssurance} from '#/ageAssurance' import {useAgeAssurance} from '#/ageAssurance'
import {type AgeAssuranceFlags} from '#/ageAssurance/types'
import * as bsky from '#/types/bsky' import * as bsky from '#/types/bsky'
import {RQKEY as CONVO_KEY} from './conversation' import {RQKEY as CONVO_KEY} from './conversation'
import {useLeftConvos} from './leave-conversation' import {useLeftConvos} from './leave-conversation'
@@ -679,6 +680,7 @@ export function useUnreadMessageCount() {
const {currentAccount} = useSession() const {currentAccount} = useSession()
const {accepted, request} = useListConvos() const {accepted, request} = useListConvos()
const moderationOpts = useModerationOpts() const moderationOpts = useModerationOpts()
const aa = useAgeAssurance()
return useMemo<{ return useMemo<{
count: number count: number
@@ -690,12 +692,14 @@ export function useUnreadMessageCount() {
currentAccount?.did, currentAccount?.did,
currentConvoId, currentConvoId,
moderationOpts, moderationOpts,
aa.flags,
) )
const requestCount = calculateCount( const requestCount = calculateCount(
request, request,
currentAccount?.did, currentAccount?.did,
currentConvoId, currentConvoId,
moderationOpts, moderationOpts,
aa.flags,
) )
if (acceptedCount > 0) { if (acceptedCount > 0) {
const total = acceptedCount + Math.min(requestCount, 1) const total = acceptedCount + Math.min(requestCount, 1)
@@ -726,6 +730,7 @@ function calculateCount(
currentAccountDid: string | undefined, currentAccountDid: string | undefined,
currentConvoId: string | undefined, currentConvoId: string | undefined,
moderationOpts: ModerationOpts | undefined, moderationOpts: ModerationOpts | undefined,
flags: AgeAssuranceFlags,
) { ) {
return ( return (
convos convos
@@ -735,6 +740,8 @@ function calculateCount(
if (!convo || !moderationOpts) return acc if (!convo || !moderationOpts) return acc
if (convo.kind === 'group' && flags.groupChatDisabled) return acc
const shouldIgnore = const shouldIgnore =
convo.view.muted || convo.view.muted ||
!convo.primaryMember || !convo.primaryMember ||