/
kreyndelHam
/
Konstructorium
Обзор
Документация
Войти
/
kreyndelHam
/
Konstructorium
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
1
CI/CD
Аналитика
Безопасность
dev
frontend/src/components/AnalyticsRouteTracker.jsx
46 строк
1 KB
MihahamYT
analytics fixed
17 май 2026, 15:23
17 май 2026, 15:23
e69640e
Код
Авторство
О чём код?
import { useEffect } from 'react' import { useLocation } from 'react-router-dom' import { useAuthStore } from '../store/authStore' import { initWebAnalyticsTracker, isAnalyticsTrackingEnabled, trackPageView, } from '../services/webAnalyticsTracker' /** * Tracks SPA route changes as analytics page views when consent is granted. * * @returns {null} */ function AnalyticsRouteTracker() { const location = useLocation() const user = useAuthStore((state) => state.user) useEffect(() => { /** * Record current route when analytics consent is active. */ const trackCurrentPath = () => { if (!isAnalyticsTrackingEnabled()) { return } initWebAnalyticsTracker() const path = `${location.pathname}${location.search}` trackPageView(path, user?.id || null) } trackCurrentPath() const onConsentChanged = (event) => { if (event.detail?.status === 'granted') { trackCurrentPath() } } window.addEventListener('konstructorium-analytics-consent', onConsentChanged) return () => window.removeEventListener('konstructorium-analytics-consent', onConsentChanged) }, [location.pathname, location.search, user?.id]) return null } export default AnalyticsRouteTracker