From edf092939e2c2f9cec3f1e026900ae2e7f094c77 Mon Sep 17 00:00:00 2001 From: NiclasDev63 Date: Thu, 20 Aug 2026 23:52:02 +0200 Subject: [PATCH] added person analytics and removed unnecessary loading overlays from landing page --- apps/app/src/app/[lang]/profile/layout.tsx | 7 +- .../app/src/features/organizations/CONTEXT.md | 7 + .../navigation/profile-shell-navigation.tsx | 5 + .../shared/analytics/analytics-area.test.tsx | 74 +++++++++ .../src/shared/analytics/analytics-area.tsx | 32 ++++ .../analytics/product-analytics.test.tsx | 22 +-- .../shared/analytics/product-analytics.tsx | 3 +- .../comparison/comparison.tsx | 18 +-- .../hero/product-preview-section.tsx | 24 +-- .../components/marketing-section-content.tsx | 5 +- apps/web/src/app/[lang]/components/navbar.tsx | 2 - apps/web/src/app/[lang]/loading.tsx | 9 -- apps/web/src/app/loading.tsx | 9 -- .../components/localized-loading-overlay.tsx | 28 ---- apps/web/src/styles/marketing-motion.css | 40 ++++- .../adr/0003-pseudonymous-person-analytics.md | 43 ++++++ packages/observability/package.json | 2 + .../src/config/event-context.test.ts | 49 ++++++ .../observability/src/config/event-context.ts | 22 +++ packages/observability/src/config/types.ts | 3 + packages/observability/src/consent/cookie.ts | 11 ++ .../next/apply-consent-and-identity.test.ts | 82 ++++++++++ .../src/next/apply-consent-and-identity.ts | 39 +++++ .../observability/src/next/posthog-root.tsx | 140 +++++------------- packages/observability/src/provider.tsx | 14 +- packages/observability/tsconfig.json | 3 +- pnpm-lock.yaml | 51 ++++--- 27 files changed, 504 insertions(+), 240 deletions(-) create mode 100644 apps/app/src/shared/analytics/analytics-area.test.tsx create mode 100644 apps/app/src/shared/analytics/analytics-area.tsx delete mode 100644 apps/web/src/app/[lang]/loading.tsx delete mode 100644 apps/web/src/app/loading.tsx delete mode 100644 apps/web/src/components/localized-loading-overlay.tsx create mode 100644 docs/adr/0003-pseudonymous-person-analytics.md create mode 100644 packages/observability/src/config/event-context.test.ts create mode 100644 packages/observability/src/config/event-context.ts create mode 100644 packages/observability/src/next/apply-consent-and-identity.test.ts create mode 100644 packages/observability/src/next/apply-consent-and-identity.ts diff --git a/apps/app/src/app/[lang]/profile/layout.tsx b/apps/app/src/app/[lang]/profile/layout.tsx index b51c34b..a6325c4 100644 --- a/apps/app/src/app/[lang]/profile/layout.tsx +++ b/apps/app/src/app/[lang]/profile/layout.tsx @@ -8,6 +8,7 @@ import { redirect } from "next/navigation"; import { ProfileShell } from "@/features/organizations/client"; import { getFullDictionary } from "@/i18n/dictionaries"; +import { AnalyticsArea } from "@/shared/analytics/analytics-area"; import { ProductAnalytics } from "@/shared/analytics/product-analytics"; import { api, HydrateClient } from "@/shared/api/trpc/server"; @@ -36,9 +37,11 @@ export default async function RootLayout({ const dict = await getFullDictionary(lang); return ( - - + + {/* Inside the boundary so AnalyticsArea's organization query reads the cache prefetched above. */} + + void; }) { + const posthog = usePostHog(); + return (
@@ -133,6 +136,8 @@ export function ProfileTopBar({