web/turnstile: refresh turnstile if it expires in background
also renamed `turnstileLoaded` to `turnstileSolved` for more clarity
This commit is contained in:
@@ -2,7 +2,9 @@
|
||||
import { onMount } from "svelte";
|
||||
|
||||
import { cachedInfo } from "$lib/api/server-info";
|
||||
import { turnstileLoaded, turnstileCreated } from "$lib/state/turnstile";
|
||||
import { turnstileSolved, turnstileCreated } from "$lib/state/turnstile";
|
||||
|
||||
import turnstile from "$lib/api/turnstile";
|
||||
|
||||
let turnstileElement: HTMLElement;
|
||||
let turnstileScript: HTMLElement;
|
||||
@@ -21,7 +23,7 @@
|
||||
return true;
|
||||
},
|
||||
callback: () => {
|
||||
$turnstileLoaded = true;
|
||||
$turnstileSolved = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -31,6 +33,10 @@
|
||||
} else {
|
||||
turnstileScript.addEventListener("load", setup);
|
||||
}
|
||||
|
||||
window.addEventListener("focus", () => {
|
||||
turnstile.refreshIfExpired();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
import dialogs from "$lib/state/dialogs";
|
||||
import { link } from "$lib/state/omnibox";
|
||||
import { updateSetting } from "$lib/state/settings";
|
||||
import { turnstileLoaded } from "$lib/state/turnstile";
|
||||
import { turnstileSolved } from "$lib/state/turnstile";
|
||||
|
||||
import type { Optional } from "$lib/types/generic";
|
||||
import type { DownloadModeOption } from "$lib/types/settings";
|
||||
@@ -39,7 +39,8 @@
|
||||
|
||||
let isDisabled = false;
|
||||
let isLoading = false;
|
||||
let isBotCheckOngoing = false;
|
||||
$: isBotCheckOngoing =
|
||||
!!$cachedInfo?.info?.cobalt?.turnstileSitekey && !$turnstileSolved;
|
||||
|
||||
const validLink = (url: string) => {
|
||||
try {
|
||||
@@ -61,16 +62,6 @@
|
||||
goto("/", { replaceState: true });
|
||||
}
|
||||
|
||||
$: if ($cachedInfo?.info?.cobalt?.turnstileSitekey) {
|
||||
if ($turnstileLoaded) {
|
||||
isBotCheckOngoing = false;
|
||||
} else {
|
||||
isBotCheckOngoing = true;
|
||||
}
|
||||
} else {
|
||||
isBotCheckOngoing = false;
|
||||
}
|
||||
|
||||
const pasteClipboard = () => {
|
||||
if ($dialogs.length > 0 || isDisabled || isLoading) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user