From 6c5ca5199b75e0cbe4c48a06ae8ad12ccff41eea Mon Sep 17 00:00:00 2001 From: Dan Wilson Date: Fri, 11 Aug 2023 10:10:29 +0100 Subject: [PATCH] fix multi stage rejections --- src/pages/build/build.jsx | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/pages/build/build.jsx b/src/pages/build/build.jsx index 094e90d8..c90f4961 100644 --- a/src/pages/build/build.jsx +++ b/src/pages/build/build.jsx @@ -204,17 +204,26 @@ export default function Build({ user, userIsAdminOrHasWritePerm }) { }, [data, namespace, name, build, mutate, showError]); const handleDeclineClick = useCallback(async () => { + const stageCount = data?.stages?.length || 1; + const apiRequests = []; + + for (let i = 0; i < stageCount; i++) { + const { number } = data.stages[i]; + apiRequests.push( + axiosWrapper(`/api/repos/${namespace}/${name}/builds/${build}/decline/${number}`, { + method: 'POST', + }), + ); + } try { - await axiosWrapper(`/api/repos/${namespace}/${name}/builds/${build}/decline/${stage}`, { - method: 'POST', - }); + await Promise.all(apiRequests); await mutate(); } catch (e) { showError(`Unable to decline build: ${e.message}`); // eslint-disable-next-line console.warn(e.message); } - }, [namespace, name, build, stage, mutate, showError]); + }, [data, namespace, name, build, mutate, showError]); const handleMenuItemSelect = useCallback((value) => { switch (value) {