Newer
Older
const Carousel = (props: Props) => {
const { images, isLogo, delay } = props;
const nbr_image: number = images.length;
const updateIndex = (newIndex: number) => {
if (newIndex < 0) {
newIndex = nbr_image - 1;
} else if (newIndex >= nbr_image) {
newIndex = 0;
}
setIndex(newIndex);
};
const interval = setInterval(() => {
if (delay != 0) {
updateIndex(index + 1);
}
}, delay);
return () => {
if (interval) {
clearInterval(interval);
}
};
});
className={`carousel ${isLogo ? "w-1/4 ml-7" : "w-full"} truncate`}
className={`whitespace-nowrap ${isLogo ? "w-1/2" : "w-full"} `}
? `translateX(-${index * 60 }%)`
: `translateX(0)`
: `translateX(-${index * 100}%)`,
transition: "transform 0.3s",
}}
>
{images.map((item: any, key: any) => {
return (
<div
className={`carousel-item relative w-full inline-block`}
key={key}
>
{isLogo ? (
<div className="flex justify-center items-center w-full">
<img
src={item.src}
/>
</div>
) : (
<img src={item.src} className="w-full h-[384px]" />
)}
</div>
);
})}
</div>
className={`absolute flex justify-between pl-5 pr-5 ${
>
❮
</button>
<button
onClick={() => updateIndex(index + 1)}