dynamic promo widget

This commit is contained in:
SPRINX0\prochazka
2025-10-17 14:04:08 +02:00
parent a98c953876
commit 1fa4216b18
7 changed files with 146 additions and 48 deletions

View File

@@ -0,0 +1,22 @@
<script lang="ts">
import JsonUiHeading from './JsonUiHeading.svelte';
import JsonUiLinkButton from './JsonUiLinkButton.svelte';
import JsonUiTextBlock from './JsonUiTextBlock.svelte';
import JsonUiTickList from './JsonUiTickList.svelte';
import { JsonUiBlock } from './jsonuitypes';
export let blocks: JsonUiBlock[] = [];
const componentMap = {
text: JsonUiTextBlock,
heading: JsonUiHeading,
ticklist: JsonUiTickList,
button: JsonUiLinkButton,
} as const;
</script>
{#each blocks as block, i}
{#if block.type in componentMap}
<svelte:component this={componentMap[block.type]} {...block} />
{/if}
{/each}