From 91f6657a37b60952342a9a8ec86884f141de320c Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Mon, 2 Nov 2026 20:06:30 -0300 Subject: [PATCH 1/3] fix: prevent Enter from submitting MUI forms using uicore MuiForm --- package.json | 2 +- .../components/save-view-dialog/index.js | 16 ++-------- src/components/forms/admin-access-form.js | 10 ++---- src/components/forms/event-category-form.js | 5 +-- src/components/forms/media-upload-form.js | 9 ++---- src/components/forms/selection-plan-form.js | 6 ++-- .../forms/sponsor-settings-form/index.js | 6 ++-- src/components/forms/tax-type-form.js | 10 ++---- .../components/EditAddressDialog.jsx | 11 ++----- .../components/EditClientDialog.jsx | 11 ++----- .../RefundForm/__tests__/refund-form.test.js | 32 +++++++++++++------ src/components/mui/RefundForm/index.jsx | 14 +++----- src/components/mui/mui-qr-badge-popup.js | 10 ++---- src/pages/companies/edit-company-page.js | 12 +++---- .../edit-email-flow-event-page.js | 5 +-- .../events/components/event-type-dialog.js | 9 ++---- .../marketing/edit-marketing-setting-page.js | 5 +-- .../components/media-file-type-dialog.js | 11 ++----- .../add-on-types/add-on-types-dialog.js | 11 ++----- .../form-templates/form-template-popup.js | 10 ++---- .../form-templates/sponsor-inventory-popup.js | 10 ++---- .../page-template-popup/index.js | 10 ++---- src/pages/sponsors/popup/add-sponsor-popup.js | 10 ++---- src/pages/sponsors/popup/edit-tier-popup.js | 10 ++---- .../form-template/form-template-form.js | 10 ++---- .../edit-badge-scan-popup.js | 10 ++---- .../components/client-form/index.js | 6 ++-- .../components/edit-form/index.js | 10 ++---- .../add-sponsor-form-template-popup/index.js | 10 ++---- .../customized-form/customized-form.js | 10 ++---- .../add-extra-question-popup.js | 10 ++---- .../sponsor-general-form/add-tier-popup.js | 10 ++---- .../manage-tier-addons-popup.js | 10 ++---- .../add-sponsor-page-template-popup/index.js | 10 ++---- .../components/new-user-popup.js | 11 ++----- .../components/sponsor-user-form.js | 11 ++----- .../edit-user-popup/sponsor-user-form.js | 11 ++----- .../components/process-request-form.js | 11 ++----- .../sponsor-global-new-user-popup.js | 11 ++----- .../components/sponsorship-dialog.js | 10 ++---- src/pages/summitdocs/edit-summitdoc-page.js | 5 +-- src/pages/tags/tags-popup.js | 6 ++-- .../components/track-chair-dialog.js | 10 ++---- yarn.lock | 8 ++--- 44 files changed, 153 insertions(+), 282 deletions(-) diff --git a/package.json b/package.json index 53f73d565..f5aae4c04 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "moment-duration-format": "^2.3.2", "moment-timezone": "^0.5.33", "mui-color-input": "^9.0.0", - "openstack-uicore-foundation": "5.0.73-beta.1", + "openstack-uicore-foundation": "5.0.74", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", diff --git a/src/components/filters/saved-views/components/save-view-dialog/index.js b/src/components/filters/saved-views/components/save-view-dialog/index.js index 85bdac989..c507a3de1 100644 --- a/src/components/filters/saved-views/components/save-view-dialog/index.js +++ b/src/components/filters/saved-views/components/save-view-dialog/index.js @@ -16,10 +16,10 @@ import PropTypes from "prop-types"; import T from "i18n-react/dist/i18n-react"; import { FormikProvider, useFormik } from "formik"; import * as yup from "yup"; -import { Box } from "@mui/material"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiFormikRadioGroup from "openstack-uicore-foundation/lib/components/mui/formik-inputs/radio-group"; import CustomDialog from "openstack-uicore-foundation/lib/components/mui/custom-dialog"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import { requiredStringValidation } from "../../../../../utils/yup"; import { VISIBILITY_OPTION_EVERYONE, @@ -63,17 +63,7 @@ const SaveViewDialog = ({ selectedView, onSave, onClose }) => { }} > - {/* keeps Enter in the name field submitting */} - { - ev.preventDefault(); - if (formik.isSubmitting) return; - formik.handleSubmit(ev); - }} - noValidate - autoComplete="off" - > + { } ]} /> - + ); diff --git a/src/components/forms/admin-access-form.js b/src/components/forms/admin-access-form.js index f743b8d12..3334d05b6 100644 --- a/src/components/forms/admin-access-form.js +++ b/src/components/forms/admin-access-form.js @@ -15,13 +15,13 @@ import React, { useEffect } from "react"; import { FormikProvider, useFormik } from "formik"; import * as yup from "yup"; import T from "i18n-react/dist/i18n-react"; -import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import Grid2 from "@mui/material/Grid2"; import Typography from "@mui/material/Typography"; import MemberInput from "openstack-uicore-foundation/lib/components/inputs/member-input"; import SummitInput from "openstack-uicore-foundation/lib/components/inputs/summit-input"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import { requiredStringValidation } from "../../utils/yup"; const validationSchema = yup.object().shape({ @@ -66,11 +66,7 @@ const AdminAccessForm = ({ {entity.id ? T.translate("general.edit") : T.translate("general.add")}{" "} {T.translate("admin_access.admin_access")} - + @@ -144,7 +140,7 @@ const AdminAccessForm = ({ - + ); }; diff --git a/src/components/forms/event-category-form.js b/src/components/forms/event-category-form.js index 1b473df0a..962f5ac27 100644 --- a/src/components/forms/event-category-form.js +++ b/src/components/forms/event-category-form.js @@ -41,6 +41,7 @@ import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/f import MuiFormikCheckbox from "openstack-uicore-foundation/lib/components/mui/formik-inputs/checkbox"; import FormikTextEditor from "openstack-uicore-foundation/lib/components/mui/formik-inputs/texteditor"; import MuiFormikAsyncAutocomplete from "openstack-uicore-foundation/lib/components/mui/formik-inputs/async-select"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import AuditLogs from "../audit-logs"; import MuiFormikColorField from "../mui/formik-inputs/mui-formik-color-field"; import useScrollToError from "../../hooks/useScrollToError"; @@ -200,7 +201,7 @@ const EventCategoryForm = ({ return ( - + @@ -510,7 +511,7 @@ const EventCategoryForm = ({ {T.translate("general.save")} - + ); }; diff --git a/src/components/forms/media-upload-form.js b/src/components/forms/media-upload-form.js index 391e2fb94..a18ff0aba 100644 --- a/src/components/forms/media-upload-form.js +++ b/src/components/forms/media-upload-form.js @@ -29,6 +29,7 @@ import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/f import MuiFormikCheckbox from "openstack-uicore-foundation/lib/components/mui/formik-inputs/checkbox"; import MuiFormikFilesizeField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/file-size-field"; import MuiFormikSelect from "openstack-uicore-foundation/lib/components/mui/formik-inputs/select"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import useScrollToError from "../../hooks/useScrollToError"; import FormikTextEditor from "../inputs/formik-text-editor"; import { positiveNumberValidation } from "../../utils/yup"; @@ -131,11 +132,7 @@ const MediaUploadForm = ({ return ( - + @@ -335,7 +332,7 @@ const MediaUploadForm = ({ {T.translate("general.save")} - + ); }; diff --git a/src/components/forms/selection-plan-form.js b/src/components/forms/selection-plan-form.js index 9b5c369ca..8b4099da9 100644 --- a/src/components/forms/selection-plan-form.js +++ b/src/components/forms/selection-plan-form.js @@ -21,6 +21,7 @@ import { epochToMomentTimeZone } from "openstack-uicore-foundation/lib/utils/met import Box from "@mui/material/Box"; import Tab from "@mui/material/Tab"; import Tabs from "@mui/material/Tabs"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import useScrollToError from "../../hooks/useScrollToError"; import MainTab from "./selection-plan-form/main-tab"; import TrackGroupsTab from "./selection-plan-form/track-groups-tab"; @@ -326,9 +327,8 @@ const SelectionPlanForm = (props) => { return ( - @@ -428,7 +428,7 @@ const SelectionPlanForm = (props) => { /> )} - + ); }; diff --git a/src/components/forms/sponsor-settings-form/index.js b/src/components/forms/sponsor-settings-form/index.js index 8634406ae..e1e0d3848 100644 --- a/src/components/forms/sponsor-settings-form/index.js +++ b/src/components/forms/sponsor-settings-form/index.js @@ -20,6 +20,7 @@ import { epochToMomentTimeZone } from "openstack-uicore-foundation/lib/utils/met import MuiFormikDatepicker from "openstack-uicore-foundation/lib/components/mui/formik-inputs/datepicker"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiFormikCheckbox from "openstack-uicore-foundation/lib/components/mui/formik-inputs/checkbox"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import styles from "./styles.module.less"; import { addEmailListValidator, @@ -114,8 +115,7 @@ const SponsorSettingsForm = ({ settings, onSubmit, summitTZ }) => { return ( - { {T.translate("general.save")} - + ); }; diff --git a/src/components/forms/tax-type-form.js b/src/components/forms/tax-type-form.js index 49b86048a..ffaaecda7 100644 --- a/src/components/forms/tax-type-form.js +++ b/src/components/forms/tax-type-form.js @@ -27,6 +27,7 @@ import Typography from "@mui/material/Typography"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; import { queryTicketTypes } from "openstack-uicore-foundation/lib/utils/query-actions"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import { DEFAULT_PER_PAGE } from "../../utils/constants"; import useScrollToError from "../../hooks/useScrollToError"; @@ -135,12 +136,7 @@ const TaxTypeForm = ({ return ( - + @@ -235,7 +231,7 @@ const TaxTypeForm = ({ {T.translate("general.save")} - + ); }; diff --git a/src/components/mui/ClientCard/components/EditAddressDialog.jsx b/src/components/mui/ClientCard/components/EditAddressDialog.jsx index 805fff9c1..416c797c9 100644 --- a/src/components/mui/ClientCard/components/EditAddressDialog.jsx +++ b/src/components/mui/ClientCard/components/EditAddressDialog.jsx @@ -16,7 +16,6 @@ import T from "i18n-react/dist/i18n-react"; import { useFormik, FormikProvider } from "formik"; import * as yup from "yup"; import { - Box, Button, Dialog, DialogActions, @@ -25,6 +24,7 @@ import { Grid2 } from "@mui/material"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; const EditAddressDialog = ({ open, onClose, onSubmit, address }) => { const formik = useFormik({ @@ -69,12 +69,7 @@ const EditAddressDialog = ({ open, onClose, onSubmit, address }) => { {T.translate("client_card.edit_address")} - + @@ -135,7 +130,7 @@ const EditAddressDialog = ({ open, onClose, onSubmit, address }) => { {T.translate("client_card.save")} - + ); diff --git a/src/components/mui/ClientCard/components/EditClientDialog.jsx b/src/components/mui/ClientCard/components/EditClientDialog.jsx index 9f63190c6..840277f4e 100644 --- a/src/components/mui/ClientCard/components/EditClientDialog.jsx +++ b/src/components/mui/ClientCard/components/EditClientDialog.jsx @@ -16,7 +16,6 @@ import T from "i18n-react/dist/i18n-react"; import { useFormik, FormikProvider } from "formik"; import * as yup from "yup"; import { - Box, Button, Dialog, DialogActions, @@ -25,6 +24,7 @@ import { Grid2 } from "@mui/material"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; const EditClientDialog = ({ open, onClose, onSubmit, client }) => { const formik = useFormik({ @@ -66,12 +66,7 @@ const EditClientDialog = ({ open, onClose, onSubmit, client }) => { {T.translate("client_card.edit_client")} - + @@ -116,7 +111,7 @@ const EditClientDialog = ({ open, onClose, onSubmit, client }) => { {T.translate("client_card.save")} - + ); diff --git a/src/components/mui/RefundForm/__tests__/refund-form.test.js b/src/components/mui/RefundForm/__tests__/refund-form.test.js index 33cefb4d8..8323ce337 100644 --- a/src/components/mui/RefundForm/__tests__/refund-form.test.js +++ b/src/components/mui/RefundForm/__tests__/refund-form.test.js @@ -63,7 +63,24 @@ describe("RefundForm", () => { await userEvent.type(screen.getByLabelText(/refund_form\.amount/i), "10"); }; - it("submits only once when Enter is pressed repeatedly while the refund is pending", async () => { + const clickSubmit = () => + userEvent.click( + screen.getByRole("button", { name: /refund_form\.queue_refund/i }) + ); + + it("does not submit when Enter is pressed in an input", async () => { + const onSubmit = jest.fn(() => Promise.resolve()); + render(); + + await act(async () => { + await fillForm(); + await userEvent.keyboard("{Enter}"); + }); + + expect(onSubmit).not.toHaveBeenCalled(); + }); + + it("submits only once and disables the button while the refund is pending", async () => { let resolveSubmit; const onSubmit = jest.fn( () => @@ -75,7 +92,7 @@ describe("RefundForm", () => { await act(async () => { await fillForm(); - await userEvent.keyboard("{Enter}{Enter}{Enter}{Enter}"); + await clickSubmit(); }); expect(onSubmit).toHaveBeenCalledTimes(1); @@ -88,24 +105,19 @@ describe("RefundForm", () => { }); }); - it("clears the form after a successful refund so Enter cannot resubmit it", async () => { + it("clears the form after a successful refund", async () => { const onSubmit = jest.fn(() => Promise.resolve()); render(); await act(async () => { await fillForm(); - await userEvent.keyboard("{Enter}"); + await clickSubmit(); }); await waitFor(() => expect(screen.getByLabelText(/refund_form\.reason/i)).toHaveValue("") ); - await act(async () => { - await userEvent.click(screen.getByLabelText(/refund_form\.reason/i)); - await userEvent.keyboard("{Enter}"); - }); - expect(onSubmit).toHaveBeenCalledTimes(1); }); @@ -115,7 +127,7 @@ describe("RefundForm", () => { await act(async () => { await fillForm(); - await userEvent.keyboard("{Enter}"); + await clickSubmit(); }); await waitFor(() => diff --git a/src/components/mui/RefundForm/index.jsx b/src/components/mui/RefundForm/index.jsx index 90d53b6fd..6cd528002 100644 --- a/src/components/mui/RefundForm/index.jsx +++ b/src/components/mui/RefundForm/index.jsx @@ -20,10 +20,11 @@ import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/f import MuiFormikPriceField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/price-field"; import InfoNote from "openstack-uicore-foundation/lib/components/mui/info-note"; import CustomAlert from "openstack-uicore-foundation/lib/components/mui/custom-alert"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; const RefundForm = ({ onSubmit, disabled = false }) => { - // Formik does not block concurrent submits, so repeated Enter presses would - // each queue a refund. The ref guards the gap before isSubmitting re-renders. + // Formik does not block concurrent submits, so repeated clicks would each + // queue a refund. The ref guards the gap before isSubmitting re-renders. const submittingRef = useRef(false); const handleSubmit = (values, formikHelpers) => { @@ -64,12 +65,7 @@ const RefundForm = ({ onSubmit, disabled = false }) => { return ( - + { - + {disabled ? ( - + - + ); diff --git a/src/pages/companies/edit-company-page.js b/src/pages/companies/edit-company-page.js index 75660f2a9..12e35700a 100644 --- a/src/pages/companies/edit-company-page.js +++ b/src/pages/companies/edit-company-page.js @@ -17,8 +17,9 @@ import T from "i18n-react/dist/i18n-react"; import { Breadcrumb } from "react-breadcrumbs"; import { FormikProvider, useFormik } from "formik"; import * as yup from "yup"; -import { Box, Button, Grid2 } from "@mui/material"; +import { Button, Grid2 } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import CompanyForm from "../../components/forms/company-form"; import { getCompany, @@ -146,12 +147,7 @@ const EditCompanyPage = ({
- + - + ); diff --git a/src/pages/email_flow_events/edit-email-flow-event-page.js b/src/pages/email_flow_events/edit-email-flow-event-page.js index 0e6589c7f..d6ef6e661 100644 --- a/src/pages/email_flow_events/edit-email-flow-event-page.js +++ b/src/pages/email_flow_events/edit-email-flow-event-page.js @@ -19,6 +19,7 @@ import { FormikProvider, useFormik } from "formik"; import * as yup from "yup"; import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import EmailFlowEventForm from "../../components/forms/email-flow-event-form"; import { getSummitById } from "../../actions/summit-actions"; import { @@ -116,7 +117,7 @@ const EditEmailFlowEventPage = ({
{currentSummit && ( - + - + ); diff --git a/src/pages/marketing/edit-marketing-setting-page.js b/src/pages/marketing/edit-marketing-setting-page.js index 1e93be7a8..7b2586d51 100644 --- a/src/pages/marketing/edit-marketing-setting-page.js +++ b/src/pages/marketing/edit-marketing-setting-page.js @@ -20,6 +20,7 @@ import * as yup from "yup"; import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import { useSnackbarMessage } from "openstack-uicore-foundation/lib/components/mui/snackbar-notification"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import MarketingSettingForm from "../../components/forms/marketing-setting-form"; import { getSummitById } from "../../actions/summit-actions"; import { @@ -138,7 +139,7 @@ const EditMarketingSettingPage = ({
{currentSummit && ( - + - + ); diff --git a/src/pages/sponsors-global/add-on-types/add-on-types-dialog.js b/src/pages/sponsors-global/add-on-types/add-on-types-dialog.js index aa9a24a2d..4d3911a1c 100644 --- a/src/pages/sponsors-global/add-on-types/add-on-types-dialog.js +++ b/src/pages/sponsors-global/add-on-types/add-on-types-dialog.js @@ -22,13 +22,13 @@ import { DialogContent, DialogTitle, Button, - Box, IconButton, Divider, Grid2 } from "@mui/material"; import CloseIcon from "@mui/icons-material/Close"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import { requiredStringValidation } from "../../../utils/yup"; import useScrollToError from "../../../hooks/useScrollToError"; @@ -91,12 +91,7 @@ const AddOnTypesDialog = ({ entity: initialEntity, onSave, onClose }) => { - + @@ -123,7 +118,7 @@ const AddOnTypesDialog = ({ entity: initialEntity, onSave, onClose }) => { {T.translate("general.save")} - + ); 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 a3463bfb8..8fc36cce9 100644 --- a/src/pages/sponsors-global/form-templates/form-template-popup.js +++ b/src/pages/sponsors-global/form-templates/form-template-popup.js @@ -18,6 +18,7 @@ import { useFormik, FormikProvider } from "formik"; import * as yup from "yup"; import AdditionalInputList from "openstack-uicore-foundation/lib/components/mui/formik-inputs/additional-input-list"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import FormikTextEditor from "../../../components/inputs/formik-text-editor"; import useScrollToError from "../../../hooks/useScrollToError"; import { @@ -118,12 +119,7 @@ const FormTemplateDialog = ({ - + @@ -189,7 +185,7 @@ const FormTemplateDialog = ({ : T.translate("edit_form_template.add_form")} - + ); 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 ad8d2944a..046b8619c 100644 --- a/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js +++ b/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js @@ -22,6 +22,7 @@ import AdditionalInputList from "openstack-uicore-foundation/lib/components/mui/ import MuiFormikUpload from "openstack-uicore-foundation/lib/components/mui/formik-inputs/upload"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiFormikQuantityField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/quantity-field"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import { ALLOWED_INVENTORY_IMAGE_FORMATS, MAX_INVENTORY_IMAGE_UPLOAD_SIZE, @@ -129,12 +130,7 @@ const SponsorItemDialog = ({ - + @@ -264,7 +260,7 @@ const SponsorItemDialog = ({ {T.translate("edit_inventory_item.save_changes")} - + ); 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 f2983c195..98bdc435b 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 @@ -27,6 +27,7 @@ import * as yup from "yup"; import MuiDropdownCheckbox from "openstack-uicore-foundation/lib/components/mui/dropdown-checkbox"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiFormikSelectGroup from "openstack-uicore-foundation/lib/components/mui/formik-inputs/select-group"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import PageModules from "./page-template-modules-form"; import { BYTES_PER_MB, @@ -238,12 +239,7 @@ const PageTemplatePopup = ({ - + @@ -364,7 +360,7 @@ const PageTemplatePopup = ({ {T.translate("page_template_list.page_crud.save")} - + ); diff --git a/src/pages/sponsors/popup/add-sponsor-popup.js b/src/pages/sponsors/popup/add-sponsor-popup.js index 0d06b722a..cb97bcd75 100644 --- a/src/pages/sponsors/popup/add-sponsor-popup.js +++ b/src/pages/sponsors/popup/add-sponsor-popup.js @@ -20,6 +20,7 @@ import CloseIcon from "@mui/icons-material/Close"; import CompanyInputMUI from "openstack-uicore-foundation/lib/components/mui/formik-inputs/company-input"; import SponsorshipsBySummitSelectMUI from "openstack-uicore-foundation/lib/components/mui/formik-inputs/sponsorship-summit-select"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import useScrollToError from "../../../hooks/useScrollToError"; const AddSponsorDialog = ({ onClose, onSubmit, summitId }) => { @@ -99,12 +100,7 @@ const AddSponsorDialog = ({ onClose, onSubmit, summitId }) => { - + { {T.translate("sponsor_list.add_sponsor")} - + ); diff --git a/src/pages/sponsors/popup/edit-tier-popup.js b/src/pages/sponsors/popup/edit-tier-popup.js index 01aeaa18d..64cb1c51d 100644 --- a/src/pages/sponsors/popup/edit-tier-popup.js +++ b/src/pages/sponsors/popup/edit-tier-popup.js @@ -24,6 +24,7 @@ import SponsorshipTypeInputMUI from "openstack-uicore-foundation/lib/components/ import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiFormikSelect from "openstack-uicore-foundation/lib/components/mui/formik-inputs/select"; import MuiFormikCheckbox from "openstack-uicore-foundation/lib/components/mui/formik-inputs/checkbox"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import useScrollToError from "../../../hooks/useScrollToError"; const EditTierDialog = ({ @@ -157,12 +158,7 @@ const EditTierDialog = ({ - + - + ); 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 148b0a500..1f815bf40 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 @@ -17,6 +17,7 @@ import { FormikProvider, useFormik } from "formik"; import MuiDropdownCheckbox from "openstack-uicore-foundation/lib/components/mui/dropdown-checkbox"; import MuiFormikDatepicker from "openstack-uicore-foundation/lib/components/mui/formik-inputs/datepicker"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import { addIssAfterDateFieldValidator, formMetafieldsValidation, @@ -76,12 +77,7 @@ const FormTemplateForm = ({ return ( - + @@ -160,7 +156,7 @@ const FormTemplateForm = ({ {T.translate("sponsor_forms.form_template_popup.save")} - + ); }; 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 16e0516cf..905cafe35 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 @@ -20,6 +20,7 @@ import CloseIcon from "@mui/icons-material/Close"; import ExtraQuestionsMUI from "openstack-uicore-foundation/lib/components/extra-questions-mui"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import useScrollToError from "../../../../../hooks/useScrollToError"; import { getTypeValue, @@ -126,12 +127,7 @@ const EditBadgeScanPopup = ({ badgeScan, onClose, onSubmit }) => { - + { {T.translate("general.save")} - + ); diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/client-form/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/client-form/index.js index f4f8c0d6f..88063a3f3 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/client-form/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/client-form/index.js @@ -16,8 +16,8 @@ import { debounce } from "lodash"; import T from "i18n-react/dist/i18n-react"; import { FormikProvider, useFormik } from "formik"; import * as yup from "yup"; -import Box from "@mui/material/Box"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import { DEBOUNCE_WAIT_250 } from "../../../../../../../utils/constants"; const ClientForm = ({ initialValues, onChange }) => { @@ -47,7 +47,7 @@ const ClientForm = ({ initialValues, onChange }) => { return ( - + { label={T.translate("general.email")} fullWidth /> - + ); }; diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/edit-form/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/edit-form/index.js index 53da95a94..6324f9cb3 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/edit-form/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/edit-form/index.js @@ -23,6 +23,7 @@ import { epochToMomentTimeZone } from "openstack-uicore-foundation/lib/utils/met import MuiFormItemTable, { getCurrentApplicableRate } from "openstack-uicore-foundation/lib/components/mui/form-item-table"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import { DISCOUNT_TYPES } from "../../../../../../../utils/constants"; import showConfirmDialog from "../../../../../../../components/mui/showConfirmDialog"; import { buildGlobalQuantitySchema } from "./quantity-schema"; @@ -296,12 +297,7 @@ const EditForm = ({ {form?.items.length} {T.translate("general.items")}
- + - + ); 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 ac2232962..647219baa 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 @@ -22,6 +22,7 @@ import SearchInput from "openstack-uicore-foundation/lib/components/mui/search-i import { FormikProvider, useFormik } from "formik"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; import MuiFormikSelectGroup from "openstack-uicore-foundation/lib/components/mui/formik-inputs/select-group"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import MenuButton from "../../../../../../../components/mui/menu-button"; import { querySponsorAddons } from "../../../../../../../actions/sponsor-actions"; import { getSponsorForms } from "../../../../../../../actions/sponsor-forms-actions"; @@ -195,12 +196,7 @@ const AddSponsorFormTemplatePopup = ({ - + - + ); 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 e47e7511d..49dd43ddb 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 @@ -17,6 +17,7 @@ import AdditionalInputList from "openstack-uicore-foundation/lib/components/mui/ import MuiFormikDatepicker from "openstack-uicore-foundation/lib/components/mui/formik-inputs/datepicker"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiFormikSelectGroup from "openstack-uicore-foundation/lib/components/mui/formik-inputs/select-group"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import { addIssAfterDateFieldValidator, formMetafieldsValidation, @@ -109,12 +110,7 @@ const CustomizedForm = ({ return ( - + @@ -197,7 +193,7 @@ const CustomizedForm = ({ {T.translate("edit_sponsor.forms_tab.customized_form.save")} - + ); }; 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 e09689c70..f097d97c5 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 @@ -27,6 +27,7 @@ import DragIndicatorIcon from "@mui/icons-material/DragIndicator"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiFormikSelect from "openstack-uicore-foundation/lib/components/mui/formik-inputs/select"; import MuiFormikCheckbox from "openstack-uicore-foundation/lib/components/mui/formik-inputs/checkbox"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import FormikTextEditor from "../../../../../components/inputs/formik-text-editor"; import useScrollToError from "../../../../../hooks/useScrollToError"; import DragAndDropList from "../../../../../components/mui/dnd-list"; @@ -331,12 +332,7 @@ const AddSponsorExtraQuestionPopup = ({ - + - + {valueToDelete && ( { @@ -79,12 +80,7 @@ const AddTierPopup = ({ sponsor, onClose, onSubmit, summitId }) => { - + { {T.translate("edit_sponsor.add_tier")} - + ); 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 801dbdccc..65f528d50 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 @@ -24,6 +24,7 @@ import EditIcon from "@mui/icons-material/Edit"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiFormikAddonTypeSelect from "openstack-uicore-foundation/lib/components/mui/formik-inputs/addon-type-select"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import useScrollToError from "../../../../../hooks/useScrollToError"; const ManageTierAddonsPopup = ({ @@ -178,12 +179,7 @@ const ManageTierAddonsPopup = ({ - + - + ); 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 e1149c856..da474bdbd 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 @@ -36,6 +36,7 @@ import { FormikProvider, useFormik } from "formik"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; import SearchInput from "openstack-uicore-foundation/lib/components/mui/search-input"; import MuiFormikSelectGroup from "openstack-uicore-foundation/lib/components/mui/formik-inputs/select-group"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import MenuButton from "../../../../../../../components/mui/menu-button"; import { querySponsorAddons } from "../../../../../../../actions/sponsor-actions"; import { getShowPages } from "../../../../../../../actions/show-pages-actions"; @@ -218,12 +219,7 @@ const AddSponsorPageTemplatePopup = ({ - + - + ); diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/components/new-user-popup.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/components/new-user-popup.js index 4948d5568..1464995f7 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/components/new-user-popup.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/components/new-user-popup.js @@ -3,7 +3,6 @@ import { connect } from "react-redux"; import PropTypes from "prop-types"; import T from "i18n-react/dist/i18n-react"; import { - Box, Button, Dialog, DialogActions, @@ -18,6 +17,7 @@ import { FormikProvider, useFormik } from "formik"; import * as yup from "yup"; import CustomAlert from "openstack-uicore-foundation/lib/components/mui/custom-alert"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import { sendSponsorUserInvite, getSponsorUsers @@ -85,12 +85,7 @@ const NewUserPopup = ({ - + - + ); 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 8ae3e81a6..49ae74c98 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 @@ -1,6 +1,5 @@ import React from "react"; import { - Box, Button, DialogActions, DialogContent, @@ -13,6 +12,7 @@ import { FormikProvider, useFormik } from "formik"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiFormikCheckboxGroup from "openstack-uicore-foundation/lib/components/mui/formik-inputs/checkbox-group"; import MuiFormikSwitch from "openstack-uicore-foundation/lib/components/mui/formik-inputs/switch"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import useScrollToError from "../../../../../../hooks/useScrollToError"; import { titleCase } from "../../../../../../utils/methods"; @@ -35,12 +35,7 @@ const SponsorUserForm = ({ user, userGroups, onSubmit }) => { return ( - + @@ -92,7 +87,7 @@ const SponsorUserForm = ({ user, userGroups, onSubmit }) => { {T.translate("sponsor_users.edit_user.save")} - + ); }; 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 549ef054e..84c8bd6d1 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 @@ -1,6 +1,5 @@ import React from "react"; import { - Box, Button, DialogActions, DialogContent, @@ -12,6 +11,7 @@ import * as yup from "yup"; import { FormikProvider, useFormik } from "formik"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiFormikSwitch from "openstack-uicore-foundation/lib/components/mui/formik-inputs/switch"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import useScrollToError from "../../../../../hooks/useScrollToError"; import AccessRightsList from "./access-rights-lists"; @@ -64,12 +64,7 @@ const SponsorUserForm = ({ user, summitId, userGroups, onSubmit }) => { return ( - + @@ -107,7 +102,7 @@ const SponsorUserForm = ({ user, summitId, userGroups, onSubmit }) => { {T.translate("sponsor_users.edit_user.save")} - + ); }; 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 d9898e442..b2c9090dd 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 @@ -1,6 +1,5 @@ import React from "react"; import { - Box, Button, DialogActions, DialogContent, @@ -19,6 +18,7 @@ import CompanyInputMUI from "openstack-uicore-foundation/lib/components/mui/form import MuiSponsorInput from "openstack-uicore-foundation/lib/components/mui/formik-inputs/sponsor-input"; import MuiFormikSwitch from "openstack-uicore-foundation/lib/components/mui/formik-inputs/switch"; import SponsorshipsBySummitSelectMUI from "openstack-uicore-foundation/lib/components/mui/formik-inputs/sponsorship-summit-select"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import { titleCase } from "../../../../utils/methods"; import useScrollToError from "../../../../hooks/useScrollToError"; import { SPONSOR_USER_ASSIGNMENT_TYPE } from "../../../../utils/constants"; @@ -108,12 +108,7 @@ const ProcessRequestForm = ({ request, userGroups, summit, onSubmit }) => { return ( - + {T.translate("sponsor_users.process_request.request_details")} @@ -267,7 +262,7 @@ const ProcessRequestForm = ({ request, userGroups, summit, onSubmit }) => { {T.translate("sponsor_users.process_request.save")} - + ); }; diff --git a/src/pages/sponsors/sponsor-users-list-page/components/sponsor-global-new-user-popup.js b/src/pages/sponsors/sponsor-users-list-page/components/sponsor-global-new-user-popup.js index 02ff48164..546a0f486 100644 --- a/src/pages/sponsors/sponsor-users-list-page/components/sponsor-global-new-user-popup.js +++ b/src/pages/sponsors/sponsor-users-list-page/components/sponsor-global-new-user-popup.js @@ -2,7 +2,6 @@ import React, { useState } from "react"; import PropTypes from "prop-types"; import T from "i18n-react/dist/i18n-react"; import { - Box, Button, Dialog, DialogActions, @@ -18,6 +17,7 @@ import * as yup from "yup"; import MuiSponsorInput from "openstack-uicore-foundation/lib/components/mui/formik-inputs/sponsor-input"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import CustomAlert from "openstack-uicore-foundation/lib/components/mui/custom-alert"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; const SponsorGlobalNewUserPopup = ({ onClose, summitId, onSave }) => { const [isSaving, setIsSaving] = useState(false); @@ -80,12 +80,7 @@ const SponsorGlobalNewUserPopup = ({ onClose, summitId, onSave }) => { - + { {T.translate("sponsor_users.new_user.invite")} - + ); diff --git a/src/pages/sponsorship-types/components/sponsorship-dialog.js b/src/pages/sponsorship-types/components/sponsorship-dialog.js index 737a88aef..a06698b58 100644 --- a/src/pages/sponsorship-types/components/sponsorship-dialog.js +++ b/src/pages/sponsorship-types/components/sponsorship-dialog.js @@ -18,6 +18,7 @@ import { import CloseIcon from "@mui/icons-material/Close"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import MuiFormikSelectV2 from "openstack-uicore-foundation/lib/components/mui/formik-inputs/select-v2"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import useScrollToError from "../../../hooks/useScrollToError"; import { requiredStringValidation } from "../../../utils/yup"; @@ -90,12 +91,7 @@ const SponsorshipDialog = ({ entity: initialEntity, onClose, onSave }) => { - + @@ -151,7 +147,7 @@ const SponsorshipDialog = ({ entity: initialEntity, onClose, onSave }) => { {T.translate("general.save")} - + ); diff --git a/src/pages/summitdocs/edit-summitdoc-page.js b/src/pages/summitdocs/edit-summitdoc-page.js index 94bb8e7cb..78750c5a1 100644 --- a/src/pages/summitdocs/edit-summitdoc-page.js +++ b/src/pages/summitdocs/edit-summitdoc-page.js @@ -19,6 +19,7 @@ import { FormikProvider, useFormik } from "formik"; import * as yup from "yup"; import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import SummitDocForm from "../../components/forms/summitdoc-form"; import { getSummitById } from "../../actions/summit-actions"; import { @@ -126,7 +127,7 @@ const EditSummitDocPage = ({
{currentSummit && ( - + - + )} diff --git a/src/pages/tags/tags-popup.js b/src/pages/tags/tags-popup.js index f39f40cd2..6a63d5cfe 100644 --- a/src/pages/tags/tags-popup.js +++ b/src/pages/tags/tags-popup.js @@ -2,7 +2,6 @@ import React, { useState } from "react"; import T from "i18n-react/dist/i18n-react"; import { FormikProvider, useFormik } from "formik"; import * as yup from "yup"; -import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import Dialog from "@mui/material/Dialog"; import DialogActions from "@mui/material/DialogActions"; @@ -12,6 +11,7 @@ import Divider from "@mui/material/Divider"; import IconButton from "@mui/material/IconButton"; import TextField from "@mui/material/TextField"; import CloseIcon from "@mui/icons-material/Close"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; const TagsDialog = ({ onClose, onSave, initialData }) => { const [isSaving, setIsSaving] = useState(false); @@ -67,7 +67,7 @@ const TagsDialog = ({ onClose, onSave, initialData }) => { - + { {T.translate("general.save")} - + ); diff --git a/src/pages/track_chairs/components/track-chair-dialog.js b/src/pages/track_chairs/components/track-chair-dialog.js index a5d8c5bab..e0f237970 100644 --- a/src/pages/track_chairs/components/track-chair-dialog.js +++ b/src/pages/track_chairs/components/track-chair-dialog.js @@ -39,6 +39,7 @@ import { import CloseIcon from "@mui/icons-material/Close"; import ClearIcon from "@mui/icons-material/Clear"; import { queryMembers } from "openstack-uicore-foundation/lib/utils/query-actions"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import MuiFormikAsyncAutocomplete from "../../../components/mui/formik-inputs/mui-formik-async-select"; import useScrollToError from "../../../hooks/useScrollToError"; @@ -122,12 +123,7 @@ const TrackChairDialog = ({ entity, tracks, onSave, onClose }) => { - + @@ -231,7 +227,7 @@ const TrackChairDialog = ({ entity, tracks, onSave, onClose }) => { {T.translate("general.save")} - + ); diff --git a/yarn.lock b/yarn.lock index 6cc854497..5d581ab0d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9076,10 +9076,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.73-beta.1: - version "5.0.73-beta.1" - resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.73-beta.1.tgz#95274f8a31004e38d3c201d778f5d7f05928c8e5" - integrity sha512-+UTWgAy7DTZB3bToiASYo1ggtnEsG1MDNTc6Jr43l+HXUbB8NBStHrjR+xwuMKs4YnmSIpCfi8U26yjG029Ggw== +openstack-uicore-foundation@5.0.74: + version "5.0.74" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.74.tgz#2c3bb34c736ddf632c584ebc04c69584ddd92c92" + integrity sha512-7HJT0G9aDkXBZWoPW8WFfYL0eKiQ/xHLg9SEEvFjrJUnBAnxpmOjQIiK/xvdtF4SWkxMvkdcgF52KrQsPHiTZw== dependencies: use-sync-external-store "^1.6.0" From dfe270c3913ad1511c87c0752a028c823436f3c6 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Wed, 11 Nov 2026 15:36:43 -0300 Subject: [PATCH 2/3] fix: use MuiForm in badge feature and schedule settings forms --- .../filters/saved-views/components/save-view-dialog/index.js | 2 +- src/components/forms/schedule-settings-form/index.js | 5 +++-- src/pages/badges/edit-badge-feature-page.js | 5 +++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/components/filters/saved-views/components/save-view-dialog/index.js b/src/components/filters/saved-views/components/save-view-dialog/index.js index c507a3de1..95a23a074 100644 --- a/src/components/filters/saved-views/components/save-view-dialog/index.js +++ b/src/components/filters/saved-views/components/save-view-dialog/index.js @@ -63,7 +63,7 @@ const SaveViewDialog = ({ selectedView, onSave, onClose }) => { }} > - + { return ( - + @@ -260,7 +261,7 @@ const ScheduleSettingsForm = ({ entity, summit, errors, onSubmit }) => { {T.translate("general.save")} - + ); }; diff --git a/src/pages/badges/edit-badge-feature-page.js b/src/pages/badges/edit-badge-feature-page.js index 37bddbc08..3501c71ba 100644 --- a/src/pages/badges/edit-badge-feature-page.js +++ b/src/pages/badges/edit-badge-feature-page.js @@ -18,6 +18,7 @@ import T from "i18n-react/dist/i18n-react"; import { FormikProvider, useFormik } from "formik"; import * as yup from "yup"; import { Box, Button, Divider, Typography } from "@mui/material"; +import MuiForm from "openstack-uicore-foundation/lib/components/mui/form"; import BadgeFeatureTypeForm from "../../components/forms/badge-feature-type-form"; import { getBadgeFeature, @@ -100,7 +101,7 @@ const EditBadgeFeaturePage = ({ - + - + ); From 110876f2ad78bdb854f061f957cab893cdbfb6e5 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 3 Nov 2026 15:56:55 -0600 Subject: [PATCH 3/3] fix: adjust for updated column counts, removed outdated test ids, and deleted responsive options --- .../__tests__/show-pages-list-page.test.js | 27 ++++++++++----- .../components/__tests__/cart-view.test.js | 16 ++++++--- .../sponsor-cart-tab/components/cart-view.js | 15 +++++---- .../__tests__/sponsor-forms-tab.test.js | 33 ++++++++++++------- .../__tests__/sponsor-pages-tab.test.js | 12 ++++--- 5 files changed, 68 insertions(+), 35 deletions(-) diff --git a/src/pages/sponsors/show-pages-list-page/__tests__/show-pages-list-page.test.js b/src/pages/sponsors/show-pages-list-page/__tests__/show-pages-list-page.test.js index 8f50169df..add2a8f59 100644 --- a/src/pages/sponsors/show-pages-list-page/__tests__/show-pages-list-page.test.js +++ b/src/pages/sponsors/show-pages-list-page/__tests__/show-pages-list-page.test.js @@ -141,9 +141,11 @@ describe("ShowPagesListPage", () => { } } ); - const editButton = screen.getByTestId("EditIcon").closest("button"); await act(async () => { - await userEvent.click(editButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.edit" }) + ); }); expect(getSummitSponsorshipTypes).toHaveBeenCalledWith( DEFAULT_CURRENT_PAGE, @@ -168,9 +170,11 @@ describe("ShowPagesListPage", () => { } } ); - const editButton = screen.getByTestId("EditIcon").closest("button"); await act(async () => { - await userEvent.click(editButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.edit" }) + ); }); expect(getSummitSponsorshipTypes).toHaveBeenCalledWith( DEFAULT_CURRENT_PAGE, @@ -208,10 +212,13 @@ describe("ShowPagesListPage", () => { } } ); - const deleteButtons = screen.getAllByTestId("DeleteIcon"); - const secondDeleteButton = deleteButtons[1].closest("button"); await act(async () => { - await userEvent.click(secondDeleteButton); + await userEvent.click( + screen.getAllByTestId("row-actions-menu-trigger")[1] + ); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.delete" }) + ); }); expect( await screen.findByText("general.are_you_sure") @@ -244,9 +251,11 @@ describe("ShowPagesListPage", () => { } } ); - const deleteButton = screen.getByTestId("DeleteIcon").closest("button"); await act(async () => { - await userEvent.click(deleteButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.delete" }) + ); }); expect( await screen.findByText("general.are_you_sure") diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/__tests__/cart-view.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/__tests__/cart-view.test.js index 935bdeb53..4e84c0c3a 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/__tests__/cart-view.test.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/__tests__/cart-view.test.js @@ -177,8 +177,9 @@ describe("CartView", () => { expect( screen.queryByRole("button", { name: "edit_sponsor.cart_tab.add_form" }) ).not.toBeInTheDocument(); - expect(screen.queryByTestId("action-edit")).not.toBeInTheDocument(); - expect(screen.queryByTestId("action-delete")).not.toBeInTheDocument(); + expect( + screen.queryByTestId("row-actions-menu-trigger") + ).not.toBeInTheDocument(); expect( screen.queryByText("edit_sponsor.cart_tab.sponsor_note.title") ).not.toBeInTheDocument(); @@ -187,14 +188,19 @@ describe("CartView", () => { ).not.toBeInTheDocument(); }); - it("shows them on an Open cart", () => { + it("shows them on an Open cart", async () => { renderCartView(createCart()); expect( screen.getByRole("button", { name: "edit_sponsor.cart_tab.add_form" }) ).toBeInTheDocument(); - expect(screen.getByTestId("action-edit")).toBeInTheDocument(); - expect(screen.getByTestId("action-delete")).toBeInTheDocument(); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + expect( + screen.getByRole("menuitem", { name: "general.edit" }) + ).toBeInTheDocument(); + expect( + screen.getByRole("menuitem", { name: "general.delete" }) + ).toBeInTheDocument(); expect( screen.getByText("edit_sponsor.cart_tab.sponsor_note.title") ).toBeInTheDocument(); 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 15b52a06b..1251bb1c8 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 @@ -190,6 +190,8 @@ const CartView = ({ } ]; + const amountIndex = tableColumns.findIndex((c) => c.columnKey === "amount"); + return ( <> @@ -231,11 +232,13 @@ const CartView = ({ } confirmButtonColor="error" > - {/* gap skips manage items when hidden, trailing covers lock (+ edit, delete) */} - {cartIsEditable ? ( - - ) : ( - + {/* aligns the total under amount; MuiTable passes its column count */} + {(colCount) => ( + )} {isCardPaymentCart && ( diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/__tests__/sponsor-forms-tab.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/__tests__/sponsor-forms-tab.test.js index 2ddd2ffc2..bb210e06b 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/__tests__/sponsor-forms-tab.test.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/__tests__/sponsor-forms-tab.test.js @@ -202,9 +202,11 @@ describe("SponsorFormsTab", () => { const explicitRow = screen.getByText("Managed Form 1").closest("tr"); const implicitRow = screen.getByText("Managed Form 2").closest("tr"); - expect(within(explicitRow).getByTestId("DeleteIcon")).toBeInTheDocument(); expect( - within(implicitRow).queryByTestId("DeleteIcon") + within(explicitRow).getByTestId("row-actions-menu-trigger") + ).toBeInTheDocument(); + expect( + within(implicitRow).queryByTestId("row-actions-menu-trigger") ).not.toBeInTheDocument(); }); @@ -232,10 +234,13 @@ describe("SponsorFormsTab", () => { expect(screen.getByText("Managed Form 1")).toBeInTheDocument(); expect(screen.getByText("Managed Form 2")).toBeInTheDocument(); - const deleteButtons = screen.getAllByTestId("DeleteIcon"); - const secondDeleteButton = deleteButtons[1].closest("button"); await act(async () => { - await userEvent.click(secondDeleteButton); + await userEvent.click( + screen.getAllByTestId("row-actions-menu-trigger")[1] + ); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.delete" }) + ); }); expect( @@ -289,9 +294,11 @@ describe("SponsorFormsTab", () => { } }); - const deleteButton = screen.getByTestId("DeleteIcon").closest("button"); await act(async () => { - await userEvent.click(deleteButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.delete" }) + ); }); expect( @@ -322,9 +329,11 @@ describe("SponsorFormsTab", () => { store }); - const deleteButton = screen.getByTestId("DeleteIcon").closest("button"); await act(async () => { - await userEvent.click(deleteButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.delete" }) + ); }); expect( @@ -371,9 +380,11 @@ describe("SponsorFormsTab", () => { } }); - const deleteButton = screen.getByTestId("DeleteIcon").closest("button"); await act(async () => { - await userEvent.click(deleteButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.delete" }) + ); }); expect( diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/__tests__/sponsor-pages-tab.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/__tests__/sponsor-pages-tab.test.js index b3e2a6cf3..f6cbe200d 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/__tests__/sponsor-pages-tab.test.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/__tests__/sponsor-pages-tab.test.js @@ -205,9 +205,11 @@ describe("SponsorPagesTab", () => { } ); - const editButton = screen.getByTestId("EditIcon").closest("button"); await act(async () => { - await userEvent.click(editButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.edit" }) + ); }); expect(getSponsorCustomizedPage).toHaveBeenCalledWith(1); @@ -355,9 +357,11 @@ describe("SponsorPagesTab", () => { } ); - const editButton = screen.getByTestId("EditIcon").closest("button"); await act(async () => { - await userEvent.click(editButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.edit" }) + ); }); await waitFor(() => {