Skip to content

Commit

Permalink
Fix mCaptcha bug (#33659)
Browse files Browse the repository at this point in the history
Fix #33658
  • Loading branch information
wxiaoguang authored Feb 20, 2025
1 parent e6759f3 commit cd225d7
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
2 changes: 1 addition & 1 deletion web_src/css/form.css
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ textarea:focus,
height: 76px !important;
}
.m-captcha-style {
width: 50%;
max-width: 450px;
}
}

Expand Down
13 changes: 9 additions & 4 deletions web_src/js/features/captcha.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,18 @@ 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".

// @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');

// @ts-expect-error
mCaptcha.default({
new mCaptcha.default({
siteKey: {
instanceUrl: new URL(instanceURL),
key: siteKey,
Expand Down

0 comments on commit cd225d7

Please sign in to comment.