From e1bebff284ee9bb04a049d103c00af41a5625a18 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Tue, 27 Oct 2026 11:09:06 -0300 Subject: [PATCH 1/5] chore: replace GridToolbar with uicore --- src/components/mui/grid-toolbar.js | 125 ------------------ .../admin_access/admin-access-list-page.js | 2 +- src/pages/companies/company-list-page.js | 2 +- .../email-flow-events-list-page.js | 2 +- src/pages/emails/email-template-list-page.js | 2 +- src/pages/events/event-type-list-page.js | 2 +- .../marketing/marketing-setting-list-page.js | 2 +- .../media-file-type-list-page.js | 2 +- .../media_uploads/media-upload-list-page.js | 2 +- .../schedule-settings-list-page.js | 2 +- .../selection-plan-list-page.js | 2 +- .../speakers/summit-speakers-list-page.js | 2 +- .../add-on-types/add-on-types-list-page.js | 2 +- .../form-template-item-list-page.js | 2 +- .../form-templates/form-template-list-page.js | 2 +- .../inventory/inventory-list-page.js | 2 +- .../page-templates/page-template-list-page.js | 2 +- .../sponsors/show-pages-list-page/index.js | 2 +- .../sponsors/show-purchase-list-page/index.js | 2 +- .../sponsor-form-item-list-page/index.js | 2 +- .../sponsors/sponsor-forms-list-page/index.js | 2 +- src/pages/sponsors/sponsor-list-page.js | 2 +- .../tabs/sponsor-badge-scans/index.js | 2 +- .../sponsor-cart-tab/components/cart-view.js | 2 +- .../sponsor-form-item-from-inventory.js | 2 +- .../sponsor-forms-manage-items.js | 2 +- .../tabs/sponsor-forms-tab/index.js | 2 +- .../tabs/sponsor-pages-tab/index.js | 2 +- .../tabs/sponsor-purchases-tab/index.js | 2 +- .../sponsor-users-list-per-sponsor/index.js | 2 +- .../unpaid-charges-report-page/index.js | 2 +- .../sponsors/sponsor-users-list-page/index.js | 2 +- .../sponsors/summit-sponsorship-list-page.js | 2 +- .../sponsorship-list-page.js | 2 +- src/pages/summitdocs/summitdoc-list-page.js | 2 +- src/pages/summits/summit-directory-page.js | 2 +- src/pages/tags/tag-list-page.js | 2 +- src/pages/taxes/tax-type-list-page.js | 2 +- .../payment-profile-list-page.js | 2 +- src/pages/tickets/ticket-type-list-page.js | 2 +- .../track_chairs/track-chair-list-page.js | 2 +- 41 files changed, 40 insertions(+), 165 deletions(-) delete mode 100644 src/components/mui/grid-toolbar.js diff --git a/src/components/mui/grid-toolbar.js b/src/components/mui/grid-toolbar.js deleted file mode 100644 index 1f023ba0b..000000000 --- a/src/components/mui/grid-toolbar.js +++ /dev/null @@ -1,125 +0,0 @@ -import React from "react"; -import PropTypes from "prop-types"; -import { Checkbox, FormControlLabel, FormGroup, Grid2 } from "@mui/material"; -import SearchInput from "openstack-uicore-foundation/lib/components/mui/search-input"; - -const GridToolbar = ({ searchProps, checkboxProps, children, splitAt }) => { - const hasSearch = !!searchProps; - const hasCheckbox = !!checkboxProps; - - let searchSize; - let checkboxSize; - let actionsSize; - - if (hasSearch && hasCheckbox) { - searchSize = { xs: 12, sm: 6, md: 4 }; - checkboxSize = { xs: 12, sm: 6, md: 2 }; - actionsSize = { xs: 12, md: 6 }; - } else if (hasSearch) { - // has search but no checkbox - searchSize = { xs: 12, [splitAt]: 4 }; - actionsSize = { xs: 12, [splitAt]: 8 }; - } else if (hasCheckbox) { - // has checkbox but no search - checkboxSize = { xs: 12, [splitAt]: 4 }; - actionsSize = { xs: 12, [splitAt]: 8 }; - } else { - actionsSize = { xs: 12 }; - } - - // must match the breakpoint where actionsSize itself leaves its xs:12 - // (own full-width row) value — that's the point flexWrap needs to switch - // to nowrap, so children don't get squeezed once actionsSize starts - // sharing a row with a sibling - const actionsWidthBreakpoint = - hasSearch && hasCheckbox ? "md" : hasSearch || hasCheckbox ? splitAt : "xs"; - - // children go natural (auto) width starting at actionsWidthBreakpoint, - // never earlier than sm; between sm and that point (only a real window - // when actionsWidthBreakpoint is md) they fill the row evenly instead - const actionsAutoBreakpoint = - actionsWidthBreakpoint === "xs" ? "sm" : actionsWidthBreakpoint; - const hasFillTier = actionsAutoBreakpoint !== "sm"; - - return ( - - {hasSearch && ( - - - - )} - {hasCheckbox && ( - - - - } - label={checkboxProps.label} - sx={{ whiteSpace: "nowrap" }} - /> - - - )} - - {/* xs: stacked full width. sm through actionsAutoBreakpoint (only a - real window when that's md): fill the row evenly via flexGrow. - From actionsAutoBreakpoint on: natural/auto width. */} - {React.Children.map(children, (child) => - child - ? React.cloneElement(child, { - sx: { - width: { xs: "100%", [actionsAutoBreakpoint]: "auto" }, - ...(hasFillTier && { - flexGrow: { sm: 1, [actionsAutoBreakpoint]: 0 }, - flexBasis: { sm: 0, [actionsAutoBreakpoint]: "auto" } - }), - ...child.props.sx - } - }) - : child - )} - - - ); -}; - -GridToolbar.propTypes = { - searchProps: PropTypes.shape({ - term: PropTypes.string, - onSearch: PropTypes.func.isRequired, - placeholder: PropTypes.string, - debounced: PropTypes.bool - }), - checkboxProps: PropTypes.shape({ - checked: PropTypes.bool, - onChange: PropTypes.func, - label: PropTypes.node, - ariaLabel: PropTypes.string - }), - // breakpoint where search/checkbox split from the actions row into their - // compact ratio — raise it (e.g. "lg") when actions holds a lot of children - splitAt: PropTypes.oneOf(["xs", "sm", "md", "lg", "xl"]) -}; - -GridToolbar.defaultProps = { - searchProps: null, - checkboxProps: null, - splitAt: "sm" -}; - -export default GridToolbar; diff --git a/src/pages/admin_access/admin-access-list-page.js b/src/pages/admin_access/admin-access-list-page.js index 91da17f8d..a9101b652 100644 --- a/src/pages/admin_access/admin-access-list-page.js +++ b/src/pages/admin_access/admin-access-list-page.js @@ -18,7 +18,7 @@ import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getAdminAccesses, deleteAdminAccess, diff --git a/src/pages/companies/company-list-page.js b/src/pages/companies/company-list-page.js index 6e7215661..993675103 100644 --- a/src/pages/companies/company-list-page.js +++ b/src/pages/companies/company-list-page.js @@ -17,7 +17,7 @@ import T from "i18n-react/dist/i18n-react"; import { Box, Button } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getCompanies, deleteCompany } from "../../actions/company-actions"; import { DEFAULT_CURRENT_PAGE } from "../../utils/constants"; diff --git a/src/pages/email_flow_events/email-flow-events-list-page.js b/src/pages/email_flow_events/email-flow-events-list-page.js index ea39bcea4..cb8dcce22 100644 --- a/src/pages/email_flow_events/email-flow-events-list-page.js +++ b/src/pages/email_flow_events/email-flow-events-list-page.js @@ -15,7 +15,7 @@ import React, { useEffect } from "react"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getSummitById } from "../../actions/summit-actions"; import { getEmailFlowEvents } from "../../actions/email-flows-events-actions"; import { DEFAULT_CURRENT_PAGE } from "../../utils/constants"; diff --git a/src/pages/emails/email-template-list-page.js b/src/pages/emails/email-template-list-page.js index e03986741..595633376 100644 --- a/src/pages/emails/email-template-list-page.js +++ b/src/pages/emails/email-template-list-page.js @@ -18,7 +18,7 @@ import AddIcon from "@mui/icons-material/Add"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { DEFAULT_CURRENT_PAGE } from "../../utils/constants"; import { getEmailTemplates, diff --git a/src/pages/events/event-type-list-page.js b/src/pages/events/event-type-list-page.js index 9eec3f2fc..ddd7c0574 100644 --- a/src/pages/events/event-type-list-page.js +++ b/src/pages/events/event-type-list-page.js @@ -19,7 +19,7 @@ import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getEventTypes as getEventTypesAction, getEventType as getEventTypeAction, diff --git a/src/pages/marketing/marketing-setting-list-page.js b/src/pages/marketing/marketing-setting-list-page.js index ce9a03b9e..47d034132 100644 --- a/src/pages/marketing/marketing-setting-list-page.js +++ b/src/pages/marketing/marketing-setting-list-page.js @@ -18,7 +18,7 @@ import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import SummitDropdown from "../../components/summit-dropdown"; import showConfirmDialog from "../../components/mui/showConfirmDialog"; import { getSummitById } from "../../actions/summit-actions"; 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 4ad510320..0e3e84d2d 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 @@ -17,7 +17,7 @@ import T from "i18n-react/dist/i18n-react"; import { Box, Button } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getMediaFileTypes, getMediaFileType, diff --git a/src/pages/media_uploads/media-upload-list-page.js b/src/pages/media_uploads/media-upload-list-page.js index 837f04af0..fa9568b50 100644 --- a/src/pages/media_uploads/media-upload-list-page.js +++ b/src/pages/media_uploads/media-upload-list-page.js @@ -20,8 +20,8 @@ import Button from "@mui/material/Button"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; import RawHTML from "openstack-uicore-foundation/lib/components/raw-html"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import SummitDropdown from "../../components/summit-dropdown"; -import GridToolbar from "../../components/mui/grid-toolbar"; import { getMediaUploads as getMediaUploadsAction, deleteMediaUpload as deleteMediaUploadAction, diff --git a/src/pages/schedule_settings/schedule-settings-list-page.js b/src/pages/schedule_settings/schedule-settings-list-page.js index ac94cb889..0e0348eed 100644 --- a/src/pages/schedule_settings/schedule-settings-list-page.js +++ b/src/pages/schedule_settings/schedule-settings-list-page.js @@ -17,7 +17,7 @@ import T from "i18n-react/dist/i18n-react"; import Button from "@mui/material/Button"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getAllScheduleSettings, deleteScheduleSetting, diff --git a/src/pages/selection-plans/selection-plan-list-page.js b/src/pages/selection-plans/selection-plan-list-page.js index 2e840adff..031761073 100644 --- a/src/pages/selection-plans/selection-plan-list-page.js +++ b/src/pages/selection-plans/selection-plan-list-page.js @@ -18,7 +18,7 @@ import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { deleteSelectionPlan, getSelectionPlan, diff --git a/src/pages/speakers/summit-speakers-list-page.js b/src/pages/speakers/summit-speakers-list-page.js index 69a5140f4..cbcdd832f 100644 --- a/src/pages/speakers/summit-speakers-list-page.js +++ b/src/pages/speakers/summit-speakers-list-page.js @@ -17,7 +17,7 @@ import T from "i18n-react/dist/i18n-react"; import { Box, Button } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getSpeakers, deleteSpeaker } from "../../actions/speaker-actions"; import Member from "../../models/member"; import { DEFAULT_CURRENT_PAGE } from "../../utils/constants"; diff --git a/src/pages/sponsors-global/add-on-types/add-on-types-list-page.js b/src/pages/sponsors-global/add-on-types/add-on-types-list-page.js index c78211e9a..84d2086f0 100644 --- a/src/pages/sponsors-global/add-on-types/add-on-types-list-page.js +++ b/src/pages/sponsors-global/add-on-types/add-on-types-list-page.js @@ -18,7 +18,7 @@ import { connect } from "react-redux"; import { Breadcrumb } from "react-breadcrumbs"; import T from "i18n-react/dist/i18n-react"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import Restrict from "../../../routes/restrict"; import { getAddOnTypes, 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 2b9031690..778a4f7d8 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 @@ -17,8 +17,8 @@ import T from "i18n-react/dist/i18n-react"; import { Alert, Box, Button } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { ImagePreviewCell } from "../../../components/image-preview-cell"; -import GridToolbar from "../../../components/mui/grid-toolbar"; import { cloneFromInventoryItem, getFormTemplateItem, 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 f66bdde7e..4f323f200 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 @@ -17,7 +17,7 @@ import AddIcon from "@mui/icons-material/Add"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { archiveFormTemplate, deleteFormTemplate, diff --git a/src/pages/sponsors-global/inventory/inventory-list-page.js b/src/pages/sponsors-global/inventory/inventory-list-page.js index c504436aa..79945bc42 100644 --- a/src/pages/sponsors-global/inventory/inventory-list-page.js +++ b/src/pages/sponsors-global/inventory/inventory-list-page.js @@ -17,7 +17,7 @@ import AddIcon from "@mui/icons-material/Add"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { archiveInventoryItem, deleteInventoryItemImage, 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 000a5c774..266fa77a0 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 AddIcon from "@mui/icons-material/Add"; import { connect } from "react-redux"; import T from "i18n-react/dist/i18n-react"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { archivePageTemplate, deletePageTemplate, diff --git a/src/pages/sponsors/show-pages-list-page/index.js b/src/pages/sponsors/show-pages-list-page/index.js index 5790d5521..46f23d9d0 100644 --- a/src/pages/sponsors/show-pages-list-page/index.js +++ b/src/pages/sponsors/show-pages-list-page/index.js @@ -18,7 +18,7 @@ import { Breadcrumb } from "react-breadcrumbs"; import { Box, Button } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { archiveShowPage, deleteShowPage, diff --git a/src/pages/sponsors/show-purchase-list-page/index.js b/src/pages/sponsors/show-purchase-list-page/index.js index 18d555ba6..e6290b8a9 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, CircularProgress, IconButton } from "@mui/material"; import DownloadIcon from "@mui/icons-material/Download"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import history from "../../../history"; import { getSponsorCart, 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 880fbbd4d..216897d51 100644 --- a/src/pages/sponsors/sponsor-form-item-list-page/index.js +++ b/src/pages/sponsors/sponsor-form-item-list-page/index.js @@ -18,8 +18,8 @@ import T from "i18n-react/dist/i18n-react"; import { Alert, Box, Button } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTableEditable from "openstack-uicore-foundation/lib/components/mui/editable-table"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { ImagePreviewCell } from "../../../components/image-preview-cell"; -import GridToolbar from "../../../components/mui/grid-toolbar"; import { deleteSponsorFormItem, getSponsorFormItem, diff --git a/src/pages/sponsors/sponsor-forms-list-page/index.js b/src/pages/sponsors/sponsor-forms-list-page/index.js index c7b38ded2..b47a40f26 100644 --- a/src/pages/sponsors/sponsor-forms-list-page/index.js +++ b/src/pages/sponsors/sponsor-forms-list-page/index.js @@ -19,7 +19,7 @@ import { Box, Button } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiDropdownCheckbox from "openstack-uicore-foundation/lib/components/mui/dropdown-checkbox"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import history from "../../../history"; import { archiveSponsorForm, diff --git a/src/pages/sponsors/sponsor-list-page.js b/src/pages/sponsors/sponsor-list-page.js index f89120916..475e25bc9 100644 --- a/src/pages/sponsors/sponsor-list-page.js +++ b/src/pages/sponsors/sponsor-list-page.js @@ -18,7 +18,7 @@ import { Badge, Button, Tooltip, Typography } 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"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getLeadReportSettingsMeta, getSummitById, 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 93af7c82f..d41058c1a 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 @@ -18,7 +18,7 @@ import { Box, Button } 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"; -import GridToolbar from "../../../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getSponsor, getBadgeScans, 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 3a2110255..15b52a06b 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 @@ -21,7 +21,7 @@ import LockClosedIcon from "@mui/icons-material/Lock"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; import { TotalRow } from "openstack-uicore-foundation/lib/components/mui/table/extra-rows"; import InfoNote from "openstack-uicore-foundation/lib/components/mui/info-note"; -import GridToolbar from "../../../../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import history from "../../../../../../history"; import { checkoutCart, 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 ba20ea783..e169e20d8 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 @@ -18,7 +18,7 @@ import { import CloseIcon from "@mui/icons-material/Close"; import SwapVertIcon from "@mui/icons-material/SwapVert"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../../../../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { ImagePreviewCell } from "../../../../../../../components/image-preview-cell"; import { formatRateFromCents } from "../../../../../../../utils/rate-helpers"; import { 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 8d98e95ff..4b1a543d3 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 @@ -18,7 +18,7 @@ import { Box, Button, IconButton, Tooltip } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import ImageIcon from "@mui/icons-material/Image"; import MuiTableEditable from "openstack-uicore-foundation/lib/components/mui/editable-table"; -import GridToolbar from "../../../../../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { addSponsorManagedFormItems, archiveSponsorCustomizedFormItem, 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 4feae77f8..22ebadf82 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 @@ -18,7 +18,7 @@ import { Box, Button, Chip } from "@mui/material"; import ArrowForwardIcon from "@mui/icons-material/ArrowForward"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { archiveSponsorCustomizedForm, deleteSponsorCustomizedForm, 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 501c88744..1ef87a436 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 @@ -18,7 +18,7 @@ import { Box, Button } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import ArrowForwardIcon from "@mui/icons-material/ArrowForward"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getSponsorManagedPages, getSponsorManagedPage, 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 41500b099..ca075a617 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, CircularProgress, IconButton } from "@mui/material"; import DownloadIcon from "@mui/icons-material/Download"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import history from "../../../../../history"; import { getSponsorCart, 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 79dd08be0..97739fef2 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 @@ -17,7 +17,7 @@ import T from "i18n-react/dist/i18n-react"; import { Box, Button, CircularProgress } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import SaveAltIcon from "@mui/icons-material/SaveAlt"; -import GridToolbar from "../../../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { deleteSponsorUser, getSponsorUserRequests, diff --git a/src/pages/sponsors/sponsor-reports/unpaid-charges-report-page/index.js b/src/pages/sponsors/sponsor-reports/unpaid-charges-report-page/index.js index 7f9da7e9a..cf749e3c5 100644 --- a/src/pages/sponsors/sponsor-reports/unpaid-charges-report-page/index.js +++ b/src/pages/sponsors/sponsor-reports/unpaid-charges-report-page/index.js @@ -18,7 +18,7 @@ import { Alert, Box, Button } from "@mui/material"; import DownloadIcon from "@mui/icons-material/Download"; import MuiDropdown from "openstack-uicore-foundation/lib/components/mui/dropdown"; import { currencyAmountFromCents } from "openstack-uicore-foundation/lib/utils/money"; -import GridToolbar from "../../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import SummaryPanel from "../../../../components/sponsors/reports/SummaryPanel"; import UnpaidChargesBySponsor, { buildUnpaidChargesCsvRows, diff --git a/src/pages/sponsors/sponsor-users-list-page/index.js b/src/pages/sponsors/sponsor-users-list-page/index.js index 14ab9553a..b287e241b 100644 --- a/src/pages/sponsors/sponsor-users-list-page/index.js +++ b/src/pages/sponsors/sponsor-users-list-page/index.js @@ -18,7 +18,7 @@ import { Breadcrumb } from "react-breadcrumbs"; import { Box, Button, CircularProgress } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import SaveAltIcon from "@mui/icons-material/SaveAlt"; -import GridToolbar from "../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { deleteSponsorUser, deleteSponsorUserRequest, diff --git a/src/pages/sponsors/summit-sponsorship-list-page.js b/src/pages/sponsors/summit-sponsorship-list-page.js index 7df078e62..391340278 100644 --- a/src/pages/sponsors/summit-sponsorship-list-page.js +++ b/src/pages/sponsors/summit-sponsorship-list-page.js @@ -17,7 +17,7 @@ import T from "i18n-react/dist/i18n-react"; import { Alert, Box, Button } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTableSortable from "openstack-uicore-foundation/lib/components/mui/sortable-table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getSummitById } from "../../actions/summit-actions"; import { deleteSummitSponsorship, diff --git a/src/pages/sponsorship-types/sponsorship-list-page.js b/src/pages/sponsorship-types/sponsorship-list-page.js index 0f3784760..3a9533c0a 100644 --- a/src/pages/sponsorship-types/sponsorship-list-page.js +++ b/src/pages/sponsorship-types/sponsorship-list-page.js @@ -17,7 +17,7 @@ import T from "i18n-react/dist/i18n-react"; import { Box, Button } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getSponsorships, getSponsorship, diff --git a/src/pages/summitdocs/summitdoc-list-page.js b/src/pages/summitdocs/summitdoc-list-page.js index 335e989c7..3954f06a6 100644 --- a/src/pages/summitdocs/summitdoc-list-page.js +++ b/src/pages/summitdocs/summitdoc-list-page.js @@ -17,7 +17,7 @@ import T from "i18n-react/dist/i18n-react"; import Button from "@mui/material/Button"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getSummitById } from "../../actions/summit-actions"; import { getSummitDocs, diff --git a/src/pages/summits/summit-directory-page.js b/src/pages/summits/summit-directory-page.js index 3c1d675cb..06e8bf830 100644 --- a/src/pages/summits/summit-directory-page.js +++ b/src/pages/summits/summit-directory-page.js @@ -20,7 +20,7 @@ import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import Chip from "@mui/material/Chip"; import AddIcon from "@mui/icons-material/Add"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { clearCurrentSummit, deleteSummit, diff --git a/src/pages/tags/tag-list-page.js b/src/pages/tags/tag-list-page.js index 12da3f260..224865b02 100644 --- a/src/pages/tags/tag-list-page.js +++ b/src/pages/tags/tag-list-page.js @@ -18,7 +18,7 @@ import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; import AddIcon from "@mui/icons-material/Add"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import TagsDialog from "./tags-popup"; import { getTags, diff --git a/src/pages/taxes/tax-type-list-page.js b/src/pages/taxes/tax-type-list-page.js index 80749cb9e..58639536b 100644 --- a/src/pages/taxes/tax-type-list-page.js +++ b/src/pages/taxes/tax-type-list-page.js @@ -19,7 +19,7 @@ import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import Restrict from "../../routes/restrict"; import { getTaxTypes, diff --git a/src/pages/tickets/payment-profile/payment-profile-list-page.js b/src/pages/tickets/payment-profile/payment-profile-list-page.js index 4a7eaa333..3595c906e 100644 --- a/src/pages/tickets/payment-profile/payment-profile-list-page.js +++ b/src/pages/tickets/payment-profile/payment-profile-list-page.js @@ -17,7 +17,7 @@ import T from "i18n-react/dist/i18n-react"; import { Box, Button } from "@mui/material"; import AddIcon from "@mui/icons-material/Add"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getPaymentProfiles, getPaymentProfile, diff --git a/src/pages/tickets/ticket-type-list-page.js b/src/pages/tickets/ticket-type-list-page.js index 2137cacd7..e7e97c98f 100644 --- a/src/pages/tickets/ticket-type-list-page.js +++ b/src/pages/tickets/ticket-type-list-page.js @@ -30,6 +30,7 @@ import { GridFilter, useGridFilter } from "openstack-uicore-foundation/lib/components/mui/grid-filter"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getSummitById } from "../../actions/summit-actions"; import { getTicketTypes, @@ -41,7 +42,6 @@ import { getBadgeTypes } from "../../actions/badge-actions"; import { handleDDLSortByLabel } from "../../utils/methods"; import { DEFAULT_CURRENT_PAGE } from "../../utils/constants"; import showConfirmDialog from "../../components/mui/showConfirmDialog"; -import GridToolbar from "../../components/mui/grid-toolbar"; import { getCriterias, buildTicketTypeFilters diff --git a/src/pages/track_chairs/track-chair-list-page.js b/src/pages/track_chairs/track-chair-list-page.js index f89ef1e57..87a4b7da5 100644 --- a/src/pages/track_chairs/track-chair-list-page.js +++ b/src/pages/track_chairs/track-chair-list-page.js @@ -26,7 +26,7 @@ import { import AddIcon from "@mui/icons-material/Add"; import ClearIcon from "@mui/icons-material/Clear"; import MuiTable from "openstack-uicore-foundation/lib/components/mui/table"; -import GridToolbar from "../../components/mui/grid-toolbar"; +import GridToolbar from "openstack-uicore-foundation/lib/components/mui/grid-toolbar"; import { getTrackChairs, deleteTrackChair, From 1f1cdd0de0a71c7f12e4b590f4079e043d7641c6 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Tue, 27 Oct 2026 11:30:32 -0300 Subject: [PATCH 2/5] chore: fix tests --- .../__tests__/admin-access-list-page.test.js | 18 ++++-------- .../__tests__/event-type-list-page.test.js | 17 +++-------- .../marketing-setting-list-page.test.js | 17 ++--------- .../media-file-type-list-page.test.js | 22 +-------------- .../__tests__/media-upload-list-page.test.js | 17 +++-------- .../summit-speakers-list-page.test.js | 25 +++-------------- .../__tests__/index.test.js | 26 +++-------------- .../__tests__/sponsor-purchases-list.test.js | 28 +++---------------- ...ponsor-users-list-per-sponsor-page.test.js | 21 +++----------- .../__tests__/summitdoc-list-page.test.js | 17 ++--------- 10 files changed, 36 insertions(+), 172 deletions(-) diff --git a/src/pages/admin_access/__tests__/admin-access-list-page.test.js b/src/pages/admin_access/__tests__/admin-access-list-page.test.js index e42593f22..5070f644b 100644 --- a/src/pages/admin_access/__tests__/admin-access-list-page.test.js +++ b/src/pages/admin_access/__tests__/admin-access-list-page.test.js @@ -63,16 +63,6 @@ jest.mock("openstack-uicore-foundation/lib/components/mui/table", () => { return MockMuiTable; }); -jest.mock( - "openstack-uicore-foundation/lib/components/mui/search-input", - () => ({ - __esModule: true, - default: ({ onSearch }) => ( - onSearch(e.target.value)} /> - ) - }) -); - jest.mock("../../../components/forms/admin-access-form", () => { const MockAdminAccessForm = ({ onSubmit, isSaving }) => (
@@ -202,9 +192,11 @@ describe("AdminAccessListPage", () => { it("requests data with search term and resets to page 1", async () => { renderPage(); - fireEvent.change(screen.getByPlaceholderText("search"), { - target: { value: "admins" } - }); + const searchInput = screen.getByPlaceholderText( + "admin_access.placeholders.search" + ); + fireEvent.change(searchInput, { target: { value: "admins" } }); + fireEvent.keyDown(searchInput, { key: "Enter" }); await waitFor(() => { expect(mockGetAdminAccesses).toHaveBeenCalledWith( "admins", diff --git a/src/pages/events/__tests__/event-type-list-page.test.js b/src/pages/events/__tests__/event-type-list-page.test.js index fbf6a2228..04a7f0138 100644 --- a/src/pages/events/__tests__/event-type-list-page.test.js +++ b/src/pages/events/__tests__/event-type-list-page.test.js @@ -52,18 +52,6 @@ jest.mock("openstack-uicore-foundation/lib/components/mui/table", () => ({ ) })); -jest.mock( - "openstack-uicore-foundation/lib/components/mui/search-input", - () => ({ - __esModule: true, - default: ({ onSearch }) => ( - - ) - }) -); - // The stub mirrors the real popup contract from the popup-dialog pattern: // it closes only when the promise returned by onSave resolves. jest.mock("../components/event-type-dialog", () => ({ @@ -125,7 +113,10 @@ describe("EventTypeListPage", () => { it("threads search, pagination and sort params to getEventTypes", async () => { renderWithRedux(, { initialState }); - await userEvent.click(screen.getByRole("button", { name: "search-foo" })); + await userEvent.type( + screen.getByPlaceholderText("Search..."), + "foo{Enter}" + ); // search resets to the first page and keeps current order expect(getEventTypes).toHaveBeenLastCalledWith("foo", 1, 10, "id", 1); diff --git a/src/pages/marketing/__tests__/marketing-setting-list-page.test.js b/src/pages/marketing/__tests__/marketing-setting-list-page.test.js index 690e07da9..5ce31f446 100644 --- a/src/pages/marketing/__tests__/marketing-setting-list-page.test.js +++ b/src/pages/marketing/__tests__/marketing-setting-list-page.test.js @@ -53,18 +53,6 @@ jest.mock("openstack-uicore-foundation/lib/components/mui/table", () => ({ ) })); -jest.mock( - "openstack-uicore-foundation/lib/components/mui/search-input", - () => ({ - __esModule: true, - default: ({ onSearch }) => ( - - ) - }) -); - jest.mock("i18n-react/dist/i18n-react", () => ({ __esModule: true, default: { translate: (key) => key } @@ -154,8 +142,9 @@ describe("MarketingSettingListPage", () => { }); await act(async () => { - await userEvent.click( - screen.getByRole("button", { name: "search-trigger" }) + await userEvent.type( + screen.getByPlaceholderText("marketing.placeholders.search_settings"), + "newterm{Enter}" ); }); diff --git a/src/pages/media_file_types/__tests__/media-file-type-list-page.test.js b/src/pages/media_file_types/__tests__/media-file-type-list-page.test.js index ed77e0ed2..ead0a92fe 100644 --- a/src/pages/media_file_types/__tests__/media-file-type-list-page.test.js +++ b/src/pages/media_file_types/__tests__/media-file-type-list-page.test.js @@ -33,26 +33,6 @@ jest.mock("openstack-uicore-foundation/lib/components/mui/table", () => ({ ) })); -jest.mock("openstack-uicore-foundation/lib/components/mui/search-input", () => { - const React = require("react"); - return { - __esModule: true, - default: ({ onSearch, term }) => { - const [value, setValue] = React.useState(term || ""); - return ( - setValue(e.target.value)} - onKeyDown={(e) => { - if (e.key === "Enter") onSearch(value); - }} - /> - ); - } - }; -}); - jest.mock("../components/media-file-type-dialog", () => ({ __esModule: true, default: ({ onClose, onSave }) => ( @@ -207,7 +187,7 @@ describe("MediaFileTypeListPage", () => { initialState: buildInitialState() }); - await user.type(screen.getByTestId("search-input"), "pdf{Enter}"); + await user.type(screen.getByPlaceholderText("Search..."), "pdf{Enter}"); await waitFor(() => { expect(mediaFileTypeActions.getMediaFileTypes).toHaveBeenCalledWith( diff --git a/src/pages/media_uploads/__tests__/media-upload-list-page.test.js b/src/pages/media_uploads/__tests__/media-upload-list-page.test.js index 212586bb2..003203174 100644 --- a/src/pages/media_uploads/__tests__/media-upload-list-page.test.js +++ b/src/pages/media_uploads/__tests__/media-upload-list-page.test.js @@ -40,18 +40,6 @@ jest.mock("openstack-uicore-foundation/lib/components/mui/table", () => ({ ) })); -jest.mock( - "openstack-uicore-foundation/lib/components/mui/search-input", - () => ({ - __esModule: true, - default: ({ onSearch }) => ( - - ) - }) -); - jest.mock("../../../components/summit-dropdown", () => ({ __esModule: true, default: ({ onClick }) => ( @@ -106,7 +94,10 @@ describe("MediaUploadListPage", () => { it("threads search, pagination and sort params to getMediaUploads", async () => { renderPage(); - await userEvent.click(screen.getByRole("button", { name: "search-foo" })); + await userEvent.type( + screen.getByPlaceholderText("Search..."), + "foo{Enter}" + ); expect(getMediaUploads).toHaveBeenLastCalledWith("foo", 1, 10, "id", 1); await userEvent.click(screen.getByRole("button", { name: "page-2" })); diff --git a/src/pages/speakers/__tests__/summit-speakers-list-page.test.js b/src/pages/speakers/__tests__/summit-speakers-list-page.test.js index 5f90cf350..ae8b43d1c 100644 --- a/src/pages/speakers/__tests__/summit-speakers-list-page.test.js +++ b/src/pages/speakers/__tests__/summit-speakers-list-page.test.js @@ -33,26 +33,6 @@ jest.mock("openstack-uicore-foundation/lib/components/mui/table", () => ({ ) })); -jest.mock("openstack-uicore-foundation/lib/components/mui/search-input", () => { - const React = require("react"); - return { - __esModule: true, - default: ({ onSearch, term }) => { - const [value, setValue] = React.useState(term || ""); - return ( - setValue(e.target.value)} - onKeyDown={(e) => { - if (e.key === "Enter") onSearch(value); - }} - /> - ); - } - }; -}); - jest.mock("../../../actions/speaker-actions", () => ({ ...jest.requireActual("../../../actions/speaker-actions"), getSpeakers: jest.fn(() => () => Promise.resolve()), @@ -210,7 +190,10 @@ describe("SummitSpeakerListPage", () => { initialState: buildInitialState() }); - await user.type(screen.getByTestId("search-input"), "alice{Enter}"); + await user.type( + screen.getByPlaceholderText("general.placeholders.search_speakers"), + "alice{Enter}" + ); await waitFor(() => { expect(speakerActions.getSpeakers).toHaveBeenCalledWith( diff --git a/src/pages/sponsors/show-purchase-list-page/__tests__/index.test.js b/src/pages/sponsors/show-purchase-list-page/__tests__/index.test.js index 66f7a977b..6e1549014 100644 --- a/src/pages/sponsors/show-purchase-list-page/__tests__/index.test.js +++ b/src/pages/sponsors/show-purchase-list-page/__tests__/index.test.js @@ -75,27 +75,6 @@ jest.mock("../../../../actions/sponsor-purchases-actions", () => ({ changePurchasePaymentMethod: jest.fn(() => () => Promise.resolve()) })); -/** - * SearchInput mock: plain that fires onSearch on Enter key, - * matching the real component behaviour without TextField overhead. - */ -jest.mock("openstack-uicore-foundation/lib/components/mui/search-input", () => { - const ReactLib = require("react"); - return { - __esModule: true, - default: ({ onSearch, term }) => { - const handleKeyDown = (e) => { - if (e.key === "Enter") onSearch(e.target.value); - }; - return ReactLib.createElement("input", { - "data-testid": "search-input", - defaultValue: term || "", - onKeyDown: handleKeyDown - }); - } - }; -}); - // ---- Helpers ---- const DEFAULT_LIST_STATE = { @@ -692,7 +671,10 @@ describe("ShowPurchaseListPage", () => { renderPage({ filters }); await act(async () => { - await userEvent.type(screen.getByTestId("search-input"), "john{Enter}"); + await userEvent.type( + screen.getByPlaceholderText("general.placeholders.search"), + "john{Enter}" + ); }); expect(getAllSponsorPurchases).toHaveBeenLastCalledWith( diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/__tests__/sponsor-purchases-list.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/__tests__/sponsor-purchases-list.test.js index 722638f02..a53345b6e 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/__tests__/sponsor-purchases-list.test.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/__tests__/sponsor-purchases-list.test.js @@ -79,29 +79,6 @@ jest.mock( }) ); -/** - * SearchInput mock: plain that fires onSearch on Enter key, - * matching the real component behaviour without TextField overhead. - */ -jest.mock("openstack-uicore-foundation/lib/components/mui/search-input", () => { - const React = require("react"); - return { - __esModule: true, - default: ({ onSearch, term }) => { - const handleKeyDown = (e) => { - if (e.key === "Enter") onSearch(e.target.value); - }; - return ( - - ); - } - }; -}); - // ---- Helpers ---- const DEFAULT_PURCHASE_LIST_STATE = { @@ -438,7 +415,10 @@ describe("SponsorPurchasesTab", () => { }); await act(async () => { - await userEvent.type(screen.getByTestId("search-input"), "john{Enter}"); + await userEvent.type( + screen.getByPlaceholderText("edit_sponsor.placeholders.search"), + "john{Enter}" + ); }); expect(getSponsorPurchases).toHaveBeenCalledWith( diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/__tests__/sponsor-users-list-per-sponsor-page.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/__tests__/sponsor-users-list-per-sponsor-page.test.js index bd47928b0..06c335eb3 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/__tests__/sponsor-users-list-per-sponsor-page.test.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-users-list-per-sponsor/__tests__/sponsor-users-list-per-sponsor-page.test.js @@ -26,19 +26,6 @@ jest.mock( () => () =>
); -jest.mock( - "openstack-uicore-foundation/lib/components/mui/search-input", - () => - function SearchInputMock({ onSearch }) { - return ( - onSearch(e.target.value)} - /> - ); - } -); - jest.mock("../../../../../../components/mui/custom-alert", () => () => (
)); @@ -401,13 +388,13 @@ describe("SponsorUsersListPerSponsorPage", () => { // ── Search ───────────────────────────────────────────────────────────────── describe("search", () => { - it("calls getSponsorUsers with the search term when the search input changes", () => { + it("calls getSponsorUsers with the search term when a search term is submitted", () => { renderPage(); jest.clearAllMocks(); - fireEvent.change(screen.getByTestId("search-input"), { - target: { value: "alice" } - }); + const searchInput = screen.getByPlaceholderText("Search..."); + fireEvent.change(searchInput, { target: { value: "alice" } }); + fireEvent.keyDown(searchInput, { key: "Enter" }); expect(getSponsorUsers).toHaveBeenCalledWith(DEFAULT_SPONSOR.id, "alice"); }); diff --git a/src/pages/summitdocs/__tests__/summitdoc-list-page.test.js b/src/pages/summitdocs/__tests__/summitdoc-list-page.test.js index 14730bc7f..2f417b36f 100644 --- a/src/pages/summitdocs/__tests__/summitdoc-list-page.test.js +++ b/src/pages/summitdocs/__tests__/summitdoc-list-page.test.js @@ -41,18 +41,6 @@ jest.mock("openstack-uicore-foundation/lib/components/mui/table", () => ({ ) })); -jest.mock( - "openstack-uicore-foundation/lib/components/mui/search-input", - () => ({ - __esModule: true, - default: ({ onSearch }) => ( - - ) - }) -); - jest.mock("i18n-react/dist/i18n-react", () => ({ __esModule: true, default: { translate: (key) => key } @@ -107,8 +95,9 @@ describe("SummitDocListPage", () => { }); await act(async () => { - await userEvent.click( - screen.getByRole("button", { name: "search-trigger" }) + await userEvent.type( + screen.getByPlaceholderText("summitdoc.placeholders.search"), + "newterm{Enter}" ); }); From bddbb426e516862831e1e35491f190ecf3acd86b Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Tue, 27 Oct 2026 11:52:06 -0300 Subject: [PATCH 3/5] chore: update uicore --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 023ec26e1..848012500 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.70", + "openstack-uicore-foundation": "5.0.71-beta.0", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", diff --git a/yarn.lock b/yarn.lock index 77ea86749..1c862fe9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9068,10 +9068,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.70: - version "5.0.70" - resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.70.tgz#46b203aa0ac57db421e09c0f8f9b06a8ffd97f51" - integrity sha512-5KNhmFTFVpN6flqO4PI3TxrTF0Jl2+rqLLvpIwFoJBUVw9MolPG0NSwh4jXy3hOfJgmxD5OE+IHAehNsQ/UseQ== +openstack-uicore-foundation@5.0.71-beta.0: + version "5.0.71-beta.0" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.71-beta.0.tgz#d84a283aa4f66eaf1ca4d0eed5ec1242c6c21450" + integrity sha512-R72b4EvZ7qeNmGOvZ2Efww83KJpZPKl+afF0rEbDg0KblfjC3D+jxJZH0UjF0zHuQzUS7BIImgBF6WKCM7BjGA== dependencies: use-sync-external-store "^1.6.0" From 7d854ab67044a332fe44af30f959e652f4d05f44 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Wed, 28 Oct 2026 11:32:05 -0300 Subject: [PATCH 4/5] chore: update uicore --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 848012500..7cb334a50 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.71-beta.0", + "openstack-uicore-foundation": "5.0.71", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", diff --git a/yarn.lock b/yarn.lock index 1c862fe9a..72c203d8b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9068,10 +9068,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.71-beta.0: - version "5.0.71-beta.0" - resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.71-beta.0.tgz#d84a283aa4f66eaf1ca4d0eed5ec1242c6c21450" - integrity sha512-R72b4EvZ7qeNmGOvZ2Efww83KJpZPKl+afF0rEbDg0KblfjC3D+jxJZH0UjF0zHuQzUS7BIImgBF6WKCM7BjGA== +openstack-uicore-foundation@5.0.71: + version "5.0.71" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.71.tgz#cc0d379c546abf25bf90d54f4f8fa2dc84024309" + integrity sha512-xHmB76qEd2MoO4sIW8Bj0e1UjUCRcz2xHsg1Cfa7elhbz+cA3BlzJC8uqIg4rpBs3zjw7CGzanTXkNHQGSn1VA== dependencies: use-sync-external-store "^1.6.0" From 0abd871a456d89155a1544102dcc36fb63f23f37 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Wed, 28 Oct 2026 12:31:17 -0300 Subject: [PATCH 5/5] chore: rebase and fix tests --- .../email-flow-events-list-page.test.js | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/pages/email_flow_events/__tests__/email-flow-events-list-page.test.js b/src/pages/email_flow_events/__tests__/email-flow-events-list-page.test.js index 85ceb7d2a..371ac46f0 100644 --- a/src/pages/email_flow_events/__tests__/email-flow-events-list-page.test.js +++ b/src/pages/email_flow_events/__tests__/email-flow-events-list-page.test.js @@ -36,18 +36,6 @@ jest.mock("openstack-uicore-foundation/lib/components/mui/table", () => ({ ) })); -jest.mock( - "openstack-uicore-foundation/lib/components/mui/search-input", - () => ({ - __esModule: true, - default: ({ onSearch }) => ( - - ) - }) -); - jest.mock("i18n-react/dist/i18n-react", () => ({ __esModule: true, default: { translate: (key) => key } @@ -121,8 +109,9 @@ describe("EmailFlowEventListPage", () => { initialState }); - await userEvent.click( - screen.getByRole("button", { name: "search-trigger" }) + await userEvent.type( + screen.getByPlaceholderText("email_flow_event_list.placeholders.search"), + "newterm{Enter}" ); expect(getEmailFlowEvents).toHaveBeenCalledWith(