1- import React from 'react'
2- import ReactDOM from 'react-dom/client'
3- import { QueryClient , QueryClientProvider } from '@tanstack/react-query'
4- import App from './App.tsx'
5- import './index.css'
1+ import React from 'react' ;
2+ import ReactDOM from 'react-dom/client' ;
3+ import { QueryClient , QueryClientProvider } from '@tanstack/react-query' ;
4+ import App from './App.tsx' ;
5+ import './index.css' ;
66import clarity from '@microsoft/clarity' ;
77
8+ const queryClient = new QueryClient ( ) ;
9+
10+ declare global {
11+ interface Window {
12+ dataLayer : any [ ] ;
13+ gtag : ( ...args : any [ ] ) => void ;
14+ }
15+ }
16+
817if ( import . meta. env . PROD ) {
18+ // ✅ Initialize Microsoft Clarity
919 clarity . init ( import . meta. env . VITE_CLARITY_PROJECT_ID ) ;
10- }
1120
12- const queryClient = new QueryClient ( ) ;
21+ // ✅ Initialize Google Analytics (GA4)
22+ const gaMeasurementId = import . meta. env . VITE_GA_MEASUREMENT_ID ;
23+ if ( gaMeasurementId ) {
24+ // Load GA script
25+ const script = document . createElement ( 'script' ) ;
26+ script . async = true ;
27+ script . src = `https://www.googletagmanager.com/gtag/js?id=${ gaMeasurementId } ` ;
28+ document . head . appendChild ( script ) ;
29+
30+ // Initialize GA dataLayer
31+ window . dataLayer = window . dataLayer || [ ] ;
32+ function gtag ( ...args : any [ ] ) {
33+ window . dataLayer . push ( args ) ;
34+ }
35+ gtag ( 'js' , new Date ( ) ) ;
36+ gtag ( 'config' , gaMeasurementId ) ;
37+ }
38+ }
1339
1440ReactDOM . createRoot ( document . getElementById ( 'root' ) ! ) . render (
15- < QueryClientProvider client = { queryClient } >
16- < App />
17- </ QueryClientProvider >
18- )
41+ < QueryClientProvider client = { queryClient } >
42+ < App />
43+ </ QueryClientProvider >
44+ ) ;
0 commit comments