import React, { useCallback } from 'react' import { investigations } from '@/data/investigations' import { Card, CardHeader } from '../Card' import { useDetailPanel } from '@/contexts/DetailPanelContext' import type { Investigation } from '@/types/pmr' const statusColorMap: Record = { Complete: '#059669', Ongoing: '#0D6E6E', Live: '#059669', } interface ProjectItemProps { project: Investigation onClick: () => void } function ProjectItem({ project, onClick }: ProjectItemProps) { const dotColor = statusColorMap[project.status] || '#0D6E6E' const isLive = project.status === 'Live' const handleKeyDown = useCallback( (e: React.KeyboardEvent) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault() onClick() } }, [onClick], ) return (
{ e.currentTarget.style.borderColor = 'var(--accent-border)' e.currentTarget.style.boxShadow = '0 2px 8px rgba(26,43,42,0.08)' }} onMouseLeave={(e) => { e.currentTarget.style.borderColor = 'var(--border-light)' e.currentTarget.style.boxShadow = 'none' }} > {/* Row: status dot + name + year */}
{/* Tech stack tags */} {project.techStack && project.techStack.length > 0 && (
{project.techStack.map((tech) => ( {tech} ))}
)}
) } export function ProjectsTile() { const { openPanel } = useDetailPanel() return (
{investigations.map((project) => ( openPanel({ type: 'project', investigation: project })} /> ))}
) }