From f6dc644508791d07c958e583f05fea305f818ca5 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Fri, 12 Jun 2026 11:38:36 -0300 Subject: [PATCH 01/11] feat: upgrade React 18, MUI v9; fix call sites; apply text-field-props codemod - Bump react/react-dom to ^18.0.0, @types/react* to ^18.0.0 - Bump @testing-library/react to ^13.4.0 (React 18 compat) - Bump @mui/material and @mui/icons-material to ^9.0.0 - Bump @mui/x-date-pickers to ^9.0.0 - Replace ReactDOM.render with createRoot in src/index.js - Replace ReactDOM.render with createRoot in src/components/mui/showConfirmDialog.js - Replace Grid2 imports with Grid as Grid2 across ~60 files (Grid2 removed in v9) - Replace deprecated MailOutline icon with MailOutlined - Apply @mui/codemod deprecations/text-field-props (8 files changed) Co-Authored-By: Claude Sonnet 4.6 --- package.json | 18 +- .../__tests__/media-type-filter.test.js | 72 +++-- .../forms/sponsor-settings-form/index.js | 2 +- src/components/mui/RefundForm/index.jsx | 2 +- src/components/mui/showConfirmDialog.js | 10 +- src/index.js | 9 +- .../media-file-type-list-page.js | 5 +- .../speakers/summit-speakers-list-page.js | 2 +- .../page-template-document-download-module.js | 2 +- .../modules/page-template-info-module.js | 2 +- .../page-template-media-request-module.js | 2 +- src/pages/sponsors/sponsor-list-page.js | 8 +- .../tabs/sponsor-badge-scans/index.js | 2 +- .../badge-scan-settings.js | 2 +- .../sponsor-general-form/extra-questions.js | 2 +- .../sponsor-general-form/sponsor-header.js | 2 +- .../tabs/sponsor-general-form/sponsorship.js | 2 +- .../sponsor-order-details.js | 8 +- .../sponsor-users-list-per-sponsor/index.js | 2 +- .../components/users-table.js | 2 +- .../sponsors/sponsor-users-list-page/index.js | 2 +- .../sponsors/summit-sponsorship-list-page.js | 2 +- .../sponsorship-list-page.js | 2 +- src/pages/summits/summit-directory-page.js | 2 +- yarn.lock | 280 +++++++++--------- 25 files changed, 238 insertions(+), 206 deletions(-) diff --git a/package.json b/package.json index 2f3b04fbf..c4aaad5cd 100644 --- a/package.json +++ b/package.json @@ -39,9 +39,9 @@ "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", "@fontsource/roboto": "^5.1.1", - "@mui/icons-material": "^6.4.3", - "@mui/material": "^6.4.3", - "@mui/x-date-pickers": "^7.26.0", + "@mui/icons-material": "^9.0.0", + "@mui/material": "^9.0.0", + "@mui/x-date-pickers": "^9.0.0", "@react-pdf/renderer": "4.3.0", "@sentry/react": "^8.32.0", "@sentry/webpack-plugin": "^2.22.4", @@ -49,7 +49,7 @@ "@stripe/stripe-js": "^8.5.3", "@types/googlemaps": "^3.39.3", "@types/markerclustererplus": "^2.1.29", - "@types/react": "^16.9.32", + "@types/react": "^18.0.0", "@uiw/codemirror-theme-sublime": "^4.21.23", "@uiw/react-codemirror": "^4.21.7", "@uiw/react-color-sketch": "^2.1.0", @@ -92,14 +92,14 @@ "moment": "^2.29.1", "moment-duration-format": "^2.3.2", "moment-timezone": "^0.5.33", - "openstack-uicore-foundation": "5.0.34", + "openstack-uicore-foundation": "6.0.0-beta.4", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", "process": "^0.11.10", "prop-types": "^15.8.1", "qr-scanner": "^1.4.2", - "react": "^16.13.1", + "react": "^18.0.0", "react-accessible-treeview": "^2.6.2", "react-beautiful-dnd": "^13.1.1", "react-bootstrap": "^0.31.5", @@ -110,7 +110,7 @@ "react-device-detect": "^2.2.2", "react-dnd": "^16.0.0", "react-dnd-html5-backend": "^16.0.0", - "react-dom": "^16.13.1", + "react-dom": "^18.0.0", "react-dropzone": "^4.2.13", "react-final-form": "^6.5.9", "react-google-maps": "^9.4.5", @@ -148,9 +148,9 @@ "@babel/eslint-parser": "^7.24.7", "@testing-library/dom": "^10.1.0", "@testing-library/jest-dom": "^6.4.2", - "@testing-library/react": "12.1.5", + "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.5.2", - "@types/react-dom": "16.9.24", + "@types/react-dom": "^18.0.0", "babel-jest": "^30.3.0", "css-minimizer-webpack-plugin": "^4.2.2", "eslint": "8.2.0", diff --git a/src/components/filters/media-type-filter/__tests__/media-type-filter.test.js b/src/components/filters/media-type-filter/__tests__/media-type-filter.test.js index 6fb5e8a3d..a64719265 100644 --- a/src/components/filters/media-type-filter/__tests__/media-type-filter.test.js +++ b/src/components/filters/media-type-filter/__tests__/media-type-filter.test.js @@ -6,38 +6,46 @@ jest.mock("i18n-react/dist/i18n-react", () => ({ translate: (key) => key })); -jest.mock("react-select", () => function MockSelect({ id, value, options, onChange }) { - return ( - - ); - }); - -jest.mock("../../../inputs/media-upload-type-input", () => function MockMediaUploadTypeInput({ id, value, onChange }) { - return ( - onChange({ target: { value: e.target.value } })} - /> - ); - }); +jest.mock( + "react-select", + () => + function MockSelect({ id, value, options, onChange }) { + return ( + + ); + } +); + +jest.mock( + "../../../inputs/media-upload-type-input", + () => + function MockMediaUploadTypeInput({ id, value, onChange }) { + return ( + onChange({ target: { value: e.target.value } })} + /> + ); + } +); describe("MediaTypeFilter", () => { const baseProps = { diff --git a/src/components/forms/sponsor-settings-form/index.js b/src/components/forms/sponsor-settings-form/index.js index 358160da7..e57d4ae2f 100644 --- a/src/components/forms/sponsor-settings-form/index.js +++ b/src/components/forms/sponsor-settings-form/index.js @@ -15,7 +15,7 @@ import React from "react"; import T from "i18n-react/dist/i18n-react"; import { useFormik, FormikProvider } from "formik"; import * as yup from "yup"; -import { Box, Button, Grid2 } from "@mui/material"; +import { Box, Button, Grid as Grid2 } from "@mui/material"; import { epochToMomentTimeZone } from "openstack-uicore-foundation/lib/utils/methods"; import MuiFormikDatepicker from "openstack-uicore-foundation/lib/components/mui/formik-inputs/datepicker"; import MuiFormikTextField from "../../mui/formik-inputs/mui-formik-textfield"; diff --git a/src/components/mui/RefundForm/index.jsx b/src/components/mui/RefundForm/index.jsx index ca586e031..00f78dcf1 100644 --- a/src/components/mui/RefundForm/index.jsx +++ b/src/components/mui/RefundForm/index.jsx @@ -15,7 +15,7 @@ import React from "react"; import T from "i18n-react/dist/i18n-react"; import { FormikProvider, useFormik } from "formik"; import * as yup from "yup"; -import { Box, Button, Grid2 } from "@mui/material"; +import { Box, Button, Grid as Grid2 } from "@mui/material"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiFormikPriceField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/price-field"; import InfoNote from "openstack-uicore-foundation/lib/components/mui/info-note"; diff --git a/src/components/mui/showConfirmDialog.js b/src/components/mui/showConfirmDialog.js index ee3a368fd..effb06c0a 100644 --- a/src/components/mui/showConfirmDialog.js +++ b/src/components/mui/showConfirmDialog.js @@ -1,4 +1,4 @@ -import ReactDOM from "react-dom"; +import { createRoot } from "react-dom/client"; import React from "react"; import ConfirmDialog from "./confirm-dialog"; @@ -14,9 +14,10 @@ const showConfirmDialog = ({ new Promise((resolve) => { const container = document.createElement("div"); document.body.appendChild(container); + const root = createRoot(container); const close = (answer) => { - ReactDOM.unmountComponentAtNode(container); + root.unmount(); container.remove(); resolve(answer); }; @@ -24,7 +25,7 @@ const showConfirmDialog = ({ const handleConfirm = () => close(true); const handleCancel = () => close(false); - ReactDOM.render( + root.render( , - container + /> ); }); diff --git a/src/index.js b/src/index.js index 0be5b3a68..8f9aa63b0 100644 --- a/src/index.js +++ b/src/index.js @@ -12,7 +12,7 @@ * */ import React from "react"; -import ReactDOM from "react-dom"; +import { createRoot } from "react-dom/client"; import { Provider } from "react-redux"; import { PersistGate } from "redux-persist/es/integration/react"; import { GlobalConfirmDialog } from "openstack-uicore-foundation/lib/components/mui/show-confirm-dialog"; @@ -30,7 +30,9 @@ const onBeforeLift = () => { console.log("reading state ..."); }; -ReactDOM.render( +const container = document.querySelector("#root"); +const root = createRoot(container); +root.render( @@ -40,6 +42,5 @@ ReactDOM.render( - , - document.querySelector("#root") + ); diff --git a/src/pages/media_file_types/media-file-type-list-page.js b/src/pages/media_file_types/media-file-type-list-page.js index d8e90ae8e..fda64515e 100644 --- a/src/pages/media_file_types/media-file-type-list-page.js +++ b/src/pages/media_file_types/media-file-type-list-page.js @@ -14,7 +14,7 @@ import React, { useEffect, useState } from "react"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; -import { Box, Button, Grid2 } from "@mui/material"; +import { Box, Button, Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; import SearchInput from "openstack-uicore-foundation/lib/components/mui/search-input"; @@ -85,7 +85,8 @@ const MediaFileTypeListPage = ({ setOpen(false); }; - const handleSave = (entity) => saveMediaFileType(entity) + const handleSave = (entity) => + saveMediaFileType(entity) .then(() => getMediaFileTypes(term, DEFAULT_CURRENT_PAGE, perPage, order, orderDir) ) diff --git a/src/pages/speakers/summit-speakers-list-page.js b/src/pages/speakers/summit-speakers-list-page.js index b63806699..58c4e8ac5 100644 --- a/src/pages/speakers/summit-speakers-list-page.js +++ b/src/pages/speakers/summit-speakers-list-page.js @@ -14,7 +14,7 @@ import React, { useEffect } from "react"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; -import { Box, Button, Grid2 } from "@mui/material"; +import { Box, Button, Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; import SearchInput from "openstack-uicore-foundation/lib/components/mui/search-input"; diff --git a/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-document-download-module.js b/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-document-download-module.js index 64945f2be..4474e5678 100644 --- a/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-document-download-module.js +++ b/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-document-download-module.js @@ -2,7 +2,7 @@ import React from "react"; import PropTypes from "prop-types"; import T from "i18n-react/dist/i18n-react"; import { useField } from "formik"; -import { Divider, Grid2, InputLabel } from "@mui/material"; +import { Divider, Grid as Grid2, InputLabel } from "@mui/material"; import MuiFormikUpload from "openstack-uicore-foundation/lib/components/mui/formik-inputs/upload"; import MuiFormikTextField from "../../../../../components/mui/formik-inputs/mui-formik-textfield"; import { PAGE_MODULES_DOWNLOAD } from "../../../../../utils/constants"; diff --git a/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-info-module.js b/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-info-module.js index 175d4e878..0c0de92ce 100644 --- a/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-info-module.js +++ b/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-info-module.js @@ -1,7 +1,7 @@ import React from "react"; import PropTypes from "prop-types"; import T from "i18n-react/dist/i18n-react"; -import { Grid2, Box, InputLabel } from "@mui/material"; +import { Grid as Grid2, Box, InputLabel } from "@mui/material"; import FormikTextEditor from "../../../../../components/inputs/formik-text-editor"; diff --git a/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-media-request-module.js b/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-media-request-module.js index 72f11853e..1df8e1a70 100644 --- a/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-media-request-module.js +++ b/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-media-request-module.js @@ -3,7 +3,7 @@ import PropTypes from "prop-types"; import T from "i18n-react/dist/i18n-react"; import { connect } from "react-redux"; import { getIn, useFormikContext } from "formik"; -import { Divider, Grid2, InputLabel, MenuItem } from "@mui/material"; +import { Divider, Grid as Grid2, InputLabel, MenuItem } from "@mui/material"; import MuiFormikDatepicker from "openstack-uicore-foundation/lib/components/mui/formik-inputs/datepicker"; import MuiFormikTextField from "../../../../../components/mui/formik-inputs/mui-formik-textfield"; import MuiFormikRadioGroup from "../../../../../components/mui/formik-inputs/mui-formik-radio-group"; diff --git a/src/pages/sponsors/sponsor-list-page.js b/src/pages/sponsors/sponsor-list-page.js index 15e20d6a4..5514f6aaf 100644 --- a/src/pages/sponsors/sponsor-list-page.js +++ b/src/pages/sponsors/sponsor-list-page.js @@ -14,7 +14,13 @@ import React, { useEffect, useState } from "react"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; -import { Button, Grid2, Typography, Badge, Tooltip } from "@mui/material"; +import { + Button, + Grid as Grid2, + Typography, + Badge, + Tooltip +} from "@mui/material"; import Box from "@mui/material/Box"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-badge-scans/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-badge-scans/index.js index ec53bcb19..224cac72f 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-badge-scans/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-badge-scans/index.js @@ -14,7 +14,7 @@ import React, { useEffect, useState } from "react"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; -import { Box, Button, Grid2 } from "@mui/material"; +import { Box, Button, Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import DownloadIcon from "@mui/icons-material/Download"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/badge-scan-settings.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/badge-scan-settings.js index fdd353f77..b9d0b923f 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/badge-scan-settings.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/badge-scan-settings.js @@ -13,7 +13,7 @@ import React from "react"; import T from "i18n-react/dist/i18n-react"; -import { Box, Divider, Grid2, Typography } from "@mui/material"; +import { Box, Divider, Grid as Grid2, Typography } from "@mui/material"; import Member from "../../../../../models/member"; import ChipSelectInput from "../../../../../components/mui/chip-select-input"; import { diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/extra-questions.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/extra-questions.js index 6fa3703f6..ad5fbe7dd 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/extra-questions.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/extra-questions.js @@ -13,7 +13,7 @@ import React, { useState, useEffect } from "react"; import T from "i18n-react/dist/i18n-react"; -import { Box, Button, Divider, Grid2, Typography } from "@mui/material"; +import { Box, Button, Divider, Grid as Grid2, Typography } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTableSortable from "openstack-uicore-foundation/lib/components/mui/sortable-table"; import { diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/sponsor-header.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/sponsor-header.js index 7c84a764d..b390ac4ca 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/sponsor-header.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/sponsor-header.js @@ -13,7 +13,7 @@ import React from "react"; import T from "i18n-react/dist/i18n-react"; -import { Box, Divider, Grid2, Typography } from "@mui/material"; +import { Box, Divider, Grid as Grid2, Typography } from "@mui/material"; const SponsorHeader = ({ sponsor }) => ( diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/sponsorship.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/sponsorship.js index 2b3ccbd75..be2ab29b4 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/sponsorship.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/sponsorship.js @@ -13,7 +13,7 @@ import React, { useState } from "react"; import T from "i18n-react/dist/i18n-react"; -import { Box, Button, Grid2, Typography } from "@mui/material"; +import { Box, Button, Grid as Grid2, Typography } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; import AddTierPopup from "./add-tier-popup"; diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/sponsor-order-details.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/sponsor-order-details.js index 97dbc1e9f..0b8e5903b 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/sponsor-order-details.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/sponsor-order-details.js @@ -14,7 +14,13 @@ import React, { useEffect } from "react"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; -import { Box, Card, CardContent, Grid2, Typography } from "@mui/material"; +import { + Box, + Card, + CardContent, + Grid as Grid2, + Typography +} from "@mui/material"; import { ListCard } from "openstack-uicore-foundation/lib/components/mui/cards"; import SponsorOrderGrid from "openstack-uicore-foundation/lib/components/mui/sponsor-order-grid"; import { diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/index.js index 14e38a095..96f5d23cf 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/index.js @@ -14,7 +14,7 @@ import React, { useEffect, useRef, useState } from "react"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; -import { Box, Button, Grid2 } from "@mui/material"; +import { Box, Button, Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import SaveAltIcon from "@mui/icons-material/SaveAlt"; import SearchInput from "openstack-uicore-foundation/lib/components/mui/search-input"; diff --git a/src/pages/sponsors/sponsor-users-list-page/components/users-table.js b/src/pages/sponsors/sponsor-users-list-page/components/users-table.js index fc85ead9f..ee461aedc 100644 --- a/src/pages/sponsors/sponsor-users-list-page/components/users-table.js +++ b/src/pages/sponsors/sponsor-users-list-page/components/users-table.js @@ -1,7 +1,7 @@ import React from "react"; import T from "i18n-react"; import { IconButton } from "@mui/material"; -import MailOutlineIcon from "@mui/icons-material/MailOutline"; +import MailOutlineIcon from "@mui/icons-material/MailOutlined"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; import ChipList from "../../../../components/mui/chip-list"; import { titleCase } from "../../../../utils/methods"; diff --git a/src/pages/sponsors/sponsor-users-list-page/index.js b/src/pages/sponsors/sponsor-users-list-page/index.js index 946917fe5..428b2e051 100644 --- a/src/pages/sponsors/sponsor-users-list-page/index.js +++ b/src/pages/sponsors/sponsor-users-list-page/index.js @@ -15,7 +15,7 @@ import React, { useEffect, useState } from "react"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; import { Breadcrumb } from "react-breadcrumbs"; -import { Box, Button, Grid2 } from "@mui/material"; +import { Box, Button, Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import SaveAltIcon from "@mui/icons-material/SaveAlt"; import SearchInput from "openstack-uicore-foundation/lib/components/mui/search-input"; diff --git a/src/pages/sponsors/summit-sponsorship-list-page.js b/src/pages/sponsors/summit-sponsorship-list-page.js index 684870fa7..c0943ffdf 100644 --- a/src/pages/sponsors/summit-sponsorship-list-page.js +++ b/src/pages/sponsors/summit-sponsorship-list-page.js @@ -14,7 +14,7 @@ import React, { useEffect, useState } from "react"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; -import { Alert, Box, Button, Grid2 } from "@mui/material"; +import { Alert, Box, Button, Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTableSortable from "openstack-uicore-foundation/lib/components/mui/sortable-table"; import { getSummitById } from "../../actions/summit-actions"; diff --git a/src/pages/sponsorship-types/sponsorship-list-page.js b/src/pages/sponsorship-types/sponsorship-list-page.js index 66854a359..88b3c5e3c 100644 --- a/src/pages/sponsorship-types/sponsorship-list-page.js +++ b/src/pages/sponsorship-types/sponsorship-list-page.js @@ -14,7 +14,7 @@ import React, { useEffect, useState } from "react"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; -import { Box, Button, Grid2 } from "@mui/material"; +import { Box, Button, Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; import SearchInput from "openstack-uicore-foundation/lib/components/mui/search-input"; diff --git a/src/pages/summits/summit-directory-page.js b/src/pages/summits/summit-directory-page.js index f5d84a303..41b7c3593 100644 --- a/src/pages/summits/summit-directory-page.js +++ b/src/pages/summits/summit-directory-page.js @@ -23,7 +23,7 @@ import Checkbox from "@mui/material/Checkbox"; import Chip from "@mui/material/Chip"; import FormControlLabel from "@mui/material/FormControlLabel"; import FormGroup from "@mui/material/FormGroup"; -import Grid2 from "@mui/material/Grid2"; +import { Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import { loadSummits, diff --git a/yarn.lock b/yarn.lock index 65edb106d..edf14cb87 100644 --- a/yarn.lock +++ b/yarn.lock @@ -979,11 +979,16 @@ "@babel/plugin-transform-react-jsx-development" "^7.27.1" "@babel/plugin-transform-react-pure-annotations" "^7.27.1" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.25.7", "@babel/runtime@^7.26.0", "@babel/runtime@^7.28.6", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.29.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.2.tgz#9a6e2d05f4b6692e1801cd4fb176ad823930ed5e" integrity sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g== +"@babel/runtime@^7.29.2", "@babel/runtime@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" + integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== + "@babel/template@^7.28.6": version "7.28.6" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57" @@ -1243,7 +1248,7 @@ find-root "^1.1.0" source-map "^0.7.2" -"@emotion/cache@^11.13.5", "@emotion/cache@^11.14.0": +"@emotion/cache@^11.14.0": version "11.14.0" resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.14.0.tgz#ee44b26986eeb93c8be82bb92f1f7a9b21b2ed76" integrity sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA== @@ -1972,127 +1977,136 @@ resolved "https://registry.yarnpkg.com/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz#775374306116d51c0c500b8c4face0f9a04752d8" integrity sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g== -"@mui/core-downloads-tracker@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-6.5.0.tgz#e9f7049d7e7bb1ee05839f7a0ce813755f137432" - integrity sha512-LGb8t8i6M2ZtS3Drn3GbTI1DVhDY6FJ9crEey2lZ0aN2EMZo8IZBZj9wRf4vqbZHaWjsYgtbOnJw5V8UWbmK2Q== +"@mui/core-downloads-tracker@^9.1.1": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-9.1.1.tgz#3458d10b3b3d2b1925a3db44a2950ef418d336f0" + integrity sha512-AupmMICbdJHqAh6FfOMaaiiIr7dfEgZJn5DFfiPuGNrbs+ZZy9cD1APwO0TSVBz5j08MJEEY6n7iC76/2wjMEA== -"@mui/icons-material@^6.4.3": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-6.5.0.tgz#26bfa7c8574cc4e57c2f2835bfd6b1efa7f310fa" - integrity sha512-VPuPqXqbBPlcVSA0BmnoE4knW4/xG6Thazo8vCLWkOKusko6DtwFV6B665MMWJ9j0KFohTIf3yx2zYtYacvG1g== +"@mui/icons-material@^9.0.0": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-9.1.1.tgz#d88c728d36f1af536636b3b25bbad32cfb9480ae" + integrity sha512-OXhm9DajemStb58AumM06DuPhHTa3XD36TFD4yf6WtJyNRO5DfEZbbnHlBg/US2Y2oOXwM/XurMTBOD6L/YYZw== dependencies: - "@babel/runtime" "^7.26.0" + "@babel/runtime" "^7.29.2" -"@mui/material@^6.4.3": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-6.5.0.tgz#c7eccfe260030433c51b7aec17574bae4504cacc" - integrity sha512-yjvtXoFcrPLGtgKRxFaH6OQPtcLPhkloC0BML6rBG5UeldR0nPULR/2E2BfXdo5JNV7j7lOzrrLX2Qf/iSidow== +"@mui/material@^9.0.0": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-9.1.1.tgz#c999d4499fc3d9700353e34aba010e2e52fa6a02" + integrity sha512-Wv+gInjrpf99l1Q0oHe0eOWGTnlbkzs5nowClX65KCT/2fyPMwcbFEEkUsOHdpcHhB5UAbz/d7jlwt5ajWVvlA== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/core-downloads-tracker" "^6.5.0" - "@mui/system" "^6.5.0" - "@mui/types" "~7.2.24" - "@mui/utils" "^6.4.9" + "@babel/runtime" "^7.29.2" + "@mui/core-downloads-tracker" "^9.1.1" + "@mui/system" "^9.1.1" + "@mui/types" "^9.1.1" + "@mui/utils" "^9.1.1" "@popperjs/core" "^2.11.8" "@types/react-transition-group" "^4.4.12" clsx "^2.1.1" - csstype "^3.1.3" + csstype "^3.2.3" prop-types "^15.8.1" - react-is "^19.0.0" + react-is "^19.2.6" react-transition-group "^4.4.5" -"@mui/private-theming@^6.4.9": - version "6.4.9" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-6.4.9.tgz#0c1d65a638a1740aad0eb715d79e76471abe8175" - integrity sha512-LktcVmI5X17/Q5SkwjCcdOLBzt1hXuc14jYa7NPShog0GBDCDvKtcnP0V7a2s6EiVRlv7BzbWEJzH6+l/zaCxw== +"@mui/private-theming@^9.1.1": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-9.1.1.tgz#bcc6d45d4e7daf1a2637844c64ba692c93ce320a" + integrity sha512-oH6c+d6sJ1CZT0Vg2/fHdUQ5zvo9Pn+f+WWk0tlQliHqqIRdN32DZ7UxjalW3LUj4OkHbdWR31biWuLxK9i7Cg== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/utils" "^6.4.9" + "@babel/runtime" "^7.29.2" + "@mui/utils" "^9.1.1" prop-types "^15.8.1" -"@mui/styled-engine@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-6.5.0.tgz#cf9b3e706517f5f2989df92d2aea0d2917a77c8a" - integrity sha512-8woC2zAqF4qUDSPIBZ8v3sakj+WgweolpyM/FXf8jAx6FMls+IE4Y8VDZc+zS805J7PRz31vz73n2SovKGaYgw== +"@mui/styled-engine@^9.1.1": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-9.1.1.tgz#7bb71bcab4b00d1e2488f9bff87e6bab2164ca87" + integrity sha512-neaYKdJfvEG54q8efHLJR7swpHG/gfSv9xGqW5iTSMsubD7yPCPFrhVBt284j1DOF3uZaaDJSHQL7gz6jGF21Q== dependencies: - "@babel/runtime" "^7.26.0" - "@emotion/cache" "^11.13.5" + "@babel/runtime" "^7.29.2" + "@emotion/cache" "^11.14.0" "@emotion/serialize" "^1.3.3" "@emotion/sheet" "^1.4.0" - csstype "^3.1.3" + csstype "^3.2.3" prop-types "^15.8.1" -"@mui/system@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-6.5.0.tgz#52751ac4e3a546f53bc34fd2ef2731c28a824b92" - integrity sha512-XcbBYxDS+h/lgsoGe78ExXFZXtuIlSBpn/KsZq8PtZcIkUNJInkuDqcLd2rVBQrDC1u+rvVovdaWPf2FHKJf3w== +"@mui/system@^9.1.1": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-9.1.1.tgz#43628192fc6a2f9c909bbe2e815b47dcf7519d0e" + integrity sha512-q+aqNa58QZUwmmyUvJKKrStrej+4BcWFw4M0Ug+zRylPIQgR64cqvBnE3QTfLZm4OXulydp8Hl3zwKxMayrdsA== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/private-theming" "^6.4.9" - "@mui/styled-engine" "^6.5.0" - "@mui/types" "~7.2.24" - "@mui/utils" "^6.4.9" + "@babel/runtime" "^7.29.2" + "@mui/private-theming" "^9.1.1" + "@mui/styled-engine" "^9.1.1" + "@mui/types" "^9.1.1" + "@mui/utils" "^9.1.1" clsx "^2.1.1" - csstype "^3.1.3" + csstype "^3.2.3" prop-types "^15.8.1" -"@mui/types@^7.4.12": - version "7.4.12" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.4.12.tgz#e4eba37a7506419ea5c5e0604322ba82b271bf46" - integrity sha512-iKNAF2u9PzSIj40CjvKJWxFXJo122jXVdrmdh0hMYd+FR+NuJMkr/L88XwWLCRiJ5P1j+uyac25+Kp6YC4hu6w== +"@mui/types@^9.0.0", "@mui/types@^9.1.1": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-9.1.1.tgz#38b6d59b85943bc2a9737a1afc2d06f7f82939ae" + integrity sha512-Zjt7u8wNvDg40rPTGoL+TnfkpuSKjwubsNSFRH1KAVZLcaV4I3AFNHIFbvH7p4F3alEibSbdd90xAgn5Rnfndg== dependencies: - "@babel/runtime" "^7.28.6" + "@babel/runtime" "^7.29.2" -"@mui/types@~7.2.24": - version "7.2.24" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.24.tgz#5eff63129d9c29d80bbf2d2e561bd0690314dec2" - integrity sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw== +"@mui/utils@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-9.0.0.tgz#25b563ccbf537feba5f89c37a00cb8e6eea45ad0" + integrity sha512-bQcqyg/gjULUqTuyUjSAFr6LQGLvtkNtDbJerAtoUn9kGZ0hg5QJiN1PLHMLbeFpe3te1831uq7GFl2ITokGdg== + dependencies: + "@babel/runtime" "^7.29.2" + "@mui/types" "^9.0.0" + "@types/prop-types" "^15.7.15" + clsx "^2.1.1" + prop-types "^15.8.1" + react-is "^19.2.4" -"@mui/utils@^5.16.6 || ^6.0.0 || ^7.0.0": - version "7.3.10" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-7.3.10.tgz#b74050131ca9022c0815d16f54f1a6d757ab343d" - integrity sha512-7y2eIfy0h7JPz+Yy4pS+wgV68d46PuuxDqKBN4Q8VlPQSsCAGwroMCV6xWyc7g9dvEp8ZNFsknc59GHWO+r6Ow== +"@mui/utils@9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-9.0.1.tgz#044c89f0f7e61e77f82f9496535744fc5d5a5128" + integrity sha512-f3UO3jNN1pYg5zxqXC81Bvv8hx5ACcYc0387382ZI7M5ono1heIwHYLrKsz85myguWdeVKPRZGmDdynWUBjK2g== dependencies: - "@babel/runtime" "^7.28.6" - "@mui/types" "^7.4.12" + "@babel/runtime" "^7.29.2" + "@mui/types" "^9.0.0" "@types/prop-types" "^15.7.15" clsx "^2.1.1" prop-types "^15.8.1" - react-is "^19.2.3" + react-is "^19.2.4" -"@mui/utils@^6.4.9": - version "6.4.9" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-6.4.9.tgz#b0df01daa254c7c32a1a30b30a5179e19ef071a7" - integrity sha512-Y12Q9hbK9g+ZY0T3Rxrx9m2m10gaphDuUMgWxyV5kNJevVxXYCLclYUCC9vXaIk1/NdNDTcW2Yfr2OGvNFNmHg== +"@mui/utils@^9.1.1": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-9.1.1.tgz#94dbb62dbaadad0d890ca0501838ce578d17da04" + integrity sha512-qSNfnkzZMptaaWFFklpDf4NPJztgwsMDVfM/sSDt+wq4ssYSBhLYwwjuB6eS/+p2IUYbeRzHluzXbw0Zn7aI4A== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/types" "~7.2.24" - "@types/prop-types" "^15.7.14" + "@babel/runtime" "^7.29.2" + "@mui/types" "^9.1.1" + "@types/prop-types" "^15.7.15" clsx "^2.1.1" prop-types "^15.8.1" - react-is "^19.0.0" + react-is "^19.2.6" -"@mui/x-date-pickers@^7.26.0": - version "7.29.4" - resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-7.29.4.tgz#b8808cb8e28c1d4e528b37b336effc8074e65faf" - integrity sha512-wJ3tsqk/y6dp+mXGtT9czciAMEO5Zr3IIAHg9x6IL0Eqanqy0N3chbmQQZv3iq0m2qUpQDLvZ4utZBUTJdjNzw== +"@mui/x-date-pickers@^9.0.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-9.5.0.tgz#d8b2d07adaf97f5a8abb9e7fc1e3bb32ad0a4b8f" + integrity sha512-Pzd8gU2qOoIAUMMesjbrq3gFs6akWXcSsEkFIHVA4dtuoh6SeWISu+WR+ymq/sBOcn2tk9IBIjqRQkqLhkm+tg== dependencies: - "@babel/runtime" "^7.25.7" - "@mui/utils" "^5.16.6 || ^6.0.0 || ^7.0.0" - "@mui/x-internals" "7.29.0" - "@types/react-transition-group" "^4.4.11" + "@babel/runtime" "^7.29.7" + "@mui/utils" "9.0.1" + "@mui/x-internals" "^9.1.0" + "@types/react-transition-group" "^4.4.12" clsx "^2.1.1" prop-types "^15.8.1" react-transition-group "^4.4.5" -"@mui/x-internals@7.29.0": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@mui/x-internals/-/x-internals-7.29.0.tgz#1f353b697ed1bf5594ac549556ade2e6841f4bf5" - integrity sha512-+Gk6VTZIFD70XreWvdXBwKd8GZ2FlSCuecQFzm6znwqXg1ZsndavrhG9tkxpxo2fM1Zf7Tk8+HcOO0hCbhTQFA== +"@mui/x-internals@^9.1.0": + version "9.1.0" + resolved "https://registry.yarnpkg.com/@mui/x-internals/-/x-internals-9.1.0.tgz#d8429e7bb8874fc1d24f305d6610be29599fdf56" + integrity sha512-fVezTa1lU+Hb3y9UMI8D/iWXADhs0I8PaZqoh2LOUXjGEUJmKqwsRD19ZXInZsH2yu+YS0dqYMPDvzjYTTyo+Q== dependencies: - "@babel/runtime" "^7.25.7" - "@mui/utils" "^5.16.6 || ^6.0.0 || ^7.0.0" + "@babel/runtime" "^7.29.2" + "@mui/utils" "9.0.0" + reselect "^5.1.1" + use-sync-external-store "^1.6.0" "@napi-rs/wasm-runtime@^0.2.11": version "0.2.12" @@ -2663,7 +2677,7 @@ picocolors "1.1.1" pretty-format "^27.0.2" -"@testing-library/dom@^8.0.0": +"@testing-library/dom@^8.5.0": version "8.20.1" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.1.tgz#2e52a32e46fc88369eef7eef634ac2a192decd9f" integrity sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g== @@ -2689,14 +2703,14 @@ picocolors "^1.1.1" redent "^3.0.0" -"@testing-library/react@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b" - integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg== +"@testing-library/react@^13.4.0": + version "13.4.0" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-13.4.0.tgz#6a31e3bf5951615593ad984e96b9e5e2d9380966" + integrity sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw== dependencies: "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^8.0.0" - "@types/react-dom" "<18.0.0" + "@testing-library/dom" "^8.5.0" + "@types/react-dom" "^18.0.0" "@testing-library/user-event@^14.5.2": version "14.6.1" @@ -2985,7 +2999,7 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== -"@types/prop-types@*", "@types/prop-types@^15.7.14", "@types/prop-types@^15.7.15": +"@types/prop-types@*", "@types/prop-types@^15.7.15": version "15.7.15" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.15.tgz#e6e5a86d602beaca71ce5163fadf5f95d70931c7" integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== @@ -3000,17 +3014,10 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react-dom@16.9.24": - version "16.9.24" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.24.tgz#4d193d7d011267fca842e8a10a2d738f92ec5c30" - integrity sha512-Gcmq2JTDheyWn/1eteqyzzWKSqDjYU6KYsIvH7thb7CR5OYInAWOX+7WnKf6PaU/cbdOc4szJItcDEJO7UGmfA== - dependencies: - "@types/react" "^16" - -"@types/react-dom@<18.0.0": - version "17.0.26" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.26.tgz#fa7891ba70fd39ddbaa7e85b6ff9175bb546bc1b" - integrity sha512-Z+2VcYXJwOqQ79HreLU/1fyQ88eXSSFh6I3JdrEHQIfYSI0kCQpTGvOrbE6jFGGYXKsHuwY9tBa/w5Uo6KzrEg== +"@types/react-dom@^18.0.0": + version "18.3.7" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.7.tgz#b89ddf2cd83b4feafcc4e2ea41afdfb95a0d194f" + integrity sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ== "@types/react-redux@^7.1.20": version "7.1.34" @@ -3022,7 +3029,7 @@ hoist-non-react-statics "^3.3.0" redux "^4.0.0" -"@types/react-transition-group@^4.4.11", "@types/react-transition-group@^4.4.12": +"@types/react-transition-group@^4.4.12": version "4.4.12" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044" integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w== @@ -3034,13 +3041,12 @@ dependencies: csstype "^3.2.2" -"@types/react@^16", "@types/react@^16.9.32": - version "16.14.69" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.69.tgz#5e4a0a70bdeca9e64498e1a7f2d7f2b06b881b09" - integrity sha512-NdnAamzkxLX9LBssSdt9Q0tQ3LR94hYxotI4/sRUs1vHKFXaDx9xDbK8S4wuw5bwrxiiXbTYyhKeITtFnwDvEA== +"@types/react@^18.0.0": + version "18.3.31" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.31.tgz#b5e95e28ffcceab8d982f33f2eb076e17653c2a4" + integrity sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw== dependencies: "@types/prop-types" "*" - "@types/scheduler" "^0.16" csstype "^3.2.2" "@types/responselike@^1.0.0": @@ -3055,11 +3061,6 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== -"@types/scheduler@^0.16": - version "0.16.8" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" - integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== - "@types/send@*": version "1.2.1" resolved "https://registry.yarnpkg.com/@types/send/-/send-1.2.1.tgz#6a784e45543c18c774c049bff6d3dbaf045c9c74" @@ -5102,7 +5103,7 @@ csstype@^2.5.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== -csstype@^3.0.2, csstype@^3.1.3, csstype@^3.2.2: +csstype@^3.0.2, csstype@^3.2.2, csstype@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== @@ -9056,10 +9057,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.34: - version "5.0.34" - resolved "https://registry.npmjs.org/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.34.tgz#28345b0c4338f6a24237862864236d989129c85b" - integrity sha512-gVvfJn7DtKC4s/2HRCOnCqiLFZqWL+P3+Wh0jnNQpGurUrk6UrC2lTkYZ6Vw2W/qqJeJwWjus7rG17+Ff32LaA== +openstack-uicore-foundation@6.0.0-beta.4: + version "6.0.0-beta.4" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-6.0.0-beta.4.tgz#c43b12e2de68f23ccab4901f1c90e4774890054b" + integrity sha512-dJ83PKG9LToVL+vAT/roctCmqvL1PtyZ5FtMojG/zp6ZacYs+c76bnby6kaBBwKviFzUQ9qbT5DBSD9XT6tWNg== dependencies: use-sync-external-store "^1.6.0" @@ -9961,15 +9962,13 @@ react-dnd@^16.0.0: fast-deep-equal "^3.1.3" hoist-non-react-statics "^3.3.2" -react-dom@^16.13.1: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" - integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== +react-dom@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" + scheduler "^0.23.2" react-dropzone@^4.2.13: version "4.3.0" @@ -10030,10 +10029,10 @@ react-is@^18.3.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -react-is@^19.0.0, react-is@^19.2.3: - version "19.2.5" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.2.5.tgz#7e7b54143e9313fed787b23fd4295d5a23872ad9" - integrity sha512-Dn0t8IQhCmeIT3wu+Apm1/YVsJXsGWi6k4sPdnBIdqMVtHtv0IGi6dcpNpNkNac0zB2uUAqNX3MHzN8c+z2rwQ== +react-is@^19.2.4, react-is@^19.2.6: + version "19.2.7" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.2.7.tgz#57668ee86a78574a542b0a539455212b2c086df2" + integrity sha512-kZFnouyVv7eP/Phmrlo9FK+zcAdriZJvzxXHF1Sl1P377WSGe2G/JxVolhTrB/jeV47lKImhNUsijjHAAbcl/A== react-lifecycles-compat@^3.0.4: version "3.0.4" @@ -10182,7 +10181,7 @@ react-window@^1.8.10: "@babel/runtime" "^7.0.0" memoize-one ">=3.1.1 <6" -react@^16.1.0, react@^16.13.1: +react@^16.1.0: version "16.14.0" resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== @@ -10191,6 +10190,13 @@ react@^16.1.0, react@^16.13.1: object-assign "^4.1.1" prop-types "^15.6.2" +react@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + readable-stream@^2.0.1, readable-stream@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" @@ -10387,6 +10393,11 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== +reselect@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-5.2.0.tgz#f380ef7664332d26ea06c1cba04bdbbdcaa955f1" + integrity sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw== + resolve-alpn@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -10579,13 +10590,12 @@ scheduler@0.25.0-rc-603e6108-20241029: resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0-rc-603e6108-20241029.tgz#684dd96647e104d23e0d29a37f18937daf82df19" integrity sha512-pFwF6H1XrSdYYNLfOcGlM28/j8CGLu8IvdrxqhjWULe2bPcKiKW4CV+OWqR/9fT52mywx65l7ysNkjLKBda7eA== -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" schema-utils@^2.6.5: version "2.7.1" From c5c2d6f5fafdbfdb7c7351c7a52a3a8a387918db Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Fri, 12 Jun 2026 11:41:27 -0300 Subject: [PATCH 02/11] chore(codemod): apply @mui/codemod deprecations/autocomplete-props 12 files changed (4 Autocomplete source files + test snapshots). Co-Authored-By: Claude Sonnet 4.6 --- src/components/mui/formik-inputs/company-input-mui.js | 7 +++++-- .../mui/formik-inputs/mui-formik-async-select.js | 7 +++++-- src/components/mui/formik-inputs/mui-sponsor-input.js | 7 +++++-- src/components/mui/formik-inputs/sponsorship-input-mui.js | 7 +++++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/components/mui/formik-inputs/company-input-mui.js b/src/components/mui/formik-inputs/company-input-mui.js index 301a451a0..86a218fd7 100644 --- a/src/components/mui/formik-inputs/company-input-mui.js +++ b/src/components/mui/formik-inputs/company-input-mui.js @@ -172,18 +172,21 @@ const CompanyInputMUI = ({ error={Boolean(error)} helperText={error || ""} slotProps={{ - ...params.InputProps, + ...params.slotProps, + ...params.slotProps.input, inputLabel: { shrink: false }, + sx: { "& input::placeholder": { color: "#00000061", opacity: 1 } }, + endAdornment: ( <> {loading && } - {params.InputProps?.endAdornment} + {params.slotProps.input?.endAdornment} ) }} diff --git a/src/components/mui/formik-inputs/mui-formik-async-select.js b/src/components/mui/formik-inputs/mui-formik-async-select.js index 852417e1a..3357a440c 100644 --- a/src/components/mui/formik-inputs/mui-formik-async-select.js +++ b/src/components/mui/formik-inputs/mui-formik-async-select.js @@ -95,15 +95,18 @@ const MuiFormikAsyncAutocomplete = ({ error={Boolean(error)} helperText={error || ""} slotProps={{ + ...params.slotProps, + input: { - ...params.InputProps, + ...params.slotProps.input, endAdornment: ( <> {loading && } - {params.InputProps?.endAdornment} + {params.slotProps.input?.endAdornment} ) }, + inputLabel: { shrink: false } }} sx={{ diff --git a/src/components/mui/formik-inputs/mui-sponsor-input.js b/src/components/mui/formik-inputs/mui-sponsor-input.js index a3f818e28..eb29fb782 100644 --- a/src/components/mui/formik-inputs/mui-sponsor-input.js +++ b/src/components/mui/formik-inputs/mui-sponsor-input.js @@ -133,18 +133,21 @@ const MuiSponsorInput = ({ error={Boolean(error)} helperText={errorMessage || ""} slotProps={{ - ...params.InputProps, + ...params.slotProps, + ...params.slotProps.input, inputLabel: { shrink: false }, + sx: { "& input::placeholder": { color: "#00000061", opacity: 1 } }, + endAdornment: ( <> {loading && } - {params.InputProps?.endAdornment} + {params.slotProps.input?.endAdornment} ) }} diff --git a/src/components/mui/formik-inputs/sponsorship-input-mui.js b/src/components/mui/formik-inputs/sponsorship-input-mui.js index 230d685e8..abe01eb25 100644 --- a/src/components/mui/formik-inputs/sponsorship-input-mui.js +++ b/src/components/mui/formik-inputs/sponsorship-input-mui.js @@ -129,18 +129,21 @@ const SponsorshipTypeInputMUI = ({ error={Boolean(error)} helperText={errorMessage || ""} slotProps={{ - ...params.InputProps, + ...params.slotProps, + ...params.slotProps.input, inputLabel: { shrink: false }, + sx: { "& input::placeholder": { color: "#00000061", opacity: 1 } }, + endAdornment: ( <> {loading && } - {params.InputProps?.endAdornment} + {params.slotProps.input?.endAdornment} ) }} From c5fa0b513ba3b08ace807cd0405c3edb17ce1196 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Fri, 12 Jun 2026 11:43:29 -0300 Subject: [PATCH 03/11] chore(codemod): apply @mui/codemod deprecations/tooltip-props MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 0 source file changes — no deprecated Tooltip props (componentsProps/PopperProps) found in src. Codemod ran against 8 test files but only made formatting changes that prettier reverted. Co-Authored-By: Claude Sonnet 4.6 From bfbcb41efa5d61b0fdcdeac3408a828198d9a3b0 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Fri, 12 Jun 2026 12:06:48 -0300 Subject: [PATCH 04/11] chore(codemod): apply @mui/codemod deprecations/list-item-props MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 0 source file changes — no deprecated ListItem props (ContainerComponent/ ContainerProps) found in src. Codemod touched 8 test files with formatting changes only, reverted by prettier. Co-Authored-By: Claude Sonnet 4.6 From 53bde3d74c5d8307b26ca325d9fc333cf5b38ec3 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Fri, 12 Jun 2026 12:09:48 -0300 Subject: [PATCH 05/11] chore(codemod): apply @mui/codemod deprecations/divider-props MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 0 source file changes — no deprecated Divider props found in src (as expected). Codemod touched 8 test files with formatting changes only, reverted by prettier. Co-Authored-By: Claude Sonnet 4.6 From f4b08034e99b2a060d6d4afc3e1d87422768bd28 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Fri, 12 Jun 2026 13:40:36 -0300 Subject: [PATCH 06/11] fix(tests): fix React 18 + testing-library v13 test failures - testSetupFile.js: remove useLazyRipple mock (MUI v9 internal path gone); clean up stale React 16 comments in console suppressors - Multi-line Grid2 imports: fix remaining files where Grid2 was on its own line inside a multi-line import block (missed by earlier sed patterns) - global-template-popup.test.js: remove outer act() wrappers around multi-click blocks so React 18 flushes isSaving between clicks - form-template-popup.test.js: same fix for duplicate-save guard - customized-form-popup.test.js: same fix for duplicate-save guard - process-request-popup.test.js: add explicit microtask flush after render so fetchSponsorByCompany resolves before form submit click Co-Authored-By: Claude Sonnet 4.6 --- .../components/EditAddressDialog.jsx | 2 +- .../components/EditClientDialog.jsx | 2 +- src/components/mui/ClientCard/index.jsx | 2 +- .../mui/formik-inputs/item-price-tiers.js | 2 +- .../select-page-template-dialog/index.js | 2 +- .../components/media-file-type-dialog.js | 2 +- .../add-form-template-item-popup.js | 2 +- .../form-template-from-duplicate-popup.js | 2 +- .../form-template-item-list-page.js | 2 +- .../form-templates/form-template-list-page.js | 2 +- .../form-templates/form-template-popup.js | 2 +- .../form-templates/sponsor-inventory-popup.js | 2 +- .../inventory/inventory-list-page.js | 2 +- .../page-templates/page-template-list-page.js | 2 +- .../page-template-popup/index.js | 2 +- src/pages/sponsors/popup/add-sponsor-popup.js | 2 +- src/pages/sponsors/popup/edit-tier-popup.js | 2 +- .../sponsors/show-pages-list-page/index.js | 2 +- .../sponsors/show-purchase-list-page/index.js | 2 +- ...nsor-form-add-item-from-inventory-popup.js | 2 +- .../components/sponsor-form-item-form.js | 2 +- .../sponsor-form-item-list-page/index.js | 2 +- .../__tests__/form-template-popup.test.js | 8 +-- .../form-template/form-template-form.js | 2 +- .../__tests__/global-template-popup.test.js | 25 +++++----- .../select-templates-dialog.js | 2 +- .../sponsors/sponsor-forms-list-page/index.js | 2 +- .../edit-badge-scan-popup.js | 2 +- .../sponsor-cart-tab/components/cart-view.js | 2 +- .../components/select-form-dialog/index.js | 2 +- .../add-sponsor-form-template-popup/index.js | 2 +- .../__tests__/customized-form-popup.test.js | 8 +-- .../customized-form/customized-form.js | 2 +- .../sponsor-form-item-from-inventory.js | 2 +- .../sponsor-forms-manage-items.js | 2 +- .../tabs/sponsor-forms-tab/index.js | 2 +- .../add-extra-question-popup.js | 2 +- .../sponsor-general-form/add-tier-popup.js | 2 +- .../manage-tier-addons-popup.js | 2 +- .../add-sponsor-page-template-popup/index.js | 2 +- .../tabs/sponsor-pages-tab/index.js | 2 +- .../tabs/sponsor-purchases-tab/index.js | 2 +- .../components/sponsor-user-form.js | 2 +- .../__tests__/process-request-popup.test.js | 10 ++-- .../edit-user-popup/sponsor-user-form.js | 2 +- .../components/process-request-form.js | 2 +- .../components/sponsorship-dialog.js | 2 +- testSetupFile.js | 49 ++----------------- 48 files changed, 75 insertions(+), 111 deletions(-) diff --git a/src/components/mui/ClientCard/components/EditAddressDialog.jsx b/src/components/mui/ClientCard/components/EditAddressDialog.jsx index 805fff9c1..16243a921 100644 --- a/src/components/mui/ClientCard/components/EditAddressDialog.jsx +++ b/src/components/mui/ClientCard/components/EditAddressDialog.jsx @@ -22,7 +22,7 @@ import { DialogActions, DialogContent, DialogTitle, - Grid2 + Grid as Grid2 } from "@mui/material"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; diff --git a/src/components/mui/ClientCard/components/EditClientDialog.jsx b/src/components/mui/ClientCard/components/EditClientDialog.jsx index 9f63190c6..729b12445 100644 --- a/src/components/mui/ClientCard/components/EditClientDialog.jsx +++ b/src/components/mui/ClientCard/components/EditClientDialog.jsx @@ -22,7 +22,7 @@ import { DialogActions, DialogContent, DialogTitle, - Grid2 + Grid as Grid2 } from "@mui/material"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; diff --git a/src/components/mui/ClientCard/index.jsx b/src/components/mui/ClientCard/index.jsx index bc6ce69be..59af069d5 100644 --- a/src/components/mui/ClientCard/index.jsx +++ b/src/components/mui/ClientCard/index.jsx @@ -18,7 +18,7 @@ import { Card, CardContent, Divider, - Grid2, + Grid as Grid2, IconButton, Typography } from "@mui/material"; diff --git a/src/components/mui/formik-inputs/item-price-tiers.js b/src/components/mui/formik-inputs/item-price-tiers.js index 43b6f5825..8e306f254 100644 --- a/src/components/mui/formik-inputs/item-price-tiers.js +++ b/src/components/mui/formik-inputs/item-price-tiers.js @@ -5,7 +5,7 @@ import { Box, Checkbox, FormControlLabel, - Grid2, + Grid as Grid2, InputLabel, TextField } from "@mui/material"; diff --git a/src/components/select-page-template-dialog/index.js b/src/components/select-page-template-dialog/index.js index 3779ab5a5..ecdb6d58f 100644 --- a/src/components/select-page-template-dialog/index.js +++ b/src/components/select-page-template-dialog/index.js @@ -11,7 +11,7 @@ import { DialogTitle, Divider, FormControlLabel, - Grid2, + Grid as Grid2, IconButton, Radio, Typography diff --git a/src/pages/media_file_types/components/media-file-type-dialog.js b/src/pages/media_file_types/components/media-file-type-dialog.js index 7ccfa97de..49afd872f 100644 --- a/src/pages/media_file_types/components/media-file-type-dialog.js +++ b/src/pages/media_file_types/components/media-file-type-dialog.js @@ -13,7 +13,7 @@ import { Box, IconButton, Divider, - Grid2 + Grid as Grid2 } from "@mui/material"; import CloseIcon from "@mui/icons-material/Close"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; diff --git a/src/pages/sponsors-global/form-templates/add-form-template-item-popup.js b/src/pages/sponsors-global/form-templates/add-form-template-item-popup.js index 2a6f6cb06..cb466c261 100644 --- a/src/pages/sponsors-global/form-templates/add-form-template-item-popup.js +++ b/src/pages/sponsors-global/form-templates/add-form-template-item-popup.js @@ -12,7 +12,7 @@ import { DialogTitle, Divider, FormControlLabel, - Grid2, + Grid as Grid2, IconButton, Typography } from "@mui/material"; diff --git a/src/pages/sponsors-global/form-templates/form-template-from-duplicate-popup.js b/src/pages/sponsors-global/form-templates/form-template-from-duplicate-popup.js index f76fc6528..13edbfa9e 100644 --- a/src/pages/sponsors-global/form-templates/form-template-from-duplicate-popup.js +++ b/src/pages/sponsors-global/form-templates/form-template-from-duplicate-popup.js @@ -11,7 +11,7 @@ import { DialogTitle, Divider, FormControlLabel, - Grid2, + Grid as Grid2, IconButton, Typography } from "@mui/material"; diff --git a/src/pages/sponsors-global/form-templates/form-template-item-list-page.js b/src/pages/sponsors-global/form-templates/form-template-item-list-page.js index 95e6bcd47..9907d1331 100644 --- a/src/pages/sponsors-global/form-templates/form-template-item-list-page.js +++ b/src/pages/sponsors-global/form-templates/form-template-item-list-page.js @@ -21,7 +21,7 @@ import { Checkbox, FormControlLabel, FormGroup, - Grid2 + Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import IconButton from "@mui/material/IconButton"; diff --git a/src/pages/sponsors-global/form-templates/form-template-list-page.js b/src/pages/sponsors-global/form-templates/form-template-list-page.js index 0d7fef187..a3e6a869d 100644 --- a/src/pages/sponsors-global/form-templates/form-template-list-page.js +++ b/src/pages/sponsors-global/form-templates/form-template-list-page.js @@ -18,7 +18,7 @@ import { Checkbox, FormControlLabel, FormGroup, - Grid2 + Grid as Grid2 } from "@mui/material"; import Box from "@mui/material/Box"; import AddIcon from "@mui/icons-material/Add"; diff --git a/src/pages/sponsors-global/form-templates/form-template-popup.js b/src/pages/sponsors-global/form-templates/form-template-popup.js index baef4dfdc..8a09f12b2 100644 --- a/src/pages/sponsors-global/form-templates/form-template-popup.js +++ b/src/pages/sponsors-global/form-templates/form-template-popup.js @@ -11,7 +11,7 @@ import { Box, IconButton, Divider, - Grid2 + Grid as Grid2 } from "@mui/material"; import CloseIcon from "@mui/icons-material/Close"; import { useFormik, FormikProvider } from "formik"; diff --git a/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js b/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js index ed5e0640b..22ac7df84 100644 --- a/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js +++ b/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js @@ -14,7 +14,7 @@ import { Box, IconButton, Divider, - Grid2, + Grid as Grid2, FormHelperText } from "@mui/material"; import CloseIcon from "@mui/icons-material/Close"; diff --git a/src/pages/sponsors-global/inventory/inventory-list-page.js b/src/pages/sponsors-global/inventory/inventory-list-page.js index b6e0d072f..9674e512e 100644 --- a/src/pages/sponsors-global/inventory/inventory-list-page.js +++ b/src/pages/sponsors-global/inventory/inventory-list-page.js @@ -18,7 +18,7 @@ import { Checkbox, FormControlLabel, FormGroup, - Grid2, + Grid as Grid2, Popover, Typography } from "@mui/material"; diff --git a/src/pages/sponsors-global/page-templates/page-template-list-page.js b/src/pages/sponsors-global/page-templates/page-template-list-page.js index 0b4b05d21..b03f70375 100644 --- a/src/pages/sponsors-global/page-templates/page-template-list-page.js +++ b/src/pages/sponsors-global/page-templates/page-template-list-page.js @@ -18,7 +18,7 @@ import { Checkbox, FormControlLabel, FormGroup, - Grid2 + Grid as Grid2 } from "@mui/material"; import Box from "@mui/material/Box"; import AddIcon from "@mui/icons-material/Add"; diff --git a/src/pages/sponsors-global/page-templates/page-template-popup/index.js b/src/pages/sponsors-global/page-templates/page-template-popup/index.js index 91a7b2068..3e84cbf2a 100644 --- a/src/pages/sponsors-global/page-templates/page-template-popup/index.js +++ b/src/pages/sponsors-global/page-templates/page-template-popup/index.js @@ -11,7 +11,7 @@ import { Divider, FormControl, FormHelperText, - Grid2, + Grid as Grid2, IconButton, Typography } from "@mui/material"; diff --git a/src/pages/sponsors/popup/add-sponsor-popup.js b/src/pages/sponsors/popup/add-sponsor-popup.js index e44b14512..7d18ce270 100644 --- a/src/pages/sponsors/popup/add-sponsor-popup.js +++ b/src/pages/sponsors/popup/add-sponsor-popup.js @@ -11,7 +11,7 @@ import { Button, IconButton, Divider, - Grid2, + Grid as Grid2, Typography, InputLabel, Box diff --git a/src/pages/sponsors/popup/edit-tier-popup.js b/src/pages/sponsors/popup/edit-tier-popup.js index 48eb28c22..c4cb7913e 100644 --- a/src/pages/sponsors/popup/edit-tier-popup.js +++ b/src/pages/sponsors/popup/edit-tier-popup.js @@ -11,7 +11,7 @@ import { Button, IconButton, Divider, - Grid2, + Grid as Grid2, Typography, MenuItem, InputLabel, diff --git a/src/pages/sponsors/show-pages-list-page/index.js b/src/pages/sponsors/show-pages-list-page/index.js index 450652e90..746eaeb25 100644 --- a/src/pages/sponsors/show-pages-list-page/index.js +++ b/src/pages/sponsors/show-pages-list-page/index.js @@ -21,7 +21,7 @@ import { Checkbox, FormControlLabel, FormGroup, - Grid2 + Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; diff --git a/src/pages/sponsors/show-purchase-list-page/index.js b/src/pages/sponsors/show-purchase-list-page/index.js index 52538e8af..abf8d6bc6 100644 --- a/src/pages/sponsors/show-purchase-list-page/index.js +++ b/src/pages/sponsors/show-purchase-list-page/index.js @@ -18,7 +18,7 @@ import { Breadcrumb } from "react-breadcrumbs"; import { Box, Button, - Grid2, + Grid as Grid2, IconButton, MenuItem, Select diff --git a/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-add-item-from-inventory-popup.js b/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-add-item-from-inventory-popup.js index 0b3d89101..e3ff07a67 100644 --- a/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-add-item-from-inventory-popup.js +++ b/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-add-item-from-inventory-popup.js @@ -11,7 +11,7 @@ import { DialogTitle, Divider, FormControlLabel, - Grid2, + Grid as Grid2, IconButton, Typography } from "@mui/material"; diff --git a/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js b/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js index 13c6edd2e..824c41ab4 100644 --- a/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js +++ b/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js @@ -6,7 +6,7 @@ import { DialogContent, Divider, FormLabel, - Grid2, + Grid as Grid2, InputLabel, Typography } from "@mui/material"; diff --git a/src/pages/sponsors/sponsor-form-item-list-page/index.js b/src/pages/sponsors/sponsor-form-item-list-page/index.js index b8b2822a0..ea6cce080 100644 --- a/src/pages/sponsors/sponsor-form-item-list-page/index.js +++ b/src/pages/sponsors/sponsor-form-item-list-page/index.js @@ -22,7 +22,7 @@ import { Checkbox, FormControlLabel, FormGroup, - Grid2 + Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import IconButton from "@mui/material/IconButton"; diff --git a/src/pages/sponsors/sponsor-forms-list-page/components/form-template/__tests__/form-template-popup.test.js b/src/pages/sponsors/sponsor-forms-list-page/components/form-template/__tests__/form-template-popup.test.js index 71c4e2aa5..a5203a9db 100644 --- a/src/pages/sponsors/sponsor-forms-list-page/components/form-template/__tests__/form-template-popup.test.js +++ b/src/pages/sponsors/sponsor-forms-list-page/components/form-template/__tests__/form-template-popup.test.js @@ -81,10 +81,10 @@ describe("FormTemplatePopup", () => { const button = screen.getByRole("button", { name: "submit-form-template" }); - await act(async () => { - await userEvent.click(button); - await userEvent.click(button); - }); + // React 18 auto-batches state updates; remove outer act() so each click + // flushes isSaving before the next click is processed. + await userEvent.click(button); + await userEvent.click(button); expect(saveFormTemplate).toHaveBeenCalledTimes(1); diff --git a/src/pages/sponsors/sponsor-forms-list-page/components/form-template/form-template-form.js b/src/pages/sponsors/sponsor-forms-list-page/components/form-template/form-template-form.js index efdcc2ba7..2a4d31a7a 100644 --- a/src/pages/sponsors/sponsor-forms-list-page/components/form-template/form-template-form.js +++ b/src/pages/sponsors/sponsor-forms-list-page/components/form-template/form-template-form.js @@ -5,7 +5,7 @@ import { DialogActions, DialogContent, Divider, - Grid2, + Grid as Grid2, InputLabel, Typography } from "@mui/material"; diff --git a/src/pages/sponsors/sponsor-forms-list-page/components/global-template/__tests__/global-template-popup.test.js b/src/pages/sponsors/sponsor-forms-list-page/components/global-template/__tests__/global-template-popup.test.js index 4d043adbf..b03c0c5be 100644 --- a/src/pages/sponsors/sponsor-forms-list-page/components/global-template/__tests__/global-template-popup.test.js +++ b/src/pages/sponsors/sponsor-forms-list-page/components/global-template/__tests__/global-template-popup.test.js @@ -65,15 +65,14 @@ describe("GlobalTemplatePopup", () => { initialState: {} }); - await act(async () => { - await userEvent.click( - screen.getByRole("button", { name: "go-sponsorships" }) - ); - await userEvent.click( - screen.getByRole("button", { name: "apply-sponsorships" }) - ); - await Promise.resolve(); - }); + // React 18 auto-batches state updates; remove outer act() so setStage() + // flushes before the second click queries the DOM for apply-sponsorships. + await userEvent.click( + screen.getByRole("button", { name: "go-sponsorships" }) + ); + await userEvent.click( + screen.getByRole("button", { name: "apply-sponsorships" }) + ); expect(cloneGlobalTemplate).toHaveBeenCalledTimes(1); expect(onClose).not.toHaveBeenCalled(); @@ -129,10 +128,10 @@ describe("GlobalTemplatePopup", () => { const applyButton = screen.getByRole("button", { name: "apply-sponsorships" }); - await act(async () => { - await userEvent.click(applyButton); - await userEvent.click(applyButton); - }); + // React 18 auto-batches state updates; remove outer act() so isSaving + // flushes to true after the first click before the second fires. + await userEvent.click(applyButton); + await userEvent.click(applyButton); expect(cloneGlobalTemplate).toHaveBeenCalledTimes(1); diff --git a/src/pages/sponsors/sponsor-forms-list-page/components/global-template/select-templates-dialog.js b/src/pages/sponsors/sponsor-forms-list-page/components/global-template/select-templates-dialog.js index 88fa8f07e..f10eea3f8 100644 --- a/src/pages/sponsors/sponsor-forms-list-page/components/global-template/select-templates-dialog.js +++ b/src/pages/sponsors/sponsor-forms-list-page/components/global-template/select-templates-dialog.js @@ -11,7 +11,7 @@ import { DialogTitle, Divider, FormControlLabel, - Grid2, + Grid as Grid2, IconButton, Typography } from "@mui/material"; diff --git a/src/pages/sponsors/sponsor-forms-list-page/index.js b/src/pages/sponsors/sponsor-forms-list-page/index.js index ef6fa7471..dfc69a233 100644 --- a/src/pages/sponsors/sponsor-forms-list-page/index.js +++ b/src/pages/sponsors/sponsor-forms-list-page/index.js @@ -21,7 +21,7 @@ import { Checkbox, FormControlLabel, FormGroup, - Grid2 + Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiDropdownCheckbox from "openstack-uicore-foundation/lib/components/mui/dropdown-checkbox"; diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-badge-scans/edit-badge-scan-popup.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-badge-scans/edit-badge-scan-popup.js index b56dbcf2b..f660b3534 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-badge-scans/edit-badge-scan-popup.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-badge-scans/edit-badge-scan-popup.js @@ -11,7 +11,7 @@ import { Button, IconButton, Divider, - Grid2, + Grid as Grid2, Typography, InputLabel, Box diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/cart-view.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/cart-view.js index b7934a3a8..0c2f6dfed 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/cart-view.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/cart-view.js @@ -17,7 +17,7 @@ import { connect } from "react-redux"; import { Box, Button, - Grid2, + Grid as Grid2, IconButton, Paper, Typography diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/select-form-dialog/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/select-form-dialog/index.js index 8b4631380..f1816d88b 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/select-form-dialog/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/select-form-dialog/index.js @@ -11,7 +11,7 @@ import { DialogTitle, Divider, FormControlLabel, - Grid2, + Grid as Grid2, IconButton, Radio, Typography diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/add-sponsor-form-template-popup/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/add-sponsor-form-template-popup/index.js index 33b40332e..eacc06614 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/add-sponsor-form-template-popup/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/add-sponsor-form-template-popup/index.js @@ -12,7 +12,7 @@ import { DialogTitle, Divider, FormControlLabel, - Grid2, + Grid as Grid2, IconButton, Typography } from "@mui/material"; diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/__tests__/customized-form-popup.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/__tests__/customized-form-popup.test.js index 036ca9781..a81d633ac 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/__tests__/customized-form-popup.test.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/__tests__/customized-form-popup.test.js @@ -132,10 +132,10 @@ describe("CustomizedFormPopup", () => { const button = screen.getByRole("button", { name: "submit-customized-form" }); - await act(async () => { - await userEvent.click(button); - await userEvent.click(button); - }); + // React 18 auto-batches state updates; remove outer act() so each click + // flushes isSaving before the next click is processed. + await userEvent.click(button); + await userEvent.click(button); expect(saveSponsorCustomizedForm).toHaveBeenCalledTimes(1); diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/customized-form.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/customized-form.js index d166cd11e..3de33a39c 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/customized-form.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/customized-form.js @@ -5,7 +5,7 @@ import { DialogActions, DialogContent, Divider, - Grid2, + Grid as Grid2, InputLabel, Typography } from "@mui/material"; diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/manage-items/sponsor-form-item-from-inventory.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/manage-items/sponsor-form-item-from-inventory.js index ddeb525d5..38de82ef2 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/manage-items/sponsor-form-item-from-inventory.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/manage-items/sponsor-form-item-from-inventory.js @@ -12,7 +12,7 @@ import { DialogTitle, Divider, FormControlLabel, - Grid2, + Grid as Grid2, IconButton, Tooltip, Typography diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/manage-items/sponsor-forms-manage-items.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/manage-items/sponsor-forms-manage-items.js index 5ccaca2fb..16a6e6d09 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/manage-items/sponsor-forms-manage-items.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/manage-items/sponsor-forms-manage-items.js @@ -20,7 +20,7 @@ import { Checkbox, FormControlLabel, FormGroup, - Grid2, + Grid as Grid2, IconButton, Tooltip } from "@mui/material"; diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/index.js index 044424ff9..c8700b354 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/index.js @@ -20,7 +20,7 @@ import { Checkbox, FormControlLabel, FormGroup, - Grid2 + Grid as Grid2 } from "@mui/material"; import ArrowForwardIcon from "@mui/icons-material/ArrowForward"; import AddIcon from "@mui/icons-material/Add"; diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/add-extra-question-popup.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/add-extra-question-popup.js index 5b3c04c00..ee557e6dd 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/add-extra-question-popup.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/add-extra-question-popup.js @@ -12,7 +12,7 @@ import { Button, IconButton, Divider, - Grid2, + Grid as Grid2, Typography, InputLabel, Box, diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/add-tier-popup.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/add-tier-popup.js index fbf6d6d5d..a02f1af94 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/add-tier-popup.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/add-tier-popup.js @@ -11,7 +11,7 @@ import { Button, IconButton, Divider, - Grid2, + Grid as Grid2, Typography, InputLabel, Box diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/manage-tier-addons-popup.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/manage-tier-addons-popup.js index 64cf96836..6f7773962 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/manage-tier-addons-popup.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/manage-tier-addons-popup.js @@ -11,7 +11,7 @@ import { Button, IconButton, Divider, - Grid2, + Grid as Grid2, Typography, InputLabel, Box diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/components/add-sponsor-page-template-popup/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/components/add-sponsor-page-template-popup/index.js index 9a72b86ab..96b65c581 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/components/add-sponsor-page-template-popup/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/components/add-sponsor-page-template-popup/index.js @@ -25,7 +25,7 @@ import { DialogTitle, Divider, FormControlLabel, - Grid2, + Grid as Grid2, IconButton, Typography } from "@mui/material"; diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/index.js index 2c5e82b44..c8f3544ab 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/index.js @@ -20,7 +20,7 @@ import { Checkbox, FormControlLabel, FormGroup, - Grid2 + Grid as Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import ArrowForwardIcon from "@mui/icons-material/ArrowForward"; diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/index.js index c7d0770a2..1580a8bec 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/index.js @@ -17,7 +17,7 @@ import T from "i18n-react/dist/i18n-react"; import { Box, Button, - Grid2, + Grid as Grid2, IconButton, MenuItem, Select diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/components/sponsor-user-form.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/components/sponsor-user-form.js index 129100476..021592590 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/components/sponsor-user-form.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/components/sponsor-user-form.js @@ -5,7 +5,7 @@ import { DialogActions, DialogContent, Divider, - Grid2, + Grid as Grid2, Typography } from "@mui/material"; import T from "i18n-react"; diff --git a/src/pages/sponsors/sponsor-users-list-page/components/__tests__/process-request-popup.test.js b/src/pages/sponsors/sponsor-users-list-page/components/__tests__/process-request-popup.test.js index eeb9bfa94..172aba6df 100644 --- a/src/pages/sponsors/sponsor-users-list-page/components/__tests__/process-request-popup.test.js +++ b/src/pages/sponsors/sponsor-users-list-page/components/__tests__/process-request-popup.test.js @@ -116,13 +116,17 @@ describe("ProcessRequestPopup", () => { } ); + // Flush the fetchSponsorByCompany microtask so the form reinitialises with + // sponsor_type=EXISTING before we click submit. + await act(async () => { + await Promise.resolve(); + }); + const processRequestButton = screen.getAllByText( "sponsor_users.process_request.save" )[0]; - await act(async () => { - await userEvent.click(processRequestButton); - }); + await userEvent.click(processRequestButton); expect(sponsorUsersActions.processSponsorUserRequest).toHaveBeenCalled(); expect(onCloseMock).toHaveBeenCalled(); }); diff --git a/src/pages/sponsors/sponsor-users-list-page/components/edit-user-popup/sponsor-user-form.js b/src/pages/sponsors/sponsor-users-list-page/components/edit-user-popup/sponsor-user-form.js index 2fdfab93b..da1b98383 100644 --- a/src/pages/sponsors/sponsor-users-list-page/components/edit-user-popup/sponsor-user-form.js +++ b/src/pages/sponsors/sponsor-users-list-page/components/edit-user-popup/sponsor-user-form.js @@ -5,7 +5,7 @@ import { DialogActions, DialogContent, Divider, - Grid2 + Grid as Grid2 } from "@mui/material"; import T from "i18n-react"; import * as yup from "yup"; diff --git a/src/pages/sponsors/sponsor-users-list-page/components/process-request-form.js b/src/pages/sponsors/sponsor-users-list-page/components/process-request-form.js index d3276cd47..7f96657be 100644 --- a/src/pages/sponsors/sponsor-users-list-page/components/process-request-form.js +++ b/src/pages/sponsors/sponsor-users-list-page/components/process-request-form.js @@ -5,7 +5,7 @@ import { DialogActions, DialogContent, Divider, - Grid2, + Grid as Grid2, InputLabel, Typography } from "@mui/material"; diff --git a/src/pages/sponsorship-types/components/sponsorship-dialog.js b/src/pages/sponsorship-types/components/sponsorship-dialog.js index dcb093564..15f524d09 100644 --- a/src/pages/sponsorship-types/components/sponsorship-dialog.js +++ b/src/pages/sponsorship-types/components/sponsorship-dialog.js @@ -13,7 +13,7 @@ import { Box, IconButton, Divider, - Grid2 + Grid as Grid2 } from "@mui/material"; import CloseIcon from "@mui/icons-material/Close"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; diff --git a/testSetupFile.js b/testSetupFile.js index 5f802c27d..ebe0a98af 100644 --- a/testSetupFile.js +++ b/testSetupFile.js @@ -4,30 +4,22 @@ import { TextEncoder, TextDecoder } from "util"; global.TextEncoder = TextEncoder; global.TextDecoder = TextDecoder; -// Suppress console.error noise from known React 16 + MUI v6 incompatibilities: +// Suppress console.error noise from known jsdom/MUI incompatibilities: // 1. DOM nesting: AccordionSummary renders as