30 lines
716 B
TypeScript
30 lines
716 B
TypeScript
// app/PostHogPageView.tsx
|
|
'use client'
|
|
|
|
import { usePathname, useSearchParams } from "next/navigation";
|
|
import { useEffect } from "react";
|
|
import { usePostHog } from 'posthog-js/react';
|
|
|
|
export default function PostHogPageView() {
|
|
const pathname = usePathname();
|
|
const searchParams = useSearchParams();
|
|
const posthog = usePostHog();
|
|
// Track pageviews
|
|
useEffect(() => {
|
|
if (pathname && posthog) {
|
|
let url = window.origin + pathname
|
|
if (searchParams.toString()) {
|
|
url = url + `?${searchParams.toString()}`
|
|
}
|
|
posthog.capture(
|
|
'$pageview',
|
|
{
|
|
'$current_url': url,
|
|
}
|
|
)
|
|
}
|
|
}, [pathname, searchParams, posthog])
|
|
|
|
return null
|
|
}
|