|
|
|
@ -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, |
|
|
|
|