Files
kotobane/components/home/ArticleGrid.tsx
T
2026-05-28 22:30:17 +07:00

30 lines
860 B
TypeScript

import ArticleCard from '@/components/article/ArticleCard'
import type { Article } from '@/lib/types'
interface Props {
articles: Article[]
title?: string
}
export default function ArticleGrid({ articles, title }: Props) {
if (articles.length === 0) return null
return (
<section className="max-w-[1200px] mx-auto px-6 py-6">
{title && (
<div className="flex items-center gap-4 mb-5">
<h2 className="text-xs font-bold text-text-primary uppercase tracking-widest shrink-0">
{title}
</h2>
<div className="flex-1 h-px bg-border" />
</div>
)}
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4">
{articles.map((article) => (
<ArticleCard key={article.id} article={article} />
))}
</div>
</section>
)
}