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
+63 -23
View File
@@ -28,7 +28,7 @@ const defaultFeatures = [
const rooms = [
{
img: "https://images.unsplash.com/photo-1582719478250-c89404bb8a0e?q=80&w=2940&auto=format&fit=crop",
img: "https://images.unsplash.com/photo-1618773928121-c32242e63f39?q=80&w=2940&auto=format&fit=crop",
badge: "Standart",
badgeStyle: "bg-white/90 text-dark",
name: "Standart Oda",
@@ -74,6 +74,24 @@ const testimonials = [
},
];
const testimonialsEn = [
{
text: "I've stayed in many places in Akyaka, but Kite Beach was a completely different experience. The sound of the river, kitesurf lessons, and the amazing breakfast — everything was perfect.",
name: "Ayse K.",
from: "Istanbul",
},
{
text: "Yoga sessions on the wooden platform, early in the morning with a river view. Hard to put into words — a must-try.",
name: "Marco B.",
from: "Italy",
},
{
text: "The instructors are very caring. After my kitesurf lessons, I became addicted. I will definitely return next summer.",
name: "Mehmet O.",
from: "Ankara",
},
];
import { getDictionary, Locale } from "./dictionaries";
import prisma from "@/lib/prisma";
import { buildMeta } from "@/lib/metadata";
@@ -139,6 +157,8 @@ export default async function Home({ params }: { params: Promise<{ lang: string
getInstagramData(),
]);
const displayTestimonials = lang === "en" ? testimonialsEn : testimonials;
const heroData = heroDb || {
location: dict.home.location,
welcome: dict.home.welcome,
@@ -306,10 +326,12 @@ export default async function Home({ params }: { params: Promise<{ lang: string
</p>
<div className="section-line mb-8" />
<Link
href="/hakkimizda"
href={`/${lang}/hakkimizda`}
className="inline-flex items-center gap-2 text-dark font-bold text-sm tracking-wide group"
>
<span className="border-b-2 border-accent pb-0.5">Hikayemizi Okuyun</span>
<span className="border-b-2 border-accent pb-0.5">
{lang === "en" ? "Read Our Story" : "Hikayemizi Okuyun"}
</span>
<ArrowRight className="w-4 h-4 group-hover:translate-x-1.5 transition-transform" />
</Link>
</ScrollReveal>
@@ -346,6 +368,7 @@ export default async function Home({ params }: { params: Promise<{ lang: string
src={room.img}
alt={room.name}
fill
sizes="(max-width: 768px) 100vw, 33vw"
className="object-cover group-hover:scale-105 transition-transform duration-700"
/>
<span className={`absolute top-4 left-4 text-[10px] font-bold px-3 py-1.5 rounded-full tracking-wider uppercase ${room.badgeStyle} backdrop-blur-sm`}>
@@ -396,15 +419,17 @@ export default async function Home({ params }: { params: Promise<{ lang: string
<ScrollReveal className="flex flex-col md:flex-row md:items-end md:justify-between gap-6 mb-10">
<div>
<span className="inline-block text-accent text-xs tracking-[0.25em] uppercase font-semibold mb-4">
Ne Yapacaksınız?
{lang === "en" ? "What Will You Do?" : "Ne Yapacaksınız?"}
</span>
<h2 className="font-serif text-5xl font-bold text-dark">Aktiviteler</h2>
<h2 className="font-serif text-5xl font-bold text-dark">
{lang === "en" ? "Activities" : "Aktiviteler"}
</h2>
</div>
<Link
href="/aktiviteler"
href={`/${lang}/aktiviteler`}
className="inline-flex items-center gap-2 text-sm font-semibold text-primary hover:text-accent transition-colors"
>
Tümünü Gör <ArrowRight className="w-4 h-4" />
{lang === "en" ? "See All" : "Tümünü Gör"} <ArrowRight className="w-4 h-4" />
</Link>
</ScrollReveal>
@@ -417,7 +442,7 @@ export default async function Home({ params }: { params: Promise<{ lang: string
className={i === 0 || i === 3 ? "md:col-span-2" : ""}
delay={i * 50}
>
<Link href="/aktiviteler" className={`group relative block rounded-3xl overflow-hidden ${activities.length === 1 ? "aspect-[4/3] md:aspect-video" : i < 2 ? "h-[400px]" : "h-[280px]"}`}>
<Link href={`/${lang}/aktiviteler`} className={`group relative block rounded-3xl overflow-hidden ${activities.length === 1 ? "aspect-[4/3] md:aspect-video" : i < 2 ? "h-[400px]" : "h-[280px]"}`}>
<Image
src={act.image}
alt={act.title}
@@ -446,7 +471,9 @@ export default async function Home({ params }: { params: Promise<{ lang: string
</ScrollReveal>
))
) : (
<div className="md:col-span-3 py-10 text-center text-gray-500">Henüz aktivite eklenmedi.</div>
<div className="md:col-span-3 py-10 text-center text-gray-500">
{lang === "en" ? "No activities added yet." : "Henüz aktivite eklenmedi."}
</div>
)}
</div>
</div>
@@ -464,15 +491,17 @@ export default async function Home({ params }: { params: Promise<{ lang: string
<ScrollReveal className="flex flex-col md:flex-row md:items-end md:justify-between gap-6 mb-16">
<div>
<span className="inline-block text-accent text-xs tracking-[0.25em] uppercase font-semibold mb-4">
Takvim
{lang === "en" ? "Calendar" : "Takvim"}
</span>
<h2 className="font-serif text-5xl font-bold">Etkinlikler</h2>
<h2 className="font-serif text-5xl font-bold">
{lang === "en" ? "Events" : "Etkinlikler"}
</h2>
</div>
<Link
href="/etkinlikler"
href={`/${lang}/etkinlikler`}
className="inline-flex items-center gap-2 text-sm font-semibold text-white/70 hover:text-white transition-colors border border-white/20 hover:border-white px-6 py-2.5 rounded-full"
>
Tüm Etkinlikler <ArrowRight className="w-4 h-4" />
{lang === "en" ? "All Events" : "Tüm Etkinlikler"} <ArrowRight className="w-4 h-4" />
</Link>
</ScrollReveal>
@@ -511,16 +540,18 @@ export default async function Home({ params }: { params: Promise<{ lang: string
</span>
</div>
<Link
href="/etkinlikler"
href={`/${lang}/etkinlikler`}
className="inline-flex items-center gap-2 text-xs font-bold tracking-widest uppercase text-accent hover:text-white transition-colors w-max"
>
Detayları İncele <ArrowRight className="w-4 h-4" />
{lang === "en" ? "View Details" : "Detayları İncele"} <ArrowRight className="w-4 h-4" />
</Link>
</div>
</div>
))
) : (
<div className="py-10 text-center text-white/50">Henüz etkinlik eklenmedi.</div>
<div className="py-10 text-center text-white/50">
{lang === "en" ? "No events added yet." : "Henüz etkinlik eklenmedi."}
</div>
)}
</ScrollReveal>
</div>
@@ -571,7 +602,7 @@ export default async function Home({ params }: { params: Promise<{ lang: string
rel="noreferrer"
className="inline-flex items-center gap-2 border-2 border-dark text-dark text-xs px-8 py-3.5 rounded-full font-bold uppercase tracking-widest hover:bg-dark hover:text-white transition-colors"
>
Bizi Takip Edin
{lang === "en" ? "Follow Us" : "Bizi Takip Edin"}
<ArrowRight className="w-3.5 h-3.5" />
</a>
</div>
@@ -586,13 +617,15 @@ export default async function Home({ params }: { params: Promise<{ lang: string
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<ScrollReveal className="text-center mb-16">
<span className="inline-block text-accent text-xs tracking-[0.25em] uppercase font-semibold mb-4">
Misafir Yorumları
{lang === "en" ? "Guest Reviews" : "Misafir Yorumları"}
</span>
<h2 className="font-serif text-5xl font-bold text-dark">Deneyimler</h2>
<h2 className="font-serif text-5xl font-bold text-dark">
{lang === "en" ? "Experiences" : "Deneyimler"}
</h2>
</ScrollReveal>
<ScrollReveal stagger className="grid grid-cols-1 md:grid-cols-3 gap-6">
{testimonials.map((t, i) => (
{displayTestimonials.map((t, i) => (
<div key={i} className="relative bg-sand rounded-2xl p-8 border border-sand overflow-hidden">
{/* Large decorative quote */}
<span className="absolute top-3 right-5 font-serif text-[8rem] leading-none text-primary/8 select-none">
@@ -638,6 +671,7 @@ export default async function Home({ params }: { params: Promise<{ lang: string
src="https://images.unsplash.com/photo-1498623116890-37e912163d5d?q=80&w=2940&auto=format&fit=crop"
alt=""
fill
sizes="100vw"
className="object-cover"
/>
</div>
@@ -645,13 +679,19 @@ export default async function Home({ params }: { params: Promise<{ lang: string
<div className="relative z-10 max-w-3xl mx-auto px-4 text-center">
<ScrollReveal>
<span className="inline-block text-accent text-xs tracking-[0.3em] uppercase font-semibold mb-6">
Hemen Başlayın
{lang === "en" ? "Get Started" : "Hemen Başlayın"}
</span>
<h2 className="font-serif text-5xl md:text-6xl font-bold text-white leading-tight mb-6">
Hayalindeki tatili<br />planlamaya hazır mısın?
{lang === "en" ? (
<>Are you ready to plan<br />your dream vacation?</>
) : (
<>Hayalindeki tatili<br />planlamaya hazır mısın?</>
)}
</h2>
<p className="text-white/50 mb-10 text-base leading-relaxed">
Rüzgar seni çağırıyor. Hemen yerini ayırt ve bu eşsiz deneyimin bir parçası ol.
{lang === "en"
? "The wind is calling you. Book your spot now and become a part of this unique experience."
: "Rüzgar seni çağırıyor. Hemen yerini ayırt ve bu eşsiz deneyimin bir parçası ol."}
</p>
</ScrollReveal>