feat(odeme): checkout ekranında site kromunu daralt

Ödeme adımında ekranda ~20 kaçış yolu vardı (SEO footer kolonları, katalog
arama, user nav) ve geri sayım banner'ı kart formunun üstünde duruyordu.
Ayrıca layout'un alt progressive blur katmanı iyzico iframe'inin son
satırlarını bulanıklaştırıyordu.

- kromGizliMi: /odeme kroma kapatıldı, /odeme/sonuc istisna tutuldu
  (orada kullanıcıyı ürüne döndürmek istiyoruz)
- OdemeUstSerit: SiteHeader'ın tasarım dilinde daraltılmış şerit — logo
  bilerek link değil, tek çıkış "Paket sayfasına dön"
- Sipariş özeti kartı kaldırıldı: ürün ve tutar /paket'te seçiliyor,
  iyzico da ödeme butonunda tutarı gösteriyor
- Yasal linkler + iyzico logo bandı ayrı footer yerine doğrudan formun
  altında; bant sayfada artık tek kez görünüyor

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-08-11 07:03:32 +03:00
parent 5ccc9c1ffa
commit a71740767d
4 changed files with 111 additions and 56 deletions

View File

@@ -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;