From 992a01abf1121702823a4307f4536b073017f532 Mon Sep 17 00:00:00 2001
From: bilalgursen
Date: Mon, 21 Sep 2026 23:34:52 +0300
Subject: [PATCH] =?UTF-8?q?feat(katalog):=20ba=C5=9Fl=C4=B1=C4=9F=C4=B1n?=
=?UTF-8?q?=20alt=C4=B1nda=20kompakt=20s=C4=B1ra=20giri=C5=9F=20sat=C4=B1r?=
=?UTF-8?q?=C4=B1=20(alttaki=20kart=20yerinde)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Katalog 464 oturum → 12 sıra girişi; kart tablonun altında kalıyordu. CtaSiraForm'a
varyant="kompakt" + konum prop'u; olay adları aynı, konum: ust|alt özelliği eklendi;
alan kimlikleri useId ile (aynı sayfada iki form).
Co-Authored-By: Claude Fable 5.1
---
.../katalog/components/bolum-icerik.tsx | 12 +-
.../katalog/components/universite-icerik.tsx | 51 ++-
.../sihirbaz/components/cta-sira-form.tsx | 378 +++++++++++-------
3 files changed, 286 insertions(+), 155 deletions(-)
diff --git a/src/features/katalog/components/bolum-icerik.tsx b/src/features/katalog/components/bolum-icerik.tsx
index 5c4cbd1..a49608b 100644
--- a/src/features/katalog/components/bolum-icerik.tsx
+++ b/src/features/katalog/components/bolum-icerik.tsx
@@ -174,6 +174,9 @@ export function BolumIcerik({ slug, sayfa }: { slug: string; sayfa: number }) {
const ilkSayfa = sayfa === 1;
const aralik = siraAraligiMetni(sayfaDilim);
const buYol = ilkSayfa ? `/bolum/${slug}` : `/bolum/${slug}/sayfa/${sayfa}`;
+ // Üst satır ve alt kart aynı soruyu sorar; sayfalama sayfalarında da bölüm
+ // adı geçer (ziyaretçi Google'dan doğrudan /sayfa/N'ye iniyor).
+ const ctaBaslik = `Sıralaman ${bolum.ad} tabanlarının neresinde?`;
return (
<>
@@ -258,6 +261,12 @@ export function BolumIcerik({ slug, sayfa }: { slug: string; sayfa: number }) {
)}
+ {/* Tek sayfada çıkan ziyaretçi alttaki karta inmiyor: kompakt sıra girişi
+ başlık bloğunun hemen altında, listenin üstünde. Alttaki kart kalır. */}
+
+
+
+
diff --git a/src/features/katalog/components/universite-icerik.tsx b/src/features/katalog/components/universite-icerik.tsx
index 90da09d..3769ae6 100644
--- a/src/features/katalog/components/universite-icerik.tsx
+++ b/src/features/katalog/components/universite-icerik.tsx
@@ -169,6 +169,17 @@ export function UniversiteIcerik({
? `/universite/${slug}`
: `/universite/${slug}/sayfa/${sayfa}`;
const yurtdisi = uniUlkeKonum(uni.ad, uni.il);
+ // Üst satır ve alt kart aynı soruyu sorar; sayfalama sayfalarında da
+ // üniversite adı geçer (ziyaretçi Google'dan doğrudan /sayfa/N'ye iniyor).
+ const ctaBaslik = `Sıralaman ${uni.ad} tabanlarının neresinde?`;
+ // Tek sayfada çıkan ziyaretçi alttaki karta inmiyor: kompakt sıra girişi
+ // özet paragrafının hemen altında, tablonun (ve ilk sayfadaki istatistik
+ // ızgarasının) üstünde durur. Alttaki kart yerinde kalır.
+ const ustSiraSatiri = (
+
+
+
+ );
+
+ if (kompakt) {
+ // CLS: kayıtlı profil hydration SONRASI bulunur. Satır tablonun üstünde
+ // olduğundan yüksekliği o anda değişmemeli — form yerinde (görünmez ve
+ // inert) kalır, profilli kısayol aynı ızgara hücresine bindirilir; hücrenin
+ // yüksekliğini her iki durumda da form belirler.
+ return (
+
+