From 59aacf4126c3b9ffead339960b082bcc415b1766 Mon Sep 17 00:00:00 2001
From: Hailey <153161762+haileyok@users.noreply.github.com>
Date: Tue, 30 Jan 2024 18:11:23 -0800
Subject: [PATCH] moderate avatars and embeds in composer reply to (#2665)

* moderate avatars and embeds in composer reply to

* oops

* dont need moderation in the quote opts
---
 src/state/shell/composer.tsx                | 7 ++++++-
 src/view/com/composer/ComposerReplyTo.tsx   | 8 ++++++--
 src/view/com/post-thread/PostThreadItem.tsx | 3 ++-
 src/view/com/post/Post.tsx                  | 3 ++-
 src/view/com/posts/FeedItem.tsx             | 3 ++-
 5 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/state/shell/composer.tsx b/src/state/shell/composer.tsx
index 2133ee6b..696a3c5b 100644
--- a/src/state/shell/composer.tsx
+++ b/src/state/shell/composer.tsx
@@ -1,5 +1,9 @@
 import React from 'react'
-import {AppBskyEmbedRecord, AppBskyRichtextFacet} from '@atproto/api'
+import {
+  AppBskyEmbedRecord,
+  AppBskyRichtextFacet,
+  PostModeration,
+} from '@atproto/api'
 import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
 
 export interface ComposerOptsPostRef {
@@ -12,6 +16,7 @@ export interface ComposerOptsPostRef {
     avatar?: string
   }
   embed?: AppBskyEmbedRecord.ViewRecord['embed']
+  moderation?: PostModeration
 }
 export interface ComposerOptsQuote {
   uri: string
diff --git a/src/view/com/composer/ComposerReplyTo.tsx b/src/view/com/composer/ComposerReplyTo.tsx
index 678c8581..39a1473a 100644
--- a/src/view/com/composer/ComposerReplyTo.tsx
+++ b/src/view/com/composer/ComposerReplyTo.tsx
@@ -83,7 +83,11 @@ export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) {
       accessibilityHint={_(
         msg`Expand or collapse the full post you are replying to`,
       )}>
-      <UserAvatar avatar={replyTo.author.avatar} size={50} />
+      <UserAvatar
+        avatar={replyTo.author.avatar}
+        size={50}
+        moderation={replyTo.moderation?.avatar}
+      />
       <View style={styles.replyToPost}>
         <Text type="xl-medium" style={[pal.text]}>
           {sanitizeDisplayName(
@@ -99,7 +103,7 @@ export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) {
               {replyTo.text}
             </Text>
           </View>
-          {images && (
+          {images && !replyTo.moderation?.embed.blur && (
             <ComposerReplyToImages images={images} showFull={showFull} />
           )}
         </View>
diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx
index c5912376..d11c2781 100644
--- a/src/view/com/post-thread/PostThreadItem.tsx
+++ b/src/view/com/post-thread/PostThreadItem.tsx
@@ -217,10 +217,11 @@ let PostThreadItemLoaded = ({
           avatar: post.author.avatar,
         },
         embed: post.embed,
+        moderation,
       },
       onPost: onPostReply,
     })
-  }, [openComposer, post, record, onPostReply])
+  }, [openComposer, post, record, onPostReply, moderation])
 
   const onPressShowMore = React.useCallback(() => {
     setLimitLines(false)
diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx
index f035c32a..2f1c0d37 100644
--- a/src/view/com/post/Post.tsx
+++ b/src/view/com/post/Post.tsx
@@ -122,9 +122,10 @@ function PostInner({
           avatar: post.author.avatar,
         },
         embed: post.embed,
+        moderation,
       },
     })
-  }, [openComposer, post, record])
+  }, [openComposer, post, record, moderation])
 
   const onPressShowMore = React.useCallback(() => {
     setLimitLines(false)
diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx
index 225607ca..920409ec 100644
--- a/src/view/com/posts/FeedItem.tsx
+++ b/src/view/com/posts/FeedItem.tsx
@@ -135,9 +135,10 @@ let FeedItemInner = ({
           avatar: post.author.avatar,
         },
         embed: post.embed,
+        moderation,
       },
     })
-  }, [post, record, openComposer])
+  }, [post, record, openComposer, moderation])
 
   const outerStyles = [
     styles.outer,