From d28ee8b6412ee091f59b1d098be654e525d52e70 Mon Sep 17 00:00:00 2001 From: Debabrata Date: Mon, 19 May 2025 18:55:01 +0530 Subject: [PATCH 1/2] Added creds for google analytics --- .env.example | 2 ++ app/layout.tsx | 5 +++++ components/GoogleAnalytics.tsx | 9 +++++++++ package-lock.json | 20 ++++++++++++++++++++ package.json | 3 ++- 5 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 .env.example create mode 100644 components/GoogleAnalytics.tsx diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..87bcffe --- /dev/null +++ b/.env.example @@ -0,0 +1,2 @@ +# Google Analytics Measurement ID +NEXT_PUBLIC_GA_MEASUREMENT_ID=G-XXXXXXXXXX diff --git a/app/layout.tsx b/app/layout.tsx index 9b67cdd..c930484 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -2,16 +2,21 @@ import './global.css'; import { RootProvider } from 'fumadocs-ui/provider'; import { Inter } from 'next/font/google'; import type { ReactNode } from 'react'; +import Analytics from '../components/GoogleAnalytics'; const inter = Inter({ subsets: ['latin'], }); export default function Layout({ children }: { children: ReactNode }) { + // Replace 'G-XXXXXXXXXX' with your actual Google Analytics measurement ID + const gaId = process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID || 'G-XXXXXXXXXX'; + return ( {children} + ); diff --git a/components/GoogleAnalytics.tsx b/components/GoogleAnalytics.tsx new file mode 100644 index 0000000..dd24d41 --- /dev/null +++ b/components/GoogleAnalytics.tsx @@ -0,0 +1,9 @@ +import { GoogleAnalytics } from '@next/third-parties/google' + +interface GoogleAnalyticsProps { + gaId: string; +} + +export default function Analytics({ gaId }: GoogleAnalyticsProps) { + return ; +} diff --git a/package-lock.json b/package-lock.json index a85bc4e..662c17e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.0.0", "hasInstallScript": true, "dependencies": { + "@next/third-parties": "^15.3.2", "@tabler/icons-react": "^3.30.0", "class-variance-authority": "^0.7.1", "fumadocs-core": "15.3.0", @@ -1276,6 +1277,19 @@ "node": ">= 10" } }, + "node_modules/@next/third-parties": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/third-parties/-/third-parties-15.3.2.tgz", + "integrity": "sha512-zE9xYkMKZ6gLbkP6lWt60yaeKB5r0A4eZhFKAhgik/eO+zzZPFkTy5K7+0ykgfB6MTkcend3BaDXZhz9KnDjYw==", + "license": "MIT", + "dependencies": { + "third-party-capital": "1.0.20" + }, + "peerDependencies": { + "next": "^13.0.0 || ^14.0.0 || ^15.0.0", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -9439,6 +9453,12 @@ "dev": true, "license": "MIT" }, + "node_modules/third-party-capital": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/third-party-capital/-/third-party-capital-1.0.20.tgz", + "integrity": "sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA==", + "license": "ISC" + }, "node_modules/tinyglobby": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", diff --git a/package.json b/package.json index 95351c2..b4f88af 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "postinstall": "fumadocs-mdx" }, "dependencies": { + "@next/third-parties": "^15.3.2", "@tabler/icons-react": "^3.30.0", "class-variance-authority": "^0.7.1", "fumadocs-core": "15.3.0", @@ -31,4 +32,4 @@ "tailwindcss": "^4.1.5", "typescript": "^5.8.3" } -} \ No newline at end of file +} From a2a5dad7a7fa286694a0afa388c784e1e225bbe0 Mon Sep 17 00:00:00 2001 From: Debabrata Date: Mon, 19 May 2025 18:58:16 +0530 Subject: [PATCH 2/2] Update lock files for @next/third-parties dependency --- pnpm-lock.yaml | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a7375f3..2c1f222 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + '@next/third-parties': + specifier: ^15.3.2 + version: 15.3.2(next@15.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) '@tabler/icons-react': specifier: ^3.30.0 version: 3.31.0(react@19.1.0) @@ -477,6 +480,12 @@ packages: cpu: [x64] os: [win32] + '@next/third-parties@15.3.2': + resolution: {integrity: sha512-zE9xYkMKZ6gLbkP6lWt60yaeKB5r0A4eZhFKAhgik/eO+zzZPFkTy5K7+0ykgfB6MTkcend3BaDXZhz9KnDjYw==} + peerDependencies: + next: ^13.0.0 || ^14.0.0 || ^15.0.0 + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2849,6 +2858,9 @@ packages: text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + third-party-capital@1.0.20: + resolution: {integrity: sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA==} + tinyglobby@0.2.13: resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} @@ -3331,6 +3343,12 @@ snapshots: '@next/swc-win32-x64-msvc@15.3.1': optional: true + '@next/third-parties@15.3.2(next@15.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': + dependencies: + next: 15.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + third-party-capital: 1.0.20 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4457,7 +4475,7 @@ snapshots: '@typescript-eslint/parser': 8.32.1(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1) @@ -4477,7 +4495,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.1 @@ -4492,14 +4510,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.32.1(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1) transitivePeerDependencies: - supports-color @@ -4514,7 +4532,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -6352,6 +6370,8 @@ snapshots: text-table@0.2.0: {} + third-party-capital@1.0.20: {} + tinyglobby@0.2.13: dependencies: fdir: 6.4.4(picomatch@4.0.2)