"use client"; import { useState, useEffect } from "react"; import { Calendar, Eye } from "lucide-react"; import { Button } from "@/components/ui/button"; import Link from "next/link"; import { FaFacebookF, FaTiktok, FaYoutube, FaWhatsapp, FaInstagram, FaTwitter, FaCheck, FaLink, FaShareAlt, } from "react-icons/fa"; import { getDetail } from "@/service/landing/landing"; import { getArticleDetail } from "@/service/content/content"; export default function DocumentDetail({ id }: { id: number }) { const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [copied, setCopied] = useState(false); const [showShareMenu, setShowShareMenu] = useState(false); const [selectedDoc, setSelectedDoc] = useState(0); // Copy link const handleCopyLink = async () => { try { await navigator.clipboard.writeText(window.location.href); setCopied(true); setTimeout(() => setCopied(false), 2000); } catch (err) { console.error("Gagal menyalin:", err); } }; const SocialItem = ({ icon, label, }: { icon: React.ReactNode; label: string; }) => (
{icon}
{label}
); useEffect(() => { const fetchDetail = async () => { try { setLoading(true); // 1️⃣ Coba ambil dari API baru const res = await getArticleDetail(id); console.log("Response artikel:", res); const article = res?.data?.data; if (article) { const mappedData = { id: article.id, title: article.title, description: article.description, createdAt: article.createdAt, clickCount: article.viewCount, creatorGroupLevelName: article.createdByName || "Unknown", uploadedBy: { publisher: article.createdByName || "MABES POLRI", }, files: article.files?.map((f: any) => ({ id: f.id, fileName: f.file_name, url: f.file_url, secondaryUrl: f.file_url, fileThumbnail: f.file_thumbnail, fileAlt: f.file_alt, size: f.size, createdAt: f.created_at, updatedAt: f.updated_at, })) || [], }; setData(mappedData); return; } // 2️⃣ Fallback ke API lama // const fallback = await getDetail(id); // setData(fallback?.data?.data); } catch (err) { console.error("Gagal ambil detail:", err); // try { // const fallback = await getDetail(id); // setData(fallback?.data?.data); // } catch (err2) { // console.error("Fallback gagal:", err2); // } } finally { setLoading(false); } }; if (id) fetchDetail(); }, [id]); if (loading) { return (

Memuat data...

); } if (!data) { return (

Data tidak ditemukan

); } return (
{/* Viewer dokumen utama */} {/*