From bd203edcc2635c8114c293135bf1ac8ea62acec0 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Tue, 8 Sep 2026 10:17:19 -0300 Subject: [PATCH 1/8] chore: fix per page persistance on some grids --- src/actions/event-actions.js | 2 +- src/actions/sponsor-actions.js | 2 +- src/actions/summit-actions.js | 3 ++- src/reducers/events/event-list-reducer.js | 12 ++++++++++-- src/reducers/sponsors/sponsor-reducer.js | 13 +++++++++---- 5 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/actions/event-actions.js b/src/actions/event-actions.js index 8a6b1ede5..e0ea6c8c8 100644 --- a/src/actions/event-actions.js +++ b/src/actions/event-actions.js @@ -321,7 +321,7 @@ export const getEvents = createAction(RECEIVE_EVENTS), `${window.API_BASE_URL}/api/v1/summits/${currentSummit.id}/events`, authErrorHandler, - { order, orderDir, term, summitTZ, filters, extraColumns } + { order, perPage, orderDir, term, summitTZ, filters, extraColumns } )(params)(dispatch).then((data) => { dispatch(stopLoading()); return data.response; diff --git a/src/actions/sponsor-actions.js b/src/actions/sponsor-actions.js index 29d49bf90..1e9301b86 100644 --- a/src/actions/sponsor-actions.js +++ b/src/actions/sponsor-actions.js @@ -388,7 +388,7 @@ export const getSponsorSponsorships = createAction(RECEIVE_SPONSOR_SPONSORSHIPS), `${window.API_BASE_URL}/api/v1/summits/${currentSummit.id}/sponsors/${sponsorId}/sponsorships`, authErrorHandler, - { order, orderDir } + { order, orderDir, perPage } )(params)(dispatch).then(() => { dispatch(stopLoading()); }); diff --git a/src/actions/summit-actions.js b/src/actions/summit-actions.js index e3ac6807e..293a078e7 100644 --- a/src/actions/summit-actions.js +++ b/src/actions/summit-actions.js @@ -179,7 +179,8 @@ export const loadSummits = createAction(REQUEST_SUMMITS), createAction(RECEIVE_SUMMITS), `${window.API_BASE_URL}/api/v1/summits/all`, - authErrorHandler + authErrorHandler, + { page, per_page: perPage } )(params)(dispatch, getState).then(() => { dispatch(stopLoading()); }); diff --git a/src/reducers/events/event-list-reducer.js b/src/reducers/events/event-list-reducer.js index f8118a6c6..626813abc 100644 --- a/src/reducers/events/event-list-reducer.js +++ b/src/reducers/events/event-list-reducer.js @@ -50,13 +50,21 @@ const eventListReducer = (state = DEFAULT_STATE, action) => { return DEFAULT_STATE; } case REQUEST_EVENTS: { - const { order, orderDir, term, summitTZ, filters, extraColumns } = - payload; + const { + order, + orderDir, + perPage, + term, + summitTZ, + filters, + extraColumns + } = payload; return { ...state, order, orderDir, + perPage, term, summitTZ, filters, diff --git a/src/reducers/sponsors/sponsor-reducer.js b/src/reducers/sponsors/sponsor-reducer.js index a26dd8705..de2fcb03c 100644 --- a/src/reducers/sponsors/sponsor-reducer.js +++ b/src/reducers/sponsors/sponsor-reducer.js @@ -495,12 +495,17 @@ const sponsorReducer = (state = DEFAULT_STATE, action) => { }; } case REQUEST_SPONSOR_SPONSORSHIPS: { - const { order, orderDir } = payload; + const { order, orderDir, perPage } = payload; return { ...state, - sponsorships_collection: { - order, - orderDir + entity: { + ...state.entity, + sponsorships_collection: { + ...state.entity.sponsorships_collection, + order, + orderDir, + perPage + } } }; } From bf1885b47037a0c8b14300294feb3068ed37f205 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Tue, 8 Sep 2026 12:55:13 -0300 Subject: [PATCH 2/8] chore: add prop for custom page --- src/pages/summits/summit-directory-page.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pages/summits/summit-directory-page.js b/src/pages/summits/summit-directory-page.js index 3c1d675cb..0165a0b9e 100644 --- a/src/pages/summits/summit-directory-page.js +++ b/src/pages/summits/summit-directory-page.js @@ -191,6 +191,7 @@ const SummitDirectoryPage = ({ currentPage={currentPage} onPageChange={handlePageChange} onPerPageChange={handlePerPageChange} + showPageJump onEdit={canEditSummit ? handleEditSummit : undefined} onDelete={canDeleteSummits ? (id) => deleteSummit(id) : undefined} onSelect={handleSelectSummit} From b6a3a14d6fdd09027909b07490c0e155a45ba626 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Tue, 8 Sep 2026 16:05:11 -0300 Subject: [PATCH 3/8] chore: bump uicore --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ab1950522..28ba227dd 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "moment-duration-format": "^2.3.2", "moment-timezone": "^0.5.33", "mui-color-input": "^9.0.0", - "openstack-uicore-foundation": "5.0.58", + "openstack-uicore-foundation": "5.0.61-beta.1", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", diff --git a/yarn.lock b/yarn.lock index a73dddca0..413c11a79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9042,10 +9042,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.58: - version "5.0.58" - resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.58.tgz#641aa67d2d231373dda1e5f5edaebbd68e908320" - integrity sha512-9p28r/arDv6Y6RF3KT/xppOyO8gvo+QdZqxGwsk5+6/AEBtcXVD9nRBV2jeMfO0cZKiEe8ocXFElptymSN7WWg== +openstack-uicore-foundation@5.0.61-beta.1: + version "5.0.61-beta.1" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.61-beta.1.tgz#98b1e3631a76e11d8ccc357f2cd3257dc79edcc2" + integrity sha512-RYKT9KgfsOExiKFPkVL6lFXg3g08oN6F+zq8+5EPGjTaXbOVh5CEVNLTZkWMpUdAoEG6JEmGStFLqMR8h48dWA== dependencies: use-sync-external-store "^1.6.0" From 5e1c0e1e622d586320a008f5414282b0fd36f7e5 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Tue, 8 Sep 2026 16:55:45 -0300 Subject: [PATCH 4/8] chore: move shoPageJump to events list --- package.json | 2 +- src/pages/events/summit-event-list-page/index.js | 1 + src/pages/summits/summit-directory-page.js | 1 - yarn.lock | 8 ++++---- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 28ba227dd..7d129c1a0 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "moment-duration-format": "^2.3.2", "moment-timezone": "^0.5.33", "mui-color-input": "^9.0.0", - "openstack-uicore-foundation": "5.0.61-beta.1", + "openstack-uicore-foundation": "5.0.61-beta.2", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", diff --git a/src/pages/events/summit-event-list-page/index.js b/src/pages/events/summit-event-list-page/index.js index 0fb28c88d..352966543 100644 --- a/src/pages/events/summit-event-list-page/index.js +++ b/src/pages/events/summit-event-list-page/index.js @@ -407,6 +407,7 @@ const SummitEventListPage = ({ deleteDialogBody={(name) => `${T.translate("event_list.delete_event_warning")} ${name}` } + showPageJump /> )} diff --git a/src/pages/summits/summit-directory-page.js b/src/pages/summits/summit-directory-page.js index 0165a0b9e..3c1d675cb 100644 --- a/src/pages/summits/summit-directory-page.js +++ b/src/pages/summits/summit-directory-page.js @@ -191,7 +191,6 @@ const SummitDirectoryPage = ({ currentPage={currentPage} onPageChange={handlePageChange} onPerPageChange={handlePerPageChange} - showPageJump onEdit={canEditSummit ? handleEditSummit : undefined} onDelete={canDeleteSummits ? (id) => deleteSummit(id) : undefined} onSelect={handleSelectSummit} diff --git a/yarn.lock b/yarn.lock index 413c11a79..b80599add 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9042,10 +9042,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.61-beta.1: - version "5.0.61-beta.1" - resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.61-beta.1.tgz#98b1e3631a76e11d8ccc357f2cd3257dc79edcc2" - integrity sha512-RYKT9KgfsOExiKFPkVL6lFXg3g08oN6F+zq8+5EPGjTaXbOVh5CEVNLTZkWMpUdAoEG6JEmGStFLqMR8h48dWA== +openstack-uicore-foundation@5.0.61-beta.2: + version "5.0.61-beta.2" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.61-beta.2.tgz#fabbd78df2257e82a12ab914db794d9870ef14cb" + integrity sha512-qlV8JfwkNWKFSPvYBSJDJ3E6DLNVzdtMK09GHZsVpDNWtCXLte8MAm5kzEcP4r1Uerlx8MaPCVlslJMhTAODPw== dependencies: use-sync-external-store "^1.6.0" From 12da7a192efdf013006cdf661ad8b569ba361c93 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Wed, 9 Sep 2026 11:12:12 -0300 Subject: [PATCH 5/8] chore: change pagination --- package.json | 2 +- src/reducers/events/event-list-reducer.js | 1 + yarn.lock | 8 ++++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7d129c1a0..54fa4ab5f 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "moment-duration-format": "^2.3.2", "moment-timezone": "^0.5.33", "mui-color-input": "^9.0.0", - "openstack-uicore-foundation": "5.0.61-beta.2", + "openstack-uicore-foundation": "5.0.61-beta.4", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", diff --git a/src/reducers/events/event-list-reducer.js b/src/reducers/events/event-list-reducer.js index 626813abc..20c6422e2 100644 --- a/src/reducers/events/event-list-reducer.js +++ b/src/reducers/events/event-list-reducer.js @@ -62,6 +62,7 @@ const eventListReducer = (state = DEFAULT_STATE, action) => { return { ...state, + events: [], order, orderDir, perPage, diff --git a/yarn.lock b/yarn.lock index b80599add..aa4371439 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9042,10 +9042,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.61-beta.2: - version "5.0.61-beta.2" - resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.61-beta.2.tgz#fabbd78df2257e82a12ab914db794d9870ef14cb" - integrity sha512-qlV8JfwkNWKFSPvYBSJDJ3E6DLNVzdtMK09GHZsVpDNWtCXLte8MAm5kzEcP4r1Uerlx8MaPCVlslJMhTAODPw== +openstack-uicore-foundation@5.0.61-beta.4: + version "5.0.61-beta.4" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.61-beta.4.tgz#46b7105066a69d634763d0c5b0edb5ceab7532be" + integrity sha512-klbQnhRiW9pY2hjnDLvWtuJ5F1vpshui2OowtHhHw91oFwebRV/U7zTDdgttMZQIzLDZiEpPczCdPHYrIUegOw== dependencies: use-sync-external-store "^1.6.0" From d396d72a0fc1877127e36abcfd6a91b7210b7701 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Wed, 9 Sep 2026 17:52:54 -0300 Subject: [PATCH 6/8] chore: adjust styles for mobile --- package.json | 2 +- src/i18n/en.json | 7 ------- src/pages/events/summit-event-list-page/index.js | 5 +++-- src/reducers/events/event-list-reducer.js | 1 - yarn.lock | 8 ++++---- 5 files changed, 8 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 54fa4ab5f..1b7c21cdb 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "moment-duration-format": "^2.3.2", "moment-timezone": "^0.5.33", "mui-color-input": "^9.0.0", - "openstack-uicore-foundation": "5.0.61-beta.4", + "openstack-uicore-foundation": "5.0.61-beta.6", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", diff --git a/src/i18n/en.json b/src/i18n/en.json index 4b290f79f..55e78f738 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -4137,13 +4137,6 @@ "form_template_item_created": "Form Template Item created successfully.", "form_template_item_saved": "Form Template Item saved successfully." }, - "mui_table": { - "no_items": "No items found.", - "rows_per_page": "Rows per page", - "sorted_desc": "sorted descending", - "sorted_asc": "sorted ascending", - "total": "Total" - }, "event_rsvp_list": { "name": "Name", "no_rsvp": "No RSVP found.", diff --git a/src/pages/events/summit-event-list-page/index.js b/src/pages/events/summit-event-list-page/index.js index 352966543..c4b8a2be5 100644 --- a/src/pages/events/summit-event-list-page/index.js +++ b/src/pages/events/summit-event-list-page/index.js @@ -159,7 +159,7 @@ const SummitEventListPage = ({ }; const handlePerPageChange = (newPerPage) => { - _getEvents({ perPage: newPerPage }); + _getEvents({ page: 1, perPage: newPerPage }); }; const handleSort = (index, key, dir) => { @@ -341,6 +341,7 @@ const SummitEventListPage = ({ variant="contained" onClick={handleNewEvent} startIcon={} + sx={{ whiteSpace: "nowrap", flexShrink: 0, minWidth: 140 }} > {T.translate("event_list.add_event")} @@ -350,7 +351,7 @@ const SummitEventListPage = ({ diff --git a/src/reducers/events/event-list-reducer.js b/src/reducers/events/event-list-reducer.js index 20c6422e2..626813abc 100644 --- a/src/reducers/events/event-list-reducer.js +++ b/src/reducers/events/event-list-reducer.js @@ -62,7 +62,6 @@ const eventListReducer = (state = DEFAULT_STATE, action) => { return { ...state, - events: [], order, orderDir, perPage, diff --git a/yarn.lock b/yarn.lock index aa4371439..d1df72aec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9042,10 +9042,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.61-beta.4: - version "5.0.61-beta.4" - resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.61-beta.4.tgz#46b7105066a69d634763d0c5b0edb5ceab7532be" - integrity sha512-klbQnhRiW9pY2hjnDLvWtuJ5F1vpshui2OowtHhHw91oFwebRV/U7zTDdgttMZQIzLDZiEpPczCdPHYrIUegOw== +openstack-uicore-foundation@5.0.61-beta.6: + version "5.0.61-beta.6" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.61-beta.6.tgz#47282c191f8d84fd8807fc7e9993bc7a6902ba7f" + integrity sha512-5PyuVCR/+uh2UG0xPXaFkGqJQ6x+OcKdivf+rSY26uOPCP0NXjt649vJFGx7m5XGknLOsEc9CpUTNHMuCNX2xw== dependencies: use-sync-external-store "^1.6.0" From b297400b0fecd42ef1128e0c71d69fce464fae3f Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Wed, 9 Sep 2026 18:23:55 -0300 Subject: [PATCH 7/8] chore: fix tests --- src/components/audit-logs/__tests__/index.test.js | 2 +- .../__tests__/sponsor-purchases-list.test.js | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/audit-logs/__tests__/index.test.js b/src/components/audit-logs/__tests__/index.test.js index 029217799..e760dd1da 100644 --- a/src/components/audit-logs/__tests__/index.test.js +++ b/src/components/audit-logs/__tests__/index.test.js @@ -253,7 +253,7 @@ describe("AuditLogs pagination", () => { ); getAuditLog.mockClear(); - await userEvent.click(screen.getByRole("combobox")); + await userEvent.click(screen.getAllByRole("combobox")[0]); await userEvent.click(await screen.findByRole("option", { name: "20" })); await waitFor(() => { 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 31c4e8381..87291d11f 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 @@ -416,10 +416,10 @@ describe("SponsorPurchasesTab", () => { initialState: createInitialState({ currentPage: 1, totalCount: 25 }) }); - // MUI TablePagination renders an "Go to next page" / "next page" button + // pagination now renders top and bottom, so take the first match await act(async () => { await userEvent.click( - screen.getByRole("button", { name: /next page/i }) + screen.getAllByRole("button", { name: "mui_table.next_page" })[0] ); }); @@ -438,8 +438,8 @@ describe("SponsorPurchasesTab", () => { initialState: createInitialState({ currentPage: 3, totalCount: 0 }) }); - // MUI TablePagination labels the rows-per-page Select with labelRowsPerPage - const rowsPerPageSelect = screen.getByRole("combobox", { + // pagination now renders top and bottom, so take the first match + const [rowsPerPageSelect] = screen.getAllByRole("combobox", { name: "mui_table.rows_per_page" }); From 4d33c3e7d74ee19c5637d7eac446b096cde9e05f Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Thu, 10 Sep 2026 16:45:35 -0300 Subject: [PATCH 8/8] chore: bump uicore --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1b7c21cdb..d20d695b8 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "moment-duration-format": "^2.3.2", "moment-timezone": "^0.5.33", "mui-color-input": "^9.0.0", - "openstack-uicore-foundation": "5.0.61-beta.6", + "openstack-uicore-foundation": "5.0.61-beta.7", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", diff --git a/yarn.lock b/yarn.lock index d1df72aec..c1cd8deed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9042,10 +9042,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.61-beta.6: - version "5.0.61-beta.6" - resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.61-beta.6.tgz#47282c191f8d84fd8807fc7e9993bc7a6902ba7f" - integrity sha512-5PyuVCR/+uh2UG0xPXaFkGqJQ6x+OcKdivf+rSY26uOPCP0NXjt649vJFGx7m5XGknLOsEc9CpUTNHMuCNX2xw== +openstack-uicore-foundation@5.0.61-beta.7: + version "5.0.61-beta.7" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.61-beta.7.tgz#39aee0e4a2092aed47c8a89356a0e3692aea9eef" + integrity sha512-7MtwIJtTuVwK+2vn/p1CJ/tWkFVdl0gaP5UzzGqktEVtdgkWiPadWgihMXg0IbR4PZwRrRzuLRLKvDYpmltp0g== dependencies: use-sync-external-store "^1.6.0"