From 790374331551a9d1b078d2b2f36b0e182a0a9629 Mon Sep 17 00:00:00 2001 From: Vula Builder Date: Tue, 28 Jul 2026 07:32:32 +0000 Subject: [PATCH] Deploy --- .../sections/NurturingCampaignsSection.tsx | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 src/components/sections/NurturingCampaignsSection.tsx diff --git a/src/components/sections/NurturingCampaignsSection.tsx b/src/components/sections/NurturingCampaignsSection.tsx new file mode 100644 index 0000000..7f3e4c6 --- /dev/null +++ b/src/components/sections/NurturingCampaignsSection.tsx @@ -0,0 +1,85 @@ +'use client' + +import { useVulaContent } from '@/hooks/useVulaContent' +import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from '@/components/ui/Card' +import Button from '@/components/ui/Button' +import Badge from '@/components/ui/Badge' +import Image from 'next/image' + +const IMAGE_PLACEHOLDER = 'https://images.pexels.com/photos/4841333/pexels-photo-4841333.jpeg?auto=compress&cs=tinysrgb&w=400&h=300&fit=crop' + +export default function NurturingCampaignsSection() { + const { items, loading } = useVulaContent('campaigns') + + if (loading) { + return ( +
+
+
+ ) + } + + if (items.length === 0) return null + + return ( +
+
+

+ Seasonal Blends & Limited Drops +

+

+ Small-batch creations rooted in our Pretoria studio +

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

{d.body}

+
+ + + +
+ ) + })} +
+
+
+ ) +}