import { toast } from 'sonner'

/**
 * 从 axios 错误中提取并显示错误信息，支持 Zod 校验失败时展示具体字段
 */
export function toastError(err: any, fallback = '操作失败') {
  const error = err?.response?.data?.error
  if (!error) {
    toast.error(fallback)
    return
  }
  // 如果有 details（Zod 校验失败），展示具体字段
  if (error.details && Array.isArray(error.details) && error.details.length > 0) {
    const fields = error.details.map((d: any) => `${d.path || '字段'}: ${d.message}`).join('；')
    toast.error(`${error.message}：${fields}`)
    return
  }
  toast.error(error.message || fallback)
}
