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";
import PostHateButton from "./detail/PostHeader/PostHateButton";
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) => (
))}
);
}