magicui
42 строки · 1.1 Кб
1"use client";
2
3import { usePathname, useSearchParams } from "next/navigation";
4import posthog from "posthog-js";
5import { PostHogProvider } from "posthog-js/react";
6import { useEffect } from "react";
7
8if (typeof window !== "undefined") {
9posthog.init(process.env.NEXT_PUBLIC_POSTHOG_API_KEY!, {
10api_host: "https://app.posthog.com",
11session_recording: {
12maskAllInputs: false,
13},
14// Enable debug mode in development
15loaded: (posthog) => {
16if (process.env.NODE_ENV === "development") posthog.debug();
17},
18});
19}
20
21export function PostHogPageview(): JSX.Element {
22const pathname = usePathname();
23const searchParams = useSearchParams();
24
25useEffect(() => {
26if (pathname) {
27let url = window.origin + pathname;
28if (searchParams && searchParams.toString()) {
29url = url + `?${searchParams.toString()}`;
30}
31posthog.capture("$pageview", {
32$current_url: url,
33});
34}
35}, [pathname, searchParams]);
36
37return <></>;
38}
39
40export function PHProvider({ children }: { children: React.ReactNode }) {
41return <PostHogProvider client={posthog}>{children}</PostHogProvider>;
42}
43