your personal website on atproto - mirror
blento.app
1<script lang="ts">
2 import type { PostEmbed } from '../';
3 import External from './External.svelte';
4 import Images from './Images.svelte';
5 import Video from './Video.svelte';
6 import QuotedPost from './QuotedPost.svelte';
7
8 const { embed }: { embed: PostEmbed } = $props();
9</script>
10
11<div class="flex flex-col gap-2 pt-3 text-sm">
12 {#if embed.type === 'images'}
13 <Images data={embed} />
14 {:else if embed.type === 'external' && embed.external}
15 <External data={embed} />
16 {:else if embed.type === 'video' && embed.video}
17 <Video data={embed} />
18 {:else if embed.type === 'record' && embed.record}
19 <QuotedPost record={embed.record} />
20 {:else if embed.type === 'recordWithMedia' && embed.record}
21 {#if embed.media}
22 {#if embed.media.type === 'images'}
23 <Images data={embed.media} />
24 {:else if embed.media.type === 'external' && embed.media.external}
25 <External data={embed.media} />
26 {:else if embed.media.type === 'video' && embed.media.video}
27 <Video data={embed.media} />
28 {/if}
29 {/if}
30 <QuotedPost record={embed.record} />
31 {:else if embed.type === 'unknown'}
32 <div
33 class="text-base-700 dark:text-base-300 bg-base-200/50 dark:bg-base-900/50 border-base-300 dark:border-base-600/30 rounded-2xl border p-4 text-sm"
34 >
35 Unknown embed type
36 </div>
37 {/if}
38</div>