leumas-universal-crud-react
Version:
Leumas Universal CRUD to a dynamic Endpoint, Setup your own Dynamic Endpoint and Use Leumas API to send to your MONGO clusters
48 lines (43 loc) • 1.7 kB
JSX
import { useState } from 'react';
function FeatureCard({ title, description, image }) {
return (
<div
className="flex flex-col justify-center items-center h-full text-white p-8 bg-opacity-50 relative"
style={{ backgroundImage: `url(${image})`, backgroundSize: 'cover', backgroundPosition: 'center' }}
>
<div className="absolute inset-0 bg-black opacity-50"></div>
<h2 className="text-4xl mb-4 z-10">{title}</h2>
<p className="text-xl z-10">{description}</p>
</div>
);
}
function ImageSlideshow({ slides, headerText }) {
const [currentSlide, setCurrentSlide] = useState(0);
return (
<div className="h-screen bg-gray-800 overflow-hidden">
<header className="absolute top-8 left-1/2 transform -translate-x-1/2 z-10">
<h1 className="text-5xl text-white">{headerText}</h1>
</header>
<main className="h-full w-full relative">
{slides.map((slide, index) => (
<div
key={index}
className={`absolute h-full w-full transition-transform duration-1000 ease-in-out transform ${index !== currentSlide && 'translate-x-full'}`}
>
<FeatureCard {...slide} />
</div>
))}
</main>
<footer className="absolute bottom-8 left-1/2 transform -translate-x-1/2 z-10 flex space-x-4">
{slides.map((_, index) => (
<button
key={index}
onClick={() => setCurrentSlide(index)}
className={`w-4 h-4 ${index === currentSlide ? 'bg-blue-500' : 'bg-white' } rounded-full`}
/>
))}
</footer>
</div>
);
}
export default ImageSlideshow;