diff --git a/package.json b/package.json
index 023ec26e1..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.70",
+ "openstack-uicore-foundation": "5.0.71",
"p-limit": "^6.1.0",
"path-browserify": "^1.0.1",
"postcss-loader": "^6.2.1",
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/__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/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/__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(
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/__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/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/__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/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/__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_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/__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/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/__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/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/__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/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/__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-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/__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/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/__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}"
);
});
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,
diff --git a/yarn.lock b/yarn.lock
index 77ea86749..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.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:
+ 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"