- Tablodan + ile ekledikçe üniversiteler - haritada belirir. -
-Yapay zekâ listendeki her satırı böyle anlatır
+ {/* "ilk üçü" = rapor-maske.ts içindeki ACIK_SATIR (3). O dosya + `server-only`, bu dosya "use client" — sabit buraya import + edilemiyor, sayı elle yazıldı. ACIK_SATIR değişirse bu cümle de + aynı commit'te değişmeli. Cümle kasten "her satır bu formatta + kurulur"u sınırlıyor: maske girişsiz/paketsiz kullanıcıya 3 satır + açıyor, kalan 21'in gerekçe/risk/trend metni maskeli geliyor. */}Sıralamana uygun bir programın gerekçesi, yerleşme riski ve taban - trendi — 24 tercihlik listenin her satırı bu formatta kurulur. + trendi — 24 tercihlik listenin her satırı bu formatta kurulur, ilk + üçü hemen açılır.
Bu, 24 satırlık Yapay Zeka listenden yalnızca bir örnek. - Kredi kartı gerekmez · Google ya da e-posta ile 30 saniyede + Kredi kartı gerekmez · Google ya da e-posta ile 30 saniyede · + Giriş sonrası liste hemen üretilir
diff --git a/src/features/rapor/components/uretim-basladi-olayi.tsx b/src/features/rapor/components/uretim-basladi-olayi.tsx index 9215dfb..f0ff05c 100644 --- a/src/features/rapor/components/uretim-basladi-olayi.tsx +++ b/src/features/rapor/components/uretim-basladi-olayi.tsx @@ -29,6 +29,8 @@ const IZINLI_KAYNAKLAR = new Set([ "giris_donusu", "bos_durum", "odeme_sonrasi", + // /sonuc'taki girişsiz tadımlık CTA'sı (tadimlik-satiri.tsx). + "tadimlik", // /sonuc'ta ?sihirbaz=1 ile otomatik başlayan üretimin gerçek yüzeyleri. // Eskiden hepsi "giris_donusu" sayılıyordu (güvenlik denetimi G3). "hero", diff --git a/src/features/sihirbaz/components/sihirbaz-cagri-karti.tsx b/src/features/sihirbaz/components/sihirbaz-cagri-karti.tsx index 43837b8..5777d3c 100644 --- a/src/features/sihirbaz/components/sihirbaz-cagri-karti.tsx +++ b/src/features/sihirbaz/components/sihirbaz-cagri-karti.tsx @@ -11,20 +11,14 @@ import { PixelField } from "@/components/pixel-decor"; import { useGorunumOlayi } from "@/components/use-gorunum-olayi"; import { olay, olayBirKez, siraKovasi } from "@/lib/analitik"; import type { SihirbazFacetleri } from "@/types/yokatlas"; -import { SIHIRBAZ_AC_EVENT, SIHIRBAZ_STORAGE_KEY, sihirbazDogrula, type SihirbazSecimleri } from "@/features/sihirbaz/sihirbaz-sabitler"; +import { listemUretHref, SIHIRBAZ_AC_EVENT, SIHIRBAZ_STORAGE_KEY, sihirbazDogrula, type SihirbazSecimleri } from "@/features/sihirbaz/sihirbaz-sabitler"; import { tercihProfiliYaz } from "@/features/sihirbaz/sihirbaz-profil"; import { SihirbazModal } from "./sihirbaz-modal"; // Üretim /listem'de koşar (bkz. listem/liste-uretici.tsx); sihirbaz // tamamlanınca seçimler storage'a yazılıp kullanıcı buraya yönlendirilir. -// `kaynak` denemenin hangi yüzeyden başladığını ölçer (bkz. -// rapor/components/uretim-basladi-olayi.tsx — izinli değerler orada). -// `uret=1` HER ZAMAN ilk parametre kalmalı: giris-karti.tsx:31 funnel -// metnini `callbackURL.startsWith("/listem?uret=1")` ile seçiyor, sıra -// bozulursa girişteki "Seçimlerin hazır" metni kaybolur. -function listemUretHref(kaynak: string) { - return `/listem?uret=1&kaynak=${kaynak}`; -} +// Hedef URL'i `listemUretHref` kurar (sihirbaz-sabitler.ts) — `uret=1` +// parametre sırası sözleşmesi ve izinli `kaynak` değerleri orada yazılı. // SSR'da false, client'ta true — storage'a ancak mount sonrası dokunuruz const bosAbone = () => () => {}; diff --git a/src/features/sihirbaz/sihirbaz-sabitler.ts b/src/features/sihirbaz/sihirbaz-sabitler.ts index 2b9ac6a..896a850 100644 --- a/src/features/sihirbaz/sihirbaz-sabitler.ts +++ b/src/features/sihirbaz/sihirbaz-sabitler.ts @@ -168,6 +168,20 @@ export function sonucHref(ekstra?: Record