diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-12-04 12:53:25 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-04 12:53:25 -0800 |
commit | 37cafb080bb7a2892d20a991a49953c08dbe2763 (patch) | |
tree | 26970a1d94609e4f237bad0d65dcc506a56ac196 /src/view/com/util/moderation/ContentHider.tsx | |
parent | a46059ca465e6f4d27930f3e520686966cae1b41 (diff) | |
download | voidsky-37cafb080bb7a2892d20a991a49953c08dbe2763.tar.zst |
Fix: distinguish between post media and quotes with the moderation hider (#2075)
* Fix: distinguish between post media and quotes with the moderation hider * Type fixes
Diffstat (limited to 'src/view/com/util/moderation/ContentHider.tsx')
-rw-r--r-- | src/view/com/util/moderation/ContentHider.tsx | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/view/com/util/moderation/ContentHider.tsx b/src/view/com/util/moderation/ContentHider.tsx index c5c887685..20749e33c 100644 --- a/src/view/com/util/moderation/ContentHider.tsx +++ b/src/view/com/util/moderation/ContentHider.tsx @@ -2,25 +2,30 @@ import React from 'react' import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {usePalette} from 'lib/hooks/usePalette' -import {ModerationUI} from '@atproto/api' +import {ModerationUI, PostModeration} from '@atproto/api' import {Text} from '../text/Text' import {ShieldExclamation} from 'lib/icons' import {describeModerationCause} from 'lib/moderation' import {useLingui} from '@lingui/react' import {msg} from '@lingui/macro' import {useModalControls} from '#/state/modals' +import {isPostMediaBlurred} from 'lib/moderation' export function ContentHider({ testID, moderation, + moderationDecisions, ignoreMute, + ignoreQuoteDecisions, style, childContainerStyle, children, }: React.PropsWithChildren<{ testID?: string moderation: ModerationUI + moderationDecisions?: PostModeration['decisions'] ignoreMute?: boolean + ignoreQuoteDecisions?: boolean style?: StyleProp<ViewStyle> childContainerStyle?: StyleProp<ViewStyle> }>) { @@ -29,7 +34,11 @@ export function ContentHider({ const [override, setOverride] = React.useState(false) const {openModal} = useModalControls() - if (!moderation.blur || (ignoreMute && moderation.cause?.type === 'muted')) { + if ( + !moderation.blur || + (ignoreMute && moderation.cause?.type === 'muted') || + shouldIgnoreQuote(moderationDecisions, ignoreQuoteDecisions) + ) { return ( <View testID={testID} style={[styles.outer, style]}> {children} @@ -99,6 +108,16 @@ export function ContentHider({ ) } +function shouldIgnoreQuote( + decisions: PostModeration['decisions'] | undefined, + ignore: boolean | undefined, +): boolean { + if (!decisions || !ignore) { + return false + } + return !isPostMediaBlurred(decisions) +} + const styles = StyleSheet.create({ outer: { overflow: 'hidden', |