"use client"; import { ChevronLeft, ChevronRight, Clock, MessageCircle } from "lucide-react"; import { Card } from "../ui/card"; import Image from "next/image"; import { getListArticle } from "@/service/article"; import { useState, useEffect } from "react"; import latestNews from "./latest-news"; type Article = { id: number; title: string; description: string; categoryName: string; createdAt: string; createdByName: string; customCreatorName: string; thumbnailUrl: string; categories: { title: string }[]; files: { fileUrl: string; file_alt: string }[]; image: string; author: string; category: string; date: string; expert: string; }; export default function Beranda() { const [articles, setArticles] = useState([]); const [mainNews, setMainNews] = useState
(null); const [latestNewsMid, setLatestNewsMid] = useState([]); const [recentNews, setRecentNews] = useState([]); const [latestNews, setLatestNews] = useState([]); useEffect(() => { const fetchArticles = async () => { try { const req = { limit: "6", // ambil 6 berita, 1 untuk main + 5 untuk lainnya page: 1, search: "", categorySlug: "", sort: "desc", isPublish: true, sortBy: "created_at", }; const res = await getListArticle(req); const data = res?.data?.data || []; setArticles(data); setMainNews(data[0] || null); setLatestNewsMid(data.slice(1, 5)); setRecentNews(res?.data?.data || []); setLatestNews(res?.data?.data || []); } catch (err) { console.error("Error fetching articles:", err); } }; fetchArticles(); }, []); const formatDate = (dateString?: string) => { if (!dateString) return ""; return new Date(dateString).toLocaleDateString("id-ID", { day: "numeric", month: "long", year: "numeric", }); }; return (
{/* Berita Terpopuler */} {/* Berita Utama */}
{mainNews && (

Beranda

{mainNews.title}

BY{" "} {mainNews.customCreatorName || mainNews.createdByName || "Redaksi"} {" "} {" "} {formatDate(mainNews.createdAt)} 0

{mainNews.description}

)}
{/* Grid Berita Tambahan */}
{latestNewsMid.map((news) => { const imageUrl = news.thumbnailUrl || news.files?.[0]?.fileUrl || "/placeholder.jpg"; const category = news.categoryName || news.categories?.[0]?.title || "Berita"; return (
{news.title} {category}

{news.title}

{" "}

{formatDate(news.createdAt)}

); })}
{/* Recent News */}

Recent News

{recentNews.map((item, i) => (
{item.title}

{item.title}

BY{" "} {item.customCreatorName || item.createdByName || "Redaksi"} {new Date(item.createdAt).toLocaleDateString("id-ID", { day: "2-digit", month: "short", year: "numeric", })} 0

{item.description || ""}

))} {/* Pagination */}
{/* Banner Iklan */}
Berita Utama
{/* Pagination */}
{/* Berita Terbaru */}
); }