- inject the Umami script at runtime only when VITE_UMAMI_SRC + VITE_UMAMI_WEBSITE_ID are set (so dev/local traffic isn't tracked); website-id is public, not a secret - web Dockerfile passes them as build args; docker-compose.prod.yml + env examples document them (optional, empty = disabled) Verified: build bakes the values in when set; skipped when unset. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
25 lines
708 B
TypeScript
25 lines
708 B
TypeScript
import { StrictMode } from "react"
|
|
import { createRoot } from "react-dom/client"
|
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"
|
|
|
|
import "@workspace/ui/globals.css"
|
|
import { App } from "./App.tsx"
|
|
import { ThemeProvider } from "@/components/theme-provider.tsx"
|
|
import { I18nProvider } from "@/i18n/provider"
|
|
import { initAnalytics } from "@/lib/analytics"
|
|
|
|
initAnalytics()
|
|
|
|
const queryClient = new QueryClient()
|
|
|
|
createRoot(document.getElementById("root")!).render(
|
|
<StrictMode>
|
|
<QueryClientProvider client={queryClient}>
|
|
<ThemeProvider>
|
|
<I18nProvider>
|
|
<App />
|
|
</I18nProvider>
|
|
</ThemeProvider>
|
|
</QueryClientProvider>
|
|
</StrictMode>
|
|
)
|