import React from 'react'; import { Model, ModelDynamicStats, Gender } from '../types/model'; import { UserIcon, SparklesIcon, VideoCameraIcon, ClockIcon, CheckCircleIcon, ExclamationCircleIcon, PlusIcon } from '@heroicons/react/24/outline'; interface ModelDynamicHeaderProps { model: Model; stats: ModelDynamicStats | null; onCreateDynamic: () => void; } const ModelDynamicHeader: React.FC = ({ model, stats, onCreateDynamic }) => { const getGenderIcon = (gender: Gender) => { switch (gender) { case Gender.Male: return '♂️'; case Gender.Female: return '♀️'; default: return '⚧️'; } }; const getGenderColor = (gender: Gender) => { switch (gender) { case Gender.Male: return 'text-blue-600 bg-blue-100'; case Gender.Female: return 'text-pink-600 bg-pink-100'; default: return 'text-purple-600 bg-purple-100'; } }; return (
{/* 装饰性背景 */}
{/* 主要信息区域 */}
{/* 头像和基本信息 */}
{model.avatar_path ? ( {model.name} ) : (
)} {/* 性别标识 */}
{getGenderIcon(model.gender)}

{model.name}

{model.stage_name && ( ({model.stage_name}) )}
{model.age && ( {model.age}岁 )} {model.height && ( {model.height}cm )} {model.gender === Gender.Male ? '男' : model.gender === Gender.Female ? '女' : '其他'}
{model.description && (

{model.description}

)} {/* 标签 */} {model.tags.length > 0 && (
{model.tags.slice(0, 5).map((tag, index) => ( #{tag} ))} {model.tags.length > 5 && ( +{model.tags.length - 5} )}
)}
{/* 发布动态按钮 */}
{/* 统计信息 */} {stats && (
总动态
{stats.total_dynamics}
已发布
{stats.published_dynamics}
总视频
{stats.total_videos}
已完成
{stats.completed_videos}
0 ? 'animate-pulse' : ''}`} /> 生成中
{stats.generating_videos}
失败
{stats.failed_videos}
)}
); }; export default ModelDynamicHeader;