From 468eaa1d60722bf27cb44a2e8eb4864f3cc5dcc5 Mon Sep 17 00:00:00 2001 From: jwinterm Date: Fri, 12 Jun 2026 13:24:54 -0400 Subject: [PATCH] analytics: config-driven Umami tag + accurate privacy disclosure; fix @types/react v18/v19 dup that broke the build at HEAD --- apps/web/.env.production | 2 ++ apps/web/src/app/layout.tsx | 2 ++ apps/web/src/app/privacy/page.tsx | 34 +++++++++++++--------- apps/web/src/components/UmamiAnalytics.tsx | 23 +++++++++++++++ package.json | 2 +- 5 files changed, 49 insertions(+), 14 deletions(-) create mode 100644 apps/web/.env.production create mode 100644 apps/web/src/components/UmamiAnalytics.tsx diff --git a/apps/web/.env.production b/apps/web/.env.production new file mode 100644 index 0000000..194007f --- /dev/null +++ b/apps/web/.env.production @@ -0,0 +1,2 @@ +NEXT_PUBLIC_UMAMI_HOST=https://stats.suchshop.lol +NEXT_PUBLIC_UMAMI_WEBSITE_ID=62a3259a-8293-4e11-901c-d7fb86d30847 diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx index 7274c2a..2645aca 100644 --- a/apps/web/src/app/layout.tsx +++ b/apps/web/src/app/layout.tsx @@ -4,6 +4,7 @@ import "./globals.css"; import { ThemeProvider } from "@/components/theme-provider"; import { DynamicFavicon } from "@/components/dynamic-favicon"; import { Footer } from "@/components/layout/footer"; +import { UmamiAnalytics } from "@/components/UmamiAnalytics"; const inter = Inter({ subsets: ["latin"] }); @@ -119,6 +120,7 @@ export default function RootLayout({ disableTransitionOnChange > +
{children}