export enum EGoals { ENTERED_EMAIL = "EnteredEmail", PAYMENT_SUCCESS = "PaymentSuccess", ROSE_VIDEO_CREATION_START = 'RoseVideoCreationStart', ROSE_LOADING_START = "RoseLoadingStart", ROSE_VIDEO_CREATED = "RoseVideoCreated", ROSE_LOADING_END = "RoseLoadingEnd", ROSE_VIDEO_PLAY_START = "RoseVideoPlayStart", ROSE_VIDEO_PLAY_END = "RoseVideoPlayEnd", ROSE_VIDEO_PLAY_USER_STOP = "RoseVideoPlayUserStop", ROSE_VIDEO_PLAY_USER_PLAY = "RoseVideoPlayUserPlay" } interface IUserParams { UserID: number; genderFrom: string; email: string; } const environments = import.meta.env const metricCounterNumber = Number(environments.AURA_YANDEX_COUNTER_NUMBER) const setUserID = (userId: string) => { if (typeof window.ym !== "function") return console.error("Yandex.Metric not found"); window.ym(metricCounterNumber, "setUserID", userId) // eslint-disable-next-line react-hooks/exhaustive-deps } const userParams = (parameters: Partial) => { if (typeof window.ym !== "function") return console.error("Yandex.Metric not found"); window.ym(metricCounterNumber, "userParams", parameters) // eslint-disable-next-line react-hooks/exhaustive-deps } const reachGoal = (goal: EGoals) => { if (typeof window.ym !== "function") return console.error("Yandex.Metric not found"); window.ym(metricCounterNumber, "reachGoal", goal) // eslint-disable-next-line react-hooks/exhaustive-deps } const initMetric = () => { if (typeof window.ym !== "function") return console.error("Yandex.Metric not found"); window.ym(metricCounterNumber, "init", { clickmap: true, trackLinks: true, accurateTrackBounce: true, webvisor: true, }); console.log("Metric initialized"); // eslint-disable-next-line react-hooks/exhaustive-deps } export default { setUserID, userParams, reachGoal, initMetric }