import Link from "next/link"; import { Pin, Star } from "lucide-react"; import type { PostListItem } from "@/lib/api"; import { postPath } from "@/lib/urlStyle"; import { getPublicSettingsCached } from "@/lib/serverData"; import Avatar from "./Avatar"; import { IconComment, IconEye } from "./Icons"; function formatTime(dateStr: string) { const d = new Date(dateStr); return `${d.getFullYear()}.${String(d.getMonth() + 1).padStart(2, "0")}.${String( d.getDate() ).padStart(2, "0")}`; } /** * 管理员置顶区:独立于普通帖子列表。 * 陶土色语义(与 badge-pin 一致),紧凑排列,一眼识别为公告性质内容。 */ export default async function PinnedPosts({ posts, showBoard = true, }: { posts: PostListItem[]; showBoard?: boolean; }) { if (posts.length === 0) return null; const urlStyle = (await getPublicSettingsCached()).url_style; return (

置顶讨论

管理员置顶 · {posts.length}
{posts.map((p, i) => ( 0 ? { borderTop: "1px solid var(--line)" } : {}), animationDelay: `${i * 35}ms`, }} >

{p.title}

{p.user.nickname} · {formatTime(p.created_at)} {showBoard && ( <> · {p.board.name} )} {p.recommended && ( )}
{p.comment_count} {p.view_count}
))}
); }