Card.tsx
789 Bytes
import Link from 'next/link';
import { Card as CardItem } from 'antd';
import { Row } from './Row';
function MoreButton(category) {
return <Link href={`/category/${category}`}>더보기</Link>;
}
export default function Card({ category, posts, ...rest }) {
const postsNum = posts.length;
const emptyRows = postsNum < 5 ? Array(5 - postsNum).fill(null) : [];
const sliced = postsNum > 5 ? posts.slice(postsNum - 5, postsNum) : posts;
return (
<CardItem title={category} extra={MoreButton(category)} {...rest}>
{sliced.map(({ title, id, content }) => (
<Row key={title} category={category} title={title} id={id} content={content} />
))}
{emptyRows.map((_, idx) => (
<div className={'card-row'} key={idx} />
))}
</CardItem>
);
}