diff --git a/app/providers.tsx b/app/providers.tsx index d7a5e71..423fd00 100644 --- a/app/providers.tsx +++ b/app/providers.tsx @@ -1,15 +1,28 @@ +"use client"; + import { ThemeProvider } from "next-themes" import { ReactNode } from "react" +import posthog from 'posthog-js' +import { PostHogProvider } from 'posthog-js/react' + +if (typeof window !== 'undefined') { + posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY!, { + api_host: process.env.NEXT_PUBLIC_POSTHOG_HOST, + person_profiles: 'always', + }) +} export function Providers({ children }: { children: ReactNode }) { return ( - - {children} - + + + {children} + + ) } \ No newline at end of file diff --git a/package.json b/package.json index dd1d5db..d8322d6 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "next": "^14.2.20", "next-themes": "^0.3.0", "openai": "^4.56.0", + "posthog-js": "^1.202.2", "react": "^18", "react-dom": "^18", "react-latex-next": "^3.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 020cc01..9ecb604 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -182,6 +182,9 @@ dependencies: openai: specifier: ^4.56.0 version: 4.67.2(zod@3.24.1) + posthog-js: + specifier: ^1.202.2 + version: 1.202.2 react: specifier: ^18 version: 18.3.1 @@ -2607,6 +2610,11 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true + /core-js@3.39.0: + resolution: {integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==} + requiresBuild: true + dev: false + /cross-fetch@4.0.0: resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} dependencies: @@ -3522,6 +3530,10 @@ packages: format: 0.2.2 dev: false + /fflate@0.4.8: + resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==} + dev: false + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5611,10 +5623,23 @@ packages: picocolors: 1.1.0 source-map-js: 1.2.1 + /posthog-js@1.202.2: + resolution: {integrity: sha512-9p7dAWuCfoM0WrasubGwtC8i38HU3iMqK3gd0mhyAoTrEVMVozTQq64Toc2VEv8H69NGNn6ikk5t2LclHT9XFA==} + dependencies: + core-js: 3.39.0 + fflate: 0.4.8 + preact: 10.25.2 + web-vitals: 4.2.4 + dev: false + /potpack@2.0.0: resolution: {integrity: sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==} dev: false + /preact@10.25.2: + resolution: {integrity: sha512-GEts1EH3oMnqdOIeXhlbBSddZ9nrINd070WBOiPO2ous1orrKGUM4SMDbwyjSWD1iMS2dBvaDjAa5qUhz3TXqw==} + dev: false + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -6728,6 +6753,10 @@ packages: engines: {node: '>= 14'} dev: false + /web-vitals@4.2.4: + resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} + dev: false + /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: false