From 0e2a11c6127b7a5904940d95b412225d23dac657 Mon Sep 17 00:00:00 2001 From: Priscila Moneo Date: Mon, 30 Mar 2026 16:53:13 -0300 Subject: [PATCH 1/3] fix: media uploads grid spinner --- .../__tests__/summit-event-list-page.test.js | 75 +++++++++++++++++++ src/pages/events/summit-event-list-page.js | 16 +++- 2 files changed, 87 insertions(+), 4 deletions(-) diff --git a/src/pages/events/__tests__/summit-event-list-page.test.js b/src/pages/events/__tests__/summit-event-list-page.test.js index d7b0f1424..00ab2f5c5 100644 --- a/src/pages/events/__tests__/summit-event-list-page.test.js +++ b/src/pages/events/__tests__/summit-event-list-page.test.js @@ -200,6 +200,81 @@ describe("SummitEventListPage", () => { ); }); + test("opens media upload material link using current summit id fallback", async () => { + renderWithRedux(, { + initialState: { + currentSummitState: { + currentSummit: { + id: 12, + time_zone: { name: "UTC" }, + time_zone_id: "UTC", + selection_plans: [], + tracks: [], + event_types: [], + locations: [], + presentation_action_types: [] + } + }, + currentEventListState: { + events: [ + { + id: 101, + type: { id: 1, name: "Presentation", use_speakers: true }, + title: "Sample event", + selection_status: "pending", + media_uploads: [ + { + id: 999, + created: "now", + media_upload_type: { name: "Slides" } + } + ] + } + ], + lastPage: 1, + currentPage: 1, + order: "id", + orderDir: 1, + totalEvents: 1, + term: "", + filters: {}, + extraColumns: ["media_uploads"], + perPage: 10, + enabledFilters: [] + } + } + }); + + const editableTableProps = + mockEditableTableSpy.mock.calls[ + mockEditableTableSpy.mock.calls.length - 1 + ][0]; + const mediaUploadsColumn = editableTableProps.columns.find( + (col) => col.columnKey === "media_uploads" + ); + + const mediaUploadItem = { + id: 999, + created: "now", + media_upload_type: { name: "Slides" } + }; + + const rendered = mediaUploadsColumn.render([mediaUploadItem], { id: 101 }); + const firstRow = rendered.props.children[0]; + const firstButton = Array.isArray(firstRow.props.children) + ? firstRow.props.children[0] + : firstRow.props.children; + + firstButton.props.onClick({ + preventDefault: jest.fn() + }); + + expect(windowOpenSpy).toHaveBeenCalledWith( + "/app/summits/12/events/101/materials/999", + "_blank" + ); + }); + test("does not open media upload material link when row event id is missing", async () => { renderWithRedux(, { initialState: { diff --git a/src/pages/events/summit-event-list-page.js b/src/pages/events/summit-event-list-page.js index bf67fe11c..bf3fffe45 100644 --- a/src/pages/events/summit-event-list-page.js +++ b/src/pages/events/summit-event-list-page.js @@ -69,7 +69,12 @@ import { import { CONTEXT_ACTIVITIES } from "../../utils/filter-criteria-constants"; import EditableTable from "../../components/tables/editable-table/EditableTable"; -const fieldNames = (allSelectionPlans, allTracks, event_types) => [ +const fieldNames = ( + allSelectionPlans, + allTracks, + event_types, + currentSummitId +) => [ { columnKey: "speakers", value: "speakers", @@ -263,9 +268,11 @@ const fieldNames = (allSelectionPlans, allTracks, event_types) => [ className="text-link-button" onClick={(ev) => { ev.preventDefault(); - if (!row?.id) return false; + const summitId = + m?.summit_id || row?.summit_id || currentSummitId; + if (!row?.id || !summitId) return false; window.open( - `/app/summits/${m.summit_id}/events/${row.id}/materials/${m.id}`, + `/app/summits/${summitId}/events/${row.id}/materials/${m.id}`, "_blank" ); return false; @@ -1238,7 +1245,8 @@ class SummitEventListPage extends React.Component { const showColumns = fieldNames( currentSummit.selection_plans, currentSummit.tracks, - currentSummit.event_types + currentSummit.event_types, + currentSummit.id ) .filter( (f) => From 5b078d9211ca56f03e4b6aa1a6b13bd8fe4506ae Mon Sep 17 00:00:00 2001 From: Priscila Moneo Date: Wed, 1 Apr 2026 11:32:23 -0300 Subject: [PATCH 2/3] fix: feedback from PR --- src/pages/events/summit-event-list-page.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/pages/events/summit-event-list-page.js b/src/pages/events/summit-event-list-page.js index bf3fffe45..999732df4 100644 --- a/src/pages/events/summit-event-list-page.js +++ b/src/pages/events/summit-event-list-page.js @@ -268,11 +268,9 @@ const fieldNames = ( className="text-link-button" onClick={(ev) => { ev.preventDefault(); - const summitId = - m?.summit_id || row?.summit_id || currentSummitId; - if (!row?.id || !summitId) return false; + if (!row?.id) return false; window.open( - `/app/summits/${summitId}/events/${row.id}/materials/${m.id}`, + `/app/summits/${currentSummitId}/events/${row.id}/materials/${m.id}`, "_blank" ); return false; From bae7fb01632d3718835b07cb02a7f07403ec9662 Mon Sep 17 00:00:00 2001 From: Priscila Moneo Date: Wed, 1 Apr 2026 21:10:39 -0300 Subject: [PATCH 3/3] fix: feedback from PR --- src/pages/events/summit-event-list-page.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/events/summit-event-list-page.js b/src/pages/events/summit-event-list-page.js index 999732df4..9e1e27a95 100644 --- a/src/pages/events/summit-event-list-page.js +++ b/src/pages/events/summit-event-list-page.js @@ -268,7 +268,7 @@ const fieldNames = ( className="text-link-button" onClick={(ev) => { ev.preventDefault(); - if (!row?.id) return false; + if (!row?.id || !currentSummitId) return false; window.open( `/app/summits/${currentSummitId}/events/${row.id}/materials/${m.id}`, "_blank"