import { Link } from 'react-router-dom'; import { ExternalLink, Download, BookOpen, Globe } from 'lucide-react'; import { useI18n } from '../hooks/useI18n'; import { siteData } from '../data/siteData'; import { getIcon } from '../utils/iconRegistry'; import type { Project } from '../types'; interface ProjectCardProps { project: Project; } export default function ProjectCard({ project }: ProjectCardProps) { const { t, bi, lang } = useI18n(); const status = siteData.statuses[project.status]; const IconComponent = getIcon(project.icon); return (
{project.logo ? {project.name} : (IconComponent && ) }
{project.displayName[lang] || project.name} {status && ( {bi(status.label)} )}
{bi(project.slogan)}
{project.techStack.slice(0, 4).map((tech) => ( {tech} ))} {project.platforms.slice(0, 3).map((platform) => ( {siteData.platforms[platform] || platform} ))}
GitHub {project.downloads.length > 0 && ( {t('common.download')} )} {project.websiteUrl && ( {t('detail.website')} )} {project.docsUrl && ( {t('common.docs')} )}
); }