"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

{/* Main projects container (Top Projects) */}
{topProjects.map((project, index) => (
{/* Conditional rendering for alternating layout */} {index % 2 === 0 ? ( <> {/* Left/Image Column */}
{`${project.name}
{/* Right/Content Column */}

{project.name}

{/* Applied font-poppins here */}

{project.desc}

{/* Language Icons */}
{project.language.map((langIcon, iconIndex) => ( language logo ))}
{/* Code/Demo Links */}
{project.link && ( Code{" "} )} {project.demo && ( Website{" "} )}
) : ( <> {/* Right/Content Column (now on left visually) */}

{project.name}

{/* Applied font-poppins here */}

{project.desc}

{/* Language Icons */}
{project.language.map((langIcon, iconIndex) => ( language logo ))}
{/* Code/Demo Links */}
{project.link && ( Code{" "} )} {project.demo && ( Website{" "} )}
{/* Left/Image Column (now on right visually) */}
{`${project.name}
)}
))}
{/* Toggle Button for All Projects */} {/* All Projects Section (conditionally displayed) */}

All projects

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