diff --git a/developer-extension/package.json b/developer-extension/package.json index 42d91a0fc6..659ca1085a 100644 --- a/developer-extension/package.json +++ b/developer-extension/package.json @@ -9,8 +9,8 @@ "devDependencies": { "@tabler/icons-react": "3.26.0", "@types/chrome": "0.0.287", - "@types/react": "18.3.18", - "@types/react-dom": "18.3.5", + "@types/react": "19.0.3", + "@types/react-dom": "19.0.2", "@webextension-toolbox/webpack-webextension-plugin": "3.3.1", "copy-webpack-plugin": "12.0.2", "css-loader": "7.1.2", @@ -25,8 +25,8 @@ "@mantine/core": "7.15.2", "@mantine/hooks": "7.15.2", "clsx": "2.1.1", - "react": "18.3.1", - "react-dom": "18.3.1" + "react": "19.0.0", + "react-dom": "19.0.0" }, "volta": { "extends": "../package.json" diff --git a/packages/rum-react/package.json b/packages/rum-react/package.json index 8ecea130d0..3d38d2ea25 100644 --- a/packages/rum-react/package.json +++ b/packages/rum-react/package.json @@ -16,7 +16,7 @@ "@datadog/browser-rum-core": "5.35.0" }, "peerDependencies": { - "react": "18", + "react": "18 || 19", "react-router-dom": "6" }, "peerDependenciesMeta": { @@ -34,10 +34,10 @@ } }, "devDependencies": { - "@types/react": "18.3.18", - "@types/react-dom": "18.3.5", - "react": "18.3.1", - "react-dom": "18.3.1", + "@types/react": "19.0.3", + "@types/react-dom": "19.0.2", + "react": "19.0.0", + "react-dom": "19.0.0", "react-router-dom": "6.28.1" }, "repository": { diff --git a/packages/rum-react/src/domain/error/errorBoundary.spec.tsx b/packages/rum-react/src/domain/error/errorBoundary.spec.tsx index 207e70f636..a4426cae2b 100644 --- a/packages/rum-react/src/domain/error/errorBoundary.spec.tsx +++ b/packages/rum-react/src/domain/error/errorBoundary.spec.tsx @@ -29,7 +29,14 @@ describe('ErrorBoundary', () => { ) - expect(fallbackSpy).toHaveBeenCalledWith({ error: new Error('error'), resetError: jasmine.any(Function) }, {}) + expect(fallbackSpy).toHaveBeenCalled() + // React calls the component multiple times while rendering + fallbackSpy.calls.all().forEach(({ args }) => { + expect(args[0]).toEqual({ + error: new Error('error'), + resetError: jasmine.any(Function), + }) + }) expect(container.innerHTML).toBe('fallback') }) diff --git a/yarn.lock b/yarn.lock index 7f741b8fa7..f125be3d75 100644 --- a/yarn.lock +++ b/yarn.lock @@ -351,13 +351,13 @@ __metadata: dependencies: "@datadog/browser-core": "npm:5.35.0" "@datadog/browser-rum-core": "npm:5.35.0" - "@types/react": "npm:18.3.18" - "@types/react-dom": "npm:18.3.5" - react: "npm:18.3.1" - react-dom: "npm:18.3.1" + "@types/react": "npm:19.0.3" + "@types/react-dom": "npm:19.0.2" + react: "npm:19.0.0" + react-dom: "npm:19.0.0" react-router-dom: "npm:6.28.1" peerDependencies: - react: 18 + react: 18 || 19 react-router-dom: 6 peerDependenciesMeta: "@datadog/browser-rum": @@ -412,15 +412,15 @@ __metadata: "@mantine/hooks": "npm:7.15.2" "@tabler/icons-react": "npm:3.26.0" "@types/chrome": "npm:0.0.287" - "@types/react": "npm:18.3.18" - "@types/react-dom": "npm:18.3.5" + "@types/react": "npm:19.0.3" + "@types/react-dom": "npm:19.0.2" "@webextension-toolbox/webpack-webextension-plugin": "npm:3.3.1" clsx: "npm:2.1.1" copy-webpack-plugin: "npm:12.0.2" css-loader: "npm:7.1.2" html-webpack-plugin: "npm:5.6.3" - react: "npm:18.3.1" - react-dom: "npm:18.3.1" + react: "npm:19.0.0" + react-dom: "npm:19.0.0" style-loader: "npm:4.0.0" webpack: "npm:5.97.1" languageName: unknown @@ -1967,13 +1967,6 @@ __metadata: languageName: node linkType: hard -"@types/prop-types@npm:*": - version: 15.7.3 - resolution: "@types/prop-types@npm:15.7.3" - checksum: 10c0/511aac811bfdba9dd1c463d6e502d852bb2196048cf861fbf48a97d883dd32c1c44ad2127a18dbb49733d9ad0aafd445d673eb50d5547ca843106835f67b5877 - languageName: node - linkType: hard - "@types/qs@npm:*": version: 6.9.5 resolution: "@types/qs@npm:6.9.5" @@ -1988,22 +1981,21 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:18.3.5": - version: 18.3.5 - resolution: "@types/react-dom@npm:18.3.5" +"@types/react-dom@npm:19.0.2": + version: 19.0.2 + resolution: "@types/react-dom@npm:19.0.2" peerDependencies: - "@types/react": ^18.0.0 - checksum: 10c0/b163d35a6b32a79f5782574a7aeb12a31a647e248792bf437e6d596e2676961c394c5e3c6e91d1ce44ae90441dbaf93158efb4f051c0d61e2612f1cb04ce4faa + "@types/react": ^19.0.0 + checksum: 10c0/3d0c7b78dbe8df64ea769f30af990a5950173a8321c745fe11094d765423f7964c3519dca6e7cd36b4be6521c8efc690bdd3b79b327b229dd1e9d5a8bad677dd languageName: node linkType: hard -"@types/react@npm:18.3.18": - version: 18.3.18 - resolution: "@types/react@npm:18.3.18" +"@types/react@npm:19.0.3": + version: 19.0.3 + resolution: "@types/react@npm:19.0.3" dependencies: - "@types/prop-types": "npm:*" csstype: "npm:^3.0.2" - checksum: 10c0/8fb2b00672072135d0858dc9db07873ea107cc238b6228aaa2a9afd1ef7a64a7074078250db38afbeb19064be8ea6af5eac32d404efdd5f45e093cc4829d87f8 + checksum: 10c0/90129c45f2f09154d9409964964d0ccbac7f04d5f7fcf73fc146d33887931fbfdfd1e2947514298f94f986cc264aff8ba3201e9a4ea207d3308f20a06d47c805 languageName: node linkType: hard @@ -8907,7 +8899,7 @@ __metadata: languageName: node linkType: hard -"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0": +"loose-envify@npm:^1.0.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" dependencies: @@ -11234,15 +11226,14 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:18.3.1": - version: 18.3.1 - resolution: "react-dom@npm:18.3.1" +"react-dom@npm:19.0.0": + version: 19.0.0 + resolution: "react-dom@npm:19.0.0" dependencies: - loose-envify: "npm:^1.1.0" - scheduler: "npm:^0.23.2" + scheduler: "npm:^0.25.0" peerDependencies: - react: ^18.3.1 - checksum: 10c0/a752496c1941f958f2e8ac56239172296fcddce1365ce45222d04a1947e0cc5547df3e8447f855a81d6d39f008d7c32eab43db3712077f09e3f67c4874973e85 + react: ^19.0.0 + checksum: 10c0/a36ce7ab507b237ae2759c984cdaad4af4096d8199fb65b3815c16825e5cfeb7293da790a3fc2184b52bfba7ba3ff31c058c01947aff6fd1a3701632aabaa6a9 languageName: node linkType: hard @@ -11352,12 +11343,10 @@ __metadata: languageName: node linkType: hard -"react@npm:18.3.1": - version: 18.3.1 - resolution: "react@npm:18.3.1" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3 +"react@npm:19.0.0": + version: 19.0.0 + resolution: "react@npm:19.0.0" + checksum: 10c0/9cad8f103e8e3a16d15cb18a0d8115d8bd9f9e1ce3420310aea381eb42aa0a4f812cf047bb5441349257a05fba8a291515691e3cb51267279b2d2c3253f38471 languageName: node linkType: hard @@ -11879,12 +11868,10 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.23.2": - version: 0.23.2 - resolution: "scheduler@npm:0.23.2" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10c0/26383305e249651d4c58e6705d5f8425f153211aef95f15161c151f7b8de885f24751b377e4a0b3dd42cce09aad3f87a61dab7636859c0d89b7daf1a1e2a5c78 +"scheduler@npm:^0.25.0": + version: 0.25.0 + resolution: "scheduler@npm:0.25.0" + checksum: 10c0/a4bb1da406b613ce72c1299db43759526058fdcc413999c3c3e0db8956df7633acf395cb20eb2303b6a65d658d66b6585d344460abaee8080b4aa931f10eaafe languageName: node linkType: hard