From cccb35160de6c803def1cfbb5447d272a3c50c37 Mon Sep 17 00:00:00 2001 From: Saksham Kushwaha <92094239+lirena00@users.noreply.github.com> Date: Tue, 28 Oct 2025 04:40:15 +0530 Subject: feat: optional posthog intialization (#525) --- packages/lib/error-tracking.tsx | 3 +++ packages/lib/posthog.tsx | 13 +++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'packages') diff --git a/packages/lib/error-tracking.tsx b/packages/lib/error-tracking.tsx index bf320271..de8cc89d 100644 --- a/packages/lib/error-tracking.tsx +++ b/packages/lib/error-tracking.tsx @@ -14,6 +14,7 @@ export function useErrorTracking() { error: Error | unknown, context?: Record, ) => { + if (!posthog.__loaded) return const errorDetails = { error_message: error instanceof Error ? error.message : String(error), error_stack: error instanceof Error ? error.stack : undefined, @@ -117,6 +118,7 @@ export function useInteractionTracking() { const pathname = usePathname() const trackInteraction = (action: string, details?: Record) => { + if (!posthog.__loaded) return posthog.capture("user_interaction", { action, pathname, @@ -131,6 +133,7 @@ export function useInteractionTracking() { success: boolean, details?: Record, ) => { + if (!posthog.__loaded) return posthog.capture("form_submission", { form_name: formName, success, diff --git a/packages/lib/posthog.tsx b/packages/lib/posthog.tsx index ac563aae..62a60e09 100644 --- a/packages/lib/posthog.tsx +++ b/packages/lib/posthog.tsx @@ -11,7 +11,7 @@ function PostHogPageTracking() { // Page tracking useEffect(() => { - if (pathname) { + if (pathname && posthog.__loaded) { let url = window.origin + pathname if (searchParams.toString()) { url = `${url}?${searchParams.toString()}` @@ -38,19 +38,24 @@ export function PostHogProvider({ children }: { children: React.ReactNode }) { useEffect(() => { if (typeof window !== "undefined") { - posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY ?? "", { + const posthogKey = process.env.NEXT_PUBLIC_POSTHOG_KEY + if (posthogKey){ + posthog.init(posthogKey, { api_host: process.env.NEXT_PUBLIC_BACKEND_URL + "/orange", ui_host: "https://us.i.posthog.com", person_profiles: "identified_only", capture_pageview: false, capture_pageleave: true, - }) + })} + else{ + console.warn("PostHog API key is not set. PostHog will not be initialized.") + } } }, []) // User identification useEffect(() => { - if (session?.user) { + if (session?.user && posthog.__loaded) { posthog.identify(session.user.id, { email: session.user.email, name: session.user.name, -- cgit v1.2.3