Moderate post embeds

This commit is contained in:
Eric Bailey
2024-07-24 16:09:37 -05:00
parent c6ecc4a225
commit 18951837ae
+17 -3
View File
@@ -15,6 +15,8 @@ import {
AppBskyEmbedRecordWithMedia, AppBskyEmbedRecordWithMedia,
AppBskyFeedDefs, AppBskyFeedDefs,
AppBskyGraphDefs, AppBskyGraphDefs,
moderateFeedGenerator,
moderateUserList,
ModerationDecision, ModerationDecision,
} from '@atproto/api' } from '@atproto/api'
@@ -30,6 +32,7 @@ import {ListEmbed} from './ListEmbed'
import {MaybeQuoteEmbed} from './QuoteEmbed' import {MaybeQuoteEmbed} from './QuoteEmbed'
import hairlineWidth = StyleSheet.hairlineWidth import hairlineWidth = StyleSheet.hairlineWidth
import {useLargeAltBadgeEnabled} from '#/state/preferences/large-alt-badge' import {useLargeAltBadgeEnabled} from '#/state/preferences/large-alt-badge'
import {useModerationOpts} from '#/state/preferences/moderation-opts'
import {Embed as StarterPackCard} from '#/components/StarterPack/StarterPackCard' import {Embed as StarterPackCard} from '#/components/StarterPack/StarterPackCard'
type Embed = type Embed =
@@ -55,6 +58,7 @@ export function PostEmbeds({
const pal = usePalette('default') const pal = usePalette('default')
const {openLightbox} = useLightboxControls() const {openLightbox} = useLightboxControls()
const largeAltBadge = useLargeAltBadgeEnabled() const largeAltBadge = useLargeAltBadgeEnabled()
const moderationOpts = useModerationOpts()
// quote post with media // quote post with media
// = // =
@@ -75,20 +79,30 @@ export function PostEmbeds({
// custom feed embed (i.e. generator view) // custom feed embed (i.e. generator view)
// = // =
if (AppBskyFeedDefs.isGeneratorView(embed.record)) { if (AppBskyFeedDefs.isGeneratorView(embed.record)) {
// TODO moderation const moderation = moderationOpts
? moderateFeedGenerator(embed.record, moderationOpts)
: undefined
return ( return (
<ContentHider modui={moderation?.ui('contentList')}>
<FeedSourceCard <FeedSourceCard
feedUri={embed.record.uri} feedUri={embed.record.uri}
style={[pal.view, pal.border, styles.customFeedOuter]} style={[pal.view, pal.border, styles.customFeedOuter]}
showLikes showLikes
/> />
</ContentHider>
) )
} }
// list embed // list embed
if (AppBskyGraphDefs.isListView(embed.record)) { if (AppBskyGraphDefs.isListView(embed.record)) {
// TODO moderation const moderation = moderationOpts
return <ListEmbed item={embed.record} /> ? moderateUserList(embed.record, moderationOpts)
: undefined
return (
<ContentHider modui={moderation?.ui('contentList')}>
<ListEmbed item={embed.record} />
</ContentHider>
)
} }
if (AppBskyGraphDefs.isStarterPackViewBasic(embed.record)) { if (AppBskyGraphDefs.isStarterPackViewBasic(embed.record)) {