From 9f1dd857c41083882fea74a79de45a950f0b0a0d Mon Sep 17 00:00:00 2001 From: Patrick Britton Date: Mon, 16 Feb 2026 23:47:02 -0600 Subject: [PATCH] fix: upgrade ALTCHA widget to v2.3.0 and rewrite component - Upgrade from v0.5.0 to v2.3.0 (latest) - Use dangerouslySetInnerHTML for proper web component rendering - Add MutationObserver for reliable event binding - Enable debug mode on widget to diagnose issues - Simplify component API with onVerified/onError callbacks --- admin/src/app/login/page.tsx | 19 +++++---- admin/src/components/Altcha.tsx | 75 +++++++++++++++++++-------------- 2 files changed, 54 insertions(+), 40 deletions(-) diff --git a/admin/src/app/login/page.tsx b/admin/src/app/login/page.tsx index bf367c1..e6c5b9f 100644 --- a/admin/src/app/login/page.tsx +++ b/admin/src/app/login/page.tsx @@ -17,14 +17,14 @@ export default function LoginPage() { const { login } = useAuth(); const router = useRouter(); - const handleAltchaStateChange = useCallback((state: any) => { - if (state.state === 'verified' && state.payload) { - setAltchaToken(state.payload); - setAltchaVerified(true); - } else { - setAltchaToken(''); - setAltchaVerified(false); - } + const handleAltchaVerified = useCallback((payload: string) => { + setAltchaToken(payload); + setAltchaVerified(true); + }, []); + + const handleAltchaError = useCallback(() => { + setAltchaToken(''); + setAltchaVerified(false); }, []); const performLogin = useCallback(async () => { @@ -107,7 +107,8 @@ export default function LoginPage() {