Files
klz-cables.com/components/layout/Footer.tsx
2025-12-29 18:18:48 +01:00

163 lines
7.6 KiB
TypeScript

import Link from 'next/link';
import { Container } from '@/components/ui/Container';
import { Navigation } from './Navigation';
interface FooterProps {
locale: string;
siteName?: string;
}
export function Footer({ locale, siteName = 'KLZ Cables' }: FooterProps) {
const currentYear = new Date().getFullYear();
// Quick links
const quickLinks = [
{ title: 'About Us', path: `/${locale}/about` },
{ title: 'Blog', path: `/${locale}/blog` },
{ title: 'Products', path: `/${locale}/products` },
{ title: 'Contact', path: `/${locale}/contact` }
];
// Product categories
const productCategories = [
{ title: 'Medium Voltage Cables', path: `/${locale}/product-category/medium-voltage` },
{ title: 'Low Voltage Cables', path: `/${locale}/product-category/low-voltage` },
{ title: 'Cable Accessories', path: `/${locale}/product-category/accessories` },
{ title: 'Special Solutions', path: `/${locale}/product-category/special` }
];
// Legal links
const legalLinks = [
{ title: 'Privacy Policy', path: `/${locale}/privacy` },
{ title: 'Terms of Service', path: `/${locale}/terms` },
{ title: 'Imprint', path: `/${locale}/imprint` }
];
return (
<footer className="bg-gray-900 text-gray-300 border-t border-gray-800">
<Container maxWidth="6xl" padding="lg">
{/* Main Footer Content */}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8 mb-8">
{/* Company Info */}
<div className="space-y-4">
<div className="flex items-center gap-2">
<div className="w-8 h-8 bg-primary rounded-lg flex items-center justify-center">
<span className="text-white font-bold text-sm">KLZ</span>
</div>
<span className="font-bold text-white text-lg">{siteName}</span>
</div>
<p className="text-sm leading-relaxed text-gray-400">
Professional cable solutions for industrial applications.
Quality, reliability, and innovation since 1990.
</p>
<div className="flex gap-3">
{/* Social Media Links */}
<a href="#" className="text-gray-400 hover:text-white transition-colors" aria-label="LinkedIn">
<svg className="w-5 h-5" 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>
<a href="#" className="text-gray-400 hover:text-white transition-colors" aria-label="Twitter">
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
<path d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z"/>
</svg>
</a>
<a href="#" className="text-gray-400 hover:text-white transition-colors" aria-label="Facebook">
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
<path d="M9 8h-3v4h3v12h5v-12h3.642l.358-4h-4v-1.667c0-.955.192-1.333 1.115-1.333h2.885v-5h-3.808c-3.596 0-5.192 1.583-5.192 4.615v3.385z"/>
</svg>
</a>
</div>
</div>
{/* Quick Links */}
<div>
<h3 className="text-white font-semibold mb-4 text-sm uppercase tracking-wider">
Quick Links
</h3>
<ul className="space-y-2">
{quickLinks.map((link) => (
<li key={link.path}>
<Link
href={link.path}
className="text-sm hover:text-white transition-colors"
>
{link.title}
</Link>
</li>
))}
</ul>
</div>
{/* Product Categories */}
<div>
<h3 className="text-white font-semibold mb-4 text-sm uppercase tracking-wider">
Products
</h3>
<ul className="space-y-2">
{productCategories.map((link) => (
<li key={link.path}>
<Link
href={link.path}
className="text-sm hover:text-white transition-colors"
>
{link.title}
</Link>
</li>
))}
</ul>
</div>
{/* Contact Info */}
<div>
<h3 className="text-white font-semibold mb-4 text-sm uppercase tracking-wider">
Contact
</h3>
<ul className="space-y-3 text-sm">
<li className="flex items-start gap-2">
<svg className="w-4 h-4 mt-0.5 text-primary flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
</svg>
<span>info@klz-cables.com</span>
</li>
<li className="flex items-start gap-2">
<svg className="w-4 h-4 mt-0.5 text-primary flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" />
</svg>
<span>+49 (0) 123 456 789</span>
</li>
<li className="flex items-start gap-2">
<svg className="w-4 h-4 mt-0.5 text-primary flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z" />
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M15 11a3 3 0 11-6 0 3 3 0 016 0z" />
</svg>
<span>
Industrial Street 123<br />
12345 Berlin, Germany
</span>
</li>
</ul>
</div>
</div>
{/* Bottom Bar */}
<div className="border-t border-gray-800 pt-6 flex flex-col md:flex-row justify-between items-center gap-4">
<div className="text-sm text-gray-400">
© {currentYear} {siteName}. All rights reserved.
</div>
<div className="flex items-center gap-4 text-sm">
{legalLinks.map((link) => (
<Link
key={link.path}
href={link.path}
className="hover:text-white transition-colors"
>
{link.title}
</Link>
))}
</div>
</div>
</Container>
</footer>
);
}