From 0eb3e658d2d1d39cc0310f639748058717631b6c Mon Sep 17 00:00:00 2001 From: RedRock Date: Sun, 14 Dec 2025 13:04:57 +0300 Subject: [PATCH 1/2] feat: add yandex metrika --- src/shared/const/tracking-service.ts | 0 src/widgets/yandex-metrika/index.ts | 0 src/widgets/yandex-metrika/ui.tsx | 0 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/shared/const/tracking-service.ts create mode 100644 src/widgets/yandex-metrika/index.ts create mode 100644 src/widgets/yandex-metrika/ui.tsx diff --git a/src/shared/const/tracking-service.ts b/src/shared/const/tracking-service.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/widgets/yandex-metrika/index.ts b/src/widgets/yandex-metrika/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/widgets/yandex-metrika/ui.tsx b/src/widgets/yandex-metrika/ui.tsx new file mode 100644 index 0000000..e69de29 From 23a55d6fde371a491f7ced5ad097542865bbd4e7 Mon Sep 17 00:00:00 2001 From: RedRock Date: Sun, 14 Dec 2025 13:18:48 +0300 Subject: [PATCH 2/2] feat: add yandex metrika --- .idea/workspace.xml | 119 +++------------------------ src/app/layout.tsx | 2 + src/shared/const/tracking-service.ts | 3 + src/widgets/index.ts | 1 + src/widgets/yandex-metrika/index.ts | 1 + src/widgets/yandex-metrika/ui.tsx | 33 ++++++++ 6 files changed, 52 insertions(+), 107 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 1b5e612..cf4c615 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,105 +5,12 @@ + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + { "keyToString": { - "ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true", "ModuleVcsDetector.initialDetectionPerformed": "true", "RunOnceActivity.ShowReadmeOnStart": "true", "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true", @@ -162,10 +68,10 @@ "node.js.selected.package.tslint": "(autodetect)", "nodejs_package_manager_path": "npm", "npm.Next.js: server-side.executor": "Run", - "prettierjs.PrettierConfiguration.Package": "C:\\dev-personal\\ocenka-web\\node_modules\\prettier", + "prettierjs.PrettierConfiguration.Package": "C:\\dev-projects\\ocenka-web\\node_modules\\prettier", "settings.editor.selected.configurable": "terminal", "to.speed.mode.migration.done": "true", - "ts.external.directory.path": "C:\\dev-personal\\ocenka-web\\node_modules\\typescript\\lib", + "ts.external.directory.path": "C:\\dev-projects\\ocenka-web\\node_modules\\typescript\\lib", "vue.rearranger.settings.migration": "true" } } @@ -216,12 +122,11 @@ - - - - - - + + + + + diff --git a/src/app/layout.tsx b/src/app/layout.tsx index fc04d17..400100c 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -9,6 +9,7 @@ import { Header, MobileCallback, ScrollToTop, + YandexMetrika, } from '@/widgets'; import { ModalProvider } from '@core/providers/modal-provider'; import { Toaster } from 'react-hot-toast'; @@ -53,6 +54,7 @@ export default function RootLayout({ + ); diff --git a/src/shared/const/tracking-service.ts b/src/shared/const/tracking-service.ts index e69de29..12c4f13 100644 --- a/src/shared/const/tracking-service.ts +++ b/src/shared/const/tracking-service.ts @@ -0,0 +1,3 @@ +const YM_COUNTER_ID = 32834827; // ID счетчика YM + +export { YM_COUNTER_ID }; diff --git a/src/widgets/index.ts b/src/widgets/index.ts index 2705f21..076f99a 100644 --- a/src/widgets/index.ts +++ b/src/widgets/index.ts @@ -7,3 +7,4 @@ export * from './scroll-to-top'; export * from './cookie-notice'; export * from './consultation-modal'; export * from './preview-modal'; +export * from './yandex-metrika'; diff --git a/src/widgets/yandex-metrika/index.ts b/src/widgets/yandex-metrika/index.ts index e69de29..5ecdd1f 100644 --- a/src/widgets/yandex-metrika/index.ts +++ b/src/widgets/yandex-metrika/index.ts @@ -0,0 +1 @@ +export * from './ui'; diff --git a/src/widgets/yandex-metrika/ui.tsx b/src/widgets/yandex-metrika/ui.tsx index e69de29..9b20f0c 100644 --- a/src/widgets/yandex-metrika/ui.tsx +++ b/src/widgets/yandex-metrika/ui.tsx @@ -0,0 +1,33 @@ +'use client'; + +import { usePathname } from 'next/navigation'; +import { useEffect } from 'react'; +import ym, { YMInitializer } from 'react-yandex-metrika'; +import { YM_COUNTER_ID } from '@shared/const/tracking-service'; + +function YandexMetrika() { + const pathname = usePathname(); + + // Отправляем событие "hit" при изменении маршрута + useEffect(() => { + if (pathname) { + ym('hit', pathname); + } + }, [pathname]); + + return ( + + ); +} + +export { YandexMetrika };