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:
@@ -11,20 +11,14 @@ import { PixelField } from "@/components/pixel-decor";
|
|||||||
import { useGorunumOlayi } from "@/components/use-gorunum-olayi";
|
import { useGorunumOlayi } from "@/components/use-gorunum-olayi";
|
||||||
import { olay, olayBirKez, siraKovasi } from "@/lib/analitik";
|
import { olay, olayBirKez, siraKovasi } from "@/lib/analitik";
|
||||||
import type { SihirbazFacetleri } from "@/types/yokatlas";
|
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 { tercihProfiliYaz } from "@/features/sihirbaz/sihirbaz-profil";
|
||||||
import { SihirbazModal } from "./sihirbaz-modal";
|
import { SihirbazModal } from "./sihirbaz-modal";
|
||||||
|
|
||||||
// Üretim /listem'de koşar (bkz. listem/liste-uretici.tsx); sihirbaz
|
// Ü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.
|
// 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.
|
// Hedef URL'i `listemUretHref` kurar (sihirbaz-sabitler.ts) — `uret=1`
|
||||||
// rapor/components/uretim-basladi-olayi.tsx — izinli değerler orada).
|
// parametre sırası sözleşmesi ve izinli `kaynak` değerleri orada yazılı.
|
||||||
// `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}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// SSR'da false, client'ta true — storage'a ancak mount sonrası dokunuruz
|
// SSR'da false, client'ta true — storage'a ancak mount sonrası dokunuruz
|
||||||
const bosAbone = () => () => {};
|
const bosAbone = () => () => {};
|
||||||
|
|||||||
@@ -168,6 +168,20 @@ export function sonucHref(ekstra?: Record<string, string>): string {
|
|||||||
return `/sonuc?${new URLSearchParams(girdiler)}`;
|
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. */
|
/** Prompt'a enjekte edilecek Türkçe özet. */
|
||||||
export function secimOzeti(secimler: SihirbazSecimleri): string {
|
export function secimOzeti(secimler: SihirbazSecimleri): string {
|
||||||
const satirlar = [
|
const satirlar = [
|
||||||
|
|||||||
Reference in New Issue
Block a user