refactor(sihirbaz): listemUretHref tek kaynağa taşınır

Yerel fonksiyon sihirbaz-sabitler.ts'e (sonucHref'in yanına) taşındı ve
export edildi; `uret=1` parametre sırası sözleşmesinin yorumu da onunla
gitti. Davranış birebir aynı — tadımlık CTA'sı da aynı hedefi kullanacağı
için literal kopyanın dördüncü kez çoğalması engellendi.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-09-22 02:18:22 +03:00
parent 552d5ce5f1
commit 5311459073
2 changed files with 17 additions and 9 deletions

View File

@@ -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 = () => () => {};

View File

@@ -168,6 +168,20 @@ export function sonucHref(ekstra?: Record<string, string>): 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 = [