aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormihna123 <mihailonvojinovic@gmail.com>2026-06-03 16:45:26 +0200
committermihna123 <mihailonvojinovic@gmail.com>2026-06-03 16:45:26 +0200
commit728fb96a78b7808a87e52cbc2f4bb0cbfb4f0f74 (patch)
treecdc361c3ad844b05edaa636e6c0ea28a2f849279
parent3f55acb7ec4810fa843297270ee1354e92cf641f (diff)
downloadinvoice-728fb96a78b7808a87e52cbc2f4bb0cbfb4f0f74.tar.gz
invoice-728fb96a78b7808a87e52cbc2f4bb0cbfb4f0f74.zip
feat: add google analytics script
-rw-r--r--package-lock.json24
-rw-r--r--package.json1
-rw-r--r--src/app/layout.tsx2
3 files changed, 25 insertions, 2 deletions
diff --git a/package-lock.json b/package-lock.json
index b382569..06b5906 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,14 +1,15 @@
{
"name": "invoices",
- "version": "0.1.0",
+ "version": "0.3.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "invoices",
- "version": "0.1.0",
+ "version": "0.3.0",
"dependencies": {
"@hookform/resolvers": "^3.3.4",
+ "@next/third-parties": "^16.2.7",
"blob-stream": "^0.1.3",
"clsx": "^2.1.1",
"next": "^16.2.6",
@@ -1199,6 +1200,19 @@
"node": ">= 10"
}
},
+ "node_modules/@next/third-parties": {
+ "version": "16.2.7",
+ "resolved": "https://registry.npmjs.org/@next/third-parties/-/third-parties-16.2.7.tgz",
+ "integrity": "sha512-mSvF8eg2egIqP0GaPYn0sDvsP45CodwVsavl7RkLsOVQL/CDy7wUg0WUV5uEtlWoWOq0pEYRRsbld7NQIh+Eqg==",
+ "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",
@@ -6356,6 +6370,12 @@
"url": "https://opencollective.com/webpack"
}
},
+ "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/tiny-inflate": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
diff --git a/package.json b/package.json
index 5efa6d4..4579629 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
},
"dependencies": {
"@hookform/resolvers": "^3.3.4",
+ "@next/third-parties": "^16.2.7",
"blob-stream": "^0.1.3",
"clsx": "^2.1.1",
"next": "^16.2.6",
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 8630def..1a1dbf0 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,5 +1,6 @@
import type { Metadata } from 'next';
import { Geist, Geist_Mono } from 'next/font/google';
+import { GoogleAnalytics } from '@next/third-parties/google';
import './globals.css';
const geistSans = Geist({
@@ -29,6 +30,7 @@ export default function RootLayout({
>
{children}
</body>
+ <GoogleAnalytics gaId="G-PPNQQX1XCD" />
</html>
);
}