diff --git a/.env.example b/apps/web/.env.example similarity index 100% rename from .env.example rename to apps/web/.env.example diff --git a/packages/analytics/src/client/hooks.tsx b/packages/analytics/src/client/hooks.tsx deleted file mode 100644 index 3f7a9b7..0000000 --- a/packages/analytics/src/client/hooks.tsx +++ /dev/null @@ -1,28 +0,0 @@ -"use client"; - -import type { Properties } from "posthog-js"; -import { usePostHog } from "posthog-js/react"; -import { useCallback } from "react"; -import { isProd } from "./utils"; - -export const useTrackAnalytics = () => { - const { capture } = usePostHog(); - - const track = useCallback( - (options: { event: string } & Properties) => { - if (!isProd) { - console.log(`Mock analytics track: ${options.event}`, options); - return; - } - - const { event, ...rest } = options; - - capture(event, rest); - }, - [capture], - ); - - return { - track, - }; -}; diff --git a/packages/analytics/src/client/index.tsx b/packages/analytics/src/client/index.tsx index d0346f6..1b5fc48 100644 --- a/packages/analytics/src/client/index.tsx +++ b/packages/analytics/src/client/index.tsx @@ -1,4 +1,3 @@ -import { useTrackAnalytics } from "./hooks"; import { PostHogProvider } from "./providers"; -export { PostHogProvider as AnalyticsProvider, useTrackAnalytics }; +export { PostHogProvider as AnalyticsProvider }; diff --git a/packages/analytics/src/client/providers.tsx b/packages/analytics/src/client/providers.tsx index e0cc920..b56c305 100644 --- a/packages/analytics/src/client/providers.tsx +++ b/packages/analytics/src/client/providers.tsx @@ -1,17 +1,17 @@ "use client"; import { usePathname, useSearchParams } from "next/navigation"; +import { usePostHog } from "posthog-js/react"; import { Suspense, useEffect } from "react"; import posthog from "posthog-js"; import { PostHogProvider as PHProvider } from "posthog-js/react"; -import { useTrackAnalytics } from "."; import { isProd } from "./utils"; export function PostHogProvider({ children }: { children: React.ReactNode }) { useEffect(() => { if (!isProd) { - console.log("Mock analytics init"); + console.log("Analytics disabled in non-production environment"); return; } @@ -34,19 +34,18 @@ export function PostHogProvider({ children }: { children: React.ReactNode }) { function PostHogPageView() { const pathname = usePathname(); const searchParams = useSearchParams(); - const { track } = useTrackAnalytics(); + const posthog = usePostHog(); - // Track pageviews useEffect(() => { - if (pathname) { + if (pathname && posthog) { let url = window.origin + pathname; if (searchParams.toString()) { url = url + "?" + searchParams.toString(); } - track({ event: "$pageview", $current_url: url }); + posthog.capture("$pageview", { $current_url: url }); } - }, [pathname, searchParams, track]); + }, [pathname, searchParams, posthog]); return null; }