diff --git a/developer-extension/package.json b/developer-extension/package.json index c58da6124b..f72daa8c85 100644 --- a/developer-extension/package.json +++ b/developer-extension/package.json @@ -9,8 +9,8 @@ "devDependencies": { "@tabler/icons-react": "3.29.0", "@types/chrome": "0.0.301", - "@types/react": "18.3.18", - "@types/react-dom": "18.3.5", + "@types/react": "19.0.8", + "@types/react-dom": "19.0.3", "@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.16.2", "@mantine/hooks": "7.16.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/developer-extension/src/panel/components/tabs/eventsTab/columnDrag.tsx b/developer-extension/src/panel/components/tabs/eventsTab/columnDrag.tsx index 5e39d74146..b12c461cd7 100644 --- a/developer-extension/src/panel/components/tabs/eventsTab/columnDrag.tsx +++ b/developer-extension/src/panel/components/tabs/eventsTab/columnDrag.tsx @@ -15,7 +15,7 @@ export function ColumnDrag({ columns, onColumnsChange, }: { - headerRowRef: RefObject + headerRowRef: RefObject columns: EventListColumn[] onColumnsChange: (columns: EventListColumn[]) => void }) { diff --git a/developer-extension/src/panel/hooks/useEvents/useEvents.ts b/developer-extension/src/panel/hooks/useEvents/useEvents.ts index 9e6b79f492..b54d048414 100644 --- a/developer-extension/src/panel/hooks/useEvents/useEvents.ts +++ b/developer-extension/src/panel/hooks/useEvents/useEvents.ts @@ -18,7 +18,7 @@ export function useEvents({ const [events, setEvents] = useState([]) const [filters, setFilters] = useState(DEFAULT_FILTERS) - const eventCollectionRef = useRef() + const eventCollectionRef = useRef(null) function clearEvents() { eventCollectionRef.current?.clear() diff --git a/developer-extension/tsconfig.json b/developer-extension/tsconfig.json index 4d2b8ceb7a..57ddc49cbe 100644 --- a/developer-extension/tsconfig.json +++ b/developer-extension/tsconfig.json @@ -7,6 +7,7 @@ "target": "esnext", "jsx": "react", "lib": ["ES2022", "DOM"], - "types": ["chrome", "react", "react-dom", "jasmine"] + "types": ["chrome", "react", "react-dom", "jasmine"], + "skipLibCheck": true } } diff --git a/packages/rum-react/package.json b/packages/rum-react/package.json index 9b1e5127fd..0db25310d3 100644 --- a/packages/rum-react/package.json +++ b/packages/rum-react/package.json @@ -16,7 +16,7 @@ "@datadog/browser-rum-core": "6.3.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.8", + "@types/react-dom": "19.0.3", + "react": "19.0.0", + "react-dom": "19.0.0", "react-router-dom": "6.29.0" }, "repository": { diff --git a/packages/rum-react/src/domain/error/errorBoundary.spec.tsx b/packages/rum-react/src/domain/error/errorBoundary.spec.tsx index fa1c99b8a1..6d26b3f413 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 5005294dd3..eac387fd2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -351,13 +351,13 @@ __metadata: dependencies: "@datadog/browser-core": "npm:6.3.0" "@datadog/browser-rum-core": "npm:6.3.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.8" + "@types/react-dom": "npm:19.0.3" + react: "npm:19.0.0" + react-dom: "npm:19.0.0" react-router-dom: "npm:6.29.0" peerDependencies: - react: 18 + react: 18 || 19 react-router-dom: 6 peerDependenciesMeta: "@datadog/browser-rum": @@ -412,15 +412,15 @@ __metadata: "@mantine/hooks": "npm:7.16.2" "@tabler/icons-react": "npm:3.29.0" "@types/chrome": "npm:0.0.301" - "@types/react": "npm:18.3.18" - "@types/react-dom": "npm:18.3.5" + "@types/react": "npm:19.0.8" + "@types/react-dom": "npm:19.0.3" "@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 @@ -2016,13 +2016,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" @@ -2037,22 +2030,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.3": + version: 19.0.3 + resolution: "@types/react-dom@npm:19.0.3" peerDependencies: - "@types/react": ^18.0.0 - checksum: 10c0/b163d35a6b32a79f5782574a7aeb12a31a647e248792bf437e6d596e2676961c394c5e3c6e91d1ce44ae90441dbaf93158efb4f051c0d61e2612f1cb04ce4faa + "@types/react": ^19.0.0 + checksum: 10c0/3867427b333cbe8cbba496d7cc20ec9676d32c25ae44f4d1263a4129d42e57cf4adf0039ad263432f1215b88075c27d326e7eb4ed646128235d01a76e661d48f 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.8": + version: 19.0.8 + resolution: "@types/react@npm:19.0.8" dependencies: - "@types/prop-types": "npm:*" csstype: "npm:^3.0.2" - checksum: 10c0/8fb2b00672072135d0858dc9db07873ea107cc238b6228aaa2a9afd1ef7a64a7074078250db38afbeb19064be8ea6af5eac32d404efdd5f45e093cc4829d87f8 + checksum: 10c0/5fa7236356b1476de03519c66ef65d4fd904826956105619e2ad60cb0b55ae7b251dd5fff02234076225b5e15333d0d936bf9dbe1d461406f8a2ba01c197ddcd languageName: node linkType: hard @@ -2813,7 +2805,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.8.2": +"acorn@npm:^8.12.0, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.8.2": version: 8.14.0 resolution: "acorn@npm:8.14.0" bin: @@ -5693,7 +5685,7 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^4.2.0": +"eslint-visitor-keys@npm:^4.0.0, eslint-visitor-keys@npm:^4.2.0": version: 4.2.0 resolution: "eslint-visitor-keys@npm:4.2.0" checksum: 10c0/2ed81c663b147ca6f578312919483eb040295bbab759e5a371953456c636c5b49a559883e2677112453728d66293c0a4c90ab11cab3428cf02a0236d2e738269 @@ -5761,7 +5753,7 @@ __metadata: languageName: node linkType: hard -"espree@npm:^10.0.1, espree@npm:^10.1.0, espree@npm:^10.3.0": +"espree@npm:^10.0.1, espree@npm:^10.3.0": version: 10.3.0 resolution: "espree@npm:10.3.0" dependencies: @@ -5772,6 +5764,17 @@ __metadata: languageName: node linkType: hard +"espree@npm:^10.1.0": + version: 10.1.0 + resolution: "espree@npm:10.1.0" + dependencies: + acorn: "npm:^8.12.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^4.0.0" + checksum: 10c0/52e6feaa77a31a6038f0c0e3fce93010a4625701925b0715cd54a2ae190b3275053a0717db698697b32653788ac04845e489d6773b508d6c2e8752f3c57470a0 + languageName: node + linkType: hard + "esprima@npm:^4.0.0, esprima@npm:^4.0.1": version: 4.0.1 resolution: "esprima@npm:4.0.1" @@ -6854,7 +6857,7 @@ __metadata: languageName: node linkType: hard -"globals@npm:15.14.0, globals@npm:^15.9.0": +"globals@npm:15.14.0": version: 15.14.0 resolution: "globals@npm:15.14.0" checksum: 10c0/039deb8648bd373b7940c15df9f96ab7508fe92b31bbd39cbd1c1a740bd26db12457aa3e5d211553b234f30e9b1db2fee3683012f543a01a6942c9062857facb @@ -6875,6 +6878,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^15.9.0": + version: 15.11.0 + resolution: "globals@npm:15.11.0" + checksum: 10c0/861e39bb6bd9bd1b9f355c25c962e5eb4b3f0e1567cf60fa6c06e8c502b0ec8706b1cce055d69d84d0b7b8e028bec5418cf629a54e7047e116538d1c1c1a375c + languageName: node + linkType: hard + "globalthis@npm:^1.0.3": version: 1.0.3 resolution: "globalthis@npm:1.0.3" @@ -8104,7 +8114,7 @@ __metadata: languageName: node linkType: hard -"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": +"js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed @@ -8899,17 +8909,6 @@ __metadata: languageName: node linkType: hard -"loose-envify@npm:^1.1.0": - version: 1.4.0 - resolution: "loose-envify@npm:1.4.0" - dependencies: - js-tokens: "npm:^3.0.0 || ^4.0.0" - bin: - loose-envify: cli.js - checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e - languageName: node - linkType: hard - "lower-case@npm:^2.0.2": version: 2.0.2 resolution: "lower-case@npm:2.0.2" @@ -11219,15 +11218,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 @@ -11336,12 +11334,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 @@ -11863,12 +11859,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