Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added public/images/developers/Ceniza.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/developers/Gempesaw.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
136 changes: 81 additions & 55 deletions src/components/pages/MeetTheDevsPage.tsx
Original file line number Diff line number Diff line change
@@ -1,44 +1,56 @@
import React from 'react'
import developers from '@/lib/data/developers.json';
import { DeveloperCard } from '../ui/DeveloperCard';
import React from "react";
import developers from "@/lib/data/developers.json";
import { DeveloperCard } from "../ui/DeveloperCard";

const projectManagers = developers.filter(dev =>
dev.role.toLowerCase().includes('project manager')
);
const projectManagers = developers.filter((dev) =>
dev.role.toLowerCase().includes("project manager")
);
function MeetTheDevsPage() {
const departments = {
'Heads': developers.filter(dev =>
dev.role.toLowerCase().includes('head') &&
!dev.role.toLowerCase().includes('project manager')
Heads: developers.filter(
(dev) =>
dev.role.toLowerCase().includes("head") &&
!dev.role.toLowerCase().includes("project manager")
),
"UI/UX Designers": developers.filter(
(dev) =>
dev.role.toLowerCase().includes("ui/ux") &&
!dev.role.toLowerCase().includes("head")
),
'UI/UX Designers': developers.filter(dev =>
dev.role.toLowerCase().includes('ui/ux') &&
!dev.role.toLowerCase().includes('head')
"Graphic Designers": developers.filter(
(dev) =>
dev.role.toLowerCase().includes("graphic") &&
!dev.role.toLowerCase().includes("head")
),
'Graphic Designers': developers.filter(dev =>
dev.role.toLowerCase().includes('graphic') &&
!dev.role.toLowerCase().includes('head')
"Frontend Developers": developers.filter(
(dev) =>
dev.role.toLowerCase().includes("frontend") &&
!dev.role.toLowerCase().includes("head")
),
'Frontend Developers': developers.filter(dev =>
dev.role.toLowerCase().includes('frontend') &&
!dev.role.toLowerCase().includes('head')
"Backend Developers": developers.filter(
(dev) =>
dev.role.toLowerCase().includes("backend") &&
!dev.role.toLowerCase().includes("head")
),
'Backend Developers': developers.filter(dev =>
dev.role.toLowerCase().includes('backend') &&
!dev.role.toLowerCase().includes('head')
"DevOps Engineers": developers.filter(
(dev) =>
dev.role.toLowerCase().includes("devops") &&
!dev.role.toLowerCase().includes("head")
),

};


return (
<div className='text-black flex flex-col items-center my-12 md:mb-16'>
<div className="text-black flex flex-col items-center my-12 md:mb-16">
<div className="text-center mb-8">
<h1 className="font-bold text-2xl md:text-3xl lg:text-4xl ">Meet the Developers</h1>
<h1 className="font-bold text-2xl md:text-3xl lg:text-4xl ">
Meet the Developers
</h1>
</div>

<div className="max-w-6xl px-4 mb-16">
<h2 className="font-semibold text-xl md:text-2xl mb-3 text-center">Project Managers</h2>
<h2 className="font-semibold text-xl md:text-2xl mb-3 text-center">
Project Managers
</h2>
<div className="grid md:grid-cols-2 gap-8 -mx-2">
{projectManagers.map((dev, idx) => (
<div key={dev.name + idx} className="flex justify-center">
Expand All @@ -52,35 +64,49 @@ function MeetTheDevsPage() {
</div>
</div>

{Object.entries(departments).map(([department, devs]) => (
devs.length > 0 && (
<div key={department} className="max-w-6xl px-4 mb-16">
<h2 className="font-semibold text-xl md:text-2xl mb-3 text-center">{department}</h2>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8 ">
{devs.map((dev, idx) => {
const isLast = idx === devs.length - 1;
return (
<div
key={dev.name + idx}
className={`flex justify-center ${
isLast && devs.length % 2 === 1 ? 'md:col-span-2 lg:col-span-1' : (isLast && devs.length % 3 === 1 ? '' : '')

}`}
>
<DeveloperCard
photoUrl={`https://samahan.addu.edu.ph/sysdev/images/developers/${dev.photoUrl}`}
name={dev.name}
role={dev.role}
/>
</div>
);
})}
{Object.entries(departments).map(
([department, devs]) =>
devs.length > 0 && (
<div key={department} className="max-w-6xl px-4 mb-16">
<h2 className="font-semibold text-xl md:text-2xl mb-3 text-center">
{department}
</h2>
<div
className={
department === "DevOps Engineers"
? "grid md:grid-cols-2 gap-8 -mx-2"
: "grid md:grid-cols-2 lg:grid-cols-3 gap-8"
}
>
{devs.map((dev, idx) => {
const isLast = idx === devs.length - 1;
return (
<div
key={dev.name + idx}
className={`flex justify-center ${
department !== "DevOps Engineers" &&
isLast &&
devs.length % 2 === 1
? "md:col-span-2 lg:col-span-1"
: isLast && devs.length % 3 === 1
? ""
: ""
}`}
>
<DeveloperCard
photoUrl={`https://samahan.addu.edu.ph/sysdev/images/developers/${dev.photoUrl}`}
name={dev.name}
role={dev.role}
/>
</div>
);
})}
</div>
</div>
</div>
)
))}
)
)}
</div>
)
);
}

export default MeetTheDevsPage
export default MeetTheDevsPage;
Loading