35 lines
1011 B
TypeScript
35 lines
1011 B
TypeScript
"use client";
|
|
|
|
import posthog from "posthog-js";
|
|
import { PostHogProvider } from "posthog-js/react";
|
|
import { useEffect, useRef } from "react";
|
|
|
|
function Provider({ children }: { children: React.ReactNode }) {
|
|
const initializeOnce = useRef(false);
|
|
|
|
useEffect(() => {
|
|
if (!process.env.NEXT_PUBLIC_POSTHOG_KEY || initializeOnce.current) return;
|
|
|
|
initializeOnce.current = true;
|
|
|
|
posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY, {
|
|
api_host: process.env.NEXT_PUBLIC_POSTHOG_HOST || "https://us.i.posthog.com",
|
|
autocapture: false,
|
|
person_profiles: "never",
|
|
persistence: "memory",
|
|
request_batching: true,
|
|
capture_pageview: false,
|
|
capture_pageleave: false,
|
|
disable_session_recording: true,
|
|
advanced_disable_decide: true,
|
|
loaded: (posthog) => {
|
|
if (process.env.NODE_ENV === "development") posthog.debug();
|
|
},
|
|
});
|
|
}, []);
|
|
|
|
return <PostHogProvider client={posthog}>{children}</PostHogProvider>;
|
|
}
|
|
|
|
export default Provider;
|