diff --git a/src/components/sections/HeroSection.astro b/src/components/sections/HeroSection.astro index f49f993..c70a2b8 100644 --- a/src/components/sections/HeroSection.astro +++ b/src/components/sections/HeroSection.astro @@ -1,11 +1,17 @@ --- import type { SiteConfig, UIComponent } from '../../utils/configLoader'; +import { resolveDynamicBinding } from '../../utils/dynamicDataBinding'; interface Props { config: SiteConfig['hero']; + contextData?: Record; } -const { config } = Astro.props; +const { config, contextData = {} } = Astro.props; + +const heroTitle = resolveDynamicBinding(config.title, contextData); +const heroSubtitle = resolveDynamicBinding(config.subtitle, contextData); +const heroBadge = resolveDynamicBinding(config.badge, contextData); const elements = config.elements || []; const badgeElements = elements.filter((el: UIComponent) => el.slotId === 'hero-badge-slot'); @@ -21,41 +27,41 @@ const customElements = elements.filter((el: UIComponent) => !el.slotId || el.slo
- {config.badge && ( + {heroBadge && (
- {config.badge} + {heroBadge}
)} {badgeElements.map(el => ( - {el.content} + {resolveDynamicBinding(el.content, contextData)} ))}

- {config.title} + {heroTitle}

- {config.subtitle} + {heroSubtitle}

{config.ctaPrimaryText && ( - {config.ctaPrimaryText} + {resolveDynamicBinding(config.ctaPrimaryText, contextData)} )} {config.ctaSecondaryText && ( - {config.ctaSecondaryText} + {resolveDynamicBinding(config.ctaSecondaryText, contextData)} )} {actionElements.map(el => ( - {el.content} + {resolveDynamicBinding(el.content, contextData)} ))}
@@ -66,7 +72,7 @@ const customElements = elements.filter((el: UIComponent) => !el.slotId || el.slo {customElements.map(el => (
{el.type} [ID: {el.id}] - {el.content} + {resolveDynamicBinding(el.content, contextData)}
))} diff --git a/src/pages/admin/editor.astro b/src/pages/admin/editor.astro index b719dbf..0957eec 100644 --- a/src/pages/admin/editor.astro +++ b/src/pages/admin/editor.astro @@ -223,8 +223,22 @@ const { siteConfig, themeConfig } = loadWaasConfigs(Astro.request.headers.get('u
- - + + +
+ +
+ +