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
|
||||
sayılır), yoksa bekleyen seçimlerle üretim başlar; seçim
|
||||
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
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -17,7 +17,14 @@ 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.
|
||||
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
|
||||
const bosAbone = () => () => {};
|
||||
@@ -182,10 +189,12 @@ export function SihirbazBolumu({
|
||||
await modalCikisiniOynat();
|
||||
setElleAcik(false);
|
||||
if (!girisliMi) {
|
||||
router.push(`/giris?callback=${encodeURIComponent(LISTEM_URET_HREF)}`);
|
||||
router.push(
|
||||
`/giris?callback=${encodeURIComponent(listemUretHref("sihirbaz"))}`,
|
||||
);
|
||||
return;
|
||||
}
|
||||
router.push(LISTEM_URET_HREF);
|
||||
router.push(listemUretHref("sihirbaz"));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -213,7 +222,7 @@ export function SihirbazBolumu({
|
||||
if (otomatikGonder && !otomatikBasladi.current) {
|
||||
otomatikBasladi.current = true;
|
||||
// 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
|
||||
}, [otomatikGonder]);
|
||||
@@ -242,7 +251,7 @@ export function SihirbazBolumu({
|
||||
// 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.
|
||||
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
|
||||
// başka dalda bağlanmadığından observer da yalnızca o durumda kurulur.
|
||||
const hazirPanelRef = useGorunumOlayi<HTMLElement>("hazir_panel_goruntulendi");
|
||||
|
||||
Reference in New Issue
Block a user