@springmicro/auth 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +18 -18
- package/README.md +60 -60
- package/dist/{Index-64ac63ff-Bb7oVTBw.js → Index-64ac63ff-CSMaEBDA.js} +1 -1
- package/dist/{Index-6c094240-Cre9O000.js → Index-6c094240-mSgidTC1.js} +1 -1
- package/dist/{Web3Auth-D-jzK5S2.js → Web3Auth-R27O2eCc.js} +10 -10
- package/dist/alphawallet-B7eovdf-.js +0 -0
- package/dist/apexwallet-ysP20G9D.js +0 -0
- package/dist/atoken-BBnNTzcz.js +0 -0
- package/dist/bifrostwallet-CNNBO92h.js +0 -0
- package/dist/binance-DvPgAzCw.js +0 -0
- package/dist/bitget-DZOUrwgy.js +0 -0
- package/dist/bitpie-C_uxmEzw.js +0 -0
- package/dist/bitski-DpzkHNkv.js +0 -0
- package/dist/blockwallet-BL69cqkA.js +0 -0
- package/dist/brave-DnRzMQYW.js +0 -0
- package/dist/ccip-c78d2f16-DLcRlwod.js +0 -0
- package/dist/coin98wallet-CkFdOvXt.js +0 -0
- package/dist/coinbase-CaGNx5if.js +0 -0
- package/dist/core-9rK8tWud.js +0 -0
- package/dist/defiwallet-0AsgJBSy.js +0 -0
- package/dist/detected-CX_JZaUk.js +0 -0
- package/dist/echooo-CmaetT_Z.js +0 -0
- package/dist/enkrypt-BibtwvK7.js +0 -0
- package/dist/exodus-BxzkDWWP.js +0 -0
- package/dist/fordefi-CvKyVwhI.js +0 -0
- package/dist/foxwallet-D7c_LDTf.js +0 -0
- package/dist/frame-CDfNmjUy.js +0 -0
- package/dist/frontier-DqKNSj2z.js +0 -0
- package/dist/{hashMessage-1XTFjS64.js → hashMessage-B7KFzddV.js} +1 -1
- package/dist/huobiwallet-CxSwqa5L.js +0 -0
- package/dist/hyperpay-nmHE3WqM.js +0 -0
- package/dist/icon-2Zqy7pqQ.js +0 -0
- package/dist/icon-CGWI1Ies.js +0 -0
- package/dist/icon-C_O4nprO.js +0 -0
- package/dist/icon-DbgmZCnU.js +0 -0
- package/dist/icon-Dbjb6jc5.js +0 -0
- package/dist/icon-cAd7RhSC.js +0 -0
- package/dist/imtoken-yENtOTS3.js +0 -0
- package/dist/index-021f6a62-Zz543EDB.js +0 -0
- package/dist/{index-BcBHeHDh.js → index-1HLXgKdW.js} +2 -2
- package/dist/index-40a497ea-Bn2mC0r7.js +0 -0
- package/dist/{index-Bt-ptciq.js → index-C8xLRoDS.js} +1 -1
- package/dist/{index-Dd6Cx4jI.js → index-ChYsa81u.js} +2 -2
- package/dist/{index-Bi-yyFKX.js → index-Cp0Pai1C.js} +1 -1
- package/dist/{index-BCIsepdu.js → index-D_yyUC2r.js} +1060 -1025
- package/dist/{index-m_M0OdCv.js → index-TsElTuix.js} +1 -1
- package/dist/{index-D23L6orl.js → index-ayOaYQgv.js} +4 -4
- package/dist/index.d.ts +8 -3
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +165 -165
- package/dist/infinitywallet-C8J4FUYw.js +0 -0
- package/dist/kayros-AIrUK1za.js +0 -0
- package/dist/keplr-CyLTca9B.js +0 -0
- package/dist/lif3wallet-C5D6r8pg.js +0 -0
- package/dist/liquality-nbCtErVq.js +0 -0
- package/dist/mathwallet-CWkivCXo.js +0 -0
- package/dist/meetone-kKmvI8md.js +0 -0
- package/dist/metamask-BN7yiDV1.js +0 -0
- package/dist/mykey-CQZ6UcLH.js +0 -0
- package/dist/native-FDN9oNjc.js +0 -0
- package/dist/{number-DcOvM-ZJ.js → number-D9Q-3_Cz.js} +1 -1
- package/dist/okxwallet-CJLVogh2.js +0 -0
- package/dist/oneInch-CciyZ4Pz.js +0 -0
- package/dist/onekey-Dal8kYjU.js +0 -0
- package/dist/opera-DnKg-TJU.js +0 -0
- package/dist/ownbit-BshJUVuW.js +0 -0
- package/dist/phantom-CJ8dIcov.js +0 -0
- package/dist/rabby-D4thTcd6.js +0 -0
- package/dist/rainbow-mXld6yWV.js +0 -0
- package/dist/roninwallet-ZyYrd-D1.js +0 -0
- package/dist/safeheron-Eg1Jb29V.js +0 -0
- package/dist/safepal-DVIKy94N.js +0 -0
- package/dist/sequence-BS2IbtDg.js +0 -0
- package/dist/stablewallet-jyB079Wb.js +0 -0
- package/dist/status-FrAvQjfn.js +0 -0
- package/dist/subwallet-DMvFqKyY.js +0 -0
- package/dist/talisman-Bp8zUXqB.js +0 -0
- package/dist/tallywallet-B4OS9nIr.js +0 -0
- package/dist/tokenary-C7jjcbQa.js +0 -0
- package/dist/tokenpocket-9ZRPmAFA.js +0 -0
- package/dist/tp-V2em5bdl.js +0 -0
- package/dist/transactionRequest-be6a8ea9-CUKWo5mx.js +0 -0
- package/dist/trust-SgHubMq7.js +0 -0
- package/dist/xdefi-COVIyGz4.js +0 -0
- package/dist/zeal-DxHbDqm0.js +0 -0
- package/dist/zerion-BfW0UElc.js +0 -0
- package/dist/zodiacpilot-CrId6F4w.js +0 -0
- package/index.html +13 -13
- package/package.json +2 -2
- package/src/auth/config.ts +91 -91
- package/src/components/SignUp.tsx +445 -442
- package/src/components/forms/AgreementModal.tsx +88 -88
- package/src/components/forms/CaptchaController.tsx +94 -94
- package/src/components/forms/CaptchaModal.jsx +171 -171
- package/src/components/forms/CaptchaWidget.jsx +146 -146
- package/src/components/forms/PasswordChecker.ts +88 -88
- package/src/components/forms/SendCodeInput.tsx +0 -0
- package/src/components/forms/SignUpFormItem.tsx +0 -0
- package/src/components/forms/util/application-api.ts +157 -157
- package/src/components/forms/util/auth-api.ts +198 -198
- package/src/components/forms/util/auth-util.tsx +346 -346
- package/src/components/forms/util/core.ts +493 -493
- package/src/components/forms/util/invitation-api.ts +132 -132
- package/src/components/forms/util/provider.tsx +603 -603
- package/src/components/forms/util/user-api.ts +0 -0
- package/src/components/provider/AdfsLoginButton.jsx +38 -38
- package/src/components/provider/AlipayLoginButton.jsx +38 -38
- package/src/components/provider/AppleLoginButton.jsx +38 -38
- package/src/components/provider/AzureADB2CLoginButton.jsx +38 -38
- package/src/components/provider/AzureADLoginButton.jsx +38 -38
- package/src/components/provider/BaiduLoginButton.jsx +38 -38
- package/src/components/provider/BilibiliLoginButton.jsx +37 -37
- package/src/components/provider/CasdoorLoginButton.jsx +38 -38
- package/src/components/provider/DingTalkLoginButton.jsx +37 -37
- package/src/components/provider/DouyinLoginButton.jsx +38 -38
- package/src/components/provider/FacebookLoginButton.jsx +37 -37
- package/src/components/provider/GitHubLoginButton.jsx +37 -37
- package/src/components/provider/GitLabLoginButton.jsx +38 -38
- package/src/components/provider/GiteeLoginButton.jsx +34 -34
- package/src/components/provider/GoogleLoginButton.jsx +68 -68
- package/src/components/provider/InfoflowLoginButton.jsx +38 -38
- package/src/components/provider/LarkLoginButton.jsx +38 -38
- package/src/components/provider/LinkedInLoginButton.jsx +37 -37
- package/src/components/provider/LoginButton.jsx +33 -33
- package/src/components/provider/OktaLoginButton.jsx +38 -38
- package/src/components/provider/Provider.jsx +3 -3
- package/src/components/provider/ProviderButton.jsx +327 -327
- package/src/components/provider/QqLoginButton.jsx +31 -31
- package/src/components/provider/SelfLoginButton.jsx +47 -47
- package/src/components/provider/SlackLoginButton.jsx +38 -38
- package/src/components/provider/SteamLoginButton.jsx +38 -38
- package/src/components/provider/WeComLoginButton.jsx +34 -34
- package/src/components/provider/Web3Auth.jsx +365 -365
- package/src/components/provider/WechatLoginButton.jsx +37 -37
- package/src/components/provider/WeiboLoginButton.jsx +34 -34
- package/src/components/util.tsx +174 -170
- package/src/i18n/en/signup.json +48 -48
- package/src/i18n/index.ts +17 -17
- package/src/index.tsx +8 -8
- package/src/vite-env.d.ts +1 -1
- package/tsconfig.json +23 -23
- package/tsconfig.node.json +10 -10
- package/vite.config.ts +33 -33
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import type { SignUpFormState } from "../SignUp";
|
|
3
|
-
import type { Application } from "./util/provider";
|
|
4
|
-
|
|
5
|
-
export type AgreementModalProps = {
|
|
6
|
-
application: Application;
|
|
7
|
-
state: SignUpFormState;
|
|
8
|
-
setState: React.Dispatch<React.SetStateAction<SignUpFormState>>;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export function AgreementModal({
|
|
12
|
-
application,
|
|
13
|
-
state,
|
|
14
|
-
setState,
|
|
15
|
-
}: AgreementModalProps) {
|
|
16
|
-
const [visible, setVisible] = React.useState(false);
|
|
17
|
-
const dialogRef = React.useRef<HTMLDialogElement | null>(null);
|
|
18
|
-
|
|
19
|
-
React.useEffect(() => {
|
|
20
|
-
if (!dialogRef.current) {
|
|
21
|
-
dialogRef.current = document.getElementById(
|
|
22
|
-
"agreementDialog"
|
|
23
|
-
) as HTMLDialogElement | null;
|
|
24
|
-
}
|
|
25
|
-
}, []);
|
|
26
|
-
|
|
27
|
-
React.useEffect(() => {
|
|
28
|
-
if (dialogRef.current) {
|
|
29
|
-
if (visible) {
|
|
30
|
-
dialogRef.current.showModal();
|
|
31
|
-
} else {
|
|
32
|
-
dialogRef.current.close();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}, [visible]);
|
|
36
|
-
|
|
37
|
-
const handleCancel = () => {
|
|
38
|
-
setState({ ...state, agreement: false });
|
|
39
|
-
setVisible(false);
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
const handleOk = () => {
|
|
43
|
-
setState({ ...state, agreement: true });
|
|
44
|
-
setVisible(false);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const handleOpen = () => {
|
|
48
|
-
setVisible(true);
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
return (
|
|
52
|
-
<>
|
|
53
|
-
<dialog id="agreementDialog" className="modal">
|
|
54
|
-
<div className="modal-box">
|
|
55
|
-
<div className="mt-4 mb-8">
|
|
56
|
-
<iframe
|
|
57
|
-
src={application.termsOfUse}
|
|
58
|
-
width="100%"
|
|
59
|
-
height="300px"
|
|
60
|
-
sandbox="allow-scripts"
|
|
61
|
-
/>
|
|
62
|
-
</div>
|
|
63
|
-
<div className="modal-action">
|
|
64
|
-
<form method="dialog" className="modal-backdrop">
|
|
65
|
-
{/* if there is a button in form, it will close the modal */}
|
|
66
|
-
<button>Close</button>
|
|
67
|
-
</form>
|
|
68
|
-
<form method="dialog" className="flex gap-3">
|
|
69
|
-
<button className="btn" onClick={handleCancel} key="closebtn">
|
|
70
|
-
Cancel
|
|
71
|
-
</button>
|
|
72
|
-
<button
|
|
73
|
-
className="btn btn-primary"
|
|
74
|
-
// disabled={isOkDisabled}
|
|
75
|
-
onClick={handleOk}
|
|
76
|
-
key="okbtn"
|
|
77
|
-
>
|
|
78
|
-
OK
|
|
79
|
-
</button>
|
|
80
|
-
</form>
|
|
81
|
-
</div>
|
|
82
|
-
</div>
|
|
83
|
-
</dialog>
|
|
84
|
-
<input checked={!!state.agreement} type="checkbox" readOnly />
|
|
85
|
-
<button onClick={handleOpen}>Open Terms</button>
|
|
86
|
-
</>
|
|
87
|
-
);
|
|
88
|
-
}
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SignUpFormState } from "../SignUp";
|
|
3
|
+
import type { Application } from "./util/provider";
|
|
4
|
+
|
|
5
|
+
export type AgreementModalProps = {
|
|
6
|
+
application: Application;
|
|
7
|
+
state: SignUpFormState;
|
|
8
|
+
setState: React.Dispatch<React.SetStateAction<SignUpFormState>>;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export function AgreementModal({
|
|
12
|
+
application,
|
|
13
|
+
state,
|
|
14
|
+
setState,
|
|
15
|
+
}: AgreementModalProps) {
|
|
16
|
+
const [visible, setVisible] = React.useState(false);
|
|
17
|
+
const dialogRef = React.useRef<HTMLDialogElement | null>(null);
|
|
18
|
+
|
|
19
|
+
React.useEffect(() => {
|
|
20
|
+
if (!dialogRef.current) {
|
|
21
|
+
dialogRef.current = document.getElementById(
|
|
22
|
+
"agreementDialog"
|
|
23
|
+
) as HTMLDialogElement | null;
|
|
24
|
+
}
|
|
25
|
+
}, []);
|
|
26
|
+
|
|
27
|
+
React.useEffect(() => {
|
|
28
|
+
if (dialogRef.current) {
|
|
29
|
+
if (visible) {
|
|
30
|
+
dialogRef.current.showModal();
|
|
31
|
+
} else {
|
|
32
|
+
dialogRef.current.close();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}, [visible]);
|
|
36
|
+
|
|
37
|
+
const handleCancel = () => {
|
|
38
|
+
setState({ ...state, agreement: false });
|
|
39
|
+
setVisible(false);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const handleOk = () => {
|
|
43
|
+
setState({ ...state, agreement: true });
|
|
44
|
+
setVisible(false);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const handleOpen = () => {
|
|
48
|
+
setVisible(true);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<>
|
|
53
|
+
<dialog id="agreementDialog" className="modal">
|
|
54
|
+
<div className="modal-box">
|
|
55
|
+
<div className="mt-4 mb-8">
|
|
56
|
+
<iframe
|
|
57
|
+
src={application.termsOfUse}
|
|
58
|
+
width="100%"
|
|
59
|
+
height="300px"
|
|
60
|
+
sandbox="allow-scripts"
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
63
|
+
<div className="modal-action">
|
|
64
|
+
<form method="dialog" className="modal-backdrop">
|
|
65
|
+
{/* if there is a button in form, it will close the modal */}
|
|
66
|
+
<button>Close</button>
|
|
67
|
+
</form>
|
|
68
|
+
<form method="dialog" className="flex gap-3">
|
|
69
|
+
<button className="btn" onClick={handleCancel} key="closebtn">
|
|
70
|
+
Cancel
|
|
71
|
+
</button>
|
|
72
|
+
<button
|
|
73
|
+
className="btn btn-primary"
|
|
74
|
+
// disabled={isOkDisabled}
|
|
75
|
+
onClick={handleOk}
|
|
76
|
+
key="okbtn"
|
|
77
|
+
>
|
|
78
|
+
OK
|
|
79
|
+
</button>
|
|
80
|
+
</form>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</dialog>
|
|
84
|
+
<input checked={!!state.agreement} type="checkbox" readOnly />
|
|
85
|
+
<button onClick={handleOpen}>Open Terms</button>
|
|
86
|
+
</>
|
|
87
|
+
);
|
|
88
|
+
}
|
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { CaptchaModal } from "./CaptchaModal";
|
|
3
|
-
import * as AuthBackend from "./util/auth-api";
|
|
4
|
-
|
|
5
|
-
type CaptchaState = {
|
|
6
|
-
values: any;
|
|
7
|
-
openCaptchaModal: boolean;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export default function CaptchaController() {
|
|
11
|
-
const [state, setState] = React.useState<CaptchaState>({
|
|
12
|
-
values: {},
|
|
13
|
-
openCaptchaModal: false,
|
|
14
|
-
});
|
|
15
|
-
const dialogRef = React.useRef<HTMLElement | null>(null);
|
|
16
|
-
|
|
17
|
-
const handleClick = () => {
|
|
18
|
-
if (dialogRef.current) {
|
|
19
|
-
if (!state.openCaptchaModal) {
|
|
20
|
-
// @ts-ignore
|
|
21
|
-
dialogRef.current.showModal();
|
|
22
|
-
} else {
|
|
23
|
-
// @ts-ignore
|
|
24
|
-
dialogRef.current.close();
|
|
25
|
-
}
|
|
26
|
-
setState({ ...state, openCaptchaModal: !state.openCaptchaModal });
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const captchaCallback = (v: any) => {
|
|
31
|
-
console.log(v);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const onOk = (
|
|
35
|
-
captchaType: string,
|
|
36
|
-
captchaToken: string,
|
|
37
|
-
clientSecret: string
|
|
38
|
-
) => {
|
|
39
|
-
if (dialogRef.current) {
|
|
40
|
-
// @ts-ignore
|
|
41
|
-
dialogRef.current.close();
|
|
42
|
-
const values = state.values;
|
|
43
|
-
values["captchaType"] = captchaType;
|
|
44
|
-
values["captchaToken"] = captchaToken;
|
|
45
|
-
values["clientSecret"] = clientSecret;
|
|
46
|
-
AuthBackend.getCaptchaStatus(values).then((res) => {
|
|
47
|
-
if (res.status === "ok") {
|
|
48
|
-
// errors
|
|
49
|
-
if (res.data) {
|
|
50
|
-
setState({
|
|
51
|
-
openCaptchaModal: true,
|
|
52
|
-
values: values,
|
|
53
|
-
});
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
captchaCallback(values);
|
|
58
|
-
});
|
|
59
|
-
setState({ ...state, openCaptchaModal: false });
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const onCancel = () => {
|
|
64
|
-
if (dialogRef.current) {
|
|
65
|
-
// @ts-ignore
|
|
66
|
-
dialogRef.current.close();
|
|
67
|
-
setState({ ...state, openCaptchaModal: false });
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
React.useEffect(() => {
|
|
72
|
-
dialogRef.current = document.getElementById("captcha-modal");
|
|
73
|
-
}, []);
|
|
74
|
-
|
|
75
|
-
return (
|
|
76
|
-
<>
|
|
77
|
-
<CaptchaModal
|
|
78
|
-
visible={state.openCaptchaModal}
|
|
79
|
-
owner="admin"
|
|
80
|
-
name="provider_captcha_default"
|
|
81
|
-
isCurrentProvider={true}
|
|
82
|
-
onCancel={onCancel}
|
|
83
|
-
onOk={onOk}
|
|
84
|
-
/>
|
|
85
|
-
<button
|
|
86
|
-
className="btn btn-primary"
|
|
87
|
-
// @ts-ignore
|
|
88
|
-
onClick={handleClick}
|
|
89
|
-
>
|
|
90
|
-
Captcha
|
|
91
|
-
</button>
|
|
92
|
-
</>
|
|
93
|
-
);
|
|
94
|
-
}
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { CaptchaModal } from "./CaptchaModal";
|
|
3
|
+
import * as AuthBackend from "./util/auth-api";
|
|
4
|
+
|
|
5
|
+
type CaptchaState = {
|
|
6
|
+
values: any;
|
|
7
|
+
openCaptchaModal: boolean;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export default function CaptchaController() {
|
|
11
|
+
const [state, setState] = React.useState<CaptchaState>({
|
|
12
|
+
values: {},
|
|
13
|
+
openCaptchaModal: false,
|
|
14
|
+
});
|
|
15
|
+
const dialogRef = React.useRef<HTMLElement | null>(null);
|
|
16
|
+
|
|
17
|
+
const handleClick = () => {
|
|
18
|
+
if (dialogRef.current) {
|
|
19
|
+
if (!state.openCaptchaModal) {
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
dialogRef.current.showModal();
|
|
22
|
+
} else {
|
|
23
|
+
// @ts-ignore
|
|
24
|
+
dialogRef.current.close();
|
|
25
|
+
}
|
|
26
|
+
setState({ ...state, openCaptchaModal: !state.openCaptchaModal });
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const captchaCallback = (v: any) => {
|
|
31
|
+
console.log(v);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const onOk = (
|
|
35
|
+
captchaType: string,
|
|
36
|
+
captchaToken: string,
|
|
37
|
+
clientSecret: string
|
|
38
|
+
) => {
|
|
39
|
+
if (dialogRef.current) {
|
|
40
|
+
// @ts-ignore
|
|
41
|
+
dialogRef.current.close();
|
|
42
|
+
const values = state.values;
|
|
43
|
+
values["captchaType"] = captchaType;
|
|
44
|
+
values["captchaToken"] = captchaToken;
|
|
45
|
+
values["clientSecret"] = clientSecret;
|
|
46
|
+
AuthBackend.getCaptchaStatus(values).then((res) => {
|
|
47
|
+
if (res.status === "ok") {
|
|
48
|
+
// errors
|
|
49
|
+
if (res.data) {
|
|
50
|
+
setState({
|
|
51
|
+
openCaptchaModal: true,
|
|
52
|
+
values: values,
|
|
53
|
+
});
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
captchaCallback(values);
|
|
58
|
+
});
|
|
59
|
+
setState({ ...state, openCaptchaModal: false });
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const onCancel = () => {
|
|
64
|
+
if (dialogRef.current) {
|
|
65
|
+
// @ts-ignore
|
|
66
|
+
dialogRef.current.close();
|
|
67
|
+
setState({ ...state, openCaptchaModal: false });
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
React.useEffect(() => {
|
|
72
|
+
dialogRef.current = document.getElementById("captcha-modal");
|
|
73
|
+
}, []);
|
|
74
|
+
|
|
75
|
+
return (
|
|
76
|
+
<>
|
|
77
|
+
<CaptchaModal
|
|
78
|
+
visible={state.openCaptchaModal}
|
|
79
|
+
owner="admin"
|
|
80
|
+
name="provider_captcha_default"
|
|
81
|
+
isCurrentProvider={true}
|
|
82
|
+
onCancel={onCancel}
|
|
83
|
+
onOk={onOk}
|
|
84
|
+
/>
|
|
85
|
+
<button
|
|
86
|
+
className="btn btn-primary"
|
|
87
|
+
// @ts-ignore
|
|
88
|
+
onClick={handleClick}
|
|
89
|
+
>
|
|
90
|
+
Captcha
|
|
91
|
+
</button>
|
|
92
|
+
</>
|
|
93
|
+
);
|
|
94
|
+
}
|