Skip to content

Commit a281af0

Browse files
committed
feat(inscription-lettering): Add component to display dynamic lettering information
1 parent f1bd275 commit a281af0

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<script>
2+
const { lettering } = $props();
3+
4+
const typeOfObj = $derived(Array.isArray(lettering) ? 'array' : lettering?._ ? 'obj' : 'simple');
5+
</script>
6+
7+
{#snippet typesDetails(refs)}
8+
<details>
9+
<summary>Types</summary>
10+
<ul>
11+
{#each refs as ref}
12+
<li><a href={ref.target}>{ref._}</a></li>
13+
{/each}
14+
</ul>
15+
</details>
16+
{/snippet}
17+
18+
{#if typeOfObj === 'array'}
19+
{@const desc = lettering[0]}
20+
{@const types = lettering[1]}
21+
22+
{#if typeof desc === 'object'}
23+
{#if desc.ref}
24+
<p>{desc._}</p>
25+
{:else}
26+
<p>{desc._}</p>
27+
{/if}
28+
{:else}
29+
<p>{desc}</p>
30+
{/if}
31+
32+
{@render typesDetails(types.ref)}
33+
{:else if typeOfObj === 'obj'}
34+
{@render typesDetails(lettering.ref)}
35+
{:else}
36+
<p>{lettering}</p>
37+
{/if}

0 commit comments

Comments
 (0)