feat(platform): 系统公告 - 支持受控 HTML 链接与格式展示

This commit is contained in:
ddCat
2026-07-23 09:03:49 +08:00
parent b1ec9406a3
commit b60efaf44a
2 changed files with 84 additions and 1 deletions

View File

@@ -3,6 +3,7 @@ import { Modal } from "antd";
import { Bell, BellOff, CircleAlert, Info, ShieldAlert, Wrench } from "lucide-react";
import { aceternityMotion } from "@/lib/aceternity-motion";
import { AnnouncementContent } from "@/components/ui/announcement-content";
import type { AnnouncementLevel, SystemAnnouncement } from "@/services/api/announcements";
type AnnouncementTimelineModalProps = {
@@ -108,7 +109,7 @@ function AnnouncementTimelineItem({ announcement, last, reducedMotion }: { annou
<h3 className="text-[15px] font-semibold leading-6 tracking-normal text-foreground sm:text-base">{announcement.title}</h3>
<span className="inline-flex items-center gap-1 text-[11px] font-medium text-foreground/45"><Icon className="size-3" />{meta.label}</span>
</div>
<p className="mt-1 whitespace-pre-wrap break-words text-sm leading-6 text-foreground/75 sm:text-[15px]">{announcement.content}</p>
<AnnouncementContent content={announcement.content} className="mt-1 text-sm leading-6 text-foreground/75 sm:text-[15px]" />
<time dateTime={announcement.publishedAt} className="mt-2 block text-xs tabular-nums text-foreground/40">{relativeTime(announcement.publishedAt)} · {formatDateTime(announcement.publishedAt)}</time>
</div>
</motion.article>