@@ -27,17 +27,21 @@ const el = ref()
27
27
const unmountStarted = ref (false )
28
28
let id: string | undefined | null = undefined
29
29
let interval: NodeJS .Timeout
30
- const { render, reset : _reset, remove } = useScriptCloudflareTurnstile ({
30
+ const { onLoaded } = useScriptCloudflareTurnstile ({
31
31
scriptOptions: {
32
32
trigger: useScriptTriggerElement ({ trigger: props .trigger , el }),
33
33
},
34
34
})
35
35
36
+ let _reset: Turnstile .Turnstile [' reset' ]
37
+ let remove: Turnstile .Turnstile [' remove' ]
38
+
36
39
const reset = () => {
37
40
if (id ) {
38
41
_reset (id )
39
42
}
40
43
}
44
+
41
45
const unmount = () => {
42
46
unmountStarted .value = true
43
47
clearInterval (interval )
@@ -47,17 +51,22 @@ const unmount = () => {
47
51
}
48
52
}
49
53
50
- onMounted (async () => {
51
- id = await render (el .value , {
52
- sitekey: props .siteKey || config .siteKey ,
53
- callback : (token : string ) => emit (' update:modelValue' , token ),
54
- ... props .options ,
55
- })
56
- interval = setInterval (reset , props .resetInterval )
54
+ onMounted (() => {
55
+ // @ts-expect-error types from nuxt/scripts seem to be wrong
56
+ onLoaded (async ({ render , reset : resetFn , remove : removeFn }) => {
57
+ _reset = resetFn
58
+ remove = removeFn
59
+ id = await render (el .value , {
60
+ sitekey: props .siteKey || config .siteKey ,
61
+ callback : (token : string ) => emit (' update:modelValue' , token ),
62
+ ... props .options ,
63
+ })
64
+ interval = setInterval (reset , props .resetInterval )
57
65
58
- if (unmountStarted .value ) {
59
- unmount ()
60
- }
66
+ if (unmountStarted .value ) {
67
+ unmount ()
68
+ }
69
+ })
61
70
})
62
71
63
72
onBeforeUnmount (unmount )
0 commit comments