Fix mCaptcha bug (#33659)

Fix #33658
pull/33654/head^2
wxiaoguang 2025-02-20 22:53:38 +08:00 committed by GitHub
parent e6759f356d
commit cd225d7034
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 5 deletions

View File

@ -243,7 +243,7 @@ textarea:focus,
height: 76px !important; height: 76px !important;
} }
.m-captcha-style { .m-captcha-style {
width: 50%; max-width: 450px;
} }
} }

View File

@ -34,13 +34,18 @@ export async function initCaptcha() {
break; break;
} }
case 'm-captcha': { case 'm-captcha': {
const {default: mCaptcha} = await import(/* webpackChunkName: "mcaptcha-vanilla-glue" */'@mcaptcha/vanilla-glue'); const mCaptcha = await import(/* webpackChunkName: "mcaptcha-vanilla-glue" */'@mcaptcha/vanilla-glue');
// @ts-expect-error
// 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".
// @ts-expect-error TS2540: Cannot assign to 'INPUT_NAME' because it is a read-only property.
mCaptcha.INPUT_NAME = 'm-captcha-response'; mCaptcha.INPUT_NAME = 'm-captcha-response';
const instanceURL = captchaEl.getAttribute('data-instance-url'); const instanceURL = captchaEl.getAttribute('data-instance-url');
// @ts-expect-error new mCaptcha.default({
mCaptcha.default({
siteKey: { siteKey: {
instanceUrl: new URL(instanceURL), instanceUrl: new URL(instanceURL),
key: siteKey, key: siteKey,