import type { LucideIcon } from "lucide-react"; import { Medal, Award, Trophy, Crown, Star, Heart, Zap, Flame, Gem, Shield, Rocket, Sparkles, ThumbsUp, BookOpen, Code, Wrench, } from "lucide-react"; /** * 徽章图标白名单:后台管理以 lucide 图标名存储,前端仅渲染此表内的图标, * 未知/空名回落 Medal(与后端 model.Badge.Icon 注释约定一致)。 */ export const BADGE_ICONS: Record = { medal: Medal, award: Award, trophy: Trophy, crown: Crown, star: Star, heart: Heart, zap: Zap, flame: Flame, gem: Gem, shield: Shield, rocket: Rocket, sparkles: Sparkles, thumbs_up: ThumbsUp, book_open: BookOpen, code: Code, wrench: Wrench, }; /** 取徽章图标组件;未知/空名回落 Medal */ export function badgeIcon(name?: string | null): LucideIcon { return (name && BADGE_ICONS[name]) || Medal; }