This repository has no description
1'use client';
2
3import { AuthProvider } from '@/hooks/useAuth';
4import { useEffect } from 'react';
5import MantineProvider from './mantine';
6import TanStackQueryProvider from './tanstack';
7import { NavbarProvider } from './navbar';
8import { SettingsProvider } from './settings';
9import posthog from 'posthog-js';
10import { PostHogProvider } from 'posthog-js/react';
11
12interface Props {
13 children: React.ReactNode;
14}
15
16export default function Providers(props: Props) {
17 useEffect(() => {
18 const posthogKey = process.env.NEXT_PUBLIC_POSTHOG_PROJECT_API_KEY;
19
20 if (!posthogKey) {
21 console.warn('PostHog key not found in environment variables');
22 return;
23 }
24 if (process.env.NEXT_PUBLIC_VERCEL_ENV !== 'production') {
25 return;
26 }
27
28 posthog.init(process.env.NEXT_PUBLIC_POSTHOG_PROJECT_API_KEY!, {
29 api_host: process.env.NEXT_PUBLIC_POSTHOG_API_HOST,
30 disable_session_recording: true,
31 autocapture: false,
32 capture_pageview: false,
33 capture_pageleave: false,
34 });
35 }, []);
36
37 return (
38 <PostHogProvider client={posthog}>
39 <TanStackQueryProvider>
40 <AuthProvider>
41 <MantineProvider>
42 <SettingsProvider>
43 <NavbarProvider>{props.children}</NavbarProvider>
44 </SettingsProvider>
45 </MantineProvider>
46 </AuthProvider>
47 </TanStackQueryProvider>
48 </PostHogProvider>
49 );
50}