From bd75994f28a3ffeecc089fd0208556d6e1152836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Fri, 8 May 2026 15:05:32 -0300 Subject: [PATCH 1/3] fix: add archive/unarchive functions for sponsor managed pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- src/actions/sponsor-pages-actions.js | 65 +++++++++++++++++++ src/i18n/en.json | 2 + .../tabs/sponsor-pages-tab/index.js | 21 +++++- .../sponsor-page-pages-list-reducer.js | 30 ++++++++- 4 files changed, 116 insertions(+), 2 deletions(-) diff --git a/src/actions/sponsor-pages-actions.js b/src/actions/sponsor-pages-actions.js index aef9d6dc5..ffb201e7c 100644 --- a/src/actions/sponsor-pages-actions.js +++ b/src/actions/sponsor-pages-actions.js @@ -44,6 +44,9 @@ export const RECEIVE_SPONSOR_MANAGED_PAGE = "RECEIVE_SPONSOR_MANAGED_PAGE"; export const SPONSOR_MANAGED_PAGE_ADDED = "SPONSOR_MANAGED_PAGE_ADDED"; export const SPONSOR_MANAGED_PAGE_DELETED = "SPONSOR_MANAGED_PAGE_DELETED"; export const SPONSOR_MANAGED_PAGE_UPDATED = "SPONSOR_MANAGED_PAGE_UPDATED"; +export const SPONSOR_MANAGED_PAGE_ARCHIVED = "SPONSOR_MANAGED_PAGE_ARCHIVED"; +export const SPONSOR_MANAGED_PAGE_UNARCHIVED = + "SPONSOR_MANAGED_PAGE_UNARCHIVED"; export const REQUEST_SPONSOR_CUSTOMIZED_PAGES = "REQUEST_SPONSOR_CUSTOMIZED_PAGES"; @@ -249,6 +252,68 @@ export const saveSponsorManagedPage = }); }; +export const archiveManagedPage = (pageId) => async (dispatch, getState) => { + const { currentSummitState, currentSponsorState } = getState(); + const { currentSummit } = currentSummitState; + const { + entity: { id: sponsorId } + } = currentSponsorState; + const accessToken = await getAccessTokenSafely(); + const params = { access_token: accessToken }; + + dispatch(startLoading()); + + return putRequest( + null, + createAction(SPONSOR_MANAGED_PAGE_ARCHIVED)({ pageId }), + `${window.SPONSOR_PAGES_API_URL}/api/v1/summits/${currentSummit.id}/sponsors/${sponsorId}/managed-pages/${pageId}/archive`, + null, + snackbarErrorHandler + )(params)(dispatch) + .then(() => { + dispatch( + snackbarSuccessHandler({ + title: T.translate("general.success"), + html: T.translate("edit_sponsor.pages_tab.managed_page_archived") + }) + ); + }) + .finally(() => { + dispatch(stopLoading()); + }); +}; + +export const unarchiveManagedPage = (pageId) => async (dispatch, getState) => { + const { currentSummitState, currentSponsorState } = getState(); + const { currentSummit } = currentSummitState; + const { + entity: { id: sponsorId } + } = currentSponsorState; + const accessToken = await getAccessTokenSafely(); + const params = { access_token: accessToken }; + + dispatch(startLoading()); + + return deleteRequest( + null, + createAction(SPONSOR_MANAGED_PAGE_UNARCHIVED)({ pageId }), + `${window.SPONSOR_PAGES_API_URL}/api/v1/summits/${currentSummit.id}/sponsors/${sponsorId}/managed-pages/${pageId}/archive`, + null, + snackbarErrorHandler + )(params)(dispatch) + .then(() => { + dispatch( + snackbarSuccessHandler({ + title: T.translate("general.success"), + html: T.translate("edit_sponsor.pages_tab.managed_page_unarchived") + }) + ); + }) + .finally(() => { + dispatch(stopLoading()); + }); +}; + export const deleteSponsorManagedPage = (pageId) => async (dispatch, getState) => { const { currentSummitState, currentSponsorState } = getState(); diff --git a/src/i18n/en.json b/src/i18n/en.json index 5b87a0d74..52d4aaff0 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -2534,6 +2534,8 @@ "custom_page_created": "Custom Sponsor Page created successfully", "managed_page_saved": "Sponsor Managed Page saved successfully", "managed_page_created": "Sponsor Managed Page created successfully", + "managed_page_archived": "Managed Sponsor Page successfully archived.", + "managed_page_unarchived": "Managed Sponsor Page successfully unarchived.", "page_delete_warning": "Please verify you want to delete {page}" }, "cart_tab": { 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 e4dcf806c..674ac3bf4 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 @@ -31,6 +31,8 @@ import { getSponsorManagedPage, getSponsorCustomizedPages, saveSponsorManagedPage, + archiveManagedPage, + unarchiveManagedPage, saveSponsorCustomizedPage, getSponsorCustomizedPage, deleteSponsorManagedPage, @@ -59,6 +61,8 @@ const SponsorPagesTab = ({ getSponsorManagedPages, getSponsorManagedPage, saveSponsorManagedPage, + archiveManagedPage, + unarchiveManagedPage, getSponsorCustomizedPages, saveSponsorCustomizedPage, getSponsorCustomizedPage, @@ -195,7 +199,20 @@ const SponsorPagesTab = ({ }); const handleArchiveManagedPage = (item) => - console.log("ARCHIVE MANAGED ", item); + (item.is_archived + ? unarchiveManagedPage(item.id) + : archiveManagedPage(item.id) + ).then(() => { + const { perPage, order, orderDir, currentPage } = managedPages; + return getSponsorManagedPages( + term, + currentPage, + perPage, + order, + orderDir, + showArchived + ); + }); const handleManagedEdit = (item) => { getSponsorManagedPage(item.id).then(() => setOpenPopup("managedPagePopup")); @@ -552,6 +569,8 @@ export default connect(mapStateToProps, { getSponsorManagedPages, getSponsorManagedPage, saveSponsorManagedPage, + archiveManagedPage, + unarchiveManagedPage, getSponsorCustomizedPage, getSponsorCustomizedPages, saveSponsorCustomizedPage, diff --git a/src/reducers/sponsors/sponsor-page-pages-list-reducer.js b/src/reducers/sponsors/sponsor-page-pages-list-reducer.js index edc6ae08e..f539e05f3 100644 --- a/src/reducers/sponsors/sponsor-page-pages-list-reducer.js +++ b/src/reducers/sponsors/sponsor-page-pages-list-reducer.js @@ -22,7 +22,9 @@ import { RESET_EDIT_PAGE, SPONSOR_CUSTOMIZED_PAGE_ARCHIVED, SPONSOR_CUSTOMIZED_PAGE_UNARCHIVED, - RECEIVE_SPONSOR_MANAGED_PAGE + RECEIVE_SPONSOR_MANAGED_PAGE, + SPONSOR_MANAGED_PAGE_ARCHIVED, + SPONSOR_MANAGED_PAGE_UNARCHIVED } from "../../actions/sponsor-pages-actions"; import { SET_CURRENT_SUMMIT } from "../../actions/summit-actions"; import { RECEIVE_GLOBAL_SPONSORSHIPS } from "../../actions/sponsor-forms-actions"; @@ -231,6 +233,32 @@ const sponsorPagePagesListReducer = (state = DEFAULT_STATE, action) => { return { ...state, currentEditPage: { ...customizedPage, modules } }; } + case SPONSOR_MANAGED_PAGE_ARCHIVED: { + const { pageId } = payload; + const pages = state.managedPages.pages.map((page) => + page.id === pageId ? { ...page, is_archived: true } : page + ); + return { + ...state, + managedPages: { + ...state.managedPages, + pages: [...pages] + } + }; + } + case SPONSOR_MANAGED_PAGE_UNARCHIVED: { + const { pageId } = payload; + const pages = state.managedPages.pages.map((page) => + page.id === pageId ? { ...page, is_archived: false } : page + ); + return { + ...state, + managedPages: { + ...state.managedPages, + pages: [...pages] + } + }; + } case SPONSOR_CUSTOMIZED_PAGE_ARCHIVED: { const { pageId } = payload; const pages = state.customizedPages.pages.map((page) => From 39525bff7ff210f799cd0508544a542efcd5f786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Fri, 8 May 2026 15:36:10 -0300 Subject: [PATCH 2/3] fix: add is_archived prop on managed pages action and reducer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- src/actions/sponsor-pages-actions.js | 3 ++- src/reducers/sponsors/sponsor-page-pages-list-reducer.js | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/actions/sponsor-pages-actions.js b/src/actions/sponsor-pages-actions.js index ffb201e7c..3c925a0e1 100644 --- a/src/actions/sponsor-pages-actions.js +++ b/src/actions/sponsor-pages-actions.js @@ -140,7 +140,8 @@ export const getSponsorManagedPages = const params = { page, - fields: "id,code,name,kind,modules_count,allowed_add_ons,assigned_type", + fields: + "id,code,name,kind,modules_count,allowed_add_ons,assigned_type,is_archived", per_page: perPage, access_token: accessToken }; diff --git a/src/reducers/sponsors/sponsor-page-pages-list-reducer.js b/src/reducers/sponsors/sponsor-page-pages-list-reducer.js index f539e05f3..4ef5a95f0 100644 --- a/src/reducers/sponsors/sponsor-page-pages-list-reducer.js +++ b/src/reducers/sponsors/sponsor-page-pages-list-reducer.js @@ -129,6 +129,7 @@ const sponsorPagePagesListReducer = (state = DEFAULT_STATE, action) => { code: a.code, name: a.name, allowed_add_ons: a.allowed_add_ons, + is_archived: a.is_archived, info_mod: a.modules_count.info_modules_count, upload_mod: a.modules_count.media_request_modules_count, download_mod: a.modules_count.document_download_modules_count, From f9d7fe035f68b6e2ff8d716e63ff9b614c373a24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Fri, 8 May 2026 16:24:03 -0300 Subject: [PATCH 3/3] fix: remove archive for managed pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- src/actions/sponsor-pages-actions.js | 68 +------------------ src/i18n/en.json | 2 - .../tabs/sponsor-pages-tab/index.js | 23 ------- .../sponsor-page-pages-list-reducer.js | 31 +-------- 4 files changed, 2 insertions(+), 122 deletions(-) diff --git a/src/actions/sponsor-pages-actions.js b/src/actions/sponsor-pages-actions.js index 3c925a0e1..aef9d6dc5 100644 --- a/src/actions/sponsor-pages-actions.js +++ b/src/actions/sponsor-pages-actions.js @@ -44,9 +44,6 @@ export const RECEIVE_SPONSOR_MANAGED_PAGE = "RECEIVE_SPONSOR_MANAGED_PAGE"; export const SPONSOR_MANAGED_PAGE_ADDED = "SPONSOR_MANAGED_PAGE_ADDED"; export const SPONSOR_MANAGED_PAGE_DELETED = "SPONSOR_MANAGED_PAGE_DELETED"; export const SPONSOR_MANAGED_PAGE_UPDATED = "SPONSOR_MANAGED_PAGE_UPDATED"; -export const SPONSOR_MANAGED_PAGE_ARCHIVED = "SPONSOR_MANAGED_PAGE_ARCHIVED"; -export const SPONSOR_MANAGED_PAGE_UNARCHIVED = - "SPONSOR_MANAGED_PAGE_UNARCHIVED"; export const REQUEST_SPONSOR_CUSTOMIZED_PAGES = "REQUEST_SPONSOR_CUSTOMIZED_PAGES"; @@ -140,8 +137,7 @@ export const getSponsorManagedPages = const params = { page, - fields: - "id,code,name,kind,modules_count,allowed_add_ons,assigned_type,is_archived", + fields: "id,code,name,kind,modules_count,allowed_add_ons,assigned_type", per_page: perPage, access_token: accessToken }; @@ -253,68 +249,6 @@ export const saveSponsorManagedPage = }); }; -export const archiveManagedPage = (pageId) => async (dispatch, getState) => { - const { currentSummitState, currentSponsorState } = getState(); - const { currentSummit } = currentSummitState; - const { - entity: { id: sponsorId } - } = currentSponsorState; - const accessToken = await getAccessTokenSafely(); - const params = { access_token: accessToken }; - - dispatch(startLoading()); - - return putRequest( - null, - createAction(SPONSOR_MANAGED_PAGE_ARCHIVED)({ pageId }), - `${window.SPONSOR_PAGES_API_URL}/api/v1/summits/${currentSummit.id}/sponsors/${sponsorId}/managed-pages/${pageId}/archive`, - null, - snackbarErrorHandler - )(params)(dispatch) - .then(() => { - dispatch( - snackbarSuccessHandler({ - title: T.translate("general.success"), - html: T.translate("edit_sponsor.pages_tab.managed_page_archived") - }) - ); - }) - .finally(() => { - dispatch(stopLoading()); - }); -}; - -export const unarchiveManagedPage = (pageId) => async (dispatch, getState) => { - const { currentSummitState, currentSponsorState } = getState(); - const { currentSummit } = currentSummitState; - const { - entity: { id: sponsorId } - } = currentSponsorState; - const accessToken = await getAccessTokenSafely(); - const params = { access_token: accessToken }; - - dispatch(startLoading()); - - return deleteRequest( - null, - createAction(SPONSOR_MANAGED_PAGE_UNARCHIVED)({ pageId }), - `${window.SPONSOR_PAGES_API_URL}/api/v1/summits/${currentSummit.id}/sponsors/${sponsorId}/managed-pages/${pageId}/archive`, - null, - snackbarErrorHandler - )(params)(dispatch) - .then(() => { - dispatch( - snackbarSuccessHandler({ - title: T.translate("general.success"), - html: T.translate("edit_sponsor.pages_tab.managed_page_unarchived") - }) - ); - }) - .finally(() => { - dispatch(stopLoading()); - }); -}; - export const deleteSponsorManagedPage = (pageId) => async (dispatch, getState) => { const { currentSummitState, currentSponsorState } = getState(); diff --git a/src/i18n/en.json b/src/i18n/en.json index 52d4aaff0..5b87a0d74 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -2534,8 +2534,6 @@ "custom_page_created": "Custom Sponsor Page created successfully", "managed_page_saved": "Sponsor Managed Page saved successfully", "managed_page_created": "Sponsor Managed Page created successfully", - "managed_page_archived": "Managed Sponsor Page successfully archived.", - "managed_page_unarchived": "Managed Sponsor Page successfully unarchived.", "page_delete_warning": "Please verify you want to delete {page}" }, "cart_tab": { 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 674ac3bf4..8ab0b384d 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 @@ -31,8 +31,6 @@ import { getSponsorManagedPage, getSponsorCustomizedPages, saveSponsorManagedPage, - archiveManagedPage, - unarchiveManagedPage, saveSponsorCustomizedPage, getSponsorCustomizedPage, deleteSponsorManagedPage, @@ -61,8 +59,6 @@ const SponsorPagesTab = ({ getSponsorManagedPages, getSponsorManagedPage, saveSponsorManagedPage, - archiveManagedPage, - unarchiveManagedPage, getSponsorCustomizedPages, saveSponsorCustomizedPage, getSponsorCustomizedPage, @@ -198,22 +194,6 @@ const SponsorPagesTab = ({ ); }); - const handleArchiveManagedPage = (item) => - (item.is_archived - ? unarchiveManagedPage(item.id) - : archiveManagedPage(item.id) - ).then(() => { - const { perPage, order, orderDir, currentPage } = managedPages; - return getSponsorManagedPages( - term, - currentPage, - perPage, - order, - orderDir, - showArchived - ); - }); - const handleManagedEdit = (item) => { getSponsorManagedPage(item.id).then(() => setOpenPopup("managedPagePopup")); }; @@ -517,7 +497,6 @@ const SponsorPagesTab = ({ canDelete={(row) => row.assigned_type === SPONSOR_MANAGED_PAGE_ASSIGNMENT.EXPLICIT } - onArchive={handleArchiveManagedPage} /> @@ -569,8 +548,6 @@ export default connect(mapStateToProps, { getSponsorManagedPages, getSponsorManagedPage, saveSponsorManagedPage, - archiveManagedPage, - unarchiveManagedPage, getSponsorCustomizedPage, getSponsorCustomizedPages, saveSponsorCustomizedPage, diff --git a/src/reducers/sponsors/sponsor-page-pages-list-reducer.js b/src/reducers/sponsors/sponsor-page-pages-list-reducer.js index 4ef5a95f0..edc6ae08e 100644 --- a/src/reducers/sponsors/sponsor-page-pages-list-reducer.js +++ b/src/reducers/sponsors/sponsor-page-pages-list-reducer.js @@ -22,9 +22,7 @@ import { RESET_EDIT_PAGE, SPONSOR_CUSTOMIZED_PAGE_ARCHIVED, SPONSOR_CUSTOMIZED_PAGE_UNARCHIVED, - RECEIVE_SPONSOR_MANAGED_PAGE, - SPONSOR_MANAGED_PAGE_ARCHIVED, - SPONSOR_MANAGED_PAGE_UNARCHIVED + RECEIVE_SPONSOR_MANAGED_PAGE } from "../../actions/sponsor-pages-actions"; import { SET_CURRENT_SUMMIT } from "../../actions/summit-actions"; import { RECEIVE_GLOBAL_SPONSORSHIPS } from "../../actions/sponsor-forms-actions"; @@ -129,7 +127,6 @@ const sponsorPagePagesListReducer = (state = DEFAULT_STATE, action) => { code: a.code, name: a.name, allowed_add_ons: a.allowed_add_ons, - is_archived: a.is_archived, info_mod: a.modules_count.info_modules_count, upload_mod: a.modules_count.media_request_modules_count, download_mod: a.modules_count.document_download_modules_count, @@ -234,32 +231,6 @@ const sponsorPagePagesListReducer = (state = DEFAULT_STATE, action) => { return { ...state, currentEditPage: { ...customizedPage, modules } }; } - case SPONSOR_MANAGED_PAGE_ARCHIVED: { - const { pageId } = payload; - const pages = state.managedPages.pages.map((page) => - page.id === pageId ? { ...page, is_archived: true } : page - ); - return { - ...state, - managedPages: { - ...state.managedPages, - pages: [...pages] - } - }; - } - case SPONSOR_MANAGED_PAGE_UNARCHIVED: { - const { pageId } = payload; - const pages = state.managedPages.pages.map((page) => - page.id === pageId ? { ...page, is_archived: false } : page - ); - return { - ...state, - managedPages: { - ...state.managedPages, - pages: [...pages] - } - }; - } case SPONSOR_CUSTOMIZED_PAGE_ARCHIVED: { const { pageId } = payload; const pages = state.customizedPages.pages.map((page) =>