import { useState } from 'react' import { Package as PackageIcon } from 'lucide-react' import { Button } from '@/components/ui/button' import { Card, CardContent } from '@/components/ui/card' import { RecommendedPackage } from '@/types/recommendations' import { useLocale } from '@/contexts/LocaleContext' interface RecommendationCardProps { pkg: RecommendedPackage isSelected: boolean onToggle: (pkg: RecommendedPackage) => void } export function RecommendationCard({ pkg, isSelected, onToggle }: RecommendationCardProps) { const { t } = useLocale() const [iconError, setIconError] = useState(false) // Helper to format package name for display const getDisplayName = (name: string, platformId?: string) => { if (platformId === 'windows' && name.includes('.')) { // Handle winget IDs like "Microsoft.VisualStudioCode" or "Git.Git" const parts = name.split('.') const appName = parts[parts.length - 1] // Take the last part // Add spaces to CamelCase (e.g. "VisualStudioCode" -> "Visual Studio Code") return appName.replace(/([A-Z])/g, ' $1').trim() } return name } const displayName = getDisplayName(pkg.name, pkg.platform_id) return ( onToggle(pkg)} >
{pkg.icon && !iconError ? ( <>
{/* Hidden image to detect load errors */} setIconError(true)} /> ) : ( )}

{displayName}

{pkg.version}

) }