From 9fc73c71246f76b20ac2b933998956044ec836de Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Thu, 20 Feb 2025 21:55:40 +0800 Subject: [PATCH 1/2] fix --- web_src/js/features/captcha.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/web_src/js/features/captcha.ts b/web_src/js/features/captcha.ts index 69b4aa6852fca..bb92a2114d2f6 100644 --- a/web_src/js/features/captcha.ts +++ b/web_src/js/features/captcha.ts @@ -34,13 +34,17 @@ export async function initCaptcha() { break; } case 'm-captcha': { - const {default: mCaptcha} = await import(/* webpackChunkName: "mcaptcha-vanilla-glue" */'@mcaptcha/vanilla-glue'); - // @ts-expect-error + const mCaptcha = await import(/* webpackChunkName: "mcaptcha-vanilla-glue" */'@mcaptcha/vanilla-glue'); + + // FIXME: the mCaptcha code is not right, it's a miracle that the wrong code could run + // * the "vanilla-glue" has some problems with es6 module. + // * the INPUT_NAME is a "const", it should not be changed. + // * the "mCaptcha.default" is actually the "Widget". + mCaptcha.INPUT_NAME = 'm-captcha-response'; const instanceURL = captchaEl.getAttribute('data-instance-url'); - // @ts-expect-error - mCaptcha.default({ + new mCaptcha.default({ siteKey: { instanceUrl: new URL(instanceURL), key: siteKey, From c6e73ce64f66be394e1349b086f0f0999fdfd2b3 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Thu, 20 Feb 2025 22:03:21 +0800 Subject: [PATCH 2/2] fix --- web_src/css/form.css | 2 +- web_src/js/features/captcha.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/web_src/css/form.css b/web_src/css/form.css index 7a2cf4fcac6f9..4410dc64a975d 100644 --- a/web_src/css/form.css +++ b/web_src/css/form.css @@ -243,7 +243,7 @@ textarea:focus, height: 76px !important; } .m-captcha-style { - width: 50%; + max-width: 450px; } } diff --git a/web_src/js/features/captcha.ts b/web_src/js/features/captcha.ts index bb92a2114d2f6..df234d0e5c85e 100644 --- a/web_src/js/features/captcha.ts +++ b/web_src/js/features/captcha.ts @@ -41,6 +41,7 @@ export async function initCaptcha() { // * the INPUT_NAME is a "const", it should not be changed. // * the "mCaptcha.default" is actually the "Widget". + // @ts-expect-error TS2540: Cannot assign to 'INPUT_NAME' because it is a read-only property. mCaptcha.INPUT_NAME = 'm-captcha-response'; const instanceURL = captchaEl.getAttribute('data-instance-url');