From a7b22c6c78bb9a0c9a4a21ba8f431c4ea595771d Mon Sep 17 00:00:00 2001 From: Aamir Azad <82281117+aamirazad@users.noreply.github.com> Date: Wed, 7 Aug 2024 22:08:36 -0400 Subject: [PATCH] feat: add posthog analytics (#119) ### TL;DR I might switch to plausible as they are a bit more privacy friendly, still looking around. I was just following theo's [tutorial](https://youtu.be/d5x0JCZbAJs?si=i_3GyL0f1F75ovwi) --- bun.lockb | Bin 224856 -> 224816 bytes package.json | 1 + src/app/_analytics/provider.tsx | 38 ++++++++++++++++++++++++++++ src/app/layout.tsx | 43 +++++++++++++++++--------------- 4 files changed, 62 insertions(+), 20 deletions(-) create mode 100644 src/app/_analytics/provider.tsx diff --git a/bun.lockb b/bun.lockb index 068b5765805a7c6274bb5845b8d7193442d218f3..70b9ad3b917ceb6d7ea7aee58a052a31f9d4bb47 100755 GIT binary patch delta 46671 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 F{{fwE-s1oO delta 46549 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

+ {children} + + ); +} + +function PostHogAuthWrapper({ children }: { children: React.ReactNode }) { + const auth = useAuth(); + const userInfo = useUser(); + + useEffect(() => { + if (userInfo.user) { + posthog.identify(userInfo.user.id, { + email: userInfo.user.emailAddresses[0]?.emailAddress, + name: userInfo.user.fullName, + }); + } else if (!auth.isSignedIn) { + posthog.reset(); + } + }, [auth, userInfo]); + + return children; +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index f9918c6..d17459a 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -6,6 +6,7 @@ import { ClerkProvider } from "@clerk/nextjs"; import { ThemeProvider } from "@/components/theme-provider"; import { cn } from "@/lib/utils"; import { dark } from "@clerk/themes"; +import { CSPostHogProvider } from "@/app/_analytics/provider"; export const metadata = { title: "Homelab Connector", @@ -26,27 +27,29 @@ export default function RootLayout({ baseTheme: dark, }} > - - - -

- -
- {children} + + + + +
+ +
+ {children} +
-
- {modal} -