"use client";
import { motion, AnimatePresence } from "framer-motion";
import { useState, useEffect } from "react";
import type { DemoData } from "@/data/demos";
const fadeUp = {
hidden: { opacity: 0, y: 35 },
show: { opacity: 1, y: 0, transition: { duration: 0.75, ease: [0.25, 0.46, 0.45, 0.94] as [number, number, number, number] } },
};
const stagger = {
hidden: {},
show: { transition: { staggerChildren: 0.1 } },
};
const translations = {
tr: {
navServices: "Hizmetlerimiz",
navDoctors: "Uzman Kadromuz",
navReviews: "Hasta Yorumları",
navContact: "İletişim",
navBooking: "Randevu Al",
badge: "GÜVENİLİR SAĞLIK MERKEZİ",
heroTitlePart1: "Sağlığınız İçin",
heroTitlePart2: "En İyi Ellerde",
heroTitlePart3: "Olun",
heroDesc: "Uzman hekim kadromuz, modern tıbbi donanımımız ve kişiye özel tedavi yaklaşımlarımızla sağlığınızı korumak için buradayız. Doğan Tıp Merkezi güvenilir koordinatları.",
appointmentsToday: "Bugünkü Randevular",
saturday: "Cumartesi, 28 Mayıs 2026",
appointmentList: [
{ saat: "09:30", tip: "Genel Muayene", dolu: true },
{ saat: "11:00", tip: "Check-Up Kontrolü", dolu: false },
{ saat: "13:30", tip: "Kardiyoloji Muayenesi", dolu: true },
{ saat: "15:00", tip: "Göz Muayenesi", dolu: false },
],
statusDolu: "Dolu",
statusMusait: "Müsait",
ratingText: "4.9 / 5 • 620+ Hasta Değerlendirmesi",
smsReminder: "SMS Hatırlatma",
smsDesc: "Randevularınızı asla kaçırmayın",
servicesTitle: "Hizmetlerimiz",
servicesHeader: "UZMAN KADROMUZLA HER ALANDA YANINIZDAYIZ",
learnMore: "Detaylı Bilgi →",
doctorsTitle: "Ekibimiz",
doctorsHeader: "ALANINDA UZMAN DOKTORLARIMIZ",
yearsExp: "Yıl Deneyim",
patientsTreated: "Hasta Tedavisi",
bookingTitle: "Online Randevu",
bookingHeader: "HEMEN RANDEVU OLUŞTURUN",
bookingDesc: "Formu doldurun, randevu koordinatörümüz sizi 15 dakika içinde arayıp gününüzü kesinleştirsin.",
fieldsName: "Ad Soyad",
fieldsPhone: "Telefon Numarası",
fieldsEmail: "E-Posta Adresi",
fieldsDepartment: "Bölüm / Klinik",
fieldsDate: "Randevu Tarihi",
fieldsNotes: "Notunuz / Şikayetiniz",
fieldsNotesPlaceholder: "Belirtmek istediğiniz tıbbi şikayetler veya özel notlar...",
dispatchForm: "RANDEVU TALEP ET",
contactDetails: "İLETİŞİM BİLGİLERİMİZ",
callCenter: "7/24 Çağrı Merkezi",
addressLabel: "Klinik Adresi",
emailLabel: "E-Posta",
footerDesc: "İleri tanı ve tedavi yöntemleri, hasta odaklı hizmet anlayışı ve seçkin hekim kadrosuyla sağlığınız için en güvenilir koordinat.",
privacyRegs: "Gizlilik Sözleşmesi",
termsStay: "Kullanım Şartları",
dismiss: "KAPAT",
contactTitle: "Hızlı Danışma",
contactDesc: "İletişim bilgilerinizi bırakın, tıbbi danışmanımız sizi hemen arasın.",
submit: "Gönder",
serviceDahiliye: "Dahiliye",
serviceDahiliyeDesc: "Erişkin hastalıklarında kapsamlı tanı ve tedavi hizmetleri.",
serviceKardiyoloji: "Kardiyoloji",
serviceKardiyolojiDesc: "Kalp ve damar sağlığı için ileri tanı ve tedavi yöntemleri.",
serviceDis: "Diş Hekimliği",
serviceDisDesc: "İmplant, ortodonti ve estetik gülüş tasarımı uygulamaları.",
serviceGoz: "Göz Sağlığı",
serviceGozDesc: "Lazer tedavileri, katarakt ve mikro cerrahi operasyonları.",
serviceLab: "Laboratuvar",
serviceLabDesc: "Hızlı, güvenilir ve tam kapsamlı tahlil sonuçları.",
serviceRad: "Radyoloji",
serviceRadDesc: "MR, bilgisayarlı tomografi ve ileri ultrason görüntüleme.",
},
en: {
navServices: "Our Services",
navDoctors: "Our Doctors",
navReviews: "Testimonials",
navContact: "Contact",
navBooking: "Book Appointment",
badge: "TRUSTED MEDICAL CENTER",
heroTitlePart1: "Your Health",
heroTitlePart2: "In The Safest Hands",
heroTitlePart3: "Always",
heroDesc: "We protect your health with our expert physicians, state-of-the-art diagnostic systems, and customized treatment plans. Trusted coordinates of Doğan Medical Center.",
appointmentsToday: "Today's Schedule",
saturday: "Saturday, May 28, 2026",
appointmentList: [
{ saat: "09:30", tip: "General Checkup", dolu: true },
{ saat: "11:00", tip: "Prevention Review", dolu: false },
{ saat: "13:30", tip: "Cardiology Consult", dolu: true },
{ saat: "15:00", tip: "Ophthalmology Exam", dolu: false },
],
statusDolu: "Booked",
statusMusait: "Available",
ratingText: "4.9 / 5 • 620+ Patient Feedbacks",
smsReminder: "SMS Reminder",
smsDesc: "Never miss your medical checks",
servicesTitle: "Our Services",
servicesHeader: "COMPREHENSIVE MEDICAL CARE IN EVERY SPECIALTY",
learnMore: "Learn More →",
doctorsTitle: "Our Team",
doctorsHeader: "MEET OUR ACCOMPLISHED PHYSICIANS",
yearsExp: "Years Experience",
patientsTreated: "Patients Treated",
bookingTitle: "Online Booking",
bookingHeader: "SCHEDULE A MEDICAL APPOINTMENT",
bookingDesc: "Fill in the details and our patient representative will call you back within 15 minutes to lock your slot.",
fieldsName: "Full Name",
fieldsPhone: "Phone Number",
fieldsEmail: "Email Address",
fieldsDepartment: "Specialty / Department",
fieldsDate: "Preferred Date",
fieldsNotes: "Symptoms / Clinical Notes",
fieldsNotesPlaceholder: "Briefly describe your symptoms or specific notes for the doctor...",
dispatchForm: "REQUEST APPOINTMENT",
contactDetails: "CONTACT CHANNELS",
callCenter: "24/7 Call Center",
addressLabel: "Clinic Coordinates",
emailLabel: "Support Email",
footerDesc: "Trusted medical hub offering comprehensive diagnosis and advanced therapy protocols utilizing the latest patient care systems.",
privacyRegs: "Privacy Policy",
termsStay: "Terms of Service",
dismiss: "DISMISS",
contactTitle: "Quick Consultation",
contactDesc: "Leave your contact coordinates and our medical coordinator will call you back shortly.",
submit: "Submit",
serviceDahiliye: "Internal Medicine",
serviceDahiliyeDesc: "Comprehensive diagnostics and advanced therapies for adult diseases.",
serviceKardiyoloji: "Cardiology",
serviceKardiyolojiDesc: "Advanced diagnostics and treatment plans for cardiovascular wellness.",
serviceDis: "Dentistry",
serviceDisDesc: "Modern implants, clear aligners, and aesthetic smile design applications.",
serviceGoz: "Ophthalmology",
serviceGozDesc: "State-of-the-art laser corrections, cataract surgeries, and microsurgery.",
serviceLab: "Medical Laboratory",
serviceLabDesc: "Ultra-fast, certified, and fully automated biological analysis protocols.",
serviceRad: "Advanced Radiology",
serviceRadDesc: "High-resolution MRI, computerized tomography, and diagnostic ultrasound.",
}
};
export default function KlinikTemplate({ data }: { data: DemoData }) {
const { firma, istatistikler = [], hizmetler = [], doktorlar = [], yorumlar = [] } = data;
const [showBookingModal, setShowBookingModal] = useState(false);
const [activeYorum, setActiveYorum] = useState(0);
const [lang, setLang] = useState<"tr" | "en">("tr");
const [preloader, setPreloader] = useState(true);
const t = translations[lang];
// Lenis Smooth Scroll Integration
useEffect(() => {
let lenis: any;
import("@studio-freight/lenis").then(({ default: Lenis }) => {
lenis = new Lenis({ duration: 1.2, easing: (x: number) => Math.min(1, 1.001 - Math.pow(2, -10 * x)) });
function raf(time: number) { lenis.raf(time); requestAnimationFrame(raf); }
requestAnimationFrame(raf);
});
return () => lenis?.destroy();
}, []);
// Preloader Curtain Timer
useEffect(() => {
const timer = setTimeout(() => {
setPreloader(false);
}, 1500);
return () => clearTimeout(timer);
}, []);
// Localized statistics labels
const getLocalizedStatLabel = (deger: string) => {
if (deger === "4200") return lang === "tr" ? "Mutlu Hasta" : "Happy Patients";
if (deger === "14") return lang === "tr" ? "Uzman Hekim" : "Expert Physicians";
if (deger === "12") return lang === "tr" ? "Yıl Deneyim" : "Years of Experience";
return lang === "tr" ? "Hasta Yorumu" : "Patient Reviews";
};
// Maps services text based on data
const getLocalizedServiceText = (baslik: string) => {
if (baslik.includes("Dahiliye")) return { title: t.serviceDahiliye, desc: t.serviceDahiliyeDesc };
if (baslik.includes("Kardiyoloji")) return { title: t.serviceKardiyoloji, desc: t.serviceKardiyolojiDesc };
if (baslik.includes("Diş")) return { title: t.serviceDis, desc: t.serviceDisDesc };
if (baslik.includes("Göz")) return { title: t.serviceGoz, desc: t.serviceGozDesc };
if (baslik.includes("Laboratuvar")) return { title: t.serviceLab, desc: t.serviceLabDesc };
return { title: t.serviceRad, desc: t.serviceRadDesc };
};
// Maps service icons
const getServiceIconSvg = (baslik: string) => {
if (baslik.includes("Dahiliye")) {
return (
);
}
if (baslik.includes("Kardiyoloji")) {
return (
);
}
if (baslik.includes("Diş")) {
return (
);
}
if (baslik.includes("Göz")) {
return (
);
}
if (baslik.includes("Laboratuvar")) {
return (
);
}
return (
);
};
const getLocalizedDoctor = (ad: string) => {
if (ad.includes("Ahmet")) {
return {
name: lang === "tr" ? "Dr. Ahmet Yılmaz" : "Dr. Ahmet Yilmaz",
title: lang === "tr" ? "Dahiliye Uzmanı" : "Internal Medicine Specialist",
};
}
if (ad.includes("Ayşe")) {
return {
name: lang === "tr" ? "Dr. Ayşe Kaya" : "Dr. Ayse Kaya",
title: lang === "tr" ? "Kardiyolog" : "Cardiologist",
};
}
if (ad.includes("Mehmet")) {
return {
name: lang === "tr" ? "Dr. Mehmet Demir" : "Dr. Mehmet Demir",
title: lang === "tr" ? "Göz Sağlığı Uzmanı" : "Ophthalmology Specialist",
};
}
return {
name: lang === "tr" ? "Dr. Zeynep Arslan" : "Dr. Zeynep Arslan",
title: lang === "tr" ? "Estetik Diş Hekimi" : "Aesthetic Dentist",
};
};
const css = `
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600;700;800;900&family=Sora:wght@300;400;500;600;700;800&display=swap');
:root {
--color-klinik-sky: #0ea5e9;
--color-klinik-sky-dark: #0284c7;
--color-klinik-sky-light: #e0f2fe;
--color-klinik-charcoal: #0F172A;
--color-klinik-sand: #FAF8F5;
}
.font-sora-editorial {
font-family: 'Sora', sans-serif;
}
.font-sans-clean {
font-family: 'DM Sans', sans-serif;
}
.shadow-premium {
box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
}
.hero-title-clamp {
font-size: clamp(38px, 6vw, 85px);
letter-spacing: -0.02em;
line-height: 0.95;
}
`;
return (
<>
{/* ── IMZA AN: CURTAIN REVEAL PRELOADER ── */}
{getLocalizedStatLabel(stat.deger)}
{item.desc}
{doc.title}
{item.baslik}
{item.aciklama}
“{yorumlar[activeYorum]?.yorum}”
{yorumlar[activeYorum]?.yazar}
{yorumlar[activeYorum]?.tarih}
{t.contactDesc}