Belgeler ve Footer
This commit is contained in:
215
app/page.tsx
215
app/page.tsx
@@ -1,20 +1,129 @@
|
||||
'use client';
|
||||
|
||||
import { useState } from 'react';
|
||||
import Link from 'next/link';
|
||||
import Header from "@/components/Header";
|
||||
import MetroLine from "@/components/MetroLine";
|
||||
import Footer from "@/components/Footer";
|
||||
|
||||
export default function Home() {
|
||||
const [showLiveStream, setShowLiveStream] = useState(false);
|
||||
const [showNews, setShowNews] = useState(false);
|
||||
const [selectedNews, setSelectedNews] = useState<number | null>(null);
|
||||
const [showDocuments, setShowDocuments] = useState(false);
|
||||
const [selectedCategory, setSelectedCategory] = useState<string>('all');
|
||||
|
||||
const categories = [
|
||||
{ id: 'all', name: 'Tümü', icon: '📋' },
|
||||
{ id: 'ihale', name: 'İhale Belgeleri', icon: '📄' },
|
||||
{ id: 'teknik', name: 'Teknik Dökümanlar', icon: '📐' },
|
||||
{ id: 'cevresel', name: 'Çevresel Etki', icon: '🌱' },
|
||||
{ id: 'raporlar', name: 'İlerleme Raporları', icon: '📊' },
|
||||
];
|
||||
|
||||
const documents = [
|
||||
{
|
||||
id: 1,
|
||||
title: "A2 Metro Hattı İhale Şartnamesi",
|
||||
category: 'ihale',
|
||||
date: "15 Ocak 2025",
|
||||
size: "2.4 MB",
|
||||
type: "PDF",
|
||||
description: "Metro inşaatı için teknik şartname ve ihale koşulları"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title: "Proje Teknik Çizimleri",
|
||||
category: 'teknik',
|
||||
date: "10 Şubat 2025",
|
||||
size: "15.8 MB",
|
||||
type: "DWG",
|
||||
description: "Tüm istasyonların teknik mimari çizimleri"
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
title: "Çevresel Etki Değerlendirme Raporu",
|
||||
category: 'cevresel',
|
||||
date: "5 Mart 2025",
|
||||
size: "4.2 MB",
|
||||
type: "PDF",
|
||||
description: "Proje çevresel etki analizi ve önlemler"
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
title: "2025 Mart Ayı İlerleme Raporu",
|
||||
category: 'raporlar',
|
||||
date: "1 Nisan 2025",
|
||||
size: "1.8 MB",
|
||||
type: "PDF",
|
||||
description: "Aylık proje ilerleme ve istatistikler"
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
title: "Güvenlik Planı ve Prosedürleri",
|
||||
category: 'teknik',
|
||||
date: "20 Ocak 2025",
|
||||
size: "3.1 MB",
|
||||
type: "PDF",
|
||||
description: "İnşaat sahası güvenlik protokolleri"
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
title: "İstasyon Tasarım Detayları",
|
||||
category: 'teknik',
|
||||
date: "8 Şubat 2025",
|
||||
size: "8.5 MB",
|
||||
type: "PDF",
|
||||
description: "İstasyon iç ve dış mekan tasarım detayları"
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
title: "Finansman Planı",
|
||||
category: 'ihale',
|
||||
date: "12 Ocak 2025",
|
||||
size: "1.2 MB",
|
||||
type: "XLSX",
|
||||
description: "Proje bütçe ve finansman dağılımı"
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
title: "2025 Nisan Ayı İlerleme Raporu",
|
||||
category: 'raporlar',
|
||||
date: "1 Mayıs 2025",
|
||||
size: "2.1 MB",
|
||||
type: "PDF",
|
||||
description: "Aylık proje ilerleme ve istatistikler"
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
title: "Gürültü ve Titreşim Analizi",
|
||||
category: 'cevresel',
|
||||
date: "18 Mart 2025",
|
||||
size: "3.8 MB",
|
||||
type: "PDF",
|
||||
description: "Çevre gürültü ve titreşim ölçüm sonuçları"
|
||||
},
|
||||
];
|
||||
|
||||
const filteredDocs = selectedCategory === 'all'
|
||||
? documents
|
||||
: documents.filter(doc => doc.category === selectedCategory);
|
||||
|
||||
const getFileIcon = (type: string) => {
|
||||
switch (type) {
|
||||
case 'PDF': return '📕';
|
||||
case 'DWG': return '📐';
|
||||
case 'XLSX': return '📊';
|
||||
default: return '📄';
|
||||
}
|
||||
};
|
||||
|
||||
const newsData = [
|
||||
{
|
||||
id: 1,
|
||||
title: "Dikimevi Metro Hattı İnşaatında Yeni Aşama",
|
||||
date: "20 Ekim 2025",
|
||||
image: "https://images.unsplash.com/photo-1544620347-c4fd4a3d5957?w=800&h=600&fit=crop",
|
||||
image: "https://images.pexels.com/photos/17152223/pexels-photo-17152223.jpeg",
|
||||
summary: "A2 Metro Hattı Tuzluçayır istasyonunda kazı çalışmaları tamamlandı. İnşaat ekipleri bir sonraki faza geçiş için hazırlıklara başladı.",
|
||||
content: "A2 Metro Hattı Tuzluçayır istasyonunda yapılan kazı çalışmaları başarıyla tamamlandı. İnşaat ekipleri, istasyonun temel atma ve beton dökme aşaması için hazırlıklara başladı. Proje yetkililerinin açıklamasına göre, çalışmalar planlanan takvime uygun olarak ilerliyor. İstasyonun 2026 yılı sonunda hizmete girmesi hedefleniyor. Modern teknolojilerle donatılacak istasyonda yolcu konforunu artıracak birçok yenilik bulunacak."
|
||||
},
|
||||
@@ -22,7 +131,7 @@ export default function Home() {
|
||||
id: 2,
|
||||
title: "Metro İstasyonlarında Modern Tasarım",
|
||||
date: "18 Ekim 2025",
|
||||
image: "https://images.unsplash.com/photo-1581579438747-1dc8d17bbce4?w=800&h=600&fit=crop",
|
||||
image: "https://images.pexels.com/photos/17302615/pexels-photo-17302615.jpeg",
|
||||
summary: "Yeni metro istasyonları çağdaş mimari anlayışı ve yolcu konforunu ön planda tutan tasarımlarla hayata geçiriliyor.",
|
||||
content: "Ankara metro projesi kapsamında inşa edilen istasyonlar, çağdaş mimari anlayışı ile dikkat çekiyor. İstasyonlarda doğal ışık kullanımı maksimize edilirken, enerji verimliliği de göz önünde bulunduruluyor. Geniş peronlar, modern bekleme alanları ve engelli erişimine uygun tasarım, yolcu memnuniyetini artıracak önemli detaylar arasında yer alıyor."
|
||||
},
|
||||
@@ -30,7 +139,7 @@ export default function Home() {
|
||||
id: 3,
|
||||
title: "Çevre Dostu Metro Projesi",
|
||||
date: "15 Ekim 2025",
|
||||
image: "https://images.unsplash.com/photo-1531825168889-e600e4998162?w=800&h=600&fit=crop",
|
||||
image: "https://images.pexels.com/photos/33950678/pexels-photo-33950678.jpeg",
|
||||
summary: "Metro inşaatında kullanılan malzemeler ve yöntemler çevre standartlarına uygun olarak seçiliyor.",
|
||||
content: "Ankara metro inşaatında çevre dostu malzemeler ve sürdürülebilir inşaat yöntemleri kullanılıyor. Kazı çalışmalarından çıkan topraklar geri dönüştürülüyor, inşaat atıkları ayrıştırılarak değerlendiriliyor. Proje, yeşil bina sertifikası almayı hedefliyor. Ayrıca, metro hatları elektrikli sistemle çalışacağı için karbon emisyonunu azaltacak."
|
||||
},
|
||||
@@ -38,7 +147,7 @@ export default function Home() {
|
||||
id: 4,
|
||||
title: "Metro Hattı 2026'da Hizmete Girecek",
|
||||
date: "12 Ekim 2025",
|
||||
image: "https://images.unsplash.com/photo-1568502802862-8dfb70d44c30?w=800&h=600&fit=crop",
|
||||
image: "https://images.pexels.com/photos/253647/pexels-photo-253647.jpeg",
|
||||
summary: "A2 Metro Hattı'nın ilk etabının 2026 yılı sonunda hizmete girmesi planlanıyor.",
|
||||
content: "Ankara Büyükşehir Belediyesi yetkilileri, A2 Metro Hattı'nın ilk etabının 2026 yılı sonunda hizmete açılacağını duyurdu. 8 istasyondan oluşan hat, günlük 100 bin yolcuya hizmet verecek. Modern trenler, konforlu istasyonlar ve güvenli sistem ile Ankara'nın ulaşım altyapısına önemli bir katkı sağlayacak. İlk etabın ardından hatın genişletilmesi planlanıyor."
|
||||
}
|
||||
@@ -132,14 +241,17 @@ export default function Home() {
|
||||
</button>
|
||||
|
||||
{/* Belgeler */}
|
||||
<a href="/belgeler" className="bg-white rounded-xl p-6 shadow-lg hover:shadow-xl transition-all duration-300 hover:-translate-y-1 flex flex-col items-center text-center group">
|
||||
<button
|
||||
onClick={() => setShowDocuments(!showDocuments)}
|
||||
className="bg-white rounded-xl p-6 shadow-lg hover:shadow-xl transition-all duration-300 hover:-translate-y-1 flex flex-col items-center text-center group"
|
||||
>
|
||||
<div className="w-12 h-12 mb-3 text-[#004B87] group-hover:text-[#00B4D8] transition-colors">
|
||||
<svg fill="currentColor" viewBox="0 0 24 24">
|
||||
<path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<span className="text-[#004B87] font-semibold text-sm">Belgeler</span>
|
||||
</a>
|
||||
</button>
|
||||
|
||||
{/* Basında Biz */}
|
||||
<a href="/basinda-biz" className="bg-white rounded-xl p-6 shadow-lg hover:shadow-xl transition-all duration-300 hover:-translate-y-1 flex flex-col items-center text-center group">
|
||||
@@ -351,8 +463,94 @@ export default function Home() {
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Belgeler Bölümü */}
|
||||
{showDocuments && (
|
||||
<div className={`max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 ${showLiveStream || showNews ? 'pt-8' : 'pt-32'} pb-8`}>
|
||||
<div className="bg-white rounded-2xl shadow-2xl p-6 lg:p-8">
|
||||
<div className="flex items-center justify-between mb-6">
|
||||
<div className="flex items-center space-x-3">
|
||||
<div className="w-10 h-10 bg-[#004B87] rounded-lg flex items-center justify-center">
|
||||
<svg className="w-6 h-6 text-white" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h2 className="text-2xl font-bold text-[#004B87]">Proje Belgeleri</h2>
|
||||
</div>
|
||||
<button
|
||||
onClick={() => setShowDocuments(false)}
|
||||
className="text-gray-500 hover:text-red-500 transition-colors"
|
||||
>
|
||||
<svg className="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M6 18L18 6M6 6l12 12" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{/* Kategori Filtreleri */}
|
||||
<div className="mb-6">
|
||||
<div className="flex flex-wrap gap-3">
|
||||
{categories.map((cat) => (
|
||||
<button
|
||||
key={cat.id}
|
||||
onClick={() => setSelectedCategory(cat.id)}
|
||||
className={`flex items-center space-x-2 px-4 py-2 rounded-lg font-medium transition-all duration-300 ${
|
||||
selectedCategory === cat.id
|
||||
? 'bg-[#00B4D8] text-white shadow-lg scale-105'
|
||||
: 'bg-gray-100 text-gray-700 hover:bg-gray-200'
|
||||
}`}
|
||||
>
|
||||
<span className="text-lg">{cat.icon}</span>
|
||||
<span className="text-sm">{cat.name}</span>
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Belgeler Listesi */}
|
||||
<div className="grid grid-cols-1 gap-4 max-h-[600px] overflow-y-auto">
|
||||
{filteredDocs.map((doc) => (
|
||||
<div
|
||||
key={doc.id}
|
||||
className="bg-gray-50 rounded-xl p-5 hover:shadow-lg transition-all duration-300 group"
|
||||
>
|
||||
<div className="flex items-start space-x-4">
|
||||
{/* Dosya İkonu */}
|
||||
<div className="w-12 h-12 bg-linear-to-br from-[#00B4D8] to-[#004B87] rounded-lg flex items-center justify-center text-2xl shrink-0 group-hover:scale-110 transition-transform duration-300">
|
||||
{getFileIcon(doc.type)}
|
||||
</div>
|
||||
|
||||
{/* Belge Bilgileri */}
|
||||
<div className="flex-1 min-w-0">
|
||||
<h3 className="text-base font-bold text-[#004B87] mb-1 group-hover:text-[#00B4D8] transition-colors">
|
||||
{doc.title}
|
||||
</h3>
|
||||
<p className="text-gray-600 text-sm mb-2">
|
||||
{doc.description}
|
||||
</p>
|
||||
<div className="flex flex-wrap gap-3 text-xs text-gray-500">
|
||||
<span>📅 {doc.date}</span>
|
||||
<span>📄 {doc.type}</span>
|
||||
<span>💾 {doc.size}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* İndirme Butonu */}
|
||||
<button className="px-4 py-2 bg-[#00B4D8] text-white rounded-lg hover:bg-[#004B87] transition-colors shadow-md hover:shadow-lg flex items-center space-x-2 shrink-0 text-sm">
|
||||
<svg className="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
||||
</svg>
|
||||
<span className="font-medium">İndir</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Ana İçerik - Kartlar için üstten boşluk */}
|
||||
<main className={`max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 ${showLiveStream || showNews ? 'pt-8' : 'pt-32'} pb-12`}>
|
||||
<main className={`max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 ${showLiveStream || showNews || showDocuments ? 'pt-8' : 'pt-32'} pb-12`}>
|
||||
<div className="text-center mb-16">
|
||||
<h2 className="text-3xl font-bold text-white mb-4">
|
||||
Metro Hat Durumları
|
||||
@@ -365,6 +563,9 @@ export default function Home() {
|
||||
{/* Metro İnşaat Projesi - Animasyonlu */}
|
||||
<MetroLine />
|
||||
</main>
|
||||
|
||||
{/* Footer */}
|
||||
<Footer />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user