about summary refs log tree commit diff
path: root/bskyembed
diff options
context:
space:
mode:
authorSamuel Newman <mozzius@protonmail.com>2024-04-13 11:42:23 +0100
committerGitHub <noreply@github.com>2024-04-13 11:42:23 +0100
commitacbadc610bc373752cf19e17ea48d1921dd5315e (patch)
treed736f80196c959f0bf56751feb8f48632009d40a /bskyembed
parentc1137c3984aa50e4b3f6166cd5446019b2a06817 (diff)
downloadvoidsky-acbadc610bc373752cf19e17ea48d1921dd5315e.tar.zst
add hideRecord prop (#3527)
Diffstat (limited to 'bskyembed')
-rw-r--r--bskyembed/src/components/embed.tsx34
1 files changed, 20 insertions, 14 deletions
diff --git a/bskyembed/src/components/embed.tsx b/bskyembed/src/components/embed.tsx
index d88019965..4457defce 100644
--- a/bskyembed/src/components/embed.tsx
+++ b/bskyembed/src/components/embed.tsx
@@ -19,9 +19,11 @@ import {Link} from './link'
 export function Embed({
   content,
   labels,
+  hideRecord,
 }: {
   content: AppBskyFeedDefs.PostView['embed']
   labels: AppBskyFeedDefs.PostView['labels']
+  hideRecord?: boolean
 }) {
   const labelInfo = useMemo(() => labelsToInfo(labels), [labels])
 
@@ -40,6 +42,10 @@ export function Embed({
 
     // Case 3: Record (quote or linked post)
     if (AppBskyEmbedRecord.isView(content)) {
+      if (hideRecord) {
+        return null
+      }
+
       const record = content.record
 
       // Case 3.1: Post
@@ -84,19 +90,14 @@ export function Embed({
               </p>
             </div>
             {text && <p className="text-sm">{text}</p>}
-            {record.embeds
-              ?.filter(embed => {
-                if (AppBskyEmbedImages.isView(embed)) return true
-                if (AppBskyEmbedExternal.isView(embed)) return true
-                return false
-              })
-              .map(embed => (
-                <Embed
-                  key={embed.$type}
-                  content={embed}
-                  labels={record.labels}
-                />
-              ))}
+            {record.embeds?.map(embed => (
+              <Embed
+                key={embed.$type}
+                content={embed}
+                labels={record.labels}
+                hideRecord
+              />
+            ))}
           </Link>
         )
       }
@@ -164,13 +165,18 @@ export function Embed({
     ) {
       return (
         <div className="flex flex-col gap-2">
-          <Embed content={content.media} labels={labels} />
+          <Embed
+            content={content.media}
+            labels={labels}
+            hideRecord={hideRecord}
+          />
           <Embed
             content={{
               $type: 'app.bsky.embed.record#view',
               record: content.record.record,
             }}
             labels={content.record.record.labels}
+            hideRecord={hideRecord}
           />
         </div>
       )