"use client" import { useState } from "react" import { Button } from "@/components/ui/button" import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog" import { Badge } from "@/components/ui/badge" import { Eye, Edit, Award, Zap, Gift, Heart, Coins, Shirt, BadgeCheck } from "lucide-react" import type { Achievement } from "@/lib/api/types" type AchievementDetailDialogProps = { achievement: Achievement onEdit?: () => void } export function AchievementDetailDialog({ achievement, onEdit }: AchievementDetailDialogProps) { const [open, setOpen] = useState(false) const getCategoryColor = (category: string) => { switch (category) { case "互动": return "bg-blue-500" case "好感度": return "bg-pink-500" case "收集": return "bg-purple-500" case "探索": return "bg-green-500" case "特殊": return "bg-amber-500" case "隐藏": return "bg-gray-500" default: return "bg-gray-500" } } const getRewardIcon = (rewardType: string) => { switch (rewardType) { case "经验值": return case "好感度": return case "虚拟币": return case "道具": return case "服装": return case "称号": return default: return } } const getIconComponent = (iconName: string) => { // 这里可以根据iconName返回对应的Lucide图标 // 简化处理,默认返回Award图标 return } return ( 成就详情 查看成就的详细信息和解锁条件 {achievement.icon ? getIconComponent(achievement.icon) : } {achievement.name} {achievement.category} {achievement.isHidden && 隐藏成就} 成就描述 {achievement.description} 解锁条件 {achievement.requirement} 解锁率 {achievement.unlockRate ? `${achievement.unlockRate}%` : "未知"} 奖励 {getRewardIcon(achievement.rewardType)} {achievement.rewardType} x {achievement.rewardAmount} 创建时间: {achievement.createdAt} 更新时间: {achievement.updatedAt} setOpen(false)}> 关闭 {onEdit && ( { setOpen(false) onEdit() }} > 编辑成就 )} ) }
{achievement.description}
{achievement.requirement}
{achievement.unlockRate ? `${achievement.unlockRate}%` : "未知"}
{achievement.rewardType} x {achievement.rewardAmount}