diff --git a/src/actions/sponsor-actions.js b/src/actions/sponsor-actions.js
index 94c116f0c..30f56a6af 100644
--- a/src/actions/sponsor-actions.js
+++ b/src/actions/sponsor-actions.js
@@ -29,7 +29,7 @@ import {
fetchErrorHandler,
postFile
} from "openstack-uicore-foundation/lib/utils/actions";
-import debounce from "lodash/debounce"
+import debounce from "lodash/debounce";
import URI from "urijs";
import { getAccessTokenSafely } from "../utils/methods";
import { normalizeLeadReportSettings } from "../models/lead-report-settings";
@@ -64,10 +64,6 @@ export const SPONSOR_TIER_DELETED = "SPONSOR_TIER_DELETED";
export const REQUEST_SPONSOR_SPONSORSHIPS = "REQUEST_SPONSOR_SPONSORSHIPS";
export const RECEIVE_SPONSOR_SPONSORSHIPS = "RECEIVE_SPONSOR_SPONSORSHIPS";
export const SET_SELECTED_SPONSORSHIP = "SET_SELECTED_SPONSORSHIP";
-export const REQUEST_SPONSOR_SPONSORSHIPS_ADDONS =
- "REQUEST_SPONSOR_SPONSORSHIPS_ADDONS";
-export const RECEIVE_SPONSOR_SPONSORSHIPS_ADDONS =
- "RECEIVE_SPONSOR_SPONSORSHIPS_ADDONS";
export const SPONSOR_SPONSORSHIPS_ADDON_ADDED =
"SPONSOR_SPONSORSHIPS_ADDON_ADDED";
export const SPONSOR_SPONSORSHIPS_ADDON_UPDATED =
@@ -356,7 +352,7 @@ export const addSponsorToSummit = (entity) => async (dispatch, getState) => {
.finally(() => dispatch(stopLoading()));
};
-export const getSponsorTiers =
+export const getSponsorSponsorships =
(
sponsorId,
currentPage = DEFAULT_CURRENT_PAGE,
@@ -483,30 +479,6 @@ const normalizeTiersForSponsor = (entity) => {
return normalizedEntity;
};
-export const getSponsorshipAddons = (sponsorshipId) => async (dispatch) => {
- const { currentSummitState } = getState();
- const accessToken = await getAccessTokenSafely();
- const { currentSummit } = currentSummitState;
- const {
- entity: { id: sponsorId }
- } = currentSponsorState;
-
- const params = {
- access_token: accessToken
- };
-
- dispatch(startLoading());
-
- return getRequest(
- createAction(REQUEST_SPONSOR_SPONSORSHIPS_ADDONS),
- createAction(RECEIVE_SPONSOR_SPONSORSHIPS_ADDONS),
- `${window.API_BASE_URL}/api/v1/summits/${currentSummit.id}/sponsors/${sponsorId}/sponsorships/${sponsorshipId}/addons`,
- authErrorHandler
- )(params)(dispatch).then(() => {
- dispatch(stopLoading());
- });
-};
-
export const setSelectedSponsorship = (sponsorship) => (dispatch) => {
dispatch(createAction(SET_SELECTED_SPONSORSHIP)({ sponsorship }));
};
diff --git a/src/actions/sponsor-forms-actions.js b/src/actions/sponsor-forms-actions.js
index 2df0b36a6..53a8e7eb5 100644
--- a/src/actions/sponsor-forms-actions.js
+++ b/src/actions/sponsor-forms-actions.js
@@ -637,8 +637,11 @@ const normalizeSponsorManagedForm = (entity) => {
};
export const getSponsorManagedForm = (formId) => async (dispatch, getState) => {
- const { currentSummitState } = getState();
+ const { currentSummitState, currentSponsorState } = getState();
const { currentSummit } = currentSummitState;
+ const {
+ entity: { id: sponsorId }
+ } = currentSponsorState;
const accessToken = await getAccessTokenSafely();
dispatch(startLoading());
@@ -654,7 +657,7 @@ export const getSponsorManagedForm = (formId) => async (dispatch, getState) => {
return getRequest(
null,
createAction(RECEIVE_SPONSOR_CUSTOMIZED_FORM),
- `${window.PURCHASES_API_URL}/api/v1/summits/${currentSummit.id}/show-forms/${formId}`,
+ `${window.PURCHASES_API_URL}/api/v1/summits/${currentSummit.id}/sponsors/${sponsorId}/managed-forms/${formId}`,
snackbarErrorHandler
)(params)(dispatch).then(() => {
dispatch(stopLoading());
diff --git a/src/pages/sponsors/__tests__/edit-sponsor-page.test.js b/src/pages/sponsors/__tests__/edit-sponsor-page.test.js
index 4bec7b1c6..48af66530 100644
--- a/src/pages/sponsors/__tests__/edit-sponsor-page.test.js
+++ b/src/pages/sponsors/__tests__/edit-sponsor-page.test.js
@@ -23,7 +23,7 @@ jest.mock("../../../actions/sponsor-actions", () => ({
getSponsorMaterials: jest.fn(() => ({ type: "MOCK_ACTION" })),
getSponsorSocialNetworks: jest.fn(() => ({ type: "MOCK_ACTION" })),
getSponsorLeadReportSettingsMeta: jest.fn(() => ({ type: "MOCK_ACTION" })),
- getSponsorTiers: jest.fn(() => ({ type: "MOCK_ACTION" })),
+ getSponsorSponsorships: jest.fn(() => ({ type: "MOCK_ACTION" })),
getExtraQuestionMeta: jest.fn(() => ({ type: "MOCK_ACTION" })),
resetSponsorForm: jest.fn(() => ({ type: "MOCK_ACTION" }))
}));
diff --git a/src/pages/sponsors/sponsor-page/index.js b/src/pages/sponsors/sponsor-page/index.js
index ea3c6f03e..b1e93748c 100644
--- a/src/pages/sponsors/sponsor-page/index.js
+++ b/src/pages/sponsors/sponsor-page/index.js
@@ -21,7 +21,7 @@ import {
getSponsorLeadReportSettingsMeta,
getSponsorMaterials,
getSponsorSocialNetworks,
- getSponsorTiers,
+ getSponsorSponsorships,
resetSponsorForm
} from "../../../actions/sponsor-actions";
import { getSponsorPurchasesMeta } from "../../../actions/sponsor-settings-actions";
@@ -39,7 +39,7 @@ const SponsorPage = ({
getSponsorMaterials,
getSponsorSocialNetworks,
getSponsorLeadReportSettingsMeta,
- getSponsorTiers,
+ getSponsorSponsorships,
getExtraQuestionMeta,
getSponsorPurchasesMeta
}) => {
@@ -49,7 +49,7 @@ const SponsorPage = ({
getSponsorMaterials(entity.id);
getSponsorSocialNetworks(entity.id);
getSponsorLeadReportSettingsMeta(entity.id);
- getSponsorTiers(entity.id);
+ getSponsorSponsorships(entity.id);
getExtraQuestionMeta();
getSponsorPurchasesMeta();
} else {
@@ -103,7 +103,7 @@ export default connect(mapStateToProps, {
getSponsorMaterials,
getSponsorSocialNetworks,
getSponsorLeadReportSettingsMeta,
- getSponsorTiers,
+ getSponsorSponsorships,
getExtraQuestionMeta,
getSponsorPurchasesMeta
})(SponsorPage);
diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/__tests__/customized-form-popup.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/__tests__/customized-form-popup.test.js
index 5afdce9d6..036ca9781 100644
--- a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/__tests__/customized-form-popup.test.js
+++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/__tests__/customized-form-popup.test.js
@@ -18,15 +18,24 @@ jest.mock("actions/sponsor-forms-actions", () => ({
jest.mock("../customized-form", () => ({
__esModule: true,
- default: ({ onSubmit, isSaving }) => (
-
- )
+ default: ({ onSubmit, isSaving, sponsor, summitId }) => {
+ const sponsorshipIds = (sponsor?.sponsorships || []).map((s) => s.id);
+ return (
+ <>
+
+
+ >
+ );
+ }
}));
describe("CustomizedFormPopup", () => {
@@ -41,17 +50,34 @@ describe("CustomizedFormPopup", () => {
}
};
- const sponsor = {
+ const createSponsor = (overrides = {}) => ({
id: 1,
- sponsorships_collection: {
- sponsorships: []
- }
- };
+ sponsorships: [{ id: 42 }],
+ ...overrides
+ });
+
+ const sponsor = createSponsor();
beforeEach(() => {
jest.clearAllMocks();
});
+ it("passes sponsorship ids and summitId to the form as queryParams", () => {
+ renderWithRedux(
+ ,
+ { initialState }
+ );
+
+ const el = screen.getByTestId("addon-query-params");
+ expect(JSON.parse(el.dataset.params)).toEqual([69, 1, [42, 99]]);
+ });
+
it("keeps modal open when save fails", async () => {
const onClose = jest.fn();
const onSaved = jest.fn();
diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/customized-form.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/customized-form.js
index a793c2bfd..a1530e1c0 100644
--- a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/customized-form.js
+++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/components/customized-form/customized-form.js
@@ -54,9 +54,7 @@ const CustomizedForm = ({
isSaving = false,
onSubmit
}) => {
- const sponsorships = sponsor.sponsorships_collection.sponsorships.map(
- (e) => e.id
- );
+ const sponsorshipIds = sponsor.sponsorships?.map((e) => e.id) || [];
const formik = useFormik(
{
@@ -126,7 +124,7 @@ const CustomizedForm = ({
name="allowed_add_ons"
queryFunction={querySponsorAddons}
// params for function, except input
- queryParams={[summitId, sponsor.id, sponsorships]}
+ queryParams={[summitId, sponsor.id, sponsorshipIds]}
showSelectAll
getGroupId={(addon) => addon.sponsorship.type.id}
getGroupLabel={(addon) => addon.sponsorship.type.type.name}
diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/index.js
index dea556c59..ee86dd44f 100644
--- a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/index.js
+++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/index.js
@@ -23,8 +23,7 @@ import {
deleteExtraQuestion,
getSponsorExtraQuestion,
getSponsorLeadReportSettingsMeta,
- getSponsorshipAddons,
- getSponsorTiers,
+ getSponsorSponsorships,
removeAddonToSponsorship,
removeTierFromSponsor,
resetSponsorExtraQuestionForm,
@@ -40,10 +39,9 @@ const SponsorGeneralForm = ({
sponsor,
member,
currentSummit,
- getSponsorTiers,
+ getSponsorSponsorships,
addTierToSponsor,
removeTierFromSponsor,
- getSponsorshipAddons,
setSelectedSponsorship,
saveAddonsToSponsorship,
removeAddonToSponsorship,
@@ -57,7 +55,7 @@ const SponsorGeneralForm = ({
updateExtraQuestionOrder
}) => {
const handleSponsorshipPaginate = (page, perPage, order, orderDir) => {
- getSponsorTiers(sponsor.id, page, perPage, order, orderDir);
+ getSponsorSponsorships(sponsor.id, page, perPage, order, orderDir);
};
return (
@@ -70,7 +68,6 @@ const SponsorGeneralForm = ({
onSponsorshipPaginate={handleSponsorshipPaginate}
onSponsorshipAdd={addTierToSponsor}
onSponsorshipDelete={removeTierFromSponsor}
- getSponsorshipAddons={getSponsorshipAddons}
onSponsorshipSelect={setSelectedSponsorship}
onSponsorshipAddonSave={saveAddonsToSponsorship}
onSponsorshipAddonRemove={removeAddonToSponsorship}
@@ -108,10 +105,9 @@ const mapStateToProps = ({
export default connect(mapStateToProps, {
getSponsorLeadReportSettingsMeta,
- getSponsorTiers,
+ getSponsorSponsorships,
addTierToSponsor,
removeTierFromSponsor,
- getSponsorshipAddons,
saveAddonsToSponsorship,
removeAddonToSponsorship,
setSelectedSponsorship,
diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/sponsorship.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/sponsorship.js
index c8eca25f8..2b3ccbd75 100644
--- a/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/sponsorship.js
+++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-general-form/sponsorship.js
@@ -28,7 +28,6 @@ const Sponsorship = ({
onSponsorshipPaginate,
onSponsorshipAdd,
onSponsorshipDelete,
- getSponsorshipAddons,
onSponsorshipSelect,
onSponsorshipAddonSave,
onSponsorshipAddonRemove
@@ -186,7 +185,6 @@ const Sponsorship = ({
sponsorship={selectedSponsorship}
summitId={summitId}
open={showManageTierAddonsPopup}
- getSponsorshipAddons={getSponsorshipAddons}
onSponsorshipAddonRemove={onSponsorshipAddonRemove}
onClose={handleCloseManageAddonsPopup}
onSubmit={handleAddSponsorshipAddon}
diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/__tests__/sponsor-pages-tab.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/__tests__/sponsor-pages-tab.test.js
index e327132cd..287193861 100644
--- a/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/__tests__/sponsor-pages-tab.test.js
+++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/__tests__/sponsor-pages-tab.test.js
@@ -73,7 +73,7 @@ jest.mock("../../../../../../actions/summit-actions", () => ({
const createSponsor = (overrides = {}) => ({
id: 1,
- sponsorships_collection: { sponsorships: [] },
+ sponsorships: [],
...overrides
});
@@ -125,7 +125,7 @@ const defaultState = {
}
},
currentSponsorState: {
- entity: { id: 1, sponsorships_collection: { sponsorships: [] } },
+ entity: { id: 1, sponsorships: [] },
errors: {}
}
};
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 cec79b3ff..2c5e82b44 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
@@ -381,9 +381,7 @@ const SponsorPagesTab = ({
)
];
- const sponsorshipIds = sponsor.sponsorships_collection.sponsorships.map(
- (e) => e.id
- );
+ const sponsorshipIds = sponsor.sponsorships?.map((e) => e.id) || [];
return (
diff --git a/src/reducers/sponsors/sponsor-reducer.js b/src/reducers/sponsors/sponsor-reducer.js
index 142bca97e..9736a35db 100644
--- a/src/reducers/sponsors/sponsor-reducer.js
+++ b/src/reducers/sponsors/sponsor-reducer.js
@@ -129,6 +129,7 @@ export const DEFAULT_ENTITY = {
extra_questions: [],
lead_report_setting: {},
available_lead_report_columns: [],
+ sponsorships: [],
sponsorships_collection: DEFAULT_SPONSORHIPS_STATE
};
@@ -163,6 +164,10 @@ const sponsorReducer = (state = DEFAULT_STATE, action) => {
}
}
+ if (!Array.isArray(entity.sponsorships)) {
+ entity.sponsorships = [];
+ }
+
if (!entity.lead_report_setting) entity.lead_report_setting = {};
return {