diff --git a/components/details/details-content.tsx b/components/details/details-content.tsx index cdbb94b..aad4428 100644 --- a/components/details/details-content.tsx +++ b/components/details/details-content.tsx @@ -5,6 +5,7 @@ import Link from "next/link"; import { getArticleById, getArticleBySlug, + getArticleFiles, getListArticle, } from "@/service/article"; import { close, error, loading } from "@/config/swal"; @@ -75,13 +76,13 @@ export default function DetailContent() { startDate: null, endDate: null, }); - const [detailfiles, setDetailFiles] = useState([]); + const [detailFiles, setDetailFiles] = useState([]); const [mainImage, setMainImage] = useState(0); const [thumbnail, setThumbnail] = useState("-"); const [diseId, setDiseId] = useState(0); const [thumbnailImg, setThumbnailImg] = useState([]); const [selectedMainImage, setSelectedMainImage] = useState( - null + null, ); const [selectedIndex, setSelectedIndex] = useState(0); @@ -297,18 +298,39 @@ export default function DetailContent() { initStateData(); }, [listCategory]); + useEffect(() => { + setSelectedIndex(0); + }, [detailFiles]); + async function initStateData() { loading(); - const res = await getArticleBySlug(slug); - const data = res?.data?.data; + try { + // 1️⃣ Ambil artikel by slug + const res = await getArticleBySlug(slug); + const data = res?.data?.data; - setThumbnail(data?.thumbnailUrl); - setDiseId(data?.aiArticleId); - setDetailFiles(data?.files); - setArticleDetail(data); // <-- Add this - close(); + if (!data?.id) return; + + setArticleDetail(data); + setThumbnail(data.thumbnailUrl); + setDiseId(data.aiArticleId); + + // 2️⃣ Ambil SEMUA article files + const filesRes = await getArticleFiles(); + const allFiles = filesRes?.data?.data ?? []; + + // 3️⃣ FILTER sesuai articleId + const filteredFiles = allFiles.filter( + (file: any) => file.articleId === data.id, + ); + + setDetailFiles(filteredFiles); + } catch (error) { + console.error("Init state detail error:", error); + } finally { + close(); + } } - // if (!articleDetail?.files || articleDetail?.files?.length === 0) { // return ( //
@@ -367,15 +389,18 @@ export default function DetailContent() { - - {new Date( - articleDetail?.publishedAt ?? articleDetail?.createdAt - ).toLocaleDateString("id-ID", { + {new Date(articleDetail?.publishedAt ?? articleDetail?.createdAt) + .toLocaleString("id-ID", { day: "numeric", month: "long", year: "numeric", - })} - + hour: "2-digit", + minute: "2-digit", + hour12: false, + timeZone: "Asia/Jakarta", + }) + .replace("pukul ", "")}{" "} + WIB {articleDetail?.categories?.[0]?.title} @@ -383,36 +408,30 @@ export default function DetailContent() {
{/* Gambar utama */} - {articleDetail?.files && articleDetail.files.length > 0 ? ( + {detailFiles.length > 0 ? ( <> - {/* Gambar utama */} -
- { -
+ {detailFiles[selectedIndex]?.fileAlt - {/* Thumbnail */}
- {articleDetail.files.map((file: any, index: number) => ( + {detailFiles.map((file, index) => (