Import source: src/components/Footer
Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality.
This commit is contained in:
@@ -0,0 +1,53 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { useLocale, useTranslations } from 'next-intl';
|
||||||
|
import { Send, Instagram, BookOpen, Globe } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function Footer() {
|
||||||
|
const t = useTranslations('Footer');
|
||||||
|
const locale = useLocale();
|
||||||
|
|
||||||
|
const socialLinks = [
|
||||||
|
{ href: 'https://t.me/Coaxys', icon: Send, label: 'Telegram' },
|
||||||
|
{ href: 'https://instagram.com/_coaxys', icon: Instagram, label: 'Instagram' },
|
||||||
|
{ href: 'https://teknav.ir/profile/@arsam-sabbagh', icon: BookOpen, label: 'Teknav' },
|
||||||
|
{ href: 'https://arsamsabbagh.ir', icon: Globe, label: 'Domain' },
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<footer className="w-full bg-warm-white dark:bg-near-black border-t border-sand/20 dark:border-charcoal/50 py-12 transition-colors duration-300">
|
||||||
|
<div className="max-w-[1200px] mx-auto px-6 flex flex-col md:flex-row items-center justify-between gap-6">
|
||||||
|
|
||||||
|
{/* Left Side: Copyright */}
|
||||||
|
<div className="text-center md:text-left rtl:md:text-right">
|
||||||
|
<p className="text-sm font-semibold text-charcoal/80 dark:text-warm-white/70">
|
||||||
|
© {new Date().getFullYear().toLocaleString(locale === 'fa' ? 'fa-IR' : 'en-US', { useGrouping: false })} {locale === 'fa' ? 'آرسام صباغ' : 'Arsam Sabbagh'}. {t('rights')}
|
||||||
|
</p>
|
||||||
|
<p className="text-xs text-charcoal/50 dark:text-warm-white/40 mt-1 font-medium">
|
||||||
|
{t('builtWith')}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Right Side: Social Handles Icons */}
|
||||||
|
<div className="flex items-center space-x-4 rtl:space-x-reverse">
|
||||||
|
{socialLinks.map((social) => {
|
||||||
|
const Icon = social.icon;
|
||||||
|
return (
|
||||||
|
<a
|
||||||
|
key={social.label}
|
||||||
|
href={social.href}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="p-2.5 rounded-full border border-sand dark:border-charcoal text-charcoal/60 dark:text-warm-white/50 hover:text-teal-brand hover:border-teal-brand/40 dark:hover:text-teal-brand/40 hover:bg-teal-brand/5 transition-all cursor-pointer"
|
||||||
|
title={social.label}
|
||||||
|
>
|
||||||
|
<Icon className="w-4 h-4" />
|
||||||
|
</a>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user