diff --git a/src/lib/block-types.ts b/src/lib/block-types.ts index 2560e0f..505ea59 100644 --- a/src/lib/block-types.ts +++ b/src/lib/block-types.ts @@ -422,6 +422,17 @@ export type CalendarBlockData = Omit< layout?: BlockLayout; }; +/** Internal component block (_type: "internal_component"). */ +export type InternalComponentId = "form-contact"; + +export interface InternalComponentBlockData { + _type?: "internal_component"; + _slug?: string; + id?: string; + component?: InternalComponentId; + layout?: BlockLayout; +} + export interface WindMapBlockData { _type?: "wind_map"; _slug?: string; diff --git a/src/lib/components/BlockRenderer.svelte b/src/lib/components/BlockRenderer.svelte index eab6f93..6dafb3a 100644 --- a/src/lib/components/BlockRenderer.svelte +++ b/src/lib/components/BlockRenderer.svelte @@ -16,6 +16,7 @@ import CalendarBlock from "./blocks/CalendarBlock.svelte"; import OrganisationsBlock from "./blocks/OrganisationsBlock.svelte"; import OpnFormBlock from "./blocks/OpnFormBlock.svelte"; + import InternalComponentBlock from "./blocks/InternalComponentBlock.svelte"; import DeadlineBannerBlock from "./blocks/DeadlineBannerBlock.svelte"; import StrommixBlock from "./blocks/StrommixBlock.svelte"; import WindkarteBlock from "./blocks/WindkarteBlock.svelte"; @@ -39,6 +40,7 @@ CalendarBlockData, OrganisationsBlockData, OpnFormBlockData, + InternalComponentBlockData, DeadlineBannerBlockData, LiveStrommixBlockData, WindMapBlockData, @@ -86,6 +88,8 @@ {:else if type === "opnform"} +{:else if type === "internal_component"} + {:else if type === "deadline_banner"} {:else if type === "live_strommix"} diff --git a/src/lib/components/blocks/InternalComponentBlock.svelte b/src/lib/components/blocks/InternalComponentBlock.svelte new file mode 100644 index 0000000..c9fe302 --- /dev/null +++ b/src/lib/components/blocks/InternalComponentBlock.svelte @@ -0,0 +1,18 @@ + + +
+ {#if component === "form-contact"} + + {:else} +

Unbekannte interne Komponente: {component}

+ {/if} +
diff --git a/src/lib/components/internal/ContactFormComponent.svelte b/src/lib/components/internal/ContactFormComponent.svelte new file mode 100644 index 0000000..b2b3fac --- /dev/null +++ b/src/lib/components/internal/ContactFormComponent.svelte @@ -0,0 +1,92 @@ + + +{#if formState === "success"} +
+

Nachricht gesendet!

+

Wir melden uns so schnell wie möglich.

+
+{:else} +
+ + + + + +