import { useNavigate } from 'react-router-dom' import { Rocket, Layers3, BookOpen, ArrowRight } from 'lucide-react' import { ThemeToggle } from './ThemeToggle' import { type TutorialSummary } from '@/tutorial/loader' import { useTutorialStore } from '@stores/tutorialStore' interface TutorialHubProps { tutorials: TutorialSummary[] } export function TutorialHub({ tutorials }: TutorialHubProps) { const navigate = useNavigate() const getTutorialProgress = useTutorialStore((state) => state.getTutorialProgress) const handleSelectTutorial = (tutorialId: string) => { navigate(`/${tutorialId}`) } return (

Multi Tutorial Mode

教程大厅

教程总数

{tutorials.length}

总步骤数

{tutorials.reduce((sum, item) => sum + item.stepCount, 0)}

学习建议

先选一个 20~30 分钟教程快速完成,再进入中高级教程做项目实战。

{tutorials.map((tutorial) => { const progress = getTutorialProgress(tutorial.id, tutorial.stepCount) const hasProgress = progress.completedCount > 0 return (

{tutorial.coverEmoji || '📘'}

{tutorial.title}

{tutorial.description && (

{tutorial.description}

)}
{tutorial.featured && ( 推荐 )}
{tutorial.stepCount} 步 {tutorial.duration && ( {tutorial.duration} )} {tutorial.difficulty && ( {tutorial.difficulty} )}
当前进度 {progress.completedCount} / {tutorial.stepCount}
) })}
) }