fix(analitik): program_eklendi yalnız gerçek eklemede atılsın

Olay, profilsiz ziyaretçide program listeye girmeyip profil kapısı
açıldığında da atılıyordu (kapiAcildi dalı else'e düşüyordu); seri
"ekleme"yi değil "+ tıklaması"nı ölçüyordu (09-analitik-tur2, S6).

- Buton: yalnız sonuc.eklendi iken {kaynak, yol: "dogrudan"}.
- profilTamamlandi: bekleyen program listeye girdiyse (ekle() true)
  {kaynak, yol: "kapi"}.
- OlayAdi yorumuna seri kırılması notu.

Davranış değişmez: profilsiz + hâlâ kapıyı açar.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-09-21 05:23:40 +03:00
parent e1bb4829fd
commit 4b87a3e71e
3 changed files with 17 additions and 3 deletions

View File

@@ -52,8 +52,11 @@ export function ProgramEkleButonu({
toast.info(`Listen ${MANUEL_LISTE_MAX} tercihe ulaştı.`);
} else if (sonuc.zatenVar) {
toast.info("Bu program zaten seçtiklerinde.");
} else {
olay("program_eklendi", { kaynak });
} else if (sonuc.eklendi) {
// Yalnız gerçek eklemede: profilsiz + kapıyı açar (kapiAcildi) ve
// program o an listeye girmez — o yolun olayı kapı tamamlanınca
// profilTamamlandi içinden {yol: "kapi"} ile atılır.
olay("program_eklendi", { kaynak, yol: "dogrudan" });
}
}

View File

@@ -5,6 +5,7 @@
import { useSyncExternalStore } from "react";
import type { Program } from "@/types/yokatlas";
import { olay } from "@/lib/analitik";
import { PROFIL_DEGISTI_EVENT, sonucHref, type TercihProfili } from "@/features/sihirbaz/sihirbaz-sabitler";
import { tercihProfiliOku, tercihProfiliTamamlandiMi } from "@/features/sihirbaz/sihirbaz-profil";
import {
@@ -250,7 +251,14 @@ export function profilTamamlandi(
const bekleyen = durum.bekleyen;
const hedef = durum.bekleyenHedef;
if (bekleyen) {
ekle(programdanManuelTercih(bekleyen.program, profil.sira, bekleyen.kaynak));
const eklendi = ekle(
programdanManuelTercih(bekleyen.program, profil.sira, bekleyen.kaynak),
);
// Kapıdan geçen +: program ancak şimdi listeye girdi. Butondaki
// {yol: "dogrudan"} atışının eşi; liste doluysa/zaten varsa atılmaz.
if (eklendi) {
olay("program_eklendi", { kaynak: bekleyen.kaynak, yol: "kapi" });
}
}
durum = {
...durum,

View File

@@ -20,6 +20,9 @@ export type OlayAdi =
| "liste_olusturuldu"
| "liste_guncellendi"
| "liste_revize"
// Seri kırılması: bu düzeltmenin canlıya çıktığı tarihten önce = +
// tıklaması (kapı açılsa da atılıyordu), sonrası = gerçek ekleme
// ({yol: "dogrudan" | "kapi"}); seriler karşılaştırılamaz.
| "program_eklendi"
| "netler_goruntulendi"
| "danisman_sorusu"