diff --git a/src/components/sections/ThemedSuitesSection.tsx b/src/components/sections/ThemedSuitesSection.tsx new file mode 100644 index 0000000..8ae93f6 --- /dev/null +++ b/src/components/sections/ThemedSuitesSection.tsx @@ -0,0 +1,85 @@ +'use client' + +import { useState } from 'react' +import { useMedusaProducts } from '@/hooks/useMedusaProducts' +import { Card, CardHeader, CardTitle, CardContent, CardFooter } from '@/components/ui/Card' +import Button from '@/components/ui/Button' +import { BedDouble, Snowflake, Tv, Wifi } from 'lucide-react' +import Image from 'next/image' + +export default function ThemedSuitesSection() { + const { products: suites, isLoading } = useMedusaProducts(6) + if (isLoading) return null + + const fallbackImage = 'https://images.pexels.com/photos/12961892/pexels-photo-12961892.jpeg?auto=compress&cs=tinysrgb&h=350' + const amenities = ['Air-conditioning', 'En-suite bathroom', 'DStv', 'Free WiFi', 'Tea & Coffee'] + + return ( +
+
+
+

+ Themed Luxury Suites +

+

+ Each room tells a story — African royalty & nature inspire every detail +

+
+ +
+ {suites.map((suite) => { + const price = suite.variants?.[0]?.prices?.[0] + const formattedPrice = price + ? `R${(price.amount / 100).toFixed(0)}` + : 'From R950' + const imgUrl = suite.thumbnail || fallbackImage + + return ( + + +
+ {suite.title +
+
+ + {suite.title} +

+ {suite.description || 'Experience bespoke luxury in this uniquely themed room.'} +

+
+ {amenities.slice(0, 3).map((a) => ( + + + {a} + + ))} +
+

{formattedPrice} / night

+
+ + + + + +
+ ) + })} +
+ +
+ + View All Suites & Availability + +
+
+
+ ) +} \ No newline at end of file