|
import React, { Component } from "react"; |
|
import classNames from "classnames"; |
|
import projects from "./projectsData"; |
|
import "../styles/projectsMenu.css"; |
|
|
|
export default class ProjectsMenu extends Component { |
|
constructor(props) { |
|
super(props); |
|
this.state = { |
|
activeProject: 1, |
|
}; |
|
} |
|
|
|
handleProjectClick = (project) => { |
|
this.setState({ |
|
activeProject: project, |
|
}); |
|
}; |
|
|
|
renderContent = (projects) => { |
|
return projects.map((project, index) => ( |
|
<div key={index} className={`project-sub-container-${index + 1}`}> |
|
<h3>{project.title}</h3> |
|
<img src={project.image} alt={project.title}></img> |
|
<div>{project.description}</div> |
|
<div className="link-container"> |
|
<a href={project.github} target="_blank" rel="noopener noreferrer"> |
|
GITHUB |
|
</a> |
|
<a href={project.demo} target="_blank" rel="noopener noreferrer"> |
|
DEMO |
|
</a> |
|
</div> |
|
</div> |
|
)); |
|
}; |
|
|
|
render() { |
|
const { activeProject } = this.state; |
|
const projectItems = ["PROJECT ONE", "PROJECT TWO", "PROJECT THREE"]; |
|
|
|
return ( |
|
<div className="project-menu"> |
|
<div className="project-items-container"> |
|
{projectItems.map((item, index) => ( |
|
<div |
|
key={index} |
|
className={classNames("project-item", { |
|
activeProject: activeProject === index + 1, |
|
})} |
|
onClick={() => this.handleProjectClick(index + 1)} |
|
> |
|
<h2 className="title">{item}</h2> |
|
</div> |
|
))} |
|
</div> |
|
<div className="project-sub-container"> |
|
{this.renderContent([projects[activeProject]])} |
|
</div> |
|
</div> |
|
); |
|
} |
|
} |