"use client"; import { useRef } from "react"; import { useRouter } from "next/navigation"; import { FiStar, FiShoppingCart, FiCheck } from "react-icons/fi"; import { useTheme } from "@/context/ThemeContext"; import { useCart } from "@/context/CartContext"; import type { Course } from "@/types/course"; export function ListCourseCard({ course }: { course: Course }) { const { isDark } = useTheme(); const { addToCart, isInCart: isInCartFn } = useCart(); const isInCart = isInCartFn(course.id); const router = useRouter(); const btnRef = useRef(null); const discountPercent = Math.round( ((course.originalPrice - course.price) / course.originalPrice) * 100, ); return (
{course.title} router.push(`/course/${course.id}`)} className="w-40 h-24 rounded-xl object-cover shrink-0 cursor-pointer" />
{course.category} {course.badge && ( {course.badge} )}

router.push(`/course/${course.id}`)} className={`text-sm font-bold line-clamp-1 cursor-pointer hover:text-violet-400 transition-colors ${isDark ? "text-white" : "text-slate-900"}`} > {course.title}

{course.subtitle}

{course.rating.toFixed(1)} ({course.reviewsCount.toLocaleString()}) {course.studentsCount.toLocaleString()} alumnos {course.duration}
${course.price.toFixed(2)}
{discountPercent > 0 && (
${course.originalPrice.toFixed(2)}
)}
); }