From 0c1956e8c9a3376a193943c5ea571496ef51c784 Mon Sep 17 00:00:00 2001 From: Vula Builder Date: Sat, 1 Aug 2026 16:13:29 +0000 Subject: [PATCH] Deploy --- src/components/sections/CampaignSection.tsx | 47 +++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/components/sections/CampaignSection.tsx diff --git a/src/components/sections/CampaignSection.tsx b/src/components/sections/CampaignSection.tsx new file mode 100644 index 0000000..206a3dd --- /dev/null +++ b/src/components/sections/CampaignSection.tsx @@ -0,0 +1,47 @@ +'use client' +import { useVulaContent } from '@/hooks/useVulaContent' +import Image from 'next/image' + +export default function CampaignSection() { + const { items, loading } = useVulaContent('campaigns') + + if (loading) { + return
+ } + if (items.length === 0) return null + + return ( +
+
+
+

Seasonal collections

+

Limited runs from the Ukaya workshop

+

Small-batch campaigns drop throughout the year. When a collection is gone, it is gone.

+
+
+ {items.map((item) => { + const d = item.data as { title?: string; headline?: string; body?: string; cta_text?: string; image?: string } + return ( +
+
+ {d.image ? ( + {d.title + ) : ( +
+ )} +
+
+ {d.title ?

{d.title}

: null} + {d.headline ?

{d.headline}

: null} + {d.body ?

{d.body}

: null} + {d.cta_text ? {d.cta_text} : null} +
+
+
+ ) + })} +
+
+
+ ) +} \ No newline at end of file