mirror of
https://github.com/stack-auth/stack.git
synced 2026-06-13 21:01:21 +08:00
<!--
Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md
-->
<!-- ELLIPSIS_HIDDEN -->
----
> [!IMPORTANT]
> Integrates PostHog for page view tracking in the documentation site
with necessary rewrites and components.
>
> - **Integration**:
> - Adds PostHog integration to track page views in `layout.tsx` using
`PostHogPageView` and `CSPostHogProvider`.
> - Adds `posthog-js` to `package.json` dependencies.
> - **Rewrites**:
> - Adds proxy rewrites in `next.config.mjs` to prevent ad blockers from
blocking PostHog requests.
> - **Components**:
> - Creates `PostHogPageView` in `pageview.tsx` and
`pageview-dynamic.tsx` to capture page views.
> - Implements `CSPostHogProvider` in `posthog-provider.tsx` to
initialize PostHog with specific settings.
>
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup>
for 5551f4ffc4. You can
[customize](https://app.ellipsis.dev/stack-auth/settings/summaries) this
summary. It will automatically update as commits are pushed.</sup>
<!-- ELLIPSIS_HIDDEN -->
28 lines
667 B
TypeScript
28 lines
667 B
TypeScript
'use client';
|
|
|
|
import { usePathname, useSearchParams } from "next/navigation";
|
|
import { usePostHog } from 'posthog-js/react';
|
|
import { useEffect } from "react";
|
|
|
|
export default function PostHogPageView(): null {
|
|
const pathname = usePathname();
|
|
const searchParams = useSearchParams();
|
|
const posthog = usePostHog();
|
|
useEffect(() => {
|
|
if (pathname) {
|
|
let url = window.origin + pathname;
|
|
if (searchParams.toString()) {
|
|
url = url + `?${searchParams.toString()}`;
|
|
}
|
|
posthog.capture(
|
|
'$pageview',
|
|
{
|
|
'$current_url': url,
|
|
}
|
|
);
|
|
}
|
|
}, [pathname, searchParams, posthog]);
|
|
|
|
return null;
|
|
}
|