From 109948d9b761449743010ba9188765565ef73f78 Mon Sep 17 00:00:00 2001 From: Vula Builder Date: Sun, 26 Jul 2026 17:04:58 +0000 Subject: [PATCH] Deploy --- src/components/sections/SpecialsSection.tsx | 87 +++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/components/sections/SpecialsSection.tsx diff --git a/src/components/sections/SpecialsSection.tsx b/src/components/sections/SpecialsSection.tsx new file mode 100644 index 0000000..d996d2d --- /dev/null +++ b/src/components/sections/SpecialsSection.tsx @@ -0,0 +1,87 @@ +'use client' + +import { useEmDashContent } from "@/hooks/useEmDashContent" +import Image from "next/image" +import Link from "next/link" +import { Card, CardContent } from "@/components/ui/Card" +import Badge from "@/components/ui/Badge" +import Button from "@/components/ui/Button" + +export default function SpecialsSection() { + const { items, loading } = useEmDashContent("promotions") + // Hooks must be declared before any early returns + + if (loading) { + return ( +
+
+
+ ) + } + if (items.length === 0) return null + + return ( +
+
+
+

+ Limited Offers +

+

+ Specials worth the trip +

+

+ Exclusive packages and seasonal deals crafted for unforgettable stays. +

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

{d.title}

+

+ {d.description} +

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