/** * Analytics Provider Setup * * This file shows how to configure the analytics provider for a React SPA. * Wrap your application root with this provider. */ import { AnalyticsProvider } from '@analytics/client/react'; import type { ReactNode } from 'react'; interface AnalyticsSetupProps { children: ReactNode; } /** * Get analytics configuration based on environment. * * In production, point to your analytics backend. * In development, you can use a local instance or disable tracking. */ function getAnalyticsConfig() { const isDev = process.env.NODE_ENV === 'development'; return { // Your analytics backend URL apiBaseUrl: isDev ? 'http://localhost:4001' : process.env.REACT_APP_ANALYTICS_URL || 'https://analytics.yoursite.com', // Unique identifier for this application appName: 'my-react-app', // Disable in development if you don't want noise enabled: !isDev || process.env.REACT_APP_ANALYTICS_DEV === 'true', // Enable debug logging in development enableDebugLogging: isDev, // Automatic scroll depth tracking scrollTracking: { enabled: true, thresholds: [25, 50, 75, 100] as const, // Percentages to track debounceMs: 150, }, // Batch settings for performance batchSize: 10, batchInterval: 5000, // 5 seconds }; } /** * Analytics provider wrapper. * * Place this at the root of your application, typically in App.tsx or index.tsx. */ export function AnalyticsSetup({ children }: AnalyticsSetupProps) { const config = getAnalyticsConfig(); return ( {children} ); } /** * Example usage in App.tsx: * * ```tsx * import { AnalyticsSetup } from './analytics-setup'; * import { Router } from './router'; * * export function App() { * return ( * * * * ); * } * ``` */