import type { MetricsMessengers } from "@model/metrics"; import { useMemo } from "react"; type MetricsGoal = { type: "reachGoal"; id: number; goal: string; }; type ExtendedWindow = Window & { _tmr?: MetricsGoal[] }; const sendMetrics = (vkPixelId: number | undefined, goal: string) => { if (vkPixelId) { (window as ExtendedWindow)._tmr?.push({ type: "reachGoal", id: vkPixelId, goal, }); } }; export const useVkMetricsGoals = (vkId: number | undefined) => { return useMemo( () => ({ // Посетитель открыл квиз quizOpened: () => sendMetrics(vkId, "penaquiz-start"), // Посетитель нажал на кнопку стартовой страницы firstPageOpened: () => sendMetrics(vkId, "penaquiz-startquiz"), // Посетитель кликнул по номеру телефона на стартовой странице phoneNumberOpened: () => sendMetrics(vkId, "penaquiz-phone"), // Посетитель кликнул по email на стартовой странице emailOpened: () => sendMetrics(vkId, "penaquiz-email"), // Посетитель увидел определенный результат (id - айдишник вопроса с типом result) resultIdShown: (resultId: string) => sendMetrics(vkId, `penaquiz-result-${resultId}`), // Посетитель нажал на ссылку в результате resultLink: () => sendMetrics(vkId, `penaquiz-resultlink`), // Посетитель дошёл до формы контактов contactsFormOpened: () => sendMetrics(vkId, "penaquiz-form"), // Посетитель заполнил форму контактов contactsFormFilled: () => sendMetrics(vkId, "penaquiz-contacts"), // Посетитель заполнил поле формы контактов contactsFormField: (field: string) => sendMetrics(vkId, `penaquiz-formfield-${field}`), // Посетитель отправил заявку с мессенджером messengerRequestSended: (messenger: MetricsMessengers) => sendMetrics(vkId, `penaquiz-messengers-${messenger}`), // Посетитель прошёл вопрос questionPassed: (questionId: string) => sendMetrics(vkId, `penaquiz-step${questionId}`), }), [vkId] ); };