"use client"; import { Link } from "@/components/navigation"; import { Card, CardContent } from "@/components/ui/card"; import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, } from "@/components/ui/carousel"; import { getListContent } from "@/service/landing/landing"; import { formatDateToIndonesian, generateLocalizedPath, textEllipsis, } from "@/utils/globals"; import { Icon } from "@iconify/react/dist/iconify.js"; import { SortingState, ColumnFiltersState, VisibilityState, PaginationState, } from "@tanstack/react-table"; import { useParams, usePathname, useRouter, useSearchParams, } from "next/navigation"; import React, { Component, useEffect, useState } from "react"; const ImageSliderPage = () => { const router = useRouter(); const searchParams = useSearchParams(); const [imageData, setImageData] = useState(); const [displayImage, setDisplayImage] = useState([]); const [page, setPage] = useState(1); useEffect(() => { fetchData(); }, [page]); useEffect(() => { if (imageData?.length > 0) { shuffleAndSetVideos(); const interval = setInterval(shuffleAndSetVideos, 5000); return () => clearInterval(interval); // Cleanup interval on unmount } }, [imageData]); const fetchData = async () => { const response = await getListContent({ page: page - 1, size: 6, sortBy: "createdAt", contentTypeId: "1", }); console.log(response); const data = response.data?.data; const contentData = data?.content; setImageData(contentData); }; const shuffleAndSetVideos = () => { const shuffled = shuffleArray([...imageData]); setDisplayImage(shuffled.slice(0, 3)); }; const shuffleArray = (array: any[]) => { for (let i = array.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [array[i], array[j]] = [array[j], array[i]]; } return array; }; return (
{displayImage?.map((image: any) => (
{formatDateToIndonesian(new Date(image?.createdAt))}{" "} {image?.timezone ? image?.timezone : "WIB"}|{" "} {image?.clickCount}{" "} {" "}
{image?.title}
))}
); }; export default ImageSliderPage;