From aa0162088068277d74c74a29d1d2088c26b5fc98 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Sun, 2 Mar 2025 15:01:24 -0600 Subject: [PATCH] Add back in correct moderation on List and Feed embeds --- src/components/Post/Embed/FeedEmbed.tsx | 23 +++++++++++++++++++++++ src/components/Post/Embed/ListEmbed.tsx | 22 ++++++++++++++++++++++ src/components/Post/Embed/index.tsx | 12 ++++-------- 3 files changed, 49 insertions(+), 8 deletions(-) diff --git a/src/components/Post/Embed/FeedEmbed.tsx b/src/components/Post/Embed/FeedEmbed.tsx index 8431fc7c08..4eab79534e 100644 --- a/src/components/Post/Embed/FeedEmbed.tsx +++ b/src/components/Post/Embed/FeedEmbed.tsx @@ -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 ( + + + + ) +} + const styles = StyleSheet.create({ customFeedOuter: { borderWidth: StyleSheet.hairlineWidth, diff --git a/src/components/Post/Embed/ListEmbed.tsx b/src/components/Post/Embed/ListEmbed.tsx index 947b4b9a28..dc79a75798 100644 --- a/src/components/Post/Embed/ListEmbed.tsx +++ b/src/components/Post/Embed/ListEmbed.tsx @@ -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({ ) } + +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 ( + + + + ) +} diff --git a/src/components/Post/Embed/index.tsx b/src/components/Post/Embed/index.tsx index 013dcdbc2d..dfa539f4a6 100644 --- a/src/components/Post/Embed/index.tsx +++ b/src/components/Post/Embed/index.tsx @@ -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 ( - - - + ) } case 'list': { return ( - - - + ) }