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:
@@ -52,8 +52,11 @@ export function ProgramEkleButonu({
|
|||||||
toast.info(`Listen ${MANUEL_LISTE_MAX} tercihe ulaştı.`);
|
toast.info(`Listen ${MANUEL_LISTE_MAX} tercihe ulaştı.`);
|
||||||
} else if (sonuc.zatenVar) {
|
} else if (sonuc.zatenVar) {
|
||||||
toast.info("Bu program zaten seçtiklerinde.");
|
toast.info("Bu program zaten seçtiklerinde.");
|
||||||
} else {
|
} else if (sonuc.eklendi) {
|
||||||
olay("program_eklendi", { kaynak });
|
// 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" });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
import { useSyncExternalStore } from "react";
|
import { useSyncExternalStore } from "react";
|
||||||
import type { Program } from "@/types/yokatlas";
|
import type { Program } from "@/types/yokatlas";
|
||||||
|
import { olay } from "@/lib/analitik";
|
||||||
import { PROFIL_DEGISTI_EVENT, sonucHref, type TercihProfili } from "@/features/sihirbaz/sihirbaz-sabitler";
|
import { PROFIL_DEGISTI_EVENT, sonucHref, type TercihProfili } from "@/features/sihirbaz/sihirbaz-sabitler";
|
||||||
import { tercihProfiliOku, tercihProfiliTamamlandiMi } from "@/features/sihirbaz/sihirbaz-profil";
|
import { tercihProfiliOku, tercihProfiliTamamlandiMi } from "@/features/sihirbaz/sihirbaz-profil";
|
||||||
import {
|
import {
|
||||||
@@ -250,7 +251,14 @@ export function profilTamamlandi(
|
|||||||
const bekleyen = durum.bekleyen;
|
const bekleyen = durum.bekleyen;
|
||||||
const hedef = durum.bekleyenHedef;
|
const hedef = durum.bekleyenHedef;
|
||||||
if (bekleyen) {
|
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 = {
|
||||||
...durum,
|
...durum,
|
||||||
|
|||||||
@@ -20,6 +20,9 @@ export type OlayAdi =
|
|||||||
| "liste_olusturuldu"
|
| "liste_olusturuldu"
|
||||||
| "liste_guncellendi"
|
| "liste_guncellendi"
|
||||||
| "liste_revize"
|
| "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"
|
| "program_eklendi"
|
||||||
| "netler_goruntulendi"
|
| "netler_goruntulendi"
|
||||||
| "danisman_sorusu"
|
| "danisman_sorusu"
|
||||||
|
|||||||
Reference in New Issue
Block a user