|
1 | 1 | import { useState, useEffect } from 'react'; |
2 | 2 | import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; |
3 | | -import { faUser, faAnchor } from '@fortawesome/free-solid-svg-icons'; |
| 3 | +import { faUser, faAnchor, faEnvelope } from '@fortawesome/free-solid-svg-icons'; |
| 4 | +import { faLinkedin, faGithub, faInstagram } from '@fortawesome/free-brands-svg-icons'; |
4 | 5 |
|
5 | 6 | import './Members.css'; |
6 | 7 |
|
@@ -92,15 +93,33 @@ function MemberItem({ member }: MemberItemProps) { |
92 | 93 | return role === "lead"; |
93 | 94 | } |
94 | 95 |
|
| 96 | + const links = [ |
| 97 | + { href: member.media.linkedIn, icon: faLinkedin, label: "LinkedIn" }, |
| 98 | + { href: member.media.instagram, icon: faInstagram, label: "Instagram" }, |
| 99 | + { href: member.media.github, icon: faGithub, label: "GitHub" }, |
| 100 | + { href: member.media.email ? `mailto:${member.media.email}` : "", icon: faEnvelope, label: "Email" }, |
| 101 | + |
| 102 | + ].filter(link => link.href !== ""); // Filter out empty links |
| 103 | + |
95 | 104 | return ( |
96 | 105 | <div className="member-item"> |
97 | | - <img src={member.image !== ""? `/images/members/${member.image}` : '/images/members/placeholder.png'} /> |
| 106 | + <div className="member-image-wrapper"> |
| 107 | + <img src={member.image !== "" ? `/images/members/${member.image}` : '/images/members/placeholder.png'} /> |
| 108 | + {links.length > 0 && ( |
| 109 | + <div className="member-overlay"> |
| 110 | + {links.map(link => ( |
| 111 | + <a key={link.label} href={link.href} target="_blank" rel="noopener noreferrer" aria-label={link.label}> |
| 112 | + <FontAwesomeIcon icon={link.icon} /> |
| 113 | + </a> |
| 114 | + ))} |
| 115 | + </div> |
| 116 | + )} |
| 117 | + </div> |
98 | 118 | <h4> |
99 | 119 | {member.firstName} |
100 | 120 | <br /> |
101 | 121 | <span>{member.lastName}</span> |
102 | 122 | </h4> |
103 | | - |
104 | 123 | {isLead(member.role) ? <FontAwesomeIcon icon={faAnchor} /> : <></>} |
105 | 124 | </div> |
106 | 125 | ); |
|
0 commit comments