From c2bb958e8ca188d4ee397e3ff28018093f76362a Mon Sep 17 00:00:00 2001 From: Vula Builder Date: Tue, 14 Jul 2026 18:35:19 +0000 Subject: [PATCH] Deploy --- .../ExclusiveRetreatOffersSection.tsx | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 src/components/sections/ExclusiveRetreatOffersSection.tsx diff --git a/src/components/sections/ExclusiveRetreatOffersSection.tsx b/src/components/sections/ExclusiveRetreatOffersSection.tsx new file mode 100644 index 0000000..d143b3c --- /dev/null +++ b/src/components/sections/ExclusiveRetreatOffersSection.tsx @@ -0,0 +1,98 @@ +'use client' + +import { useEmDashContent } from '@/hooks/useEmDashContent' +import Image from 'next/image' +import Button from '@/components/ui/Button' + +export default function ExclusiveRetreatOffersSection() { + const { items, loading } = useEmDashContent('offers') + + if (loading) { + return ( +
+
+
+ ) + } + + if (items.length === 0) return null + + return ( +
+
+ {/* Eyebrow */} +
+
+ + Curated Escapes + +
+
+

+ Lasting Impressions, Timely Invitations +

+

+ Hand‑picked packages for those who seek the extraordinary. +

+ +
+ {items.map((item) => { + const d = item.data as { + title?: string + description?: string + price?: string + duration?: string + valid_until?: string + image?: string + } + return ( +
+
+ {d.image && ( + {d.title + )} +
+
+

{d.title}

+

{d.description}

+
+ {d.price && ( + {d.price} + )} + {d.duration && ( + + {d.duration} + + )} +
+ {d.valid_until && ( +

+ Valid until {d.valid_until} +

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