fix(auth): prevent integer overflow in logout timer using safeTimeout (#5470)

This commit is contained in:
MSomnium Studios
2025-10-17 11:38:57 -04:00
committed by GitHub
parent 97b8911ba8
commit dd883985bb
2 changed files with 22 additions and 2 deletions

View File

@@ -91,3 +91,21 @@ export function createURL(endpoint: string, searchParams = {}): string {
return url.toString();
}
export function setSafeTimeout(callback: () => void, delay: number): number {
const MAX_DELAY = 86_400_000;
let remaining = delay;
function scheduleNext(): number {
if (remaining <= MAX_DELAY) {
return window.setTimeout(callback, remaining);
} else {
return window.setTimeout(() => {
remaining -= MAX_DELAY;
scheduleNext();
}, MAX_DELAY);
}
}
return scheduleNext();
}