34 lines
1 KiB
TypeScript
34 lines
1 KiB
TypeScript
'use client';
|
|
|
|
import posthog from 'posthog-js';
|
|
import { PostHogProvider as PHProvider } from 'posthog-js/react';
|
|
import { useEffect } from 'react';
|
|
|
|
export function PostHogProvider({ children }: { children: React.ReactNode }) {
|
|
useEffect(() => {
|
|
// Initialiser PostHog uniquement côté client et une seule fois
|
|
if (typeof window !== 'undefined' && !posthog.__loaded) {
|
|
const key = process.env.NEXT_PUBLIC_POSTHOG_KEY;
|
|
const host = process.env.NEXT_PUBLIC_POSTHOG_HOST;
|
|
|
|
if (!key || !host) {
|
|
console.error('PostHog: Variables d\'environnement manquantes');
|
|
return;
|
|
}
|
|
|
|
posthog.init(key, {
|
|
api_host: host,
|
|
person_profiles: 'identified_only',
|
|
capture_pageview: false,
|
|
capture_pageleave: true,
|
|
loaded: (posthog) => {
|
|
if (process.env.NODE_ENV === 'development') {
|
|
(window as any).posthog = posthog;
|
|
}
|
|
},
|
|
});
|
|
}
|
|
}, []);
|
|
|
|
return <PHProvider client={posthog}>{children}</PHProvider>;
|
|
}
|