import { useState, useEffect } from 'react'; import { getVersion } from '@tauri-apps/api/app'; import '../styles/StartupPage.css'; interface StartupPageProps { onOpenProject: () => void; onCreateProject: () => void; onOpenRecentProject?: (projectPath: string) => void; onProfilerMode?: () => void; recentProjects?: string[]; locale: string; } export function StartupPage({ onOpenProject, onCreateProject, onOpenRecentProject, onProfilerMode, recentProjects = [], locale }: StartupPageProps) { const [hoveredProject, setHoveredProject] = useState(null); const [appVersion, setAppVersion] = useState(''); useEffect(() => { getVersion().then(setAppVersion).catch(() => setAppVersion('1.0.0')); }, []); const translations = { en: { title: 'ECS Framework Editor', subtitle: 'Professional Game Development Tool', openProject: 'Open Project', createProject: 'Create Project', profilerMode: 'Profiler Mode', recentProjects: 'Recent Projects', noRecentProjects: 'No recent projects', comingSoon: 'Coming Soon' }, zh: { title: 'ECS 框架编辑器', subtitle: '专业游戏开发工具', openProject: '打开项目', createProject: '创建新项目', profilerMode: '性能分析模式', recentProjects: '最近的项目', noRecentProjects: '没有最近的项目', comingSoon: '即将推出' } }; const t = translations[locale as keyof typeof translations] || translations.en; const versionText = locale === 'zh' ? `版本 ${appVersion}` : `Version ${appVersion}`; return (

{t.title}

{t.subtitle}

{t.recentProjects}

{recentProjects.length === 0 ? (

{t.noRecentProjects}

) : (
    {recentProjects.map((project, index) => (
  • setHoveredProject(project)} onMouseLeave={() => setHoveredProject(null)} onClick={() => onOpenRecentProject?.(project)} style={{ cursor: onOpenRecentProject ? 'pointer' : 'default' }} >
    {project.split(/[\\/]/).pop()}
    {project}
  • ))}
)}
{versionText}
); }