replies timeline only, appview-less bluesky client

fix: if post depth is 2 or more dont show record embed

ptr.pet dbb96e6f 424bd6cf

verified
Changed files
+19 -12
src
components
+19 -12
src/components/BskyPost.svelte
···
did: Did;
rkey: RecordKey;
// replyBacklinks?: Backlinks;
+
depth?: number;
data?: PostWithUri;
mini?: boolean;
isOnPostComposer?: boolean;
···
client,
did,
rkey,
+
depth = 0,
data,
mini,
onQuote,
···
{@const embed = record.embed}
<div class="mt-2">
{#snippet embedPost(uri: ResourceUri)}
-
{@const parsedUri = expect(parseCanonicalResourceUri(uri))}
-
<!-- reject recursive quotes -->
-
{#if !(did === parsedUri.repo && rkey === parsedUri.rkey)}
-
<BskyPost
-
{client}
-
did={parsedUri.repo}
-
rkey={parsedUri.rkey}
-
{isOnPostComposer}
-
{onQuote}
-
{onReply}
-
/>
+
{#if depth < 2}
+
{@const parsedUri = expect(parseCanonicalResourceUri(uri))}
+
<!-- reject recursive quotes -->
+
{#if !(did === parsedUri.repo && rkey === parsedUri.rkey)}
+
<BskyPost
+
{client}
+
depth={depth + 1}
+
did={parsedUri.repo}
+
rkey={parsedUri.rkey}
+
{isOnPostComposer}
+
{onQuote}
+
{onReply}
+
/>
+
{:else}
+
<span>you think you're funny with that recursive quote but i'm onto you</span>
+
{/if}
{:else}
-
<span>you think you're funny with that recursive quote but i'm onto you</span>
+
{@render embedBadge(record)}
{/if}
{/snippet}
{#if embed.$type === 'app.bsky.embed.images'}