"use client" import React, { useState } from "react" import Link from "next/link" import { useKeenSlider } from "keen-slider/react" import "keen-slider/keen-slider.min.css" // Autoplay plugin function AutoplaySlider(slider) { let timeout let mouseOver = false function clearNextTimeout() { clearTimeout(timeout) } function nextTimeout() { clearTimeout(timeout) if (mouseOver) return timeout = setTimeout(() => { slider.next() }, 4000) } slider.on("created", () => { slider.container.addEventListener("mouseover", () => { mouseOver = true clearNextTimeout() }) slider.container.addEventListener("mouseout", () => { mouseOver = false nextTimeout() }) nextTimeout() }) slider.on("dragStarted", clearNextTimeout) slider.on("animationEnded", nextTimeout) slider.on("updated", nextTimeout) } export default function Banner() { const [sliderLoaded, setSliderLoaded] = useState(false) const [sliderRef] = useKeenSlider( { loop: true, renderMode: "performance", slides: { perView: 1, spacing: 0 }, duration: 1000, // increase for smoother transition easing: (t) => t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2, // smooth cubic easing created() { setSliderLoaded(true) }, }, [AutoplaySlider] ) const slides = [ { id: 0, bg: "/assets/images/banner/desktopBanner/banner-4.webp", alt: "Physiotherapy at Rapharehab Clinic.", upper: "Begin your", title: "Recovery", desc: "• Rehab • Strength Training • Personalized Care", btn: { text: "Visit Our Location", link: "/contact" }, align: "start", }, { id: 1, bg: "/assets/images/banner/desktopBanner/banner-1.webp", alt: "Pain relief and rehab therapy.", upper: "Build Your Strength &", title: "Endurance", desc: "• Physiotherapy • Sports Therapy • Injury Prevention", btn: { text: "Book Your Appointment", link: "tel:+647-722-3434" }, align: "center", }, { id: 2, bg: "/assets/images/banner/desktopBanner/banner-3.webp", alt: "Rapharehab physiotherapy session.", upper: "Regain Your Strength", title: "Heal", desc: "• Pain Relief • Mobility • Wellness", btn: { text: "Schedule a Massage", link: "/contact" }, align: "start", }, { id: 3, bg: "/assets/images/banner/desktopBanner/banner-2.webp", alt: "Rehab and recovery care.", upper: "Build your Core", title: "Performance", desc: "• Pain Relief • Active Care • Long-Term Result", btn: { text: "Explore Our Service", link: "/etobicoke-treatment-service" }, align: "space-evenly", }, ] return (
{slides.map((s) => (
{s.upper} {/* ✅ Use

for first slide only */} {s.id === 0 ? (

{s.title}

) : (

{s.title}

)}

{s.desc}

{s.btn.text}
))}
) }