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
+74 -17
View File
@@ -3,9 +3,9 @@ import Link from "next/link";
import { Check, Wifi, Wind, Coffee, Eye, Trees } from "lucide-react";
import ScrollReveal from "@/components/ScrollReveal";
const rooms = [
const roomsTr = [
{
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",
tag: "Standart",
name: "Standart Oda",
desc: "Konforlu ve modern tasarımlı standart odalarımızda rahatlığın tadını çıkarın. Çift kişilik yatak ve şık dekorasyon ile dinlendirici bir atmosfer.",
@@ -51,7 +51,62 @@ const rooms = [
},
];
export default function OdalarPage() {
const roomsEn = [
{
img: "https://images.unsplash.com/photo-1618773928121-c32242e63f39?q=80&w=2940&auto=format&fit=crop",
tag: "Standard",
name: "Standard Room",
desc: "Enjoy comfort in our modern standard rooms. Relaxing atmosphere with a double bed and stylish decoration.",
sqm: "20 m²",
price: "₺4.500",
features: [
{ icon: Wifi, label: "Free Wi-Fi" },
{ icon: Wind, label: "Air Conditioning" },
{ icon: Coffee, label: "Minibar" },
{ icon: Eye, label: "Garden View" },
],
reversed: false,
},
{
img: "https://images.unsplash.com/photo-1566665797739-1674de7a421a?q=80&w=2874&auto=format&fit=crop",
tag: "Popular",
name: "River View Room",
desc: "Spacious rooms where you wake up to the unique view of the Azmak river. Listen to the sound of nature while sipping morning coffee on your private balcony.",
sqm: "25 m²",
price: "₺5.500",
features: [
{ icon: Eye, label: "River View" },
{ icon: Trees, label: "Private Balcony" },
{ icon: Coffee, label: "Nespresso Machine" },
{ icon: Wifi, label: "Free Wi-Fi" },
],
reversed: true,
},
{
img: "https://images.unsplash.com/photo-1499955085172-a104c9463ece?q=80&w=2940&auto=format&fit=crop",
tag: "Premium",
name: "Wooden Bungalow",
desc: "Wooden living area with private entrance and terrace, fully integrated with nature. Ideal for couples seeking privacy and serenity.",
sqm: "35 m²",
price: "₺7.000",
features: [
{ icon: Trees, label: "Private Terrace" },
{ icon: Eye, label: "Nature View" },
{ icon: Coffee, label: "Premium Amenities" },
{ icon: Wind, label: "Air Conditioning" },
],
reversed: false,
},
];
export default async function OdalarPage({ params }: { params: Promise<{ lang: string }> }) {
const { lang } = await params;
const isEn = lang === "en";
const displayRooms = isEn ? roomsEn : roomsTr;
const displayAmenities = isEn
? ["Organic Breakfast Spread", "Free Parking", "Beach & River Access", "Sunbed & Towel", "Wi-Fi", "24/7 Reception"]
: ["Organik Serpme Kahvaltı", "Ücretsiz Otopark", "Plaj & Nehir Erişimi", "Şezlong & Havlu", "Wi-Fi", "24/7 Resepsiyon"];
return (
<div className="min-h-screen bg-background">
@@ -59,22 +114,23 @@ export default function OdalarPage() {
<section className="relative h-[55vh] w-full flex items-end overflow-hidden">
<div className="absolute inset-0">
<Image
src="https://images.unsplash.com/photo-1582719478250-c89404bb8a0e?q=80&w=2940&auto=format&fit=crop"
alt="Odalarımız"
src="https://images.unsplash.com/photo-1618773928121-c32242e63f39?q=80&w=2940&auto=format&fit=crop"
alt={isEn ? "Our Rooms" : "Odalarımız"}
fill
sizes="100vw"
className="object-cover"
/>
<div className="absolute inset-0 bg-gradient-to-t from-dark/85 via-dark/30 to-black/20" />
</div>
<div className="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 pb-14 w-full">
<span className="block text-accent text-xs tracking-[0.3em] uppercase font-semibold mb-3 animate-fade-up">
Konaklama
{isEn ? "Accommodation" : "Konaklama"}
</span>
<h1 className="font-serif text-5xl md:text-7xl text-white font-bold animate-fade-up delay-100">
Odalarımız
{isEn ? "Our Rooms" : "Odalarımız"}
</h1>
<p className="text-white/60 text-lg mt-3 font-light animate-fade-up delay-200">
Doğanın içinde, konforlu bir mola.
{isEn ? "A comfortable break in the heart of nature." : "Doğanın içinde, konforlu bir mola."}
</p>
</div>
</section>
@@ -82,12 +138,10 @@ export default function OdalarPage() {
{/* Room Listings */}
<section className="py-20 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div className="space-y-16">
{rooms.map((room, i) => (
{displayRooms.map((room, i) => (
<ScrollReveal key={i}>
<div
className={`grid grid-cols-1 md:grid-cols-2 gap-0 bg-white rounded-3xl overflow-hidden shadow-sm border border-sand ${
room.reversed ? "" : ""
}`}
className="grid grid-cols-1 md:grid-cols-2 gap-0 bg-white rounded-3xl overflow-hidden shadow-sm border border-sand"
>
{/* Image */}
<div className={`relative h-80 md:h-auto ${room.reversed ? "md:order-2" : ""}`}>
@@ -95,6 +149,7 @@ export default function OdalarPage() {
src={room.img}
alt={room.name}
fill
sizes="(max-width: 768px) 100vw, 50vw"
className="object-cover"
/>
{/* Tag */}
@@ -122,14 +177,16 @@ export default function OdalarPage() {
<div className="flex justify-between items-center pt-8 border-t border-sand">
<div>
<span className="text-muted text-xs block mb-1 uppercase tracking-wider">Gecelik</span>
<span className="text-muted text-xs block mb-1 uppercase tracking-wider">
{isEn ? "Per Night" : "Gecelik"}
</span>
<span className="font-serif text-3xl font-bold text-dark">{room.price}</span>
</div>
<Link
href="/iletisim"
href={`/${lang}/iletisim`}
className="btn-shimmer bg-accent text-white px-7 py-3.5 rounded-full text-[11px] font-bold tracking-[0.12em] uppercase hover:bg-accent/90 transition-colors shadow-lg"
>
Bize Ulaşın
{isEn ? "Contact Us" : "Bize Ulaşın"}
</Link>
</div>
</div>
@@ -143,10 +200,10 @@ export default function OdalarPage() {
<section className="py-16 bg-primary">
<div className="max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
<h3 className="font-serif text-3xl text-white font-bold mb-4">
Tüm odalarda dahil olanlar
{isEn ? "What's included in all rooms" : "Tüm odalarda dahil olanlar"}
</h3>
<div className="flex flex-wrap justify-center gap-4 mt-8">
{["Organik Serpme Kahvaltı", "Ücretsiz Otopark", "Plaj & Nehir Erişimi", "Şezlong & Havlu", "Wi-Fi", "24/7 Resepsiyon"].map((item) => (
{displayAmenities.map((item) => (
<span key={item} className="inline-flex items-center gap-2 bg-white/10 text-white text-[13px] px-4 py-2 rounded-full border border-white/15">
<Check size={13} className="text-accent" />
{item}