185 lines
12 KiB
TypeScript
185 lines
12 KiB
TypeScript
'use client';
|
||
|
||
import { useState, useEffect } from 'react';
|
||
import Link from 'next/link';
|
||
import Image from 'next/image';
|
||
import { dataStore, type SiteSettings } from '@/lib/dataStore';
|
||
|
||
export default function Footer() {
|
||
const [settings, setSettings] = useState<SiteSettings | null>(null);
|
||
|
||
useEffect(() => {
|
||
setSettings(dataStore.getSiteSettings());
|
||
}, []);
|
||
|
||
if (!settings) return null;
|
||
|
||
return (
|
||
<footer className="bg-linear-to-r from-[#003366] via-[#004B87] to-[#003366] text-white mt-16">
|
||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
|
||
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||
{/* Logo ve Bilgi */}
|
||
<div>
|
||
<div className="mb-4">
|
||
<Image
|
||
src="https://www.ankara.bel.tr/assets/images/logo-white.svg"
|
||
alt="Ankara Büyükşehir Belediyesi"
|
||
width={64}
|
||
height={64}
|
||
className="h-16 w-auto object-contain"
|
||
/>
|
||
</div>
|
||
<p className="text-gray-300 text-sm leading-relaxed">
|
||
A2 Metro Hattı İnşaat Projesi - Ankara'nın ulaşım altyapısına modern çözümler sunuyoruz.
|
||
</p>
|
||
</div>
|
||
|
||
{/* Hızlı Linkler */}
|
||
<div>
|
||
<h3 className="text-lg font-bold mb-4 text-[#48CAE4]">Hızlı Erişim</h3>
|
||
<div className="grid grid-cols-2 gap-2">
|
||
<Link href="/" className="text-gray-300 hover:text-white transition-colors text-xs flex items-center space-x-2 p-2 rounded hover:bg-white/10">
|
||
<svg className="w-4 h-4" fill="currentColor" viewBox="0 0 20 20">
|
||
<path d="M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z" />
|
||
</svg>
|
||
<span>Ana Sayfa</span>
|
||
</Link>
|
||
<Link href="/canli-yayin" className="text-gray-300 hover:text-white transition-colors text-xs flex items-center space-x-2 p-2 rounded hover:bg-white/10">
|
||
<svg className="w-4 h-4" fill="currentColor" viewBox="0 0 20 20">
|
||
<path d="M2 6a2 2 0 012-2h6a2 2 0 012 2v8a2 2 0 01-2 2H4a2 2 0 01-2-2V6zM14.553 7.106A1 1 0 0014 8v4a1 1 0 00.553.894l2 1A1 1 0 0018 13V7a1 1 0 00-1.447-.894l-2 1z" />
|
||
</svg>
|
||
<span>Canlı Yayın</span>
|
||
</Link>
|
||
<Link href="/haberler" className="text-gray-300 hover:text-white transition-colors text-xs flex items-center space-x-2 p-2 rounded hover:bg-white/10">
|
||
<svg className="w-4 h-4" fill="currentColor" viewBox="0 0 20 20">
|
||
<path fillRule="evenodd" d="M2 5a2 2 0 012-2h8a2 2 0 012 2v10a2 2 0 002 2H4a2 2 0 01-2-2V5zm3 1h6v4H5V6zm6 6H5v2h6v-2z" clipRule="evenodd" />
|
||
</svg>
|
||
<span>Haberler</span>
|
||
</Link>
|
||
<Link href="/medya" className="text-gray-300 hover:text-white transition-colors text-xs flex items-center space-x-2 p-2 rounded hover:bg-white/10">
|
||
<svg className="w-4 h-4" fill="currentColor" viewBox="0 0 20 20">
|
||
<path fillRule="evenodd" d="M4 3a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V5a2 2 0 00-2-2H4zm12 12H4l4-8 3 6 2-4 3 6z" clipRule="evenodd" />
|
||
</svg>
|
||
<span>Medya Galerisi</span>
|
||
</Link>
|
||
<Link href="/sss" className="text-gray-300 hover:text-white transition-colors text-xs flex items-center space-x-2 p-2 rounded hover:bg-white/10">
|
||
<svg className="w-4 h-4" fill="currentColor" viewBox="0 0 20 20">
|
||
<path fillRule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clipRule="evenodd" />
|
||
</svg>
|
||
<span>SSS</span>
|
||
</Link>
|
||
<Link href="/belgeler" className="text-gray-300 hover:text-white transition-colors text-xs flex items-center space-x-2 p-2 rounded hover:bg-white/10">
|
||
<svg className="w-4 h-4" fill="currentColor" viewBox="0 0 20 20">
|
||
<path fillRule="evenodd" d="M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6A2 2 0 0116 7.414V16a2 2 0 01-2 2H6a2 2 0 01-2-2V4zm2 6a1 1 0 011-1h6a1 1 0 110 2H7a1 1 0 01-1-1zm1 3a1 1 0 100 2h6a1 1 0 100-2H7z" clipRule="evenodd" />
|
||
</svg>
|
||
<span>Belgeler</span>
|
||
</Link>
|
||
<Link href="/iletisim" className="text-gray-300 hover:text-white transition-colors text-xs flex items-center space-x-2 p-2 rounded hover:bg-white/10">
|
||
<svg className="w-4 h-4" fill="currentColor" viewBox="0 0 20 20">
|
||
<path d="M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z" />
|
||
<path d="M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z" />
|
||
</svg>
|
||
<span>İletişim</span>
|
||
</Link>
|
||
</div>
|
||
</div>
|
||
|
||
{/* İletişim Bilgileri */}
|
||
<div>
|
||
<h3 className="text-lg font-bold mb-4 text-[#48CAE4]">İletişim</h3>
|
||
<ul className="space-y-3">
|
||
<li className="flex items-start space-x-3">
|
||
<svg className="w-5 h-5 text-[#00B4D8] mt-0.5 shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
||
<path fillRule="evenodd" d="M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z" clipRule="evenodd" />
|
||
</svg>
|
||
<span className="text-gray-300 text-sm">{settings.contact.address}</span>
|
||
</li>
|
||
<li className="flex items-center space-x-3">
|
||
<svg className="w-5 h-5 text-[#00B4D8] shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
||
<path d="M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.54 1.06l-1.548.773a11.037 11.037 0 006.105 6.105l.774-1.548a1 1 0 011.059-.54l4.435.74a1 1 0 01.836.986V17a1 1 0 01-1 1h-2C7.82 18 2 12.18 2 5V3z" />
|
||
</svg>
|
||
<a href={`tel:${settings.contact.phone.replace(/[^0-9+]/g, '')}`} className="text-gray-300 hover:text-white transition-colors text-sm">
|
||
{settings.contact.phone}
|
||
</a>
|
||
</li>
|
||
<li className="flex items-center space-x-3">
|
||
<svg className="w-5 h-5 text-[#00B4D8] shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
||
<path d="M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z" />
|
||
<path d="M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z" />
|
||
</svg>
|
||
<a href={`mailto:${settings.contact.kep}`} className="text-gray-300 hover:text-white transition-colors text-sm">
|
||
{settings.contact.kep}
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
|
||
{/* Sosyal Medya */}
|
||
<div className="mt-6">
|
||
<h4 className="text-sm font-semibold mb-3 text-[#48CAE4]">Sosyal Medya</h4>
|
||
<div className="flex space-x-3">
|
||
{/* Facebook */}
|
||
<a
|
||
href={settings.social.facebook}
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="w-9 h-9 rounded-full bg-[#00B4D8] hover:bg-[#48CAE4] flex items-center justify-center transition-colors"
|
||
aria-label="Facebook"
|
||
>
|
||
<svg className="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
|
||
<path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/>
|
||
</svg>
|
||
</a>
|
||
{/* Twitter/X */}
|
||
<a
|
||
href={settings.social.twitter}
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="w-9 h-9 rounded-full bg-[#00B4D8] hover:bg-[#48CAE4] flex items-center justify-center transition-colors"
|
||
aria-label="Twitter/X"
|
||
>
|
||
<svg className="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
|
||
<path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/>
|
||
</svg>
|
||
</a>
|
||
{/* Instagram */}
|
||
<a
|
||
href={settings.social.instagram}
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="w-9 h-9 rounded-full bg-[#00B4D8] hover:bg-[#48CAE4] flex items-center justify-center transition-colors"
|
||
aria-label="Instagram"
|
||
>
|
||
<svg className="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
|
||
<path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z"/>
|
||
</svg>
|
||
</a>
|
||
{/* LinkedIn */}
|
||
{settings.social.linkedin && (
|
||
<a
|
||
href={settings.social.linkedin}
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="w-9 h-9 rounded-full bg-[#00B4D8] hover:bg-[#48CAE4] flex items-center justify-center transition-colors"
|
||
aria-label="LinkedIn"
|
||
>
|
||
<svg className="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
|
||
<path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"/>
|
||
</svg>
|
||
</a>
|
||
)}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Alt Bilgi */}
|
||
<div className="border-t border-white/10 mt-8 pt-8 text-center">
|
||
<p className="text-gray-400 text-sm">
|
||
© {new Date().getFullYear()} {settings.companyInfo.fullName} - Tüm hakları saklıdır.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
);
|
||
}
|