"use client"; import React, { useState, useEffect } from "react"; import Image from "next/image"; const Projects = () => { const [projectsData, setProjectsData] = useState(null); const [isDisplayed, setIsDisplayed] = useState(false); useEffect(() => { const fetchProjects = async () => { try { const response = await fetch("/assets/data/data.json"); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } const data = await response.json(); setProjectsData({ top: Object.values(data.projects.top), bottom: Object.values(data.projects.bottom), }); } catch (error) { console.error("Failed to fetch projects data:", error); } }; fetchProjects(); }, []); const displayAll = () => { setIsDisplayed((prevIsDisplayed) => !prevIsDisplayed); }; if (!projectsData) { return (

Loading Projects...

); } const { top: topProjects, bottom: bottomProjects } = projectsData; return (

Projects

{topProjects.map((project, index) => (
{index % 2 === 0 ? ( <>
{`${project.name}

{project.name}

{project.desc}

{project.language.map((langIcon, iconIndex) => ( language logo ))}
{project.link && ( Code{" "} )} {project.demo && ( Website{" "} )}
) : ( <>

{project.name}

{project.desc}

{project.language.map((langIcon, iconIndex) => ( language logo ))}
{project.link && ( Code{" "} )} {project.demo && ( Website{" "} )}
{`${project.name}
)}
))}

All projects

{bottomProjects.map((project) => ( {project.name} ))}
); }; export default Projects;