feat(olcum): /listem?uret=1 yollarına kaynak parametresi
Üretim denemesinin hangi yüzeyden başladığı ölçülebilsin diye dört yol
`&kaynak=` taşır: sihirbazın tamamlanması ve girişsiz callback'i
(sihirbaz), giriş dönüşündeki otomatik yönlendirme (giris_donusu), hazır
seçimler panelinin giriş CTA'sı (hazir_cta) ve paketi aktif kullanıcının
kartı (odeme_sonrasi).
Sabit href yerine listemUretHref(kaynak): `uret=1` her zaman ilk parametre
kalmalı, çünkü giris-karti.tsx:31 funnel metnini
callbackURL.startsWith("/listem?uret=1") ile seçiyor.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -154,7 +154,7 @@ async function PaketCta() {
|
|||||||
{/* ?uret=1: rapor varsa /listem raporu gösterir (bayrak yok
|
{/* ?uret=1: rapor varsa /listem raporu gösterir (bayrak yok
|
||||||
sayılır), yoksa bekleyen seçimlerle üretim başlar; seçim
|
sayılır), yoksa bekleyen seçimlerle üretim başlar; seçim
|
||||||
de yoksa boş durum sihirbaza yönlendirir. */}
|
de yoksa boş durum sihirbaza yönlendirir. */}
|
||||||
<Link href="/listem?uret=1" className="underline">
|
<Link href="/listem?uret=1&kaynak=odeme_sonrasi" className="underline">
|
||||||
listeni oluştur
|
listeni oluştur
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -17,7 +17,14 @@ 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.
|
||||||
const LISTEM_URET_HREF = "/listem?uret=1";
|
// `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}`;
|
||||||
|
}
|
||||||
|
|
||||||
// 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 = () => () => {};
|
||||||
@@ -182,10 +189,12 @@ export function SihirbazBolumu({
|
|||||||
await modalCikisiniOynat();
|
await modalCikisiniOynat();
|
||||||
setElleAcik(false);
|
setElleAcik(false);
|
||||||
if (!girisliMi) {
|
if (!girisliMi) {
|
||||||
router.push(`/giris?callback=${encodeURIComponent(LISTEM_URET_HREF)}`);
|
router.push(
|
||||||
|
`/giris?callback=${encodeURIComponent(listemUretHref("sihirbaz"))}`,
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
router.push(LISTEM_URET_HREF);
|
router.push(listemUretHref("sihirbaz"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -213,7 +222,7 @@ export function SihirbazBolumu({
|
|||||||
if (otomatikGonder && !otomatikBasladi.current) {
|
if (otomatikGonder && !otomatikBasladi.current) {
|
||||||
otomatikBasladi.current = true;
|
otomatikBasladi.current = true;
|
||||||
// replace: geri tuşu bu sayfaya dönünce tekrar /listem'e sekmesin
|
// replace: geri tuşu bu sayfaya dönünce tekrar /listem'e sekmesin
|
||||||
router.replace(LISTEM_URET_HREF);
|
router.replace(listemUretHref("giris_donusu"));
|
||||||
}
|
}
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [otomatikGonder]);
|
}, [otomatikGonder]);
|
||||||
@@ -242,7 +251,7 @@ export function SihirbazBolumu({
|
|||||||
// kaydedilmesi olarak sunulur. Girişten dönüşte üretim /listem'de başlar.
|
// kaydedilmesi olarak sunulur. Girişten dönüşte üretim /listem'de başlar.
|
||||||
// Sinyal URL'den (?hazir=1) gelir ki SSR'da doğru panel render edilsin.
|
// Sinyal URL'den (?hazir=1) gelir ki SSR'da doğru panel render edilsin.
|
||||||
const girisBekliyor = Boolean(!girisliMi && secimlerHazir && !raporVar);
|
const girisBekliyor = Boolean(!girisliMi && secimlerHazir && !raporVar);
|
||||||
const girisUrl = `/giris?callback=${encodeURIComponent(LISTEM_URET_HREF)}`;
|
const girisUrl = `/giris?callback=${encodeURIComponent(listemUretHref("hazir_cta"))}`;
|
||||||
// Kapı 1 ölçümü: panel yalnızca girisBekliyor dalında render edilir; ref
|
// Kapı 1 ölçümü: panel yalnızca girisBekliyor dalında render edilir; ref
|
||||||
// başka dalda bağlanmadığından observer da yalnızca o durumda kurulur.
|
// başka dalda bağlanmadığından observer da yalnızca o durumda kurulur.
|
||||||
const hazirPanelRef = useGorunumOlayi<HTMLElement>("hazir_panel_goruntulendi");
|
const hazirPanelRef = useGorunumOlayi<HTMLElement>("hazir_panel_goruntulendi");
|
||||||
|
|||||||
Reference in New Issue
Block a user