diff --git a/docker-compose.yml b/docker-compose.yml index a256b87..2b1ca0c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -79,6 +79,7 @@ services: environment: BACKEND_URL: http://backend:3000 NEXT_PUBLIC_API_URL: /api/v1 + NEXT_PUBLIC_GA_MEASUREMENT_ID: ${NEXT_PUBLIC_GA_MEASUREMENT_ID:-} ENABLE_E2E_AUTH_BYPASS: "1" ports: - "3000:3000" diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 7958943..726320b 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,6 +8,7 @@ "name": "mashov-frontend", "version": "0.1.0", "dependencies": { + "@next/third-parties": "^16.2.4", "@radix-ui/react-accordion": "^1.2.2", "@radix-ui/react-alert-dialog": "^1.1.15", "@radix-ui/react-dialog": "^1.1.4", @@ -986,6 +987,19 @@ "node": ">= 10" } }, + "node_modules/@next/third-parties": { + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@next/third-parties/-/third-parties-16.2.4.tgz", + "integrity": "sha512-FhDDX02cAr0WIo3la+QHP3XaAAV6twCfFk/y8pHikFT8MHwNpB3XgEdaT0omLrIWBORhM5wkbbUJFq+pBqZzmw==", + "license": "MIT", + "dependencies": { + "third-party-capital": "1.0.20" + }, + "peerDependencies": { + "next": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0-beta.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", @@ -7093,6 +7107,12 @@ "node": ">=0.8" } }, + "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.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", diff --git a/frontend/package.json b/frontend/package.json index ef15847..cd336c6 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -10,6 +10,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { + "@next/third-parties": "^16.2.4", "@radix-ui/react-accordion": "^1.2.2", "@radix-ui/react-alert-dialog": "^1.1.15", "@radix-ui/react-dialog": "^1.1.4", diff --git a/frontend/src/app/layout.tsx b/frontend/src/app/layout.tsx index 369b853..0d35041 100644 --- a/frontend/src/app/layout.tsx +++ b/frontend/src/app/layout.tsx @@ -1,5 +1,6 @@ import type { Metadata, Viewport } from 'next'; import { Assistant } from 'next/font/google'; +import { GoogleAnalytics } from '@next/third-parties/google'; import './globals.css'; import Providers from './providers'; @@ -96,6 +97,9 @@ export default function RootLayout({ children }: RootLayoutProps) {