diff --git a/src/components/login/TurnstileWidget.tsx b/src/components/login/TurnstileWidget.tsx index 2bd1496..8754231 100644 --- a/src/components/login/TurnstileWidget.tsx +++ b/src/components/login/TurnstileWidget.tsx @@ -1,4 +1,4 @@ -import { FC, useEffect, useRef, useState } from 'react'; +import { FC, useEffect, useEffectEvent, useRef, useState } from 'react'; declare global { @@ -33,6 +33,10 @@ export const TurnstileWidget: FC = props => const widgetIdRef = useRef(null); const [ scriptReady, setScriptReady ] = useState(typeof window !== 'undefined' && !!window.turnstile); + const handleToken = useEffectEvent((token: string) => onToken(token)); + const handleExpire = useEffectEvent(() => onExpire?.()); + const handleError = useEffectEvent(() => onError?.()); + useEffect(() => { if(scriptReady) return; @@ -58,9 +62,9 @@ export const TurnstileWidget: FC = props => sitekey: siteKey, theme, size, - callback: (token: string) => onToken(token), - 'expired-callback': () => onExpire?.(), - 'error-callback': () => onError?.() + callback: handleToken, + 'expired-callback': handleExpire, + 'error-callback': handleError }); return () =>