Add back in correct moderation on List and Feed embeds
This commit is contained in:
@@ -1,7 +1,11 @@
|
|||||||
|
import React from 'react'
|
||||||
import {StyleSheet} from 'react-native'
|
import {StyleSheet} from 'react-native'
|
||||||
|
import {moderateFeedGenerator} from '@atproto/api'
|
||||||
|
|
||||||
import {usePalette} from '#/lib/hooks/usePalette'
|
import {usePalette} from '#/lib/hooks/usePalette'
|
||||||
|
import {useModerationOpts} from '#/state/preferences/moderation-opts'
|
||||||
import {FeedSourceCard} from '#/view/com/feeds/FeedSourceCard'
|
import {FeedSourceCard} from '#/view/com/feeds/FeedSourceCard'
|
||||||
|
import {ContentHider} from '#/components/moderation/ContentHider'
|
||||||
import {EmbedType} from '#/types/bsky/post'
|
import {EmbedType} from '#/types/bsky/post'
|
||||||
import {CommonProps} from './types'
|
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({
|
const styles = StyleSheet.create({
|
||||||
customFeedOuter: {
|
customFeedOuter: {
|
||||||
borderWidth: StyleSheet.hairlineWidth,
|
borderWidth: StyleSheet.hairlineWidth,
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
|
import React from 'react'
|
||||||
import {View} from 'react-native'
|
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 {atoms as a, useTheme} from '#/alf'
|
||||||
import * as ListCard from '#/components/ListCard'
|
import * as ListCard from '#/components/ListCard'
|
||||||
|
import {ContentHider} from '#/components/moderation/ContentHider'
|
||||||
import {EmbedType} from '#/types/bsky/post'
|
import {EmbedType} from '#/types/bsky/post'
|
||||||
import {CommonProps} from './types'
|
import {CommonProps} from './types'
|
||||||
|
|
||||||
@@ -18,3 +22,21 @@ export function ListEmbed({
|
|||||||
</View>
|
</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>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|||||||
@@ -28,9 +28,9 @@ import {SubtleWebHover} from '#/components/SubtleWebHover'
|
|||||||
import * as bsky from '#/types/bsky'
|
import * as bsky from '#/types/bsky'
|
||||||
import {Embed as TEmbed, EmbedType, parseEmbed} from '#/types/bsky/post'
|
import {Embed as TEmbed, EmbedType, parseEmbed} from '#/types/bsky/post'
|
||||||
import {ExternalEmbed} from './ExternalEmbed'
|
import {ExternalEmbed} from './ExternalEmbed'
|
||||||
import {FeedEmbed} from './FeedEmbed'
|
import {ModeratedFeedEmbed} from './FeedEmbed'
|
||||||
import {ImageEmbed} from './ImageEmbed'
|
import {ImageEmbed} from './ImageEmbed'
|
||||||
import {ListEmbed} from './ListEmbed'
|
import {ModeratedListEmbed} from './ListEmbed'
|
||||||
import {PostPlaceholder as PostPlaceholderText} from './PostPlaceholder'
|
import {PostPlaceholder as PostPlaceholderText} from './PostPlaceholder'
|
||||||
import {
|
import {
|
||||||
CommonProps,
|
CommonProps,
|
||||||
@@ -123,18 +123,14 @@ function RecordEmbed({
|
|||||||
case 'feed': {
|
case 'feed': {
|
||||||
return (
|
return (
|
||||||
<View style={a.mt_sm}>
|
<View style={a.mt_sm}>
|
||||||
<ContentHider modui={rest.moderation?.ui('contentList')}>
|
<ModeratedFeedEmbed embed={embed} {...rest} />
|
||||||
<FeedEmbed embed={embed} {...rest} />
|
|
||||||
</ContentHider>
|
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
case 'list': {
|
case 'list': {
|
||||||
return (
|
return (
|
||||||
<View style={a.mt_sm}>
|
<View style={a.mt_sm}>
|
||||||
<ContentHider modui={rest.moderation?.ui('contentList')}>
|
<ModeratedListEmbed embed={embed} />
|
||||||
<ListEmbed embed={embed} {...rest} />
|
|
||||||
</ContentHider>
|
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user