);
}
diff --git a/src/components/header-gate.tsx b/src/components/header-gate.tsx
index eaeb0de..a43b094 100644
--- a/src/components/header-gate.tsx
+++ b/src/components/header-gate.tsx
@@ -4,14 +4,25 @@ import { usePathname } from "next/navigation";
// Site kromunun (banner, header, üst/alt blur) gizleneceği rotalar
// (tam eşleşme veya alt yol). KaydetBanner da aynı listeye uyar.
-const HIDDEN_PREFIXES = ["/giris"];
+// /odeme: checkout ekranında nav/arama/geri sayım birer kaçış yolu; üstelik
+// alt blur katmanı iyzico iframe'inin son satırlarını bulanıklaştırıyor.
+const HIDDEN_PREFIXES = ["/giris", "/odeme"];
-export function kromGizliMi(pathname: string) {
- return HIDDEN_PREFIXES.some(
+// Kromun geri geldiği istisnalar: ödeme sonucu sayfasında kullanıcıyı ürüne
+// döndürmek istiyoruz, o yüzden orada tam krom kalır.
+const ISTISNA_PREFIXES = ["/odeme/sonuc"];
+
+function yolEslesir(pathname: string, prefixler: string[]) {
+ return prefixler.some(
(p) => pathname === p || pathname.startsWith(`${p}/`),
);
}
+export function kromGizliMi(pathname: string) {
+ if (yolEslesir(pathname, ISTISNA_PREFIXES)) return false;
+ return yolEslesir(pathname, HIDDEN_PREFIXES);
+}
+
export function HeaderGate({ children }: { children: React.ReactNode }) {
const pathname = usePathname();
if (kromGizliMi(pathname)) return null;
diff --git a/src/features/odeme/components/odeme-kromu.tsx b/src/features/odeme/components/odeme-kromu.tsx
new file mode 100644
index 0000000..12689ba
--- /dev/null
+++ b/src/features/odeme/components/odeme-kromu.tsx
@@ -0,0 +1,54 @@
+import Image from "next/image";
+import Link from "next/link";
+import { ArrowLeft } from "lucide-react";
+
+/**
+ * Checkout üst şeridi: /odeme'de site header'ı ve SEO footer'ı kapalı
+ * (bkz. `kromGizliMi`), yerine bu daraltılmış şerit gelir. Ayrı bir footer
+ * yok — yasal linkler ve iyzico bandı doğrudan formun altında duruyor
+ * (bkz. `OdemeSayfasi`).
+ *
+ * Tasarım dili birebir `SiteHeader`dan alınır — aynı kap (`max-w-6xl`), aynı
+ * logo ölçüleri, aynı tipografi, çerçevesiz/zeminsiz yerleşim. Fark yalnızca
+ * içerikte: ödeme adımında kaçış yolu bırakmıyoruz, bu yüzden arama + user
+ * nav yerine tek çıkış olarak "Paket sayfasına dön" duruyor ve logo bilerek
+ * link değil.
+ */
+export function OdemeUstSerit() {
+ return (
+ // SiteHeader sticky; burada arkasında progressive blur katmanı olmadığı
+ // için (krom kapalı) statik bırakıldı — durağan haldeki görünüm aynı.
+
+
+
+
+
+
+ Kolay
+
+
+ Tercih
+
+
+
+
+
+ Paket sayfasına dön
+
+
+
+ );
+}
diff --git a/src/features/odeme/components/odeme-sayfasi.tsx b/src/features/odeme/components/odeme-sayfasi.tsx
index d578f05..7b23d3b 100644
--- a/src/features/odeme/components/odeme-sayfasi.tsx
+++ b/src/features/odeme/components/odeme-sayfasi.tsx
@@ -1,20 +1,15 @@
import Image from "next/image";
import Link from "next/link";
import { notFound, redirect } from "next/navigation";
-import { ArrowLeft, Lock } from "lucide-react";
+import { Lock } from "lucide-react";
import { verifySession } from "@/lib/session";
-import { URUNLER } from "@/lib/credits";
import { SectionEyebrow } from "@/components/pixel-decor";
import { Skeleton } from "@/components/ui/skeleton";
import { siparisGetir } from "../odeme-queries";
import { IyzicoFormu } from "./iyzico-formu";
-function tl(kurus: number) {
- return (kurus / 100).toLocaleString("tr-TR", { maximumFractionDigits: 0 });
-}
-
-// Kendi tasarımımızdaki ödeme sayfası: sipariş özeti bizden, kart formu
-// iyzico'nun gömülü iframe'inden gelir (kart verisi bize hiç uğramaz).
+// Kendi tasarımımızdaki ödeme sayfası: kart formu iyzico'nun gömülü
+// iframe'inden gelir (kart verisi bize hiç uğramaz).
export async function OdemeSayfasi({ siparisId }: { siparisId?: string }) {
if (!siparisId) redirect("/paket");
// Oturum düşmüşse geri dönüşte ?siparis= kaybolmasın
@@ -34,49 +29,24 @@ export async function OdemeSayfasi({ siparisId }: { siparisId?: string }) {
redirect("/paket");
}
- const urun = URUNLER[order.product];
-
return (
-
-
- Paket sayfasına dön
-
-
-
+ {/* "Paket sayfasına dön" linki checkout üst şeridinde (OdemeUstSerit) */}
+
-
+ {/* Sipariş özeti bilerek yok: paket/ürün ve tutar bir önceki adımda
+ (/paket) seçildi, iyzico formu da ödeme butonunda tutarı gösteriyor —
+ burada üçüncü kez tekrar etmiyoruz. */}
{/* iyzico gömülü kart formu */}
@@ -85,19 +55,39 @@ export async function OdemeSayfasi({ siparisId }: { siparisId?: string }) {
256-bit SSL ile şifreli bağlantı
+
+ Kart bilgilerin iyzico'da işlenir, bize hiç ulaşmaz
+
+
+ {/* Ayrı bir footer yerine yasal linkler ve iyzico bandı doğrudan formun
+ altında: mesafeli satış mevzuatı ve iyzico işyeri sözleşmesi bunların
+ ödeme adımında görünür olmasını istiyor. */}
+
+ {/* iyzico işyeri sözleşmesi gereği: "iyzico ile Öde" + kart logoları
+ görünür olmalı. Resmî logo bandı (iyzico logo paketi). */}
-
- Kart bilgilerin iyzico'da işlenir, bize hiç ulaşmaz ·{" "}
-
- İade koşulları
-
-