From 30efd55d6c618724fcbf382c54a9812096a6ff91 Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Tue, 19 Mar 2024 16:53:36 +0100 Subject: [PATCH] FhcApi: settle handled Promises & discard them in FhcAlert --- public/js/plugin/FhcAlert.js | 4 ++++ public/js/plugin/FhcApi.js | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/public/js/plugin/FhcAlert.js b/public/js/plugin/FhcAlert.js index eca2e6944..eb6516820 100644 --- a/public/js/plugin/FhcAlert.js +++ b/public/js/plugin/FhcAlert.js @@ -250,6 +250,10 @@ export default { // Error is array of strings if (Array.isArray(error) && error.every(err => typeof err === 'string')) return error.every($fhcAlert.alertSystemError); + + // Error has been handled already + if (error.hasOwnProperty('handled') && error.handled) + return; // Error is object if (typeof error === 'object' && error !== null) { diff --git a/public/js/plugin/FhcApi.js b/public/js/plugin/FhcApi.js index ae8fdfdc1..addc2a679 100644 --- a/public/js/plugin/FhcApi.js +++ b/public/js/plugin/FhcApi.js @@ -106,7 +106,7 @@ export default { return _clean_return_value(response); }, error => { if (error.code == 'ERR_CANCELED') - return new Promise(() => {}); + return Promise.reject({...{handled: true}, ...error}); if (error.config?.errorHandling == 'off' || error.config?.errorHandling === false @@ -116,7 +116,7 @@ export default { if (error.response) { if (error.response.status == 404) { app.config.globalProperties.$fhcAlert.alertDefault('error', error.message, error.request.responseURL, true); - return new Promise(() => {}); + return Promise.reject({...{handled: true}, ...error}); } // NOTE(chris): loop through errors @@ -124,13 +124,13 @@ export default { err => (error.config[err.type + 'ErrorHandler'] || app.config.globalProperties.$fhcApi._defaultErrorHandlers[err.type])(err, error.config.form) ); if (!error.response.data.errors.length) - return new Promise(() => {}); + return Promise.reject({...{handled: true}, ...error}); } else if (error.request) { app.config.globalProperties.$fhcAlert.alertDefault('error', error.message, error.request.responseURL); - return new Promise(() => {}); + return Promise.reject({...{handled: true}, ...error}); } else { app.config.globalProperties.$fhcAlert.alertError(error.message); - return new Promise(() => {}); + return Promise.reject({...{handled: true}, ...error}); } return Promise.reject(error);