"use client"

import { AlertCircle } from "lucide-react"
import { useTranslations } from "next-intl"

import { EmptyState } from "@/shared/components/ui/empty-state"

/**
 * 仪表盘通用错误边界回退 UI。
 *
 * 用于各角色 dashboard 路由的 `error.tsx`，消除重复代码。
 * 接收 Next.js 注入的 `reset` 函数用于重试。
 */
export function DashboardErrorFallback({ reset }: { error: Error & { digest?: string }; reset: () => void }) {
  const t = useTranslations("dashboard")
  return (
    <div className="flex h-full flex-col items-center justify-center space-y-4 p-8">
      <EmptyState
        icon={AlertCircle}
        title={t("error.loadFailed")}
        description={t("error.loadFailedDesc")}
        action={{
          label: t("error.retry"),
          onClick: () => reset(),
        }}
        className="border-none shadow-none h-auto"
      />
    </div>
  )
}
