"use client"; import { Link } from "@/i18n/routing"; import { listData } from "@/service/landing/landing"; import { formatDateToIndonesian, textEllipsis } from "@/utils/globals"; import { useEffect, useState } from "react"; import { useTranslations } from "next-intl"; import { Icon } from "@/components/ui/icon"; import { useParams } from "next/navigation"; export default function NewsTickerKaltara() { const [article, setArticle] = useState([]); const [currentNewsIndex, setCurrentNewsIndex] = useState(0); const [animate, setAnimate] = useState(false); const [tanggal, setTanggal] = useState(""); const t = useTranslations("LandingPage"); const [content, setContent] = useState([]); const [isBannerLoading, setIsBannerLoading] = useState(true); const [centerPadding, setCenterPadding] = useState(); const params = useParams(); const poldaName: any = params?.polda_name; useEffect(() => { const options: Intl.DateTimeFormatOptions = { weekday: "long", day: "2-digit", month: "long", year: "numeric", }; const today = new Date().toLocaleDateString("id-ID", options); setTanggal(today); }, []); useEffect(() => { // async function initState() { // const res = await listCarousel(); // setContent(res?.data?.data); // setCenterPadding(`${Math.trunc(Number(window.innerWidth) / 10 + 40)}px`); // } async function fetchData() { const res = await listData("1", "", "", 5, 0, "createdAt", "", "", poldaName); let data = res?.data?.data?.content; setContent(data); setCenterPadding(`${Math.trunc(Number(window.innerWidth) / 10 + 40)}px`); setIsBannerLoading(false); console.log("Done"); } fetchData(); }, [params?.page]); const settings = { className: "center", // centerMode: true, infinite: true, centerPadding, slidesToShow: 2, autoplay: true, speed: 1500, autoplaySpeed: 15_000, focusOnSelect: true, responsive: [ { breakpoint: 768, settings: { arrows: false, centerMode: true, centerPadding: "60px", slidesToShow: 1, }, }, { breakpoint: 480, settings: { arrows: false, centerMode: true, centerPadding: "20px", slidesToShow: 1, }, }, ], }; // useEffect(() => { // async function getArticle() { // const response = await getHeroData(); // setArticle(response?.data?.data?.content); // } // getArticle(); // }, []); const triggerAnimation = (newIndex: number) => { setAnimate(true); setTimeout(() => { setCurrentNewsIndex(newIndex); setAnimate(false); }, 300); }; const handlePrev = () => { const newIndex = (currentNewsIndex - 1 + content.length) % content.length; triggerAnimation(newIndex); }; const handleNext = () => { const newIndex = (currentNewsIndex + 1) % content.length; triggerAnimation(newIndex); }; useEffect(() => { const interval = setInterval(() => { triggerAnimation((currentNewsIndex + 1) % content.length); }, 7000); return () => clearInterval(interval); }, [content?.length]); return (
{tanggal}
{t("breakingNews", { defaultValue: "Breaking News" })} :

{content[currentNewsIndex]?.title}

{textEllipsis(content[currentNewsIndex]?.title, 28)}

{formatDateToIndonesian(content[currentNewsIndex]?.createdAt)}

handlePrev()}> handleNext()}>
); }