"use client"; import { type ReactNode } from "react"; import { useWebSocket } from "@/hooks/use-websocket"; import { useToast } from "@/providers/toast-provider"; import { Badge } from "./ui"; import { t } from "@/lib/i18n"; import type { WsNotification } from "@/types/view-models"; const severityColor: Record = { info: "var(--color-accent)", warning: "var(--color-warning)", error: "var(--color-danger)", }; const typeLabel: Record = { audit_alert: t("admin.notification.auditAlert"), abnormal_login: t("admin.notification.abnormalLogin"), system_error: t("admin.notification.systemError"), info: "系统通知", }; export function NotificationPanel(): ReactNode { const { notifications, connected, dismiss, clear } = useWebSocket(20); const { show } = useToast(); return (

{t("admin.notification.title")}

{notifications.length > 0 && ( )}
    {notifications.length === 0 && (
  • 暂无通知
  • )} {notifications.map((notif) => (
  • ))}
); }