import { Link } from 'react-router-dom'; import { CheckCircle, Circle, Lock, Award, Clock } from 'lucide-react'; import { Exercise } from '../../api/types'; import { cn } from '../../utils/helpers'; import { DIFFICULTY_LABELS } from '../../utils/constants'; import { DIFFICULTY_COLORS } from '../../utils/colors'; interface ExerciseCardProps { exercise: Exercise; isCompleted?: boolean; isLocked?: boolean; className?: string; } export function ExerciseCard({ exercise, isCompleted = false, isLocked = false, className, }: ExerciseCardProps) { const difficultyColor = DIFFICULTY_COLORS[exercise.difficulty as keyof typeof DIFFICULTY_COLORS]; return (
{/* Header */}
{isCompleted ? ( ) : isLocked ? ( ) : ( )}

{exercise.title}

Упражнение #{exercise.order}

{exercise.points > 0 && (
{exercise.points}
)}
{/* Description */}

{exercise.description}

{/* Meta */}
~{exercise.estimatedMinutes} мин
{DIFFICULTY_LABELS[exercise.difficulty]} {exercise.type}
{/* Action */} {!isLocked && ( {isCompleted ? 'Повторить' : 'Начать'} )}
); } export default ExerciseCard;