"use client"; import { ArrowLeft, ArrowRight } from "lucide-react"; import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import { Carousel, CarouselApi, CarouselContent, CarouselItem, } from "@/components/ui/carousel"; const data = [ { id: "item-1", title: "Duis sem sem, gravida vel porttitor eu, volutpat ut arcu", summary: "Pellentesque eget quam ligula. Sed felis ante, consequat nec ultrices ut, ornare quis metus. Vivamus sit amet tortor vel enim sollicitudin hendrerit.", href: "#", image: "https://shadcnblocks.com/images/block/placeholder-dark-1.svg", }, { id: "item-2", title: "Duis sem sem, gravida vel porttitor eu, volutpat ut arcu", summary: "Pellentesque eget quam ligula. Sed felis ante, consequat nec ultrices ut, ornare quis metus. Vivamus sit amet tortor vel enim sollicitudin hendrerit.", href: "#", image: "https://shadcnblocks.com/images/block/placeholder-dark-1.svg", }, { id: "item-3", title: "Duis sem sem, gravida vel porttitor eu, volutpat ut arcu", summary: "Pellentesque eget quam ligula. Sed felis ante, consequat nec ultrices ut, ornare quis metus. Vivamus sit amet tortor vel enim sollicitudin hendrerit.", href: "#", image: "https://shadcnblocks.com/images/block/placeholder-dark-1.svg", }, { id: "item-4", title: "Duis sem sem, gravida vel porttitor eu, volutpat ut arcu", summary: "Pellentesque eget quam ligula. Sed felis ante, consequat nec ultrices ut, ornare quis metus. Vivamus sit amet tortor vel enim sollicitudin hendrerit.", href: "#", image: "https://shadcnblocks.com/images/block/placeholder-dark-1.svg", }, { id: "item-5", title: "Duis sem sem, gravida vel porttitor eu, volutpat ut arcu", summary: "Pellentesque eget quam ligula. Sed felis ante, consequat nec ultrices ut, ornare quis metus. Vivamus sit amet tortor vel enim sollicitudin hendrerit.", href: "#", image: "https://shadcnblocks.com/images/block/placeholder-dark-1.svg", }, { id: "item-6", title: "Duis sem sem, gravida vel porttitor eu, volutpat ut arcu", summary: "Pellentesque eget quam ligula. Sed felis ante, consequat nec ultrices ut, ornare quis metus. Vivamus sit amet tortor vel enim sollicitudin hendrerit.", href: "#", image: "https://shadcnblocks.com/images/block/placeholder-dark-1.svg", }, { id: "item-5", title: "Duis sem sem, gravida vel porttitor eu, volutpat ut arcu", summary: "Pellentesque eget quam ligula. Sed felis ante, consequat nec ultrices ut, ornare quis metus. Vivamus sit amet tortor vel enim sollicitudin hendrerit.", href: "#", image: "https://shadcnblocks.com/images/block/placeholder-dark-1.svg", }, { id: "item-6", title: "Duis sem sem, gravida vel porttitor eu, volutpat ut arcu", summary: "Pellentesque eget quam ligula. Sed felis ante, consequat nec ultrices ut, ornare quis metus. Vivamus sit amet tortor vel enim sollicitudin hendrerit.", href: "#", image: "https://shadcnblocks.com/images/block/placeholder-dark-1.svg", }, ]; const Gallery: React.FC< React.PropsWithChildren<{ tagLine: string; title: string; cta: string; ctaHref: string; }> > = ({ children, tagLine, title, cta, ctaHref }) => { const [carouselApi, setCarouselApi] = useState(); const [canScrollPrev, setCanScrollPrev] = useState(false); const [canScrollNext, setCanScrollNext] = useState(false); useEffect(() => { if (!carouselApi) { return; } const updateSelection = () => { setCanScrollPrev(carouselApi.canScrollPrev()); setCanScrollNext(carouselApi.canScrollNext()); }; updateSelection(); carouselApi.on("select", updateSelection); return () => { carouselApi.off("select", updateSelection); }; }, [carouselApi]); return (

{tagLine}

{title}

{cta}
{children ? children : data.map((it) => (
{data.map(item => (
))}
)) }
); }; export const DefaultGalleryItem: React.FC<{ item: (typeof data)[0] }> = ({ item, }) => { return (
{item.title}
{item.title}
{item.summary}
Read more{" "}
); }; export default Gallery;