Fix fetch action redirect (#37437)

And add tests for its behavior
This commit is contained in:
wxiaoguang
2026-04-27 00:37:03 +08:00
committed by GitHub
parent 2671b997f2
commit 2f42c8cf72
2 changed files with 27 additions and 5 deletions
+6 -4
View File
@@ -34,7 +34,7 @@ function fetchActionDoRedirect(redirect: string) {
// * Also do so in development, to make sure the redirection logic is always tested by real users
const needBackendHelp = redirect.includes('#');
if (runModeIsProd && !needBackendHelp) {
window.location.href = redirect;
window.location.assign(redirect);
return;
}
@@ -66,11 +66,13 @@ function toggleLoadingIndicator(el: HTMLElement, opt: FetchActionOpts, isLoading
}
}
async function handleFetchActionSuccessJson(el: HTMLElement, respJson: any) {
export async function handleFetchActionSuccessJson(el: HTMLElement, respJson: any) {
ignoreAreYouSure(el); // ignore the areYouSure check before reloading
if (typeof respJson?.redirect === 'string') {
fetchActionDoRedirect(respJson.redirect);
const redirect = respJson?.redirect;
if (typeof redirect === 'string' && redirect) {
fetchActionDoRedirect(redirect);
} else {
// reserved behavior, in the future, there can be more fields to introduce more behaviors
window.location.reload();
}
}