import type { ReactNode } from 'react';
import { X, ExternalLink, Users, BookOpen, Calendar, Tag, FileText } from 'lucide-react';
import type { Project } from '../data';
import { useLang } from '../context/LanguageContext';
interface ProjectModalProps {
project: Project | null;
onClose: () => void;
}
function InfoRow({ icon, label, value }: { icon: ReactNode; label: string; value: string }) {
return (
);
}
export default function ProjectModal({ project, onClose }: ProjectModalProps) {
const { t } = useLang();
if (!project) return null;
return (
e.stopPropagation()}
>
{/* Image header */}
{/* Close button */}
{/* Category badge */}
{project.category && project.category.length > 0 && (
{project.category.map((cat, i) => (
{cat}
))}
)}
{/* Content */}
{project.title}
{/* Info grid */}
{project.studentName && (
} label={t.modal.mahasiswa} value={project.studentName} />
)}
{project.nim && (
} label={t.modal.nim} value={project.nim} />
)}
{project.year && (
} label={t.modal.tahun} value={String(project.year)} />
)}
{project.category && project.category.length > 0 && (
} label={t.modal.bidang} value={project.category.join(', ')} />
)}
{/* Members list */}
{project.members && project.members.length > 0 && (
)}
{/* Description */}
{t.modal.deskripsi}
{project.description}
{project.catatan && (
Catatan Tambahan
{project.catatan}
)}
{/* Project link */}
{project.link ? (
{t.project.visitLink}
) : (
{t.project.noLink}
)}
);
}