Merge branch 'gece/0922-olcum' into is/0923-birlesik

This commit is contained in:
bilalgursen
2026-09-23 11:33:51 +03:00
9 changed files with 135 additions and 12 deletions

View File

@@ -141,6 +141,25 @@ export function SihirbazAdimlar({
() => canliFacetler.iller.filter((i) => HARITA_ILLERI.has(i.il)),
[canliFacetler.iller],
);
// Huninin paydası: 1. adım hiçbir zaman "geçilmediği" için `adimaGit`ten
// atılamıyordu (orası yalnız ileri geçişleri sayar) ve `sihirbaz_adim{1}`
// hiç düşmüyordu — payda `sira_girildi`den türetilmek zorunda kalıyordu.
// Modal kapanınca bileşen unmount olduğu için mount = "1. adım görüldü";
// 1→2→1→2 gidip gelmek unmount etmediğinden tekrar tetiklenmez.
//
// Bilerek `olayBirKez` KULLANILMAZ (bkz. lib/analitik.ts:22-24, aynı kural
// `liste_uretim_basladi` için yazılı): `:220`'deki ileri geçiş olayı
// (`adim:2`, `adim:3`) her geçişte atılıyor. Paydayı oturum başına tekil
// yapsaydık sihirbazı ikinci kez açan öğrencide pay 2, payda 1 kalır ve
// 1→2 geçiş oranı %100'ü aşardı. Payda ile pay aynı birimde olmalı:
// sihirbaz her açıldığında `adim:1` de düşer.
//
// SERİ KIRILMASI: bu satırın canlıya çıktığı tarihten önce `sihirbaz_adim`
// serisinde `adim:1` hiç yok; öncesi/sonrası karşılaştırılamaz.
useEffect(() => {
olay("sihirbaz_adim", { adim: 1 });
}, []);
const [facetYukleniyor, setFacetYukleniyor] = useState(false);
useEffect(() => {
if (adim === 0) return;
@@ -201,7 +220,8 @@ export function SihirbazAdimlar({
setYon(yeniAdim > adim ? 1 : -1);
setGecisBasladi(true);
setAdim(yeniAdim);
// Yalnızca ileri geçişler huni adımı sayılır; geri dönüşler tekrar saymasın
// Yalnızca ileri geçişler huni adımı sayılır; geri dönüşler tekrar saymasın.
// `adim:1` buradan hiç geçmez — onu yukarıdaki mount effect'i atar.
if (yeniAdim > adim) olay("sihirbaz_adim", { adim: yeniAdim + 1 });
}