diff --git a/package-lock.json b/package-lock.json index ecc2a9b9..ac88b6b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "nextra-theme-docs": "latest", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-gtm-module": "^2.0.11", "react-syntax-highlighter": "^15.5.0", "sharp": "^0.33.2", "toml": "^3.0.0", @@ -36,6 +37,7 @@ "@types/jest-expect-message": "^1.1.0", "@types/node": "18.11.10", "@types/react": "18.0.37", + "@types/react-gtm-module": "^2.0.3", "@typescript-eslint/eslint-plugin": "^5.59.7", "@typescript-eslint/parser": "^5.59.7", "autoprefixer": "^10.4.14", @@ -650,7 +652,6 @@ }, "node_modules/@clack/prompts/node_modules/is-unicode-supported": { "version": "1.3.0", - "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -6088,6 +6089,12 @@ "@types/react": "*" } }, + "node_modules/@types/react-gtm-module": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/react-gtm-module/-/react-gtm-module-2.0.3.tgz", + "integrity": "sha512-fL2zKdDFN5LckSsVBXEhhm9M4tFTM9oHJfGcfZJzktQkzpOTGtDM8oXIP9d9UBDxO4xLNZhS22dlgRVv6wgK9w==", + "dev": true + }, "node_modules/@types/scheduler": { "version": "0.16.3", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", @@ -19544,6 +19551,11 @@ "react": "^18.2.0" } }, + "node_modules/react-gtm-module": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/react-gtm-module/-/react-gtm-module-2.0.11.tgz", + "integrity": "sha512-8gyj4TTxeP7eEyc2QKawEuQoAZdjKvMY4pgWfycGmqGByhs17fR+zEBs0JUDq4US/l+vbTl+6zvUIx27iDo/Vw==" + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -23340,8 +23352,7 @@ "dependencies": { "is-unicode-supported": { "version": "1.3.0", - "bundled": true, - "extraneous": true + "bundled": true } } }, @@ -27160,6 +27171,12 @@ "@types/react": "*" } }, + "@types/react-gtm-module": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/react-gtm-module/-/react-gtm-module-2.0.3.tgz", + "integrity": "sha512-fL2zKdDFN5LckSsVBXEhhm9M4tFTM9oHJfGcfZJzktQkzpOTGtDM8oXIP9d9UBDxO4xLNZhS22dlgRVv6wgK9w==", + "dev": true + }, "@types/scheduler": { "version": "0.16.3", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", @@ -37161,6 +37178,11 @@ "scheduler": "^0.23.0" } }, + "react-gtm-module": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/react-gtm-module/-/react-gtm-module-2.0.11.tgz", + "integrity": "sha512-8gyj4TTxeP7eEyc2QKawEuQoAZdjKvMY4pgWfycGmqGByhs17fR+zEBs0JUDq4US/l+vbTl+6zvUIx27iDo/Vw==" + }, "react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", diff --git a/package.json b/package.json index 34cda633..0e88eb33 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "nextra-theme-docs": "latest", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-gtm-module": "^2.0.11", "react-syntax-highlighter": "^15.5.0", "sharp": "^0.33.2", "toml": "^3.0.0", @@ -38,6 +39,7 @@ "@types/jest-expect-message": "^1.1.0", "@types/node": "18.11.10", "@types/react": "18.0.37", + "@types/react-gtm-module": "^2.0.3", "@typescript-eslint/eslint-plugin": "^5.59.7", "@typescript-eslint/parser": "^5.59.7", "autoprefixer": "^10.4.14", diff --git a/pages/_app.tsx b/pages/_app.tsx index 47ba8ad3..c03eb214 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -8,6 +8,11 @@ import { WagmiConfig, createConfig } from "wagmi"; import { arbitrum, avalanche, mainnet, sepolia } from "wagmi/chains"; import { CosmosChains, GlobalContextProvider } from "../contexts/GlobalContext"; import "../styles/styles.css"; +import TagManager from "react-gtm-module"; + +const tagManagerArgs = { + gtmId: "GTM-MN3TWRGJ", +}; const chains = [arbitrum, mainnet, avalanche, sepolia]; @@ -31,6 +36,9 @@ export default function Nextra({ Component, pageProps }: NextraAppProps) { const [mounted, setMounted] = useState(false); useEffect(() => setMounted(true), []); + useEffect(() => { + TagManager.initialize(tagManagerArgs); + }, []); // Make the global context available to every page. return (