Skip to content

Commit ba59311

Browse files
authored
Partner page added (#11)
1 parent 39e0fd3 commit ba59311

8 files changed

Lines changed: 57 additions & 1 deletion

File tree

src/app/[locale]/partners/page.tsx

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { setRequestLocale, getTranslations } from 'next-intl/server';
2+
import { Metadata } from 'next';
3+
import { constructMetadata } from '@/lib/metadata';
4+
import Sponsors from '@/components/sections/home/sponsors';
5+
import CommunityPartners from '@/components/sections/home/partners';
6+
7+
export async function generateMetadata({
8+
params
9+
}: {
10+
params: Promise<{ locale: string }>;
11+
}): Promise<Metadata> {
12+
const { locale } = await params;
13+
const t = await getTranslations({ locale, namespace: 'Metadata.partners' });
14+
const tDefault = await getTranslations({ locale, namespace: 'Metadata.default' });
15+
16+
return constructMetadata({
17+
t: tDefault,
18+
locale,
19+
title: t('title') || 'Partners & Sponsors',
20+
description: t('description') || 'Meet our sponsors and community partners',
21+
});
22+
}
23+
24+
export default async function PartnersPage({
25+
params,
26+
}: {
27+
params: Promise<{ locale: string }>;
28+
}) {
29+
const { locale } = await params;
30+
31+
// Enable static rendering
32+
setRequestLocale(locale);
33+
34+
return (
35+
<main className="relative min-h-screen">
36+
{/* Sponsors Section */}
37+
<Sponsors />
38+
39+
{/* Community Partners Section */}
40+
<CommunityPartners />
41+
</main>
42+
);
43+
}

src/components/layout/navbar/NavLinks.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { cn } from '@/lib/utils';
55
import { MenuItem } from '@/types/navigation';
66
import { motion } from 'framer-motion';
77
import { useState } from 'react';
8-
import { Home, Users, Mic, Calendar } from 'lucide-react';
8+
import { Home, Users, Mic, Calendar, Handshake } from 'lucide-react';
99

1010
interface NavLinksProps {
1111
items: Record<string, MenuItem>;
@@ -14,6 +14,7 @@ interface NavLinksProps {
1414
// Icon Mapping
1515
const iconMap: Record<string, React.ElementType> = {
1616
home: Home,
17+
partners: Handshake,
1718
team: Users,
1819
speakers: Mic,
1920
schedule: Calendar,

src/messages/en/footer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"quick_links": {
1919
"title": "Quick Links",
2020
"items": [
21+
{ "label": "Partners", "href": "/partners" },
2122
{ "label": "Become a Sponsor", "href": "https://forms.gle/xDCZe4ZuP98YoCAJ9" },
2223
{ "label": "Become a Partner", "href": "https://forms.gle/Mzsq8LbveqHgSKPn7" },
2324
{ "label": "Code of Conduct", "href": "/code-of-conduct" }

src/messages/en/header.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"menu": {
33
"home": { "label": "Home", "href": "/" },
4+
"partners": { "label": "Partners", "href": "/partners" },
45
"team": { "label": "Team", "href": "/team" },
56
"speakers": { "label": "Speakers", "href": "/speakers" },
67
"schedule": { "label": "Schedule", "href": "/schedule" }

src/messages/en/metadata.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@
3535
"team": {
3636
"title": "Team",
3737
"description": "Meet the organizers and volunteers behind WTM Montreal 2026."
38+
},
39+
"partners": {
40+
"title": "Partners & Sponsors",
41+
"description": "Meet our sponsors and community partners who make WTM Montreal possible."
3842
}
3943
}
4044
}

src/messages/fr/footer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"quick_links": {
1919
"title": "Liens Rapides",
2020
"items": [
21+
{ "label": "Partenaires", "href": "/partners" },
2122
{ "label": "Devenir Sponsor", "href": "https://forms.gle/xDCZe4ZuP98YoCAJ9" },
2223
{ "label": "Devenir Partenaire", "href": "https://forms.gle/Mzsq8LbveqHgSKPn7" },
2324
{ "label": "Code de Conduite", "href": "/code-of-conduct" }

src/messages/fr/header.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"menu": {
33
"home": { "label": "Accueil", "href": "/" },
4+
"partners": { "label": "Partenaires", "href": "/partners" },
45
"team": { "label": "Équipe", "href": "/team" },
56
"speakers": { "label": "Conférencier·ère·s", "href": "/speakers" },
67
"schedule": { "label": "Programme", "href": "/schedule" }

src/messages/fr/metadata.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@
3535
"team": {
3636
"title": "Équipe",
3737
"description": "Rencontrez les organisateurs et bénévoles derrière WTM Montréal 2026."
38+
},
39+
"partners": {
40+
"title": "Partenaires et commanditaires",
41+
"description": "Rencontrez nos commanditaires et partenaires communautaires qui rendent possible WTM Montréal."
3842
}
3943
}
4044
}

0 commit comments

Comments
 (0)