From 0ed6f6ef9c1317fd686cd05c86a8649b21c456a6 Mon Sep 17 00:00:00 2001 From: Steven Conaway Date: Mon, 20 Jan 2025 11:59:42 -0700 Subject: [PATCH] chore(deps): move to react@^19 (#1657) * chore(deps): move to react@^19 * chore(deps): manually override old peer dependencies * chore(deps): upgrade rollup-plugin-visualizer * chore(deps): remove `package-lock.json` and `node_modules/` and regen lockfile * chore(deps): remove randomly added dependencies * chore(deps): change override for react@^19 peer dep --- commafeed-client/package-lock.json | 74 +++++++++-------------- commafeed-client/package.json | 27 +++++++-- commafeed-client/src/pages/app/Layout.tsx | 4 +- 3 files changed, 53 insertions(+), 52 deletions(-) diff --git a/commafeed-client/package-lock.json b/commafeed-client/package-lock.json index aa1a525e..4eb332fb 100644 --- a/commafeed-client/package-lock.json +++ b/commafeed-client/package-lock.json @@ -18,7 +18,7 @@ "@mantine/modals": "^7.16.1", "@mantine/notifications": "^7.16.1", "@mantine/spotlight": "^7.16.1", - "@monaco-editor/react": "^4.6.0", + "@monaco-editor/react": "^4.7.0-rc.0", "@reduxjs/toolkit": "^2.5.0", "axios": "^1.7.9", "dayjs": "^1.11.13", @@ -26,11 +26,11 @@ "interweave": "^13.1.0", "monaco-editor": "^0.52.2", "mousetrap": "^1.6.5", - "react": "^18.3.1", + "react": "^19.0.0", "react-async-hook": "^4.0.0", "react-contexify": "^6.0.0", "react-device-detect": "^2.2.3", - "react-dom": "^18.3.1", + "react-dom": "^19.0.0", "react-draggable": "^4.4.6", "react-ga4": "^2.1.0", "react-helmet": "^6.1.0", @@ -52,8 +52,8 @@ "@lingui/cli": "^5.1.2", "@lingui/vite-plugin": "^5.1.2", "@types/mousetrap": "^1.6.15", - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", + "@types/react": "^19.0.7", + "@types/react-dom": "^19.0.3", "@types/react-helmet": "^6.1.11", "@types/react-infinite-scroller": "^1.2.5", "@types/swagger-ui-react": "^4.18.3", @@ -62,7 +62,7 @@ "@vitejs/plugin-react": "^4.3.4", "babel-plugin-macros": "^3.1.0", "jsdom": "^26.0.0", - "rollup-plugin-visualizer": "^5.13.1", + "rollup-plugin-visualizer": "^5.14.0", "typescript": "^5.7.3", "vite": "^6.0.9", "vite-plugin-checker": "^0.8.0", @@ -1812,17 +1812,17 @@ } }, "node_modules/@monaco-editor/react": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.6.0.tgz", - "integrity": "sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw==", + "version": "4.7.0-rc.0", + "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.7.0-rc.0.tgz", + "integrity": "sha512-YfjXkDK0bcwS0zo8PXptvQdCQfOPPtzGsAzmIv7PnoUGFdIohsR+NVDyjbajMddF+3cWUm/3q9NzP/DUke9a+w==", "license": "MIT", "dependencies": { "@monaco-editor/loader": "^1.4.0" }, "peerDependencies": { "monaco-editor": ">= 0.25.0 < 1", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/@nodelib/fs.scandir": { @@ -2330,30 +2330,23 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "license": "MIT" }, - "node_modules/@types/prop-types": { - "version": "15.7.14", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", - "license": "MIT" - }, "node_modules/@types/react": { - "version": "18.3.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", - "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.7.tgz", + "integrity": "sha512-MoFsEJKkAtZCrC1r6CM8U22GzhG7u2Wir8ons/aCKH6MBdD1ibV24zOSSkdZVUKqN5i396zG5VKLYZ3yaUZdLA==", "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", - "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.3.tgz", + "integrity": "sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==", "dev": true, "license": "MIT", "peerDependencies": { - "@types/react": "^18.0.0" + "@types/react": "^19.0.0" } }, "node_modules/@types/react-helmet": { @@ -5405,13 +5398,10 @@ "license": "MIT" }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } @@ -5465,16 +5455,15 @@ } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.0.0" } }, "node_modules/react-draggable": { @@ -6149,13 +6138,10 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" }, "node_modules/semver": { "version": "6.3.1", diff --git a/commafeed-client/package.json b/commafeed-client/package.json index 95e887c3..65076495 100644 --- a/commafeed-client/package.json +++ b/commafeed-client/package.json @@ -25,7 +25,7 @@ "@mantine/spotlight": "^7.16.1", "@lingui/core": "^5.1.2", "@lingui/react": "^5.1.2", - "@monaco-editor/react": "^4.6.0", + "@monaco-editor/react": "^4.7.0-rc.0", "@reduxjs/toolkit": "^2.5.0", "axios": "^1.7.9", "dayjs": "^1.11.13", @@ -33,11 +33,11 @@ "interweave": "^13.1.0", "monaco-editor": "^0.52.2", "mousetrap": "^1.6.5", - "react": "^18.3.1", + "react": "^19.0.0", "react-async-hook": "^4.0.0", "react-contexify": "^6.0.0", "react-device-detect": "^2.2.3", - "react-dom": "^18.3.1", + "react-dom": "^19.0.0", "react-draggable": "^4.4.6", "react-ga4": "^2.1.0", "react-helmet": "^6.1.0", @@ -59,8 +59,8 @@ "@lingui/cli": "^5.1.2", "@lingui/vite-plugin": "^5.1.2", "@types/mousetrap": "^1.6.15", - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", + "@types/react": "^19.0.7", + "@types/react-dom": "^19.0.3", "@types/react-helmet": "^6.1.11", "@types/react-infinite-scroller": "^1.2.5", "@types/swagger-ui-react": "^4.18.3", @@ -69,12 +69,27 @@ "@vitejs/plugin-react": "^4.3.4", "babel-plugin-macros": "^3.1.0", "jsdom": "^26.0.0", - "rollup-plugin-visualizer": "^5.13.1", + "rollup-plugin-visualizer": "^5.14.0", "typescript": "^5.7.3", "vite": "^6.0.9", "vite-plugin-checker": "^0.8.0", "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.0.2", "vitest-mock-extended": "^2.0.2" + }, + "overrides": { + "interweave": { + "react": "^19.0.0" + }, + "react-infinite-scroller": { + "react": "^19.0.0" + }, + "react-helmet": { + "react": "^19.0.0" + }, + "redoc": { + "react": "^19.0.0", + "react-dom": "^19.0.0" + } } } diff --git a/commafeed-client/src/pages/app/Layout.tsx b/commafeed-client/src/pages/app/Layout.tsx index bfdceef9..1a322b0f 100644 --- a/commafeed-client/src/pages/app/Layout.tsx +++ b/commafeed-client/src/pages/app/Layout.tsx @@ -18,7 +18,7 @@ import { useBrowserExtension } from "hooks/useBrowserExtension" import { useMobile } from "hooks/useMobile" import { useWebSocket } from "hooks/useWebSocket" import { LoadingPage } from "pages/LoadingPage" -import { type ReactNode, Suspense, useEffect, useRef } from "react" +import { type ReactNode, type RefObject, Suspense, useEffect, useRef } from "react" import Draggable from "react-draggable" import { TbMenu2, TbPlus, TbX } from "react-icons/tb" import { Outlet } from "react-router-dom" @@ -185,7 +185,7 @@ export default function Layout(props: LayoutProps) { } axis="x" defaultPosition={{ x: sidebarWidth,