Skip to content

Commit 189d6db

Browse files
authored
Merge pull request #7 from C4G/feat-project-web-page-overwrite
Team page adjustment
2 parents f100ef2 + 1c58447 commit 189d6db

24 files changed

Lines changed: 654 additions & 94 deletions

File tree

File renamed without changes.

src/app/team/2025/fall/page.tsx

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import { Metadata } from 'next';
2+
import Image from 'next/image';
3+
4+
export const metadata: Metadata = {
5+
title: 'Fall 2025 Team',
6+
description: 'Our Fall 2025 team members',
7+
};
8+
9+
const team = [
10+
{
11+
name: 'Abhishek Karkar',
12+
role: 'Backend Development',
13+
imageUrl: 'https://ui-avatars.com/api/?name=A+K&format=png',
14+
},
15+
{
16+
name: 'Akram Alsamarae',
17+
role: 'Frontend Development',
18+
imageUrl: 'https://ui-avatars.com/api/?name=A+A&format=png',
19+
},
20+
{
21+
name: 'Akrem Abdelwahab',
22+
role: 'Backend Development',
23+
imageUrl: 'https://ui-avatars.com/api/?name=A+A&format=png',
24+
},
25+
{
26+
name: 'Mika Yoshimura',
27+
role: 'Frontend Development',
28+
imageUrl: 'https://ui-avatars.com/api/?name=M+Y&format=png',
29+
},
30+
{
31+
name: 'Taisiia Bahbouche',
32+
role: 'PM / QA',
33+
imageUrl: 'https://ui-avatars.com/api/?name=T+B&format=png',
34+
},
35+
];
36+
37+
export default function TeamPage() {
38+
return (
39+
<div>
40+
<div className='py-12 sm:py-16'>
41+
<div className='mx-auto max-w-7xl px-6 lg:px-8'>
42+
<div className='mb-16'>
43+
<h2 className='text-3xl font-semibold tracking-tight'>
44+
Fall 2025 Team
45+
</h2>
46+
<ul
47+
role='list'
48+
className='mt-8 grid gap-8 sm:grid-cols-2 lg:grid-cols-3'
49+
>
50+
{team.map((member) => (
51+
<li key={member.name}>
52+
<div className='flex items-center gap-x-6'>
53+
<Image
54+
alt={member.name}
55+
src={member.imageUrl}
56+
width={64}
57+
height={64}
58+
className='rounded-full'
59+
/>
60+
<div>
61+
<h3 className='text-base font-semibold'>{member.name}</h3>
62+
<p className='text-sm font-semibold text-indigo-600'>
63+
{member.role}
64+
</p>
65+
</div>
66+
</div>
67+
</li>
68+
))}
69+
</ul>
70+
</div>
71+
</div>
72+
</div>
73+
</div>
74+
);
75+
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
'use client';
2+
3+
import Link from 'next/link';
4+
import { usePathname } from 'next/navigation';
5+
import { Tabs, TabsList, TabsTrigger } from '@/components/ui/tabs';
6+
import { ChevronLeft } from 'lucide-react';
7+
8+
const basePath = '/team/2025/fall';
9+
10+
const tabs = [
11+
{ name: 'Team', href: basePath },
12+
{ name: 'Project Description', href: `${basePath}/project-description` },
13+
{ name: 'Project Goal', href: `${basePath}/project-goal` },
14+
{ name: 'Lighthouse Report', href: `${basePath}/lighthouse-report` },
15+
{ name: 'Presentation Slides', href: `${basePath}/presentation-slides` },
16+
{ name: 'Weekly Updates', href: `${basePath}/weekly-updates` },
17+
{ name: 'Project Peer Evaluations', href: `${basePath}/peer-evaluations` },
18+
{ name: 'Demo', href: `${basePath}/demo` },
19+
];
20+
21+
export function TeamTabs() {
22+
const pathname = usePathname();
23+
24+
return (
25+
<div>
26+
<Link
27+
href='/team'
28+
className='mb-4 inline-flex items-center text-sm text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100'
29+
>
30+
<ChevronLeft className='mr-1 h-4 w-4' />
31+
Back to all teams
32+
</Link>
33+
<Tabs value={pathname} className='flex w-full justify-center'>
34+
<TabsList className='inline-flex h-10 max-w-full items-center justify-center overflow-x-auto rounded-md bg-muted p-1 text-muted-foreground'>
35+
{tabs.map((tab) => (
36+
<TabsTrigger
37+
key={tab.href}
38+
value={tab.href}
39+
className='inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm'
40+
asChild
41+
>
42+
<Link href={tab.href}>{tab.name}</Link>
43+
</TabsTrigger>
44+
))}
45+
</TabsList>
46+
</Tabs>
47+
</div>
48+
);
49+
}

0 commit comments

Comments
 (0)