"use client"; import { useEffect, useState } from "react"; import { useRouter } from "next/navigation"; import { Ban } from "lucide-react"; import { onForceLogout } from "@/lib/userEvents"; import Modal from "@/components/Modal"; /** * 账号安全守卫:监听全局强制下线事件,被封禁时弹出不可误关的告知模态。 * * 登录态清理(cookie/Header 游客化/router.refresh)由 Header 复用统一 * 登出链路完成;本组件只负责"告知"这一职责,故不处理任何凭据逻辑。 * 挂载于 root layout,覆盖任意页面(含后台)。 */ export default function AccountGuard() { const router = useRouter(); const [banned, setBanned] = useState(false); useEffect( () => onForceLogout((reason) => { if (reason === "banned") setBanned(true); }), [] ); return ( {}} hideClose closeOnEscape={false} role="alertdialog" ariaLabel="账号已被封禁" maxWidthClass="max-w-[400px]" footer={ } header={

账号已被封禁

} >

你的账号因违反社区规则已被管理员封禁,当前登录状态已失效,无法继续发布内容与互动。 如对处理结果有异议,请联系管理员核实。

); }