import { useState } from 'react'; import { PageHeader } from '../components/PageHeader'; import { ProjectCard, type ProjectProps } from '../components/ProjectCard'; import { ProjectModal } from '../components/ProjectModal'; import { projectsData, Categories } from '../data/projectsData'; import { styleText } from 'util'; import style from '@styles/Project.module.scss' export const Projects = () => { const [activeFilter, setActiveFilter] = useState('all'); const [selectedProject, setSelectedProject] = useState(null); const filteredProjects = activeFilter === 'all' ? projectsData : projectsData.filter(project => project.category.some(cat => cat.shortName.toLowerCase() === activeFilter)); const categories = Categories; const featuredProject = projectsData.find(project => project.featured); const regularProjects = filteredProjects.filter(project => !project.featured); const handleFilterClick = (filter: string) => { setActiveFilter(filter); }; const handleOpenDetails = (id: string) => { const project = projectsData.find(p => p.id === id); if (project) { setSelectedProject(project); } }; const handleCloseDetails = () => { setSelectedProject(null); }; return ( <>
{/* Projects Filter */}
{Object.values(categories).map((category) => ( ))}
{featuredProject && (activeFilter === 'all' || featuredProject.category.some(cat => cat.shortName.toLowerCase() === activeFilter)) && (
)} {regularProjects.map(project => ( ))}
{filteredProjects.length === 0 && (

No projects found for this category.

)}
View All Projects on GitHub
{selectedProject && ( )} ); };