From 2cfc516e2c0f3a82652bb8b123036c59bd5eae0c Mon Sep 17 00:00:00 2001 From: hamed <15238-genius.ha@users.noreply.drupalcode.org> Date: Fri, 10 Jul 2026 12:06:03 +0330 Subject: [PATCH] fix(altcha): update attribute from challengeurl to challenge in Altcha component and home template --- assets/admin/components/ui/Altcha.tsx | 15 +++++++-------- templates/public/home.html.twig | 3 ++- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/assets/admin/components/ui/Altcha.tsx b/assets/admin/components/ui/Altcha.tsx index a9cd041d..6d218b7f 100644 --- a/assets/admin/components/ui/Altcha.tsx +++ b/assets/admin/components/ui/Altcha.tsx @@ -12,13 +12,11 @@ interface AltchaProps { } // altcha-widget یک custom element است؛ به JSX معرفی می‌شود (React 19: namespace زیر React.JSX). +// همه‌ی attributeها با setAttribute ست می‌شوند، نه JSX prop. declare module 'react' { namespace JSX { interface IntrinsicElements { - 'altcha-widget': React.DetailedHTMLProps, HTMLElement> & { - challengeurl?: string; - strings?: string; - }; + 'altcha-widget': React.DetailedHTMLProps, HTMLElement>; } } } @@ -41,9 +39,8 @@ export default function Altcha({ onVerified, challengeUrl = '/api/v1/altcha/chal return () => { alive = false; }; }, [onVerified]); - // config (challengeurl/strings/auto) را با setAttribute ست می‌کنیم، نه JSX prop — - // React ممکن است پراپ custom element را به‌صورت property ست کند و widget آن را - // نخواند؛ نتیجه challengeurl خالی و fetch صفحه‌ی جاری (HTML) به‌جای JSON بود. + // config (challenge/language/auto) را با setAttribute ست می‌کنیم، نه JSX prop — + // React ممکن است پراپ custom element را به‌صورت property ست کند و widget آن را نخواند. useEffect(() => { if (enabled !== true) return; const el = ref.current; @@ -56,7 +53,9 @@ export default function Altcha({ onVerified, challengeUrl = '/api/v1/altcha/chal } }; - el.setAttribute('challengeurl', challengeUrl); + // widget v3 نام attribute را از challengeurl به challenge تغییر داده (docs v2)؛ + // challengeurl را observe نمی‌کند و بدون URL، صفحه‌ی جاری (HTML) fetch می‌شد. + el.setAttribute('challenge', challengeUrl); el.setAttribute('language', 'fa'); el.setAttribute('auto', 'onload'); el.addEventListener('statechange', onStateChange); diff --git a/templates/public/home.html.twig b/templates/public/home.html.twig index 35bc8e5a..c46a5bfc 100644 --- a/templates/public/home.html.twig +++ b/templates/public/home.html.twig @@ -559,7 +559,8 @@ {% if altcha_enabled %} - + {# widget v3: attribute «challenge» (نه challengeurl قدیمی) #} + {% endif %}