message-verify 1.0.1-beta.28 → 1.0.1-beta.3

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/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { ModalConfig, LoginModalConfig } from './utils/type.js';
1
+ import { ModalConfig } from './utils/type.js';
2
2
  export declare const initFingerprint: () => Promise<string>;
3
3
  export declare const createMessageVerifyModal: (modalProps: ModalConfig) => void;
4
- export declare const createReLoginModal: (modalProps: LoginModalConfig) => void;
package/dist/index.js CHANGED
@@ -2,18 +2,13 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import ReactDOM from 'react-dom/client';
3
3
  import VerifyModal from './verify-modal.js';
4
4
  import Fingerprint2 from 'fingerprintjs2';
5
- import ReLoginModal from './relogin-modal.js';
6
5
  let cachedFingerprint = null;
7
6
  export const initFingerprint = async () => {
8
- if (typeof window !== 'undefined') {
9
- const local = localStorage.getItem('__YQG_FINGERPRINT__');
10
- if (local)
11
- return Promise.resolve(local);
12
- }
13
- console.log('cachedFingerprint', cachedFingerprint);
14
7
  if (cachedFingerprint) {
8
+ // 已有缓存,直接返回 Promise
15
9
  return Promise.resolve(cachedFingerprint);
16
10
  }
11
+ // 首次异步获取并缓存
17
12
  return new Promise((resolve) => {
18
13
  Fingerprint2.get(function (components) {
19
14
  console.log('components', components);
@@ -24,9 +19,6 @@ export const initFingerprint = async () => {
24
19
  .join('###');
25
20
  const fingerprint = Fingerprint2.x64hash128(values, 31);
26
21
  cachedFingerprint = fingerprint;
27
- if (typeof window !== 'undefined') {
28
- localStorage.setItem('__YQG_FINGERPRINT__', fingerprint);
29
- }
30
22
  resolve(fingerprint);
31
23
  });
32
24
  });
@@ -45,16 +37,6 @@ export const createMessageVerifyModal = (modalProps) => {
45
37
  }
46
38
  } }));
47
39
  };
48
- // 新增 relogin 弹窗创建方法
49
- export const createReLoginModal = (modalProps) => {
50
- const container = document.createElement('div');
51
- container.id = 'antd-modal-container';
52
- document.body.appendChild(container);
53
- modalRoot = ReactDOM.createRoot(container);
54
- modalRoot.render(_jsx(ReLoginModal, { props: {
55
- ...modalProps,
56
- } }));
57
- };
58
40
  const destroyModal = () => {
59
41
  if (modalRoot) {
60
42
  modalRoot.unmount();
@@ -7,8 +7,5 @@ declare const _default: {
7
7
  sendFailed: string;
8
8
  reSend: string;
9
9
  countDownSecound: string;
10
- accountAlert: string;
11
- alertContent: string;
12
- ok: string;
13
10
  };
14
11
  export default _default;
@@ -6,8 +6,5 @@ export default {
6
6
  sendSuccess: 'Successfully sent',
7
7
  sendFailed: 'Send failed',
8
8
  reSend: 'Resend',
9
- countDownSecound: '{countdown} seconds',
10
- accountAlert: 'Account Security Alert',
11
- alertContent: 'Changes have been detected in your login environment or network information.To ensure account security, please log in again to verify your identity.',
12
- ok: 'OK'
9
+ countDownSecound: '{countdown} seconds'
13
10
  };
@@ -7,8 +7,5 @@ declare const _default: {
7
7
  sendFailed: string;
8
8
  reSend: string;
9
9
  countDownSecound: string;
10
- accountAlert: string;
11
- alertContent: string;
12
- ok: string;
13
10
  };
14
11
  export default _default;
@@ -6,8 +6,5 @@ export default {
6
6
  sendSuccess: 'Berhasil dikirim',
7
7
  sendFailed: 'Gagal mengirim',
8
8
  reSend: 'Kirim Ulang',
9
- countDownSecound: '{countdown} detik',
10
- accountAlert: 'Peringatan Keamanan Akun',
11
- alertContent: 'Terdeteksi perubahan pada lingkungan login atau informasi jaringan Anda.Untuk menjaga keamanan akun, silakan login kembali untuk memverifikasi identitas Anda.',
12
- ok: 'Baiklah'
9
+ countDownSecound: '{countdown} detik'
13
10
  };
@@ -7,8 +7,5 @@ declare const _default: {
7
7
  sendFailed: string;
8
8
  reSend: string;
9
9
  countDownSecound: string;
10
- accountAlert: string;
11
- alertContent: string;
12
- ok: string;
13
10
  };
14
11
  export default _default;
@@ -6,8 +6,5 @@ export default {
6
6
  sendSuccess: '发送成功',
7
7
  sendFailed: '发送失败',
8
8
  reSend: '重新发送',
9
- countDownSecound: '{countdown}秒',
10
- accountAlert: '账号安全提醒',
11
- alertContent: '检测到您的登录环境或网络信息有变动,为保障账户安全,请重新登录验证身份',
12
- ok: '好的'
9
+ countDownSecound: '{countdown}秒'
13
10
  };
package/dist/main.js CHANGED
@@ -1,6 +1,6 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { createRoot } from 'react-dom/client';
3
- import { createMessageVerifyModal, initFingerprint, createReLoginModal } from './index.js'; // 或 './index'
3
+ import { createMessageVerifyModal, initFingerprint } from './index.js'; // 或 './index'
4
4
  import { axios } from '@yqg/resource';
5
5
  const data = "{\"mobile\":\"188****4035\",\"verifyCodeKey\":\"3f025b33-988e-47c0-950d-6beb776d043f\",\"needValid\":true,\"step\":2,\"message\":\"需要填写验证码\"}";
6
6
  const fp = await initFingerprint();
@@ -11,6 +11,12 @@ const config = {
11
11
  "forcedJSONParsing": true,
12
12
  "clarifyTimeoutError": false
13
13
  },
14
+ "transformRequest": [
15
+ null
16
+ ],
17
+ "transformResponse": [
18
+ null
19
+ ],
14
20
  "timeout": 0,
15
21
  "xsrfCookieName": "XSRF-TOKEN",
16
22
  "xsrfHeaderName": "X-XSRF-TOKEN",
@@ -19,7 +25,9 @@ const config = {
19
25
  "headers": {
20
26
  "Accept": "application/json, text/plain, */*",
21
27
  "X-Device-Fingerprint": "185fcce88c629725321adf29daa5e444",
22
- "Content-Type": "application/json"
28
+ "Content-Type": "application/json",
29
+ "sms-code": "121212",
30
+ "sms-code-key": "212190c7-2f5e-4cc1-82ec-a242c2ab5425"
23
31
  },
24
32
  "url": "/classification/admin/level/edit",
25
33
  "method": "post",
@@ -35,18 +43,12 @@ const config = {
35
43
  "data": "{\"id\":1,\"classificationName\":\"个人基本概况信息\",\"classificationLevel\":2}",
36
44
  "baseURL": "http://localhost:62888"
37
45
  };
38
- createRoot(document.getElementById('root')).render(_jsxs(_Fragment, { children: [_jsx("button", { onClick: () => createMessageVerifyModal({
39
- data,
40
- config,
41
- lang: 'en',
42
- http: axios,
43
- apiReject: () => {
44
- },
45
- apiResolve: () => {
46
- }
47
- }), children: "Show verify Modal" }), _jsx("button", { onClick: () => createReLoginModal({
48
- goLogin: () => {
49
- console.log('goLogin');
50
- },
51
- lang: 'zh',
52
- }), children: "Show login Modal" })] }));
46
+ createRoot(document.getElementById('root')).render(_jsx(_Fragment, { children: _jsx("button", { onClick: () => createMessageVerifyModal({
47
+ data,
48
+ config,
49
+ response: {
50
+ config
51
+ },
52
+ lang: 'en',
53
+ http: axios,
54
+ }), children: "Show verify Modal" }) }));
@@ -1,5 +1,5 @@
1
- import { LoginModalConfig } from './utils/type.js';
1
+ import { ModalConfig } from './utils/type.js';
2
2
  declare const ReLoginModal: ({ props }: {
3
- props: LoginModalConfig;
3
+ props: ModalConfig;
4
4
  }) => import("react/jsx-runtime.js").JSX.Element;
5
5
  export default ReLoginModal;
@@ -1,23 +1,22 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
3
  import { Modal, Button } from './compoments/index.js';
4
- import t from './utils/i18n.js';
5
4
  const ReLoginModal = ({ props }) => {
6
- const { goLogin, lang } = props || {};
5
+ console.log('props', props);
7
6
  const [visible, setVisible] = useState(true);
8
7
  const onClose = () => {
9
8
  setVisible(false);
10
- goLogin();
11
9
  };
12
- return (_jsxs(Modal, { visible: visible, onClose: onClose, width: 420, children: [_jsx("div", { style: { fontWeight: 500, fontSize: 20, marginBottom: 24 }, children: t('accountAlert', lang) }), _jsx("div", { style: { color: '#222', fontSize: 16, marginBottom: 40, lineHeight: '24px' }, children: t('alertContent', lang) }), _jsx("div", { style: { display: 'flex', justifyContent: 'center' }, children: _jsx(Button, { style: {
10
+ return (_jsxs(Modal, { visible: visible, onClose: onClose, width: 420, children: [_jsx("div", { style: { fontWeight: 500, fontSize: 20, marginBottom: 24 }, children: "\u8D26\u53F7\u5B89\u5168\u63D0\u9192" }), _jsx("div", { style: { color: '#222', fontSize: 16, marginBottom: 40, lineHeight: '24px' }, children: "\u68C0\u6D4B\u5230\u60A8\u7684\u767B\u5F55\u73AF\u5883\u6216\u7F51\u7EDC\u4FE1\u606F\u6709\u53D8\u52A8\uFF0C\u4E3A\u4FDD\u969C\u8D26\u6237\u5B89\u5168\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55\u9A8C\u8BC1\u8EAB\u4EFD" }), _jsx("div", { style: { display: 'flex', justifyContent: 'center' }, children: _jsx(Button, { style: {
13
11
  background: '#1677ff',
14
12
  color: '#fff',
15
13
  border: 'none',
16
- width: 80,
17
- height: 36,
18
- fontSize: 14,
14
+ width: 160,
15
+ height: 44,
16
+ fontSize: 18,
17
+ fontWeight: 500,
19
18
  borderRadius: 8,
20
19
  boxShadow: '0 2px 8px rgba(22,119,255,0.08)',
21
- }, onClick: onClose, children: t('ok', lang) }) })] }));
20
+ }, onClick: onClose, children: "\u597D\u7684" }) })] }));
22
21
  };
23
22
  export default ReLoginModal;
@@ -7,7 +7,7 @@ export type ModalConfig = {
7
7
  };
8
8
  [key: string]: unknown;
9
9
  };
10
- lang?: 'zh' | 'en' | 'id';
10
+ lang: 'zh' | 'en' | 'id';
11
11
  http: {
12
12
  (params: object): Promise<unknown>;
13
13
  defaults: {
@@ -19,10 +19,5 @@ export type ModalConfig = {
19
19
  };
20
20
  };
21
21
  api?: string;
22
- apiReject: any;
23
- apiResolve: any;
24
- };
25
- export type LoginModalConfig = {
26
- goLogin: () => void;
27
- lang?: 'zh' | 'en' | 'id';
22
+ response: any;
28
23
  };
@@ -11,7 +11,7 @@ const CreateMessageVerifyModal = ({ props }) => {
11
11
  const [captchaImage, setCaptchaImage] = useState('');
12
12
  const [captchCode, setCaptchCode] = useState('');
13
13
  const [captchaKey, setCaptchaKey] = useState('');
14
- const { data, http, lang, api = '/admin/sms/send', config, apiResolve } = props || {};
14
+ const { data, config, http, lang, api = '/admin/sms/send', response } = props || {};
15
15
  const dataObj = JSON.parse(data || '{}');
16
16
  const { mobile, verifyCodeKey } = dataObj || {};
17
17
  const getKey = async () => {
@@ -58,9 +58,7 @@ const CreateMessageVerifyModal = ({ props }) => {
58
58
  return;
59
59
  }
60
60
  message.success(t('sendSuccess', lang));
61
- // 重置倒计时、验证码
62
61
  setCountdown(60);
63
- setOtp('');
64
62
  };
65
63
  return (_jsxs(Modal, { width: 420, visible: visible, onClose: () => {
66
64
  setVisible(false);
@@ -68,43 +66,24 @@ const CreateMessageVerifyModal = ({ props }) => {
68
66
  }, children: [_jsx("div", { style: { fontSize: 14, color: '#666' }, children: t('alreadySend', lang, { phone: mobile }) }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8, marginTop: 12 }, children: [_jsx(Input.OTP, { length: 6, value: otp, onChange: async (val) => {
69
67
  setOtp(val);
70
68
  if (val.length === 6) {
71
- try {
72
- const res = await Promise.race([
73
- new Promise((resolve, reject) => {
74
- setTimeout(() => {
75
- reject(new Error('Timeout'));
76
- }, 1000);
77
- }),
78
- new Promise((resolve, reject) => {
79
- http({
80
- ...config,
81
- headers: {
82
- ...http.defaults.headers.common,
83
- 'sms-code': val,
84
- 'sms-code-key': verifyCodeKey,
85
- 'Content-Type': config.headers['Content-Type'],
86
- }
87
- }).then(res => {
88
- resolve(res);
89
- }).catch(err => {
90
- reject(err);
91
- });
92
- })
93
- ]);
94
- if (res?.data?.status?.code === 0) {
95
- apiResolve(res);
96
- setVisible(false);
69
+ http({
70
+ ...config,
71
+ headers: {
72
+ ...http.defaults.headers.common,
73
+ 'sms-code': val,
74
+ 'sms-code-key': verifyCodeKey,
75
+ 'Content-Type': config.headers['Content-Type'],
97
76
  }
98
- else {
99
- message.error('验证失败');
100
- setOtp('');
101
- }
102
- }
103
- catch (error) {
104
- console.warn('catch', error);
105
- message.error('验证失败');
106
- setOtp('');
107
- }
77
+ });
78
+ console.log(response, 'config');
79
+ // const {data: {status: {code, detail} = {}}} = res;
80
+ // if(code !== 0) {
81
+ // message.error(detail || t('verifyFailed', lang));
82
+ // return;
83
+ // } else {
84
+ // message.success(t('verifySuccess', lang));
85
+ // setVisible(false);
86
+ // }
108
87
  }
109
88
  } }), _jsx(Button, { disabled: countdown > 0 || !captchCode, onClick: handleResend, style: { padding: '8px' }, children: countdown > 0 ? t('countDownSecound', lang, { countdown }) : t('reSend', lang) })] }), countdown > 0 ? null :
110
89
  _jsxs("div", { style: { marginTop: 12, display: 'flex', alignItems: 'center' }, children: [_jsx(Input, { placeholder: t('pleaseEnterPicVerifyCode', lang), onChange: (e) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "message-verify",
3
- "version": "1.0.1-beta.28",
3
+ "version": "1.0.1-beta.3",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "dependencies": {
@@ -29,7 +29,6 @@
29
29
  "build": "tsc -b",
30
30
  "analyze": "vite build",
31
31
  "lint": "eslint .",
32
- "preview": "vite preview",
33
- "release:beta": "pnpm version prerelease --preid=beta && pnpm run build && pnpm publish"
32
+ "preview": "vite preview"
34
33
  }
35
34
  }
package/src/index.tsx CHANGED
@@ -1,20 +1,15 @@
1
1
  import ReactDOM from 'react-dom/client'
2
2
  import VerifyModal from './verify-modal.js'
3
3
  import Fingerprint2 from 'fingerprintjs2';
4
- import ReLoginModal from './relogin-modal.js';
5
- import { ModalConfig, LoginModalConfig } from './utils/type.js';
4
+ import { ModalConfig } from './utils/type.js';
6
5
 
7
6
  let cachedFingerprint: string | null = null;
8
-
9
7
  export const initFingerprint = async (): Promise<string> => {
10
- if (typeof window !== 'undefined') {
11
- const local = localStorage.getItem('__YQG_FINGERPRINT__');
12
- if (local) return Promise.resolve(local);
13
- }
14
- console.log('cachedFingerprint', cachedFingerprint);
15
8
  if (cachedFingerprint) {
9
+ // 已有缓存,直接返回 Promise
16
10
  return Promise.resolve(cachedFingerprint);
17
11
  }
12
+ // 首次异步获取并缓存
18
13
  return new Promise((resolve) => {
19
14
  Fingerprint2.get(function (components) {
20
15
  console.log('components', components);
@@ -25,9 +20,6 @@ export const initFingerprint = async (): Promise<string> => {
25
20
  .join('###');
26
21
  const fingerprint = Fingerprint2.x64hash128(values, 31);
27
22
  cachedFingerprint = fingerprint;
28
- if (typeof window !== 'undefined') {
29
- localStorage.setItem('__YQG_FINGERPRINT__', fingerprint);
30
- }
31
23
  resolve(fingerprint);
32
24
  });
33
25
  });
@@ -54,22 +46,6 @@ export const createMessageVerifyModal = (modalProps: ModalConfig) => {
54
46
  )
55
47
  }
56
48
 
57
- // 新增 relogin 弹窗创建方法
58
- export const createReLoginModal = (modalProps: LoginModalConfig) => {
59
- const container = document.createElement('div')
60
- container.id = 'antd-modal-container'
61
- document.body.appendChild(container)
62
-
63
- modalRoot = ReactDOM.createRoot(container)
64
- modalRoot.render(
65
- <ReLoginModal
66
- props={{
67
- ...modalProps,
68
- }}
69
- />
70
- )
71
- }
72
-
73
49
  const destroyModal = () => {
74
50
  if (modalRoot) {
75
51
  modalRoot.unmount()
package/src/locales/en.ts CHANGED
@@ -6,8 +6,5 @@ export default {
6
6
  sendSuccess: 'Successfully sent',
7
7
  sendFailed: 'Send failed',
8
8
  reSend: 'Resend',
9
- countDownSecound: '{countdown} seconds',
10
- accountAlert: 'Account Security Alert',
11
- alertContent: 'Changes have been detected in your login environment or network information.To ensure account security, please log in again to verify your identity.',
12
- ok: 'OK'
9
+ countDownSecound: '{countdown} seconds'
13
10
  };
package/src/locales/id.ts CHANGED
@@ -6,8 +6,5 @@ export default {
6
6
  sendSuccess: 'Berhasil dikirim',
7
7
  sendFailed: 'Gagal mengirim',
8
8
  reSend: 'Kirim Ulang',
9
- countDownSecound: '{countdown} detik',
10
- accountAlert: 'Peringatan Keamanan Akun',
11
- alertContent: 'Terdeteksi perubahan pada lingkungan login atau informasi jaringan Anda.Untuk menjaga keamanan akun, silakan login kembali untuk memverifikasi identitas Anda.',
12
- ok: 'Baiklah'
9
+ countDownSecound: '{countdown} detik'
13
10
  };
package/src/locales/zh.ts CHANGED
@@ -6,8 +6,5 @@ export default {
6
6
  sendSuccess: '发送成功',
7
7
  sendFailed: '发送失败',
8
8
  reSend: '重新发送',
9
- countDownSecound: '{countdown}秒',
10
- accountAlert: '账号安全提醒',
11
- alertContent: '检测到您的登录环境或网络信息有变动,为保障账户安全,请重新登录验证身份',
12
- ok: '好的'
9
+ countDownSecound: '{countdown}秒'
13
10
  };
package/src/main.tsx CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createRoot } from 'react-dom/client';
2
- import { createMessageVerifyModal, initFingerprint, createReLoginModal } from './index.js'; // 或 './index'
2
+ import { createMessageVerifyModal, initFingerprint } from './index.js'; // 或 './index'
3
3
  import { axios } from '@yqg/resource';
4
4
 
5
5
  const data = "{\"mobile\":\"188****4035\",\"verifyCodeKey\":\"3f025b33-988e-47c0-950d-6beb776d043f\",\"needValid\":true,\"step\":2,\"message\":\"需要填写验证码\"}";
@@ -13,6 +13,12 @@ const config = {
13
13
  "forcedJSONParsing": true,
14
14
  "clarifyTimeoutError": false
15
15
  },
16
+ "transformRequest": [
17
+ null
18
+ ],
19
+ "transformResponse": [
20
+ null
21
+ ],
16
22
  "timeout": 0,
17
23
  "xsrfCookieName": "XSRF-TOKEN",
18
24
  "xsrfHeaderName": "X-XSRF-TOKEN",
@@ -21,7 +27,9 @@ const config = {
21
27
  "headers": {
22
28
  "Accept": "application/json, text/plain, */*",
23
29
  "X-Device-Fingerprint": "185fcce88c629725321adf29daa5e444",
24
- "Content-Type": "application/json"
30
+ "Content-Type": "application/json",
31
+ "sms-code": "121212",
32
+ "sms-code-key": "212190c7-2f5e-4cc1-82ec-a242c2ab5425"
25
33
  },
26
34
  "url": "/classification/admin/level/edit",
27
35
  "method": "post",
@@ -42,21 +50,12 @@ createRoot(document.getElementById('root')!).render(
42
50
  <button onClick={() => createMessageVerifyModal({
43
51
  data,
44
52
  config,
53
+ response: {
54
+ config
55
+ },
45
56
  lang: 'en',
46
57
  http: axios,
47
- apiReject: () => {
48
- },
49
- apiResolve: () => {
50
- }
51
58
  })}>
52
59
  Show verify Modal
53
60
  </button>
54
- <button onClick={() => createReLoginModal({
55
- goLogin: () => {
56
- console.log('goLogin');
57
- },
58
- lang: 'zh',
59
- })}>
60
- Show login Modal
61
- </button>
62
61
  </>);
@@ -1,22 +1,20 @@
1
1
  import { useState } from 'react'
2
2
  import { Modal, Button } from './compoments/index.js'
3
- import { LoginModalConfig } from './utils/type.js';
4
- import t from './utils/i18n.js'
3
+ import { ModalConfig } from './utils/type.js';
5
4
 
6
- const ReLoginModal = ({ props }: { props: LoginModalConfig }) => {
7
- const { goLogin, lang } = props || {};
5
+ const ReLoginModal = ({ props }: { props: ModalConfig }) => {
6
+ console.log('props', props);
8
7
  const [visible, setVisible] = useState(true);
9
8
  const onClose = () => {
10
9
  setVisible(false);
11
- goLogin();
12
10
  };
13
11
  return (
14
12
  <Modal visible={visible} onClose={onClose} width={420}>
15
13
  <div style={{ fontWeight: 500, fontSize: 20, marginBottom: 24 }}>
16
- {t('accountAlert', lang)}
14
+ 账号安全提醒
17
15
  </div>
18
16
  <div style={{ color: '#222', fontSize: 16, marginBottom: 40, lineHeight: '24px' }}>
19
- {t('alertContent', lang)}
17
+ 检测到您的登录环境或网络信息有变动,为保障账户安全,请重新登录验证身份
20
18
  </div>
21
19
  <div style={{ display: 'flex', justifyContent: 'center' }}>
22
20
  <Button
@@ -24,15 +22,16 @@ const ReLoginModal = ({ props }: { props: LoginModalConfig }) => {
24
22
  background: '#1677ff',
25
23
  color: '#fff',
26
24
  border: 'none',
27
- width: 80,
28
- height: 36,
29
- fontSize: 14,
25
+ width: 160,
26
+ height: 44,
27
+ fontSize: 18,
28
+ fontWeight: 500,
30
29
  borderRadius: 8,
31
30
  boxShadow: '0 2px 8px rgba(22,119,255,0.08)',
32
31
  }}
33
32
  onClick={onClose}
34
33
  >
35
- {t('ok', lang)}
34
+ 好的
36
35
  </Button>
37
36
  </div>
38
37
  </Modal>
package/src/utils/type.ts CHANGED
@@ -8,7 +8,7 @@ export type ModalConfig = {
8
8
  };
9
9
  [key: string]: unknown;
10
10
  };
11
- lang?: 'zh' | 'en' | 'id';
11
+ lang: 'zh' | 'en' | 'id';
12
12
  http: {
13
13
  (params: object): Promise<unknown>;
14
14
  defaults: {
@@ -20,11 +20,5 @@ export type ModalConfig = {
20
20
  }
21
21
  };
22
22
  api?: string;
23
- apiReject: any;
24
- apiResolve: any;
25
- }
26
-
27
- export type LoginModalConfig = {
28
- goLogin: () => void;
29
- lang?: 'zh' | 'en' | 'id';
23
+ response: any;
30
24
  }
@@ -12,7 +12,7 @@ const CreateMessageVerifyModal = ({ props }: { props: ModalConfig }) => {
12
12
  const [captchaImage, setCaptchaImage] = useState<string>('');
13
13
  const [captchCode, setCaptchCode] = useState<string>('');
14
14
  const [captchaKey, setCaptchaKey] = useState<string>('');
15
- const { data, http, lang, api = '/admin/sms/send', config, apiResolve } = props || {};
15
+ const { data, config, http, lang, api='/admin/sms/send', response } = props || {};
16
16
  const dataObj = JSON.parse(data || '{}');
17
17
  const { mobile, verifyCodeKey } = dataObj || {};
18
18
 
@@ -25,11 +25,10 @@ const CreateMessageVerifyModal = ({ props }: { props: ModalConfig }) => {
25
25
  const image = Api.getCaptchaImgUrl(key) as unknown;
26
26
  setCaptchaImage(image as string);
27
27
  }
28
- } catch (err) {
29
- const msg =
30
- typeof err === 'object' && err !== null && 'message' in err
31
- ? (err as { message: string }).message
32
- : String(err);
28
+ } catch (err) {const msg =
29
+ typeof err === 'object' && err !== null && 'message' in err
30
+ ? (err as {message: string}).message
31
+ : String(err);
33
32
  message.error(msg as React.ReactNode);
34
33
  }
35
34
  }
@@ -61,9 +60,7 @@ const CreateMessageVerifyModal = ({ props }: { props: ModalConfig }) => {
61
60
  return;
62
61
  }
63
62
  message.success(t('sendSuccess', lang));
64
- // 重置倒计时、验证码
65
63
  setCountdown(60);
66
- setOtp('');
67
64
  }
68
65
 
69
66
  return (
@@ -84,41 +81,24 @@ const CreateMessageVerifyModal = ({ props }: { props: ModalConfig }) => {
84
81
  onChange={async (val) => {
85
82
  setOtp(val);
86
83
  if (val.length === 6) {
87
- try {
88
- const res = await Promise.race([
89
- new Promise((resolve, reject) => {
90
- setTimeout(() => {
91
- reject(new Error('Timeout'));
92
- }, 1000);
93
- }),
94
- new Promise((resolve, reject) => {
95
- http({
96
- ...config,
97
- headers: {
98
- ...http.defaults.headers.common,
99
- 'sms-code': val,
100
- 'sms-code-key': verifyCodeKey,
101
- 'Content-Type': config.headers['Content-Type'],
102
- }
103
- }).then(res => {
104
- resolve(res);
105
- }).catch(err => {
106
- reject(err);
107
- })
108
- })
109
- ]) as any;
110
- if (res?.data?.status?.code === 0) {
111
- apiResolve(res);
112
- setVisible(false);
113
- } else {
114
- message.error('验证失败');
115
- setOtp('');
84
+ http({
85
+ ...config,
86
+ headers: {
87
+ ...http.defaults.headers.common,
88
+ 'sms-code': val,
89
+ 'sms-code-key': verifyCodeKey,
90
+ 'Content-Type': config.headers['Content-Type'],
116
91
  }
117
- } catch (error) {
118
- console.warn('catch', error);
119
- message.error('验证失败');
120
- setOtp('');
121
- }
92
+ }) as any;
93
+ console.log(response, 'config');
94
+ // const {data: {status: {code, detail} = {}}} = res;
95
+ // if(code !== 0) {
96
+ // message.error(detail || t('verifyFailed', lang));
97
+ // return;
98
+ // } else {
99
+ // message.success(t('verifySuccess', lang));
100
+ // setVisible(false);
101
+ // }
122
102
  }
123
103
  }} />
124
104
  <Button