166 lines
5.6 KiB
TypeScript
166 lines
5.6 KiB
TypeScript
'use client'
|
|
|
|
import Link from '@/components/ui/Link'
|
|
import { Button } from '@/components/ui/button'
|
|
import { Input } from '@/components/ui/input'
|
|
import { Server, Mail, Github, Twitter, Linkedin } from 'lucide-react'
|
|
import { Logo } from '@/components/Logo'
|
|
|
|
export function Footer() {
|
|
const footerSections = [
|
|
{
|
|
title: 'Hosting',
|
|
links: [
|
|
{ name: 'VPS Hosting', href: '/services' },
|
|
{ name: 'Kubernetes', href: '/services' },
|
|
{ name: 'Control Panels', href: '/services' },
|
|
{ name: 'VPN Services', href: '/services' },
|
|
],
|
|
},
|
|
{
|
|
title: 'Developer Services',
|
|
links: [
|
|
{ name: 'SMTP Services', href: '/services' },
|
|
{ name: 'Database Hosting', href: '/services' },
|
|
{ name: 'API Services', href: '/services' },
|
|
{ name: 'Consulting', href: '/services' },
|
|
],
|
|
},
|
|
{
|
|
title: 'Web Tools',
|
|
links: [
|
|
{ name: 'Speech-to-Text', href: '/tools' },
|
|
{ name: 'Image Resize', href: '/tools' },
|
|
{ name: 'Text-to-Speech', href: '/tools' },
|
|
{ name: 'API Access', href: '/tools' },
|
|
],
|
|
},
|
|
{
|
|
title: 'Company',
|
|
links: [
|
|
{ name: 'About Us', href: '/about' },
|
|
{ name: 'Contact', href: '/contact' },
|
|
{ name: 'Legal Agreement', href: '/legal-agreement' },
|
|
{ name: 'Privacy Policy', href: '/privacy' },
|
|
],
|
|
},
|
|
]
|
|
|
|
const socialLinks = [
|
|
{ icon: Twitter, href: '#', label: 'Twitter' },
|
|
{ icon: Github, href: '#', label: 'GitHub' },
|
|
{ icon: Linkedin, href: '#', label: 'LinkedIn' },
|
|
]
|
|
|
|
return (
|
|
<footer className="bg-card border-t border-border">
|
|
{/* Newsletter Section */}
|
|
{/* <div className="border-b border-border">
|
|
<div className="container mx-auto px-4 py-12">
|
|
<div className="max-w-2xl mx-auto text-center">
|
|
<h3 className="text-2xl font-bold mb-4">Stay Updated</h3>
|
|
<p className="text-muted-foreground mb-6">
|
|
Get the latest updates on new features, hosting tips, and developer resources.
|
|
</p>
|
|
<div className="flex flex-col sm:flex-row gap-4 max-w-md mx-auto">
|
|
<Input type="email" placeholder="Enter your email" className="flex-1" />
|
|
<Button variant="hero">
|
|
<Mail className="w-4 h-4 mr-2" />
|
|
Subscribe
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div> */}
|
|
|
|
{/* Main Footer */}
|
|
<div className="container mx-auto px-4 py-16">
|
|
<div className="grid md:grid-cols-2 lg:grid-cols-6 gap-8">
|
|
{/* Brand */}
|
|
<div className="lg:col-span-2">
|
|
<div className="flex items-center space-x-2 mb-6">
|
|
<div className="w-8 h-8 rounded-lg flex items-center justify-center">
|
|
<Logo size={32} />
|
|
</div>
|
|
<span className="text-xl font-bold font-heading tracking-tight">SiliconPin</span>
|
|
</div>
|
|
<p className="text-muted-foreground mb-6 leading-relaxed">
|
|
Professional web hosting and developer services platform. Built by developers, for
|
|
developers.
|
|
</p>
|
|
<div className="flex space-x-4">
|
|
{socialLinks.map((social, index) => {
|
|
const Icon = social.icon
|
|
return (
|
|
<Button
|
|
key={index}
|
|
variant="ghost"
|
|
size="icon"
|
|
className="hover:bg-primary hover:text-primary-foreground"
|
|
aria-label={social.label}
|
|
asChild
|
|
>
|
|
<Link href={social.href}>
|
|
<Icon className="w-4 h-4" />
|
|
</Link>
|
|
</Button>
|
|
)
|
|
})}
|
|
</div>
|
|
</div>
|
|
|
|
{/* Footer Links */}
|
|
{footerSections.map((section, index) => (
|
|
<div key={index}>
|
|
<h4 className="font-semibold mb-4">{section.title}</h4>
|
|
<ul className="space-y-3">
|
|
{section.links.map((link, linkIndex) => (
|
|
<li key={linkIndex}>
|
|
<Link
|
|
href={link.href}
|
|
className="text-muted-foreground hover:text-primary transition-colors duration-300"
|
|
>
|
|
{link.name}
|
|
</Link>
|
|
</li>
|
|
))}
|
|
</ul>
|
|
</div>
|
|
))}
|
|
</div>
|
|
</div>
|
|
|
|
{/* Bottom Bar */}
|
|
<div className="border-t border-border">
|
|
<div className="container mx-auto px-4 py-6">
|
|
<div className="flex flex-col md:flex-row justify-between items-center space-y-4 md:space-y-0">
|
|
<div className="text-sm text-muted-foreground">
|
|
© {new Date().getFullYear()} SiliconPin. All rights reserved.
|
|
</div>
|
|
<div className="flex space-x-6 text-sm">
|
|
<Link
|
|
href="/privacy"
|
|
className="text-muted-foreground hover:text-primary transition-colors"
|
|
>
|
|
Privacy Policy
|
|
</Link>
|
|
<Link
|
|
href="/terms"
|
|
className="text-muted-foreground hover:text-primary transition-colors"
|
|
>
|
|
Terms of Service
|
|
</Link>
|
|
<Link
|
|
href="/refund-policy"
|
|
className="text-muted-foreground hover:text-primary transition-colors"
|
|
>
|
|
Refund Policy
|
|
</Link>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
)
|
|
}
|