Add back in correct moderation on List and Feed embeds

This commit is contained in:
Eric Bailey
2025-03-02 15:01:24 -06:00
parent 950856fb09
commit aa01620880
3 changed files with 49 additions and 8 deletions
+23
View File
@@ -1,7 +1,11 @@
import React from 'react'
import {StyleSheet} from 'react-native'
import {moderateFeedGenerator} from '@atproto/api'
import {usePalette} from '#/lib/hooks/usePalette'
import {useModerationOpts} from '#/state/preferences/moderation-opts'
import {FeedSourceCard} from '#/view/com/feeds/FeedSourceCard'
import {ContentHider} from '#/components/moderation/ContentHider'
import {EmbedType} from '#/types/bsky/post'
import {CommonProps} from './types'
@@ -20,6 +24,25 @@ export function FeedEmbed({
)
}
export function ModeratedFeedEmbed({
embed,
}: CommonProps & {
embed: EmbedType<'feed'>
}) {
const moderationOpts = useModerationOpts()
const moderation = React.useMemo(() => {
return moderationOpts
? moderateFeedGenerator(embed.view, moderationOpts)
: undefined
}, [embed.view, moderationOpts])
console.log(moderation)
return (
<ContentHider modui={moderation?.ui('contentList')}>
<FeedEmbed embed={embed} />
</ContentHider>
)
}
const styles = StyleSheet.create({
customFeedOuter: {
borderWidth: StyleSheet.hairlineWidth,
+22
View File
@@ -1,7 +1,11 @@
import React from 'react'
import {View} from 'react-native'
import {moderateUserList} from '@atproto/api'
import {useModerationOpts} from '#/state/preferences/moderation-opts'
import {atoms as a, useTheme} from '#/alf'
import * as ListCard from '#/components/ListCard'
import {ContentHider} from '#/components/moderation/ContentHider'
import {EmbedType} from '#/types/bsky/post'
import {CommonProps} from './types'
@@ -18,3 +22,21 @@ export function ListEmbed({
</View>
)
}
export function ModeratedListEmbed({
embed,
}: CommonProps & {
embed: EmbedType<'list'>
}) {
const moderationOpts = useModerationOpts()
const moderation = React.useMemo(() => {
return moderationOpts
? moderateUserList(embed.view, moderationOpts)
: undefined
}, [embed.view, moderationOpts])
return (
<ContentHider modui={moderation?.ui('contentList')}>
<ListEmbed embed={embed} />
</ContentHider>
)
}
+4 -8
View File
@@ -28,9 +28,9 @@ import {SubtleWebHover} from '#/components/SubtleWebHover'
import * as bsky from '#/types/bsky'
import {Embed as TEmbed, EmbedType, parseEmbed} from '#/types/bsky/post'
import {ExternalEmbed} from './ExternalEmbed'
import {FeedEmbed} from './FeedEmbed'
import {ModeratedFeedEmbed} from './FeedEmbed'
import {ImageEmbed} from './ImageEmbed'
import {ListEmbed} from './ListEmbed'
import {ModeratedListEmbed} from './ListEmbed'
import {PostPlaceholder as PostPlaceholderText} from './PostPlaceholder'
import {
CommonProps,
@@ -123,18 +123,14 @@ function RecordEmbed({
case 'feed': {
return (
<View style={a.mt_sm}>
<ContentHider modui={rest.moderation?.ui('contentList')}>
<FeedEmbed embed={embed} {...rest} />
</ContentHider>
<ModeratedFeedEmbed embed={embed} {...rest} />
</View>
)
}
case 'list': {
return (
<View style={a.mt_sm}>
<ContentHider modui={rest.moderation?.ui('contentList')}>
<ListEmbed embed={embed} {...rest} />
</ContentHider>
<ModeratedListEmbed embed={embed} />
</View>
)
}