diff --git a/public/SUnday.jpeg b/public/SUnday.jpeg new file mode 100644 index 0000000..d30e130 Binary files /dev/null and b/public/SUnday.jpeg differ diff --git a/public/didas.jpeg b/public/didas.jpeg new file mode 100644 index 0000000..80b5209 Binary files /dev/null and b/public/didas.jpeg differ diff --git a/public/fils.jpeg b/public/fils.jpeg new file mode 100644 index 0000000..03b7c3d Binary files /dev/null and b/public/fils.jpeg differ diff --git a/public/jean-origin.jpeg b/public/jean-origin.jpeg new file mode 100644 index 0000000..b60ea03 Binary files /dev/null and b/public/jean-origin.jpeg differ diff --git a/public/naphtar.jpeg b/public/naphtar.jpeg new file mode 100644 index 0000000..fbdc980 Binary files /dev/null and b/public/naphtar.jpeg differ diff --git a/public/providance.jpeg b/public/providance.jpeg new file mode 100644 index 0000000..2f3d2d8 Binary files /dev/null and b/public/providance.jpeg differ diff --git a/src/components/home-sections/team-section.tsx b/src/components/home-sections/team-section.tsx index 28d571c..51543d0 100644 --- a/src/components/home-sections/team-section.tsx +++ b/src/components/home-sections/team-section.tsx @@ -1,8 +1,17 @@ import { teamMembers } from "@/src/lib/constants"; import { Card } from "@/src/components/ui/card"; import Image from "next/image"; +import Link from "next/link"; import { Github, Linkedin, Twitter } from "lucide-react"; +const socialIcons = { + twitter: Twitter, + linkedin: Linkedin, + github: Github, +} as const; + +type SocialKey = keyof typeof socialIcons; + export function TeamSection() { return (
@@ -21,60 +30,64 @@ export function TeamSection() {

- {/* Team grid */} -
- {teamMembers.map((member) => ( - - {/* Image */} -
- {member.name} -
+ {/* Team grid — smaller, equal-size cards */} +
+ {teamMembers.map((member) => { + const links = (Object.keys(socialIcons) as SocialKey[]) + .map((key) => ({ key, url: member.social?.[key] })) + .filter((s): s is { key: SocialKey; url: string } => Boolean(s.url)); + + return ( + + {/* Square photo — anchored to top so faces aren't cropped */} +
+ {member.name} +
- {/* Content */} -
-
-

+ {/* Content */} +
+

{member.name}

-

+

{member.role}

-
- -

{member.bio}

+

+ {member.bio} +

- {/* Social links placeholder */} -
- - - + {links.length > 0 && ( +
+ {links.map(({ key, url }) => { + const Icon = socialIcons[key]; + return ( + + + + ); + })} +
+ )}
-

- - ))} + + ); + })}
diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 37b3ec5..7cbd9b2 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -26,9 +26,9 @@ export const communityLinks = { twitter: "https://twitter.com/djangorwanda", // Contact details (raw — no mailto:/tel: prefix) - email: "hello@djangorwanda.dev", + email: "djangorwandacomunity@gmail.com", phone: "+250788000000", // TODO: real phone number (or remove usages) - location: "Kigali Innovation Hub, Kigali, Rwanda", + location: "Norrsken House Kigali, Rwanda", } export const communityMission = { @@ -123,47 +123,60 @@ export const events = [ }, ] +// Team. `social` links render as icons only when a URL is set (empty = hidden). export const teamMembers = [ - { - id: 1, - name: "Francis", - role: "Community Manager", - image: "/placeholder-user.svg", - bio: "Building connections and fostering an inclusive community environment.", - }, { id: 2, name: "Iradukunda Fils", role: "Django Lead", - image: "/placeholder-user.svg", + image: "/fils.jpeg", bio: "Driving Django education and best practices across the community.", + social: { twitter: "", linkedin: "", github: "" }, }, { id: 3, name: "Jean Paul Elisa NIYOKWIZERWA", role: "Tech Lead", - image: "/placeholder-user.svg", + image: "/jean-origin.jpeg", bio: "Championing technical excellence and engineering best practices.", + social: { + twitter: "", + linkedin: "https://www.linkedin.com/in/jean-paul-elisa/", + github: "https://github.com/Ndevu12", + }, }, { id: 5, - name: "Naphtal", + name: "Usabyuwera Naphtal", role: "Events & Program Coordinator", - image: "/placeholder-user.svg", + image: "/naphtar.jpeg", bio: "Organizing impactful events and programs for community growth.", + social: { twitter: "", linkedin: "", github: "" }, }, { id: 6, - name: "Providence", + name: "Uyitonnyeho Providence", role: "Django Girls Community Lead", - image: "/placeholder-user.svg", + image: "/providance.jpeg", bio: "Empowering women in tech through Django Girls initiatives.", + social: { twitter: "", linkedin: "https://www.linkedin.com/in/uyitonnyeho-providence", github: "https://github.com/uyitoprovi" }, }, { id: 7, name: "Didas Mbarushimana", role: "Community Advocate", - image: "/placeholder-user.svg", + image: "/didas.jpeg", bio: "Promoting community values and advocating for member needs.", - } + social: { twitter: "", linkedin: "", github: "" }, + }, + { + id: 8, + name: "Sunday Ajay", + role: "Python Community Lead", + image: "/SUnday.jpeg", + bio: "Leading Python community", + social: { twitter: "", + linkedin: "https://linkedin.com/in/sunday-ajayi", + github: "https://github.com/suavelad" }, + }, ]