This commit is contained in:
AyrisAI
2026-07-11 16:15:26 +03:00
parent ccb923e57a
commit ac78e5bf40
16 changed files with 504 additions and 322 deletions
+35 -20
View File
@@ -2,16 +2,6 @@ import Link from "next/link";
import Image from "next/image";
import { MapPin, Phone, Mail } from "lucide-react";
const quickLinks = [
{ name: "Ana Sayfa", href: "/" },
{ name: "Odalar", href: "/odalar" },
{ name: "Aktiviteler", href: "/aktiviteler"},
{ name: "Restoran", href: "/restoran" },
{ name: "Etkinlikler", href: "/etkinlikler"},
{ name: "Galeri", href: "/galeri" },
{ name: "Hakkımızda", href: "/hakkimizda" },
];
function InstagramIcon() {
return (
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
@@ -39,7 +29,26 @@ function YoutubeIcon() {
);
}
export default function Footer() {
export default function Footer({ lang = "tr" }: { lang?: string }) {
const isEn = lang === "en";
const quickLinks = isEn ? [
{ name: "Home", href: "/en" },
{ name: "Rooms", href: "/en/odalar" },
{ name: "Activities", href: "/en/aktiviteler"},
{ name: "Restaurant", href: "/en/restoran" },
{ name: "Events", href: "/en/etkinlikler"},
{ name: "Gallery", href: "/en/galeri" },
{ name: "About Us", href: "/en/hakkimizda" },
] : [
{ name: "Ana Sayfa", href: "/tr" },
{ name: "Odalar", href: "/tr/odalar" },
{ name: "Aktiviteler", href: "/tr/aktiviteler"},
{ name: "Restoran", href: "/tr/restoran" },
{ name: "Etkinlikler", href: "/tr/etkinlikler"},
{ name: "Galeri", href: "/tr/galeri" },
{ name: "Hakkımızda", href: "/tr/hakkimizda" },
];
return (
<footer className="bg-dark text-white">
{/* Top accent line */}
@@ -50,7 +59,7 @@ export default function Footer() {
{/* Brand */}
<div className="md:col-span-4">
<Link href="/" className="inline-block mb-5">
<Link href={isEn ? "/en" : "/tr"} className="inline-block mb-5">
<Image
src="/logo.png"
alt="Kite Beach Logo"
@@ -60,7 +69,9 @@ export default function Footer() {
/>
</Link>
<p className="text-white/40 text-[13px] leading-relaxed mb-7 max-w-xs">
Nehrin huzuru, denizin enerjisi tek bir noktada. Akyaka'nın kalbinde butik bir kaçış noktası.
{isEn
? "The tranquility of the river, the energy of the sea — in one place. A boutique escape in the heart of Akyaka."
: "Nehrin huzuru, denizin enerjisi — tek bir noktada. Akyaka'nın kalbinde butik bir kaçış noktası."}
</p>
{/* Social icons */}
<div className="flex gap-3">
@@ -84,7 +95,7 @@ export default function Footer() {
{/* Quick Links */}
<div className="md:col-span-3">
<h3 className="text-[11px] font-bold tracking-[0.25em] text-white/30 uppercase mb-6">
Sayfalar
{isEn ? "Pages" : "Sayfalar"}
</h3>
<ul className="space-y-3">
{quickLinks.map((link) => (
@@ -103,7 +114,7 @@ export default function Footer() {
{/* Contact */}
<div className="md:col-span-5">
<h3 className="text-[11px] font-bold tracking-[0.25em] text-white/30 uppercase mb-6">
İletişim
{isEn ? "Contact" : letişim"}
</h3>
<ul className="space-y-5">
<li className="flex items-start gap-3">
@@ -111,7 +122,11 @@ export default function Footer() {
<MapPin size={13} className="text-accent" />
</div>
<span className="text-white/50 text-[13px] leading-relaxed">
Akyaka Mahallesi, Akçapınar Mevkii<br />Muğla, Türkiye
{isEn ? (
<>Akyaka District, Akcapinar Location<br />Mugla, Turkey</>
) : (
<>Akyaka Mahallesi, Akçapınar Mevkii<br />Muğla, Türkiye</>
)}
</span>
</li>
<li className="flex items-center gap-3">
@@ -144,17 +159,17 @@ export default function Footer() {
{/* Bottom bar */}
<div className="border-t border-white/8 pt-8 flex flex-col md:flex-row justify-between items-center gap-4">
<p className="text-white/25 text-xs">
© 2026 Kite Beach Akyaka. Tüm hakları saklıdır.
{isEn ? "© 2026 Kite Beach Akyaka. All rights reserved." : "© 2026 Kite Beach Akyaka. Tüm hakları saklıdır."}
</p>
<div className="flex gap-6">
{[
{ name: "KVKK", href: "/kvkk" },
{ name: "Gizlilik Politikası", href: "/gizlilik" },
{ name: "Çerez Politikası", href: "/cerez" }
{ name: isEn ? "Privacy Policy" : "Gizlilik Politikası", href: "/gizlilik" },
{ name: isEn ? "Cookie Policy" : "Çerez Politikası", href: "/cerez" }
].map((item) => (
<Link
key={item.name}
href={item.href}
href={isEn ? `/en${item.href}` : `/tr${item.href}`}
className="text-white/25 hover:text-white/60 transition-colors text-xs"
>
{item.name}
+1
View File
@@ -12,6 +12,7 @@ export default function HeroVideo() {
src="https://img.youtube.com/vi/V9AhK54xsxY/maxresdefault.jpg"
alt="Kite Beach Akyaka Video Thumbnail"
fill
sizes="100vw"
className={`object-cover transition-opacity duration-1000 ease-in-out ${
isVideoLoaded ? "opacity-0" : "opacity-80"
}`}
+24 -17
View File
@@ -7,17 +7,23 @@ import { usePathname } from "next/navigation";
import { motion, AnimatePresence } from "framer-motion";
import { Menu, X, Globe } from "lucide-react";
const navLinks = [
// { name: "Odalar", href: "/odalar" },
{ name: "Aktiviteler", href: "/aktiviteler" },
{ name: "Restoran", href: "/restoran" },
{ name: "Etkinlikler", href: "/etkinlikler" },
{ name: "Hakkımızda", href: "/hakkimizda" },
{ name: "İletişim", href: "/iletisim" },
const navLinksEn = [
{ name: "Activities", href: "/en/aktiviteler" },
{ name: "Restaurant", href: "/en/restoran" },
{ name: "Events", href: "/en/etkinlikler" },
{ name: "About Us", href: "/en/hakkimizda" },
{ name: "Contact", href: "/en/iletisim" },
];
export default function Navbar() {
const navLinksTr = [
{ name: "Aktiviteler", href: "/tr/aktiviteler" },
{ name: "Restoran", href: "/tr/restoran" },
{ name: "Etkinlikler", href: "/tr/etkinlikler" },
{ name: "Hakkımızda", href: "/tr/hakkimizda" },
{ name: "İletişim", href: "/tr/iletisim" },
];
export default function Navbar({ lang }: { lang?: string }) {
const [isOpen, setIsOpen] = useState(false);
const [scrolled, setScrolled] = useState(false);
const pathname = usePathname();
@@ -30,10 +36,11 @@ export default function Navbar() {
useEffect(() => { setIsOpen(false); }, [pathname]);
const isHome = pathname === "/" || pathname === "/tr" || pathname === "/en";
const currentLang = pathname.startsWith("/en") ? "en" : "tr";
const currentLang = lang || (pathname.startsWith("/en") ? "en" : "tr");
const toggleLang = currentLang === "en" ? "tr" : "en";
const navLinks = currentLang === "en" ? navLinksEn : navLinksTr;
const isHome = pathname === "/" || pathname === "/tr" || pathname === "/en";
const getToggleHref = () => {
if (pathname === "/") return `/${toggleLang}`;
@@ -55,7 +62,7 @@ export default function Navbar() {
<div className="flex justify-between items-center">
{/* Logo */}
<Link href="/" className="flex-shrink-0 flex items-center group">
<Link href={`/${currentLang}`} className="flex-shrink-0 flex items-center group">
<Image
src="/logo.png"
alt="Kite Beach Logo"
@@ -91,10 +98,10 @@ export default function Navbar() {
})}
<Link
href="/iletisim"
href={`/${currentLang}/iletisim`}
className="btn-shimmer bg-accent text-white px-6 py-2.5 rounded-full text-[11px] font-bold tracking-[0.12em] uppercase hover:bg-accent/90 transition-colors shadow-md"
>
Bize Ulaşın
{currentLang === "en" ? "Contact Us" : "Bize Ulaşın"}
</Link>
{/* Lang Toggle */}
@@ -160,10 +167,10 @@ export default function Navbar() {
{currentLang === "tr" ? "English" : "Türkçe"}
</Link>
<Link
href="/iletisim"
href={`/${currentLang}/iletisim`}
className="mt-4 block w-full text-center bg-accent text-white px-6 py-3.5 rounded-full text-sm font-bold uppercase tracking-wider"
>
Bize Ulaşın
{currentLang === "en" ? "Contact Us" : "Bize Ulaşın"}
</Link>
</div>
</motion.div>