phase 16 implementation

This commit is contained in:
root
2026-06-25 20:08:39 -04:00
parent 5d017f533a
commit c43620a005
248 changed files with 18458 additions and 90 deletions
+25
View File
@@ -0,0 +1,25 @@
'use client';
import { validateAnalyticsEvent, type AnalyticsContext, type AnalyticsEventName } from './events';
declare global {
interface Window {
__rdgAnalyticsTestSink?: Array<{ name: AnalyticsEventName; context: AnalyticsContext }>;
}
}
function analyticsMode(): 'disabled' | 'test' {
return process.env.NEXT_PUBLIC_ANALYTICS_MODE === 'test' ? 'test' : 'disabled';
}
function consentGranted(): boolean {
return document.documentElement.dataset.analyticsConsent === 'granted';
}
export function trackAnalytics(name: AnalyticsEventName, context: AnalyticsContext): boolean {
const event = validateAnalyticsEvent(name, context);
if (!event || analyticsMode() !== 'test' || !consentGranted()) return false;
window.__rdgAnalyticsTestSink ??= [];
window.__rdgAnalyticsTestSink.push(event);
return true;
}