Spaces:
Paused
Paused
File size: 1,693 Bytes
43a06dc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
<script lang="ts">
import { onMount } from "svelte";
import cachedInfo from "$lib/state/server-info";
import { turnstileSolved, turnstileCreated } from "$lib/state/turnstile";
import turnstile from "$lib/api/turnstile";
let turnstileElement: HTMLElement;
let turnstileScript: HTMLElement;
onMount(() => {
const sitekey = $cachedInfo?.info?.cobalt?.turnstileSitekey;
if (!sitekey) return;
$turnstileCreated = true;
const setup = () => {
window.turnstile?.render(turnstileElement, {
sitekey,
"refresh-expired": "never",
"retry-interval": 800,
"error-callback": (error) => {
console.log("error code from turnstile:", error);
return true;
},
"expired-callback": () => {
console.log("turnstile expired, refreshing neow");
turnstile.reset();
},
callback: () => {
$turnstileSolved = true;
}
});
}
if (window.turnstile) {
setup();
} else {
turnstileScript.addEventListener("load", setup);
}
});
</script>
<svelte:head>
<script
bind:this={turnstileScript}
src="https://challenges.cloudflare.com/turnstile/v0/api.js"
defer
></script>
</svelte:head>
<div id="turnstile-container">
<div bind:this={turnstileElement} id="turnstile-widget"></div>
</div>
<style>
#turnstile-container {
position: absolute;
z-index: 999;
right: 0;
}
</style>
|