import {
EyeOutlined,
LikeOutlined,
LikeFilled,
UserOutlined,
BankOutlined,
CalendarOutlined,
FileTextOutlined,
SendOutlined,
MailOutlined,
} from "@ant-design/icons";
import { Button, Typography, Space, Tooltip } from "antd";
import { PostDto, PostStateLabels } from "@nice/common";
import dayjs from "dayjs";
import PostLikeButton from "./detail/PostHeader/PostLikeButton";
import { LetterBadge } from "./LetterBadge";
const { Title, Paragraph, Text } = Typography;
interface LetterCardProps {
letter: PostDto;
}
export function LetterCard({ letter }: LetterCardProps) {
return (
{
window.open(`/${letter.id}/detail`)
}}
className="cursor-pointer p-6 bg-slate-100/80 rounded-xl hover:ring-white hover:ring-1 transition-all
duration-300 ease-in-out hover:-translate-y-0.5
active:scale-[0.98] border border-white
group relative overflow-hidden"
>
{letter.title}
{/* Meta Info */}
{letter.author?.department?.name && (
{letter.author?.department?.name}
)}
{letter.author?.showname || '匿名用户'}
{letter.receivers.some(item => item.showname) && (
item.showname).filter(Boolean).join(', ')}>
{letter.receivers
.map(item => item.showname)
.filter(Boolean)
.slice(0, 2)
.join('、')}
{letter.receivers.filter(item => item.showname).length > 2 && ' 等'}
)}
{dayjs(letter.createdAt).format("YYYY-MM-DD")}
{/* Content Preview */}
{letter.content && (
)}
{/* Badges & Interactions */}
{letter.meta.tags.map(tag => (
))}
{letter.terms.map(term => (
))}
);
}