"use client"; import { tiktokHumasData } from "@/service/generate-article"; import { Button, Card, CardBody, CardFooter, Image, Spinner, } from "@heroui/react"; import Link from "next/link"; import { useEffect, useState } from "react"; import { Swiper, SwiperSlide } from "swiper/react"; import "swiper/css"; import "swiper/css/navigation"; import "swiper/css/pagination"; import { Navigation, Pagination } from "swiper/modules"; import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; import { PlayIcon, TiktokLandingIcon } from "@/components/icons"; import { textEllipsis } from "@/utils/global"; const getRelativeTime = (timestamp: number): string => { const now = Date.now(); const timeDiff = now - timestamp * 1000; // Konversi ke milidetik const seconds = Math.floor(timeDiff / 1000); const minutes = Math.floor(seconds / 60); const hours = Math.floor(minutes / 60); const days = Math.floor(hours / 24); const weeks = Math.floor(days / 7); const months = Math.floor(days / 30); const years = Math.floor(days / 365); if (seconds < 60) return "just now"; if (minutes < 60) return `${minutes} min ago`; if (hours < 24) return `${hours} hour${hours > 1 ? "s" : ""} ago`; if (days < 7) return `${days} day${days > 1 ? "s" : ""} ago`; if (weeks < 4) return `${weeks} week${weeks > 1 ? "s" : ""} ago`; if (months < 12) return `${months} month${months > 1 ? "s" : ""} ago`; return `${years} year${years > 1 ? "s" : ""} ago`; }; export default function TiktokWidget() { const [tiktokData, setTiktokData] = useState([]); useEffect(() => { fetchData(); }, []); const fetchData = async () => { const res = await tiktokHumasData(); setTiktokData(res?.data?.data); }; const [isVideoLoaded, setIsVideoLoaded] = useState(0); const videoUrl = "https://www.tiktok.com/@divhumaspolriofficial/video/"; const loadTikTokVideo = (id: number) => { setIsVideoLoaded(id); // Tambahkan script TikTok embed setelah video dimuat const script = document.createElement("script"); script.src = "https://www.tiktok.com/embed.js"; script.async = true; document.body.appendChild(script); }; const tiktokPlayer = (data: any) => { return (
{isVideoLoaded !== data.id ? ( loadTikTokVideo(data.id)} className="relative flex flex-col gap-2 justify-center items-center lg:py-10 px-5 transition-all duration-300 hover:bg-black/10 h-[756px] active:bg-black/20" >

{textEllipsis(data.desc, 200)}

Divisi Humas Polri

{getRelativeTime(data.create_time)}

humas-polri
{ e.stopPropagation(); // Mencegah masalah klik tertangkap oleh elemen lain loadTikTokVideo(data.id); }} >
) : (
)}
); }; return tiktokData?.length > 1 ? (
humas-polri{" "}

Divisi Humas Polri

{ swiper.navigation.nextEl?.classList.add( "bg-white", "!text-black", "rounded-full", "!w-[40px]", "!h-[40px]", "!border-2" ); swiper.navigation.prevEl?.classList.add( "bg-white", "!text-black", "rounded-full", "!w-[40px]", "!h-[40px]", "!border-2" ); }} > {tiktokData?.map((data: any) => ( {tiktokPlayer(data)} ))}
) : (
); }