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