import React, { useEffect, useState } from "react";
import { motion } from "framer-motion";
import { Swiper, SwiperSlide } from "swiper/react";
import "swiper/css";
import "swiper/css/pagination";
import "swiper/css/navigation";
import "swiper/css/effect-fade";
import { HiOutlineStatusOnline } from "react-icons/hi";
import SwiperCore, {
Autoplay,
EffectFade,
Navigation,
Pagination,
} from "swiper";
import Image from "next/image";
import Link from "next/link";
import axios from "axios";
import { ContainerCarousel } from "./style";
import "swiper/swiper-bundle.css";
SwiperCore.use([Autoplay, EffectFade, Navigation, Pagination]);
interface Slide {
image: string;
type: string;
id: string;
}
const Carousel = () => {
const [slides, setSlides] = useState<Slide[]>([] as Slide[]);
function getDataAtualFormatada() {
const dataAtual = new Date();
const dia = String(dataAtual.getDate()).padStart(2, "0");
const mes = String(dataAtual.getMonth() + 1).padStart(2, "0");
const ano = String(dataAtual.getFullYear()).slice(-2); // Pegando apenas os dois últimos dígitos do ano
return `${dia} - ${mes} - ${ano}`;
}
useEffect(() => {
const fetchData = async () => {
try {
const response = await axios.post<{ results: Slide[] }>(
`${process.env.NEXT_PUBLIC_API}/resposta`,
{
id: "1",
},
{
headers: {
"Content-Type": "application/json",
},
},
);
response;
setSlides(response.data.results);
} catch (error) {
error;
}
};
fetchData();
}, []);
return (
<motion.div
initial={{ opacity: 0.3 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0 }}
transition={{ duration: 0.5 }}
>
<ContainerCarousel>
<div className="content">
<Swiper
spaceBetween={30}
effect="fade"
navigation
pagination={{ clickable: true }}
className="mySwiper"
>
{slides.map((slide, index) => (
<SwiperSlide key={index}>
<div className="container-carousel">
<Image
className="img-carousel"
src={`/slide-${
slide.image
.match(/slide-(.*?)\.webp/)?.[1]
.split("-")
.pop() || ""
}.webp`}
width={1000}
height={1000}
alt="img-carousel"
unoptimized
/>
<div className="content-carousel">
<button className="carousel-status" disabled>
<HiOutlineStatusOnline className="icon" />
Active now
</button>
<p className="carousel-date">{getDataAtualFormatada()}</p>
<h2 className="carousel-title">
YRprey-{" "}
{slide.image
.match(/slide-(.*?)\.webp/)?.[1]
.split("-")
.pop()}
</h2>
<p className="carousel-details">
Collection -{" "}
{slide.image
.match(/slide-(.*?)\.webp/)?.[1]
.split("-")
.pop()}
</p>
<Link
href={
"/shop/collection/" +
(slide.image
.match(/slide-(.*?)\.webp/)?.[1]
.split("-")
.pop() || "")
}
className="carousel-button"
>
<button className="carousel-button">See drop</button>
</Link>
</div>
</div>
</SwiperSlide>
))}
</Swiper>
</div>
</ContainerCarousel>
</motion.div>
);
};
export default Carousel;
|