From 583540865d051e54ad39f5640284eb54ef50afc1 Mon Sep 17 00:00:00 2001 From: Franck LECUYER Date: Tue, 14 Oct 2025 15:52:53 +0200 Subject: [PATCH] Upgrade react and react-dom to version 19 Signed-off-by: Franck LECUYER --- package-lock.json | 66 ++++++++++------------- package.json | 10 ++-- src/pages/common/paper-form.tsx | 5 +- src/pages/common/use-csv-export.tsx | 2 +- src/pages/groups/add-group-dialog.tsx | 2 +- src/pages/groups/groups-table.tsx | 2 +- src/pages/profiles/add-profile-dialog.tsx | 2 +- src/pages/profiles/profiles-table.tsx | 2 +- src/pages/users/add-user-dialog.tsx | 2 +- src/pages/users/users-table.tsx | 2 +- 10 files changed, 45 insertions(+), 50 deletions(-) diff --git a/package-lock.json b/package-lock.json index eba9efb..1f90129 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", - "@gridsuite/commons-ui": "0.130.0", + "@gridsuite/commons-ui": "file:../commons-ui/gridsuite-commons-ui-0.131.0.tgz", "@hookform/resolvers": "^4.1.3", "@mui/icons-material": "^5.18.0", "@mui/lab": "5.0.0-alpha.175", @@ -25,8 +25,8 @@ "date-fns": "^4.1.0", "notistack": "^3.0.2", "oidc-client": "^1.11.5", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19.2.0", + "react-dom": "^19.2.0", "react-hook-form": "^7.62.0", "react-hook-form-mui": "^7.6.2", "react-intl": "^7.1.11", @@ -49,8 +49,8 @@ "@types/license-checker": "^25.0.6", "@types/node": "^22.18.1", "@types/prop-types": "^15.7.15", - "@types/react": "^18.3.24", - "@types/react-dom": "^18.3.7", + "@types/react": "^19.2.2", + "@types/react-dom": "^19.2.1", "@types/react-redux": "^7.1.34", "@types/react-window": "^1.8.8", "@typescript-eslint/eslint-plugin": "^6.21.0", @@ -3207,9 +3207,9 @@ } }, "node_modules/@gridsuite/commons-ui": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@gridsuite/commons-ui/-/commons-ui-0.130.0.tgz", - "integrity": "sha512-x4Mx65XnmDJdCxj5y7KFIJIv+IlfuWN/aezKDNXcfjtsJKOhmZVvIFz8g53549fAFYR2Cf+KUYZmSIlR8iGf/A==", + "version": "0.131.0", + "resolved": "file:../commons-ui/gridsuite-commons-ui-0.131.0.tgz", + "integrity": "sha512-9MWmniP6u9Km6bdXHLsvSrvNcvlzfHIEhqdiAzIxwY4mXZoF5UUWSurSDtMIv5UVM3HKVrU7waf5PXBJR1DuvA==", "license": "MPL-2.0", "dependencies": { "@ag-grid-community/locale": "^33.3.2", @@ -3247,8 +3247,8 @@ "ag-grid-community": "^33.0.3", "ag-grid-react": "^33.0.4", "notistack": "^3.0.2", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19.2.0", + "react-dom": "^19.2.0", "react-hook-form": "^7.54.2", "react-intl": "^7.1.6", "react-papaparse": "^4.4.0", @@ -5511,23 +5511,22 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.26.tgz", - "integrity": "sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA==", + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz", + "integrity": "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==", "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.7", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", - "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.2.tgz", + "integrity": "sha512-9KQPoO6mZCi7jcIStSnlOWn2nEF3mNmyr3rIAsGnAbQKYbRLyqmeSc39EVgtxXVia+LMT8j3knZLAZAh+xLmrw==", "dev": true, "license": "MIT", "peerDependencies": { - "@types/react": "^18.0.0" + "@types/react": "^19.2.0" } }, "node_modules/@types/react-redux": { @@ -12798,13 +12797,10 @@ } }, "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.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", + "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } @@ -12864,16 +12860,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.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", + "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.2.0" } }, "node_modules/react-hook-form": { @@ -13611,13 +13606,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.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" }, "node_modules/semver": { "version": "6.3.1", diff --git a/package.json b/package.json index e34faf6..0c8f2e0 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", - "@gridsuite/commons-ui": "0.130.0", + "@gridsuite/commons-ui": "file:../commons-ui/gridsuite-commons-ui-0.131.0.tgz", "@hookform/resolvers": "^4.1.3", "@mui/icons-material": "^5.18.0", "@mui/lab": "5.0.0-alpha.175", @@ -30,8 +30,8 @@ "date-fns": "^4.1.0", "notistack": "^3.0.2", "oidc-client": "^1.11.5", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19.2.0", + "react-dom": "^19.2.0", "react-hook-form": "^7.62.0", "react-hook-form-mui": "^7.6.2", "react-intl": "^7.1.11", @@ -65,8 +65,8 @@ "@types/license-checker": "^25.0.6", "@types/node": "^22.18.1", "@types/prop-types": "^15.7.15", - "@types/react": "^18.3.24", - "@types/react-dom": "^18.3.7", + "@types/react": "^19.2.2", + "@types/react-dom": "^19.2.1", "@types/react-redux": "^7.1.34", "@types/react-window": "^1.8.8", "@typescript-eslint/eslint-plugin": "^6.21.0", diff --git a/src/pages/common/paper-form.tsx b/src/pages/common/paper-form.tsx index a7cc8c0..5a90ebd 100644 --- a/src/pages/common/paper-form.tsx +++ b/src/pages/common/paper-form.tsx @@ -12,7 +12,10 @@ import { Paper, PaperProps } from '@mui/material'; * is defined in without generics, which default to `PaperProps => PaperProps<'div'>`, * so we must trick typescript check with a cast */ -const PaperForm: FunctionComponent & { untypedProps?: PaperProps }> = (props, context) => { +const PaperForm: FunctionComponent & { untypedProps: PaperProps }> = (props: { + [x: string]: any; + untypedProps: PaperProps; +}) => { const { untypedProps, ...formProps } = props; const othersProps = untypedProps as PaperProps<'form'>; //trust me ts return ; diff --git a/src/pages/common/use-csv-export.tsx b/src/pages/common/use-csv-export.tsx index 1585f60..b16d77e 100644 --- a/src/pages/common/use-csv-export.tsx +++ b/src/pages/common/use-csv-export.tsx @@ -18,7 +18,7 @@ export function useCsvExport({ intl, language, }: { - gridRef: RefObject>; + gridRef: RefObject | null>; columns: ColDef[]; tableNameId: string; intl: IntlShape; diff --git a/src/pages/groups/add-group-dialog.tsx b/src/pages/groups/add-group-dialog.tsx index 559c8fa..5018b48 100644 --- a/src/pages/groups/add-group-dialog.tsx +++ b/src/pages/groups/add-group-dialog.tsx @@ -25,7 +25,7 @@ import { GridTableRef } from '../../components/Grid'; import PaperForm from '../common/paper-form'; export interface AddGroupDialogProps { - gridRef: RefObject>; + gridRef: RefObject | null>; open: boolean; setOpen: (open: boolean) => void; } diff --git a/src/pages/groups/groups-table.tsx b/src/pages/groups/groups-table.tsx index 6d8d718..b7a2c4a 100644 --- a/src/pages/groups/groups-table.tsx +++ b/src/pages/groups/groups-table.tsx @@ -21,7 +21,7 @@ import { useSelector } from 'react-redux'; import { AppState } from '../../redux/reducer'; export interface GroupsTableProps { - gridRef: RefObject>; + gridRef: RefObject | null>; onRowClicked: (event: RowClickedEvent) => void; setOpenAddGroupDialog: (open: boolean) => void; } diff --git a/src/pages/profiles/add-profile-dialog.tsx b/src/pages/profiles/add-profile-dialog.tsx index 2838597..b504f4f 100644 --- a/src/pages/profiles/add-profile-dialog.tsx +++ b/src/pages/profiles/add-profile-dialog.tsx @@ -25,7 +25,7 @@ import { GridTableRef } from '../../components/Grid'; import PaperForm from '../common/paper-form'; export interface AddProfileDialogProps { - gridRef: RefObject>; + gridRef: RefObject | null>; open: boolean; setOpen: (open: boolean) => void; } diff --git a/src/pages/profiles/profiles-table.tsx b/src/pages/profiles/profiles-table.tsx index ad1b69c..76df831 100644 --- a/src/pages/profiles/profiles-table.tsx +++ b/src/pages/profiles/profiles-table.tsx @@ -18,7 +18,7 @@ import ValidityCellRenderer from './validity-cell-renderer'; import { useTableSelection } from '../../utils/hooks'; export interface ProfilesTableProps { - gridRef: RefObject>; + gridRef: RefObject | null>; onRowClicked: (event: RowClickedEvent) => void; setOpenAddProfileDialog: (open: boolean) => void; } diff --git a/src/pages/users/add-user-dialog.tsx b/src/pages/users/add-user-dialog.tsx index 08e8bf1..96ff9bd 100644 --- a/src/pages/users/add-user-dialog.tsx +++ b/src/pages/users/add-user-dialog.tsx @@ -25,7 +25,7 @@ import { GridTableRef } from '../../components/Grid'; import PaperForm from '../common/paper-form'; export interface AddUserDialogProps { - gridRef: RefObject>; + gridRef: RefObject | null>; open: boolean; setOpen: (open: boolean) => void; } diff --git a/src/pages/users/users-table.tsx b/src/pages/users/users-table.tsx index f629d1c..5cf3ffa 100644 --- a/src/pages/users/users-table.tsx +++ b/src/pages/users/users-table.tsx @@ -21,7 +21,7 @@ import { AppState } from '../../redux/reducer'; import { useCsvExport } from '../common/use-csv-export'; export interface UsersTableProps { - gridRef: RefObject>; + gridRef: RefObject | null>; onRowClicked: (event: RowClickedEvent) => void; setOpenAddUserDialog: (open: boolean) => void; }