feat: 实时消息与管理端运营能力

新增群聊/私信与公共 WebSocket 总线,站长用户内容档案,并将通知与待审角标改为推送驱动;同步精简管理仪表盘并修复主题换肤 DOM 冲突。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-15 22:58:16 +08:00
parent 29db9ae9b5
commit 42c395a864
55 changed files with 7607 additions and 346 deletions

View File

@@ -64,6 +64,7 @@ export default function CommentSection({
setContent("");
if (res.comment.status === "pending") {
toast("已提交,等待审核通过后公开");
router.refresh();
} else {
// 新楼层在最后一页:刷新后由服务端直出最新分页
router.refresh();
@@ -91,6 +92,7 @@ export default function CommentSection({
setReplyContent("");
if (res.comment.status === "pending") {
toast("已提交,等待审核通过后公开");
router.refresh();
} else {
// 刷新后由 SSR 直出新树(子评论全量挂在本楼)
router.refresh();
@@ -221,6 +223,7 @@ export default function CommentSection({
{c.user.nickname || c.user.username}
</span>
</Link>
{c.status === "pending" && <span className="badge-pending shrink-0 !text-[10px] !py-0.5 !px-1.5">待审</span>}
{isReplyToReply && parent && (
<>
<ChevronRight size={12} className="cmt-reply-arrow" aria-hidden="true" />
@@ -301,6 +304,7 @@ export default function CommentSection({
{c.user.nickname || c.user.username}
</span>
</Link>
{c.status === "pending" && <span className="badge-pending shrink-0">待审</span>}
{floor && (
<a href={`#comment-${c.id}`} className="cmt-floor-label" aria-label={`楼层 ${floor}`}>
#{floor}