Files
impact-site/src/app/iletisim/page.tsx
tunapro 8b480c036c
All checks were successful
Deploy stable / deploy (push) Successful in 1m36s
Initial impact.tr site
V3 landing: white + violet + yellow accent, bold editorial.
Markdown-driven content: 3 yarışma formatı (hands-on, ideathon, robo-soccer),
5 edisyon (Ataköy, Çemberlitaş Ideathon '25, Çemberlitaş HoC '26, İstanbul/Ankara Robo Soccer).
Sayfalar: anasayfa, yarışma/edisyon detayları, sponsor, hakkımızda, iletişim.
40 Çemberlitaş fotoğrafı (1600px optimize, ~6.4 MB).
Content helper (gray-matter + marked), reviews/photos registry,
iletişim/ekip tek kaynak lib/contact.ts.
Next.js 16 standalone build, Docker + compose hazır.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 15:35:09 +03:00

137 lines
4.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { Metadata } from "next";
import { PageHero } from "@/components/PageHero";
import { Section } from "@/components/Section";
import { contact, team } from "@/lib/contact";
export const metadata: Metadata = {
title: "İletişim",
description: "Impact iletişim kanalları: e-posta, Instagram, LinkedIn, WhatsApp.",
};
const channels = [
{
key: "email",
title: "E-posta",
value: contact.email,
href: `mailto:${contact.email}`,
help: "Genel sorular, sponsor talepleri ve işbirlikleri.",
},
{
key: "instagram",
title: "Instagram",
value: `@${contact.instagram.handle}`,
href: contact.instagram.url,
help: "Etkinlik duyuruları, geçmiş fotoğraflar, anlık içerik.",
},
{
key: "linkedin",
title: "LinkedIn",
value: "impactcommunit",
href: contact.linkedin.url,
help: "Kurumsal iletişim, sponsor ve partner ağı.",
},
{
key: "whatsapp",
title: "WhatsApp",
value: "Topluluğa katıl",
href: contact.whatsapp.url,
help: "Katılımcı, gönüllü ve mentor topluluğu.",
},
];
const altMails = [
"contact@impact.tr",
"info@impact.tr",
"hello@impact.tr",
];
export default function ContactPage() {
return (
<>
<PageHero
eyebrow="İletişim"
title={<>Bize ulaşın</>}
lead="Sponsor, partner, gönüllü, mentor ya da sadece meraklı — hangi kanalı seçersen seç yanıt veriyoruz."
/>
{/* Channels */}
<Section eyebrow="Kanallar" title="Nereden ulaşabilirsiniz">
<div className="grid gap-4 md:grid-cols-2">
{channels.map((ch) => (
<a
key={ch.key}
href={ch.href}
target={ch.href.startsWith("http") ? "_blank" : undefined}
rel="noreferrer noopener"
className="group flex items-start justify-between gap-6 border-2 border-neutral-900 bg-white p-6 transition hover:-translate-y-1 hover:bg-yellow-50"
>
<div>
<div className="text-xs font-black uppercase tracking-[0.25em] text-violet-700">
{ch.title}
</div>
<div className="mt-2 text-2xl font-black tracking-tight">{ch.value}</div>
<div className="mt-1 text-sm text-neutral-600">{ch.help}</div>
</div>
<span
aria-hidden
className="mt-2 text-2xl transition group-hover:translate-x-1"
>
</span>
</a>
))}
</div>
</Section>
{/* Team emails */}
<Section tone="muted" eyebrow="Ekip" title="Doğrudan kurucu ekibe">
<div className="grid gap-4 md:grid-cols-3">
{team.map((m) => {
const handle = m.name.split(" ")[0].toLowerCase().replace(/ı/g, "i");
const email = `${handle}@impact.tr`;
return (
<a
key={m.name}
href={`mailto:${email}`}
className="group flex flex-col gap-5 border-2 border-neutral-900 bg-white p-6 transition hover:-translate-y-1 hover:bg-yellow-50"
>
<span className="inline-flex size-12 items-center justify-center bg-violet-700 text-sm font-black text-white">
{m.name
.split(" ")
.map((w) => w[0])
.slice(0, 2)
.join("")}
</span>
<div>
<div className="text-xl font-black tracking-tight">{m.name}</div>
<div className="mt-1 text-xs font-black uppercase tracking-[0.2em] text-neutral-500">
{m.role}
</div>
</div>
<div className="border-t-2 border-neutral-900 pt-3 text-sm font-black text-violet-700 transition group-hover:translate-x-0.5">
{email}
</div>
</a>
);
})}
</div>
</Section>
{/* Alt mails */}
<Section eyebrow="Ek posta kutuları" title="Bunlara da yazabilirsiniz">
<div className="flex flex-wrap gap-2">
{altMails.map((m) => (
<a
key={m}
href={`mailto:${m}`}
className="border-2 border-neutral-900 bg-white px-4 py-2 text-sm font-black uppercase tracking-wider text-neutral-900 hover:bg-yellow-300"
>
{m}
</a>
))}
</div>
</Section>
</>
);
}