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): string { return `/sonuc?${new URLSearchParams(girdiler)}`; } +/** + * Üretimin koştuğu /listem URL'i. `kaynak` denemenin hangi yüzeyden + * başladığını ölçer (izinli değerler: + * rapor/components/uretim-basladi-olayi.tsx — yeni yüzeyi önce oraya ekle). + * + * `uret=1` HER ZAMAN ilk parametre kalmalı: giris-karti.tsx funnel metnini + * `callbackURL.startsWith("/listem?uret=1")` ile seçiyor, sıra bozulursa + * girişteki "Seçimlerin hazır" metni sessizce kaybolur. Bu sözleşmenin + * literal kopyası çoğalmasın diye tek kaynak burası. + */ +export function listemUretHref(kaynak: string): string { + return `/listem?uret=1&kaynak=${kaynak}`; +} + /** Prompt'a enjekte edilecek Türkçe özet. */ export function secimOzeti(secimler: SihirbazSecimleri): string { const satirlar = [