filter out muted/blocked convos from share menu (#8802)
This commit is contained in:
@@ -4,10 +4,12 @@ import {msg, Trans} from '@lingui/macro'
|
|||||||
import {useLingui} from '@lingui/react'
|
import {useLingui} from '@lingui/react'
|
||||||
import {useNavigation} from '@react-navigation/native'
|
import {useNavigation} from '@react-navigation/native'
|
||||||
|
|
||||||
|
import {isBlockedOrBlocking, isMuted} from '#/lib/moderation/blocked-and-muted'
|
||||||
import {type NavigationProp} from '#/lib/routes/types'
|
import {type NavigationProp} from '#/lib/routes/types'
|
||||||
import {sanitizeDisplayName} from '#/lib/strings/display-names'
|
import {sanitizeDisplayName} from '#/lib/strings/display-names'
|
||||||
import {sanitizeHandle} from '#/lib/strings/handles'
|
import {sanitizeHandle} from '#/lib/strings/handles'
|
||||||
import {logger} from '#/logger'
|
import {logger} from '#/logger'
|
||||||
|
import {useProfileShadow} from '#/state/cache/profile-shadow'
|
||||||
import {useModerationOpts} from '#/state/preferences/moderation-opts'
|
import {useModerationOpts} from '#/state/preferences/moderation-opts'
|
||||||
import {useListConvosQuery} from '#/state/queries/messages/list-conversations'
|
import {useListConvosQuery} from '#/state/queries/messages/list-conversations'
|
||||||
import {useSession} from '#/state/session'
|
import {useSession} from '#/state/session'
|
||||||
@@ -57,7 +59,11 @@ export function RecentChats({postUri}: {postUri: string}) {
|
|||||||
member => member.did !== currentAccount?.did,
|
member => member.did !== currentAccount?.did,
|
||||||
)
|
)
|
||||||
|
|
||||||
if (!otherMember || otherMember.handle === 'missing.invalid')
|
if (
|
||||||
|
!otherMember ||
|
||||||
|
otherMember.handle === 'missing.invalid' ||
|
||||||
|
convo.muted
|
||||||
|
)
|
||||||
return null
|
return null
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -87,7 +93,7 @@ export function RecentChats({postUri}: {postUri: string}) {
|
|||||||
const WIDTH = 80
|
const WIDTH = 80
|
||||||
|
|
||||||
function RecentChatItem({
|
function RecentChatItem({
|
||||||
profile,
|
profile: profileUnshadowed,
|
||||||
onPress,
|
onPress,
|
||||||
moderationOpts,
|
moderationOpts,
|
||||||
}: {
|
}: {
|
||||||
@@ -98,6 +104,8 @@ function RecentChatItem({
|
|||||||
const {_} = useLingui()
|
const {_} = useLingui()
|
||||||
const t = useTheme()
|
const t = useTheme()
|
||||||
|
|
||||||
|
const profile = useProfileShadow(profileUnshadowed)
|
||||||
|
|
||||||
const moderation = moderateProfile(profile, moderationOpts)
|
const moderation = moderateProfile(profile, moderationOpts)
|
||||||
const name = sanitizeDisplayName(
|
const name = sanitizeDisplayName(
|
||||||
profile.displayName || sanitizeHandle(profile.handle),
|
profile.displayName || sanitizeHandle(profile.handle),
|
||||||
@@ -105,6 +113,10 @@ function RecentChatItem({
|
|||||||
)
|
)
|
||||||
const verification = useSimpleVerificationState({profile})
|
const verification = useSimpleVerificationState({profile})
|
||||||
|
|
||||||
|
if (isBlockedOrBlocking(profile) || isMuted(profile)) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Button
|
<Button
|
||||||
onPress={onPress}
|
onPress={onPress}
|
||||||
|
|||||||
Reference in New Issue
Block a user