"use client"; import Link from "next/link"; import ArticleThumbnail from "@/components/landing-page/article-thumbnail"; import type { PublicArticle } from "@/lib/articles-public"; const BADGE_COLORS = [ "bg-red-600", "bg-yellow-500", "bg-yellow-600", "bg-[#0f3b63]", ]; function firstTag(tags: string | undefined): string { if (!tags?.trim()) return ""; const t = tags .split(",") .map((s) => s.trim()) .filter(Boolean)[0]; return t ?? ""; } export function articleDetailHref(a: PublicArticle) { return `/news/detail/${a.id}-${a.slug}`; } type Props = { article: PublicArticle; }; export default function PublicArticleCard({ article }: Props) { const badgeClass = BADGE_COLORS[article.id % BADGE_COLORS.length]; const category = article.categoryName?.trim() || "Berita"; const tag = firstTag(article.tags); const dateSrc = article.publishedAt || article.createdAt; const dateLabel = typeof dateSrc === "string" ? new Date(dateSrc).toLocaleDateString("id-ID", { day: "2-digit", month: "long", year: "numeric", }) : ""; return (
{category} {tag ? ( {tag} ) : null}

{dateLabel}

{article.title}

{article.description}

); }