diff --git a/src/components/forms/sponsor-general-form/extra-questions.js b/src/components/forms/sponsor-general-form/extra-questions.js index 36d98f699..ccd168329 100644 --- a/src/components/forms/sponsor-general-form/extra-questions.js +++ b/src/components/forms/sponsor-general-form/extra-questions.js @@ -67,19 +67,36 @@ const SponsorExtraQuestions = ({ const handleSubmitExtraQuestion = (extraQuestion) => { const { valuesToSave, ...extraQuestionToSave } = extraQuestion; - saveSponsorExtraQuestion(extraQuestionToSave).then((eq) => { - // after save question, check if values needs to be saved - if (valuesToSave && valuesToSave.length > 0) { - const extraQuestionId = extraQuestionToSave.id || eq.id; + + const hasValues = valuesToSave && valuesToSave.length > 0; + + if (!hasValues) { + saveSponsorExtraQuestion(extraQuestionToSave).then(() => + handleCloseExtraQuestionPopup() + ); + return; + } + + if (!extraQuestionToSave.id) { + saveSponsorExtraQuestion(extraQuestionToSave).then((eq) => { const saveValuePromises = valuesToSave.map((value) => - saveSponsorExtraQuestionValue(extraQuestionId, value) + saveSponsorExtraQuestionValue(eq.id, value) ); - Promise.all(saveValuePromises).finally(() => + Promise.all(saveValuePromises).then(() => handleCloseExtraQuestionPopup() ); - } else { - handleCloseExtraQuestionPopup(); - } + }); + return; + } + + const saveValuePromises = valuesToSave.map((value) => + saveSponsorExtraQuestionValue(extraQuestionToSave.id, value) + ); + + Promise.all(saveValuePromises).then(() => { + saveSponsorExtraQuestion(extraQuestionToSave).then(() => + handleCloseExtraQuestionPopup() + ); }); };