diff --git a/packages/webapp/next.config.ts b/packages/webapp/next.config.ts index 0b4478103a..facb162918 100644 --- a/packages/webapp/next.config.ts +++ b/packages/webapp/next.config.ts @@ -42,7 +42,7 @@ const nextConfig: NextConfig = { compiler: { reactRemoveProperties: { properties: ['^data-testid$'] }, }, - webpack: (config) => { + webpack: (config, { dev }) => { // Grab the existing rule that handles SVG imports const fileLoaderRule = config.module.rules.find((rule) => rule.test?.test?.('.svg'), @@ -99,6 +99,12 @@ const nextConfig: NextConfig = { // eslint-disable-next-line no-param-reassign config.resolve.alias['cross-fetch'] = false; + // Exclude agentation from production builds + if (!dev) { + // eslint-disable-next-line no-param-reassign + config.resolve.alias.agentation = false; + } + return config; }, env: { diff --git a/packages/webapp/package.json b/packages/webapp/package.json index 3da7853cc7..497274172b 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -25,6 +25,7 @@ "@serwist/next": "^9.0.9", "@tanstack/react-query": "^5.80.5", "@tanstack/react-query-devtools": "^5.80.5", + "agentation": "^1.3.0", "classnames": "^2.5.1", "date-fns": "^2.28.0", "date-fns-tz": "1.2.2", diff --git a/packages/webapp/pages/_app.tsx b/packages/webapp/pages/_app.tsx index 9278554f94..4ff71784fb 100644 --- a/packages/webapp/pages/_app.tsx +++ b/packages/webapp/pages/_app.tsx @@ -62,6 +62,13 @@ const CookieBanner = dynamic( ), ); +const Agentation = + process.env.NODE_ENV === 'development' + ? dynamic(() => import('agentation').then((mod) => mod.Agentation), { + ssr: false, + }) + : null; + interface ComponentGetLayout { getLayout?: ( page: ReactNode, @@ -306,6 +313,7 @@ export default function App( + {Agentation && } ); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f6ae2a760..12f02fcece 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -887,6 +887,9 @@ importers: '@tanstack/react-query-devtools': specifier: ^5.80.5 version: 5.80.6(@tanstack/react-query@5.80.6(react@18.3.1))(react@18.3.1) + agentation: + specifier: ^1.3.0 + version: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: specifier: ^2.5.1 version: 2.5.1 @@ -4149,6 +4152,12 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} + agentation@1.3.0: + resolution: {integrity: sha512-Mq05RrE00bC0lrGSSr1uj7pAT6SnEFGr9TtDgtYUHNH685OAjDgFobEgEV7jgUu0xCWIfIukH7n/Gy05plFw8Q==} + peerDependencies: + react: '>=18.0.0' + react-dom: '>=18.0.0' + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -13010,6 +13019,11 @@ snapshots: transitivePeerDependencies: - supports-color + agentation@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0