@authing/react-ui-components 3.0.2-beta.5 → 3.1.1-rc.1

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.
Files changed (249) hide show
  1. package/.vscode/settings.json +1 -1
  2. package/LICENSE +21 -0
  3. package/config/env.js +26 -24
  4. package/config/paths.js +3 -3
  5. package/config/webpack.config.js +29 -7
  6. package/lib/index.d.ts +211 -1252
  7. package/lib/index.min.css +1 -2
  8. package/lib/index.min.js +1 -1
  9. package/lib/index.min.js.LICENSE.txt +0 -32
  10. package/package.json +14 -20
  11. package/scripts/build.js +83 -79
  12. package/scripts/start.js +73 -69
  13. package/scripts/test.js +23 -19
  14. package/{components → src/common}/AuthingDropdown/index.tsx +1 -1
  15. package/{components → src/common}/AuthingDropdown/style.less +0 -0
  16. package/{components → src/common}/AuthingTabs/index.tsx +1 -1
  17. package/{components → src/common}/AuthingTabs/style.less +0 -0
  18. package/{components → src/common}/CopyAbleText/index.tsx +1 -1
  19. package/{components → src/common}/CopyAbleText/style.less +0 -0
  20. package/{components → src/common}/VerifyCodeInput/index.tsx +0 -0
  21. package/{components → src/common}/VerifyCodeInput/style.less +0 -0
  22. package/{components → src/components}/AuthingGuard/AppMFALayout/index.tsx +2 -2
  23. package/{components → src/components}/AuthingGuard/AppMFALayout/style.less +0 -0
  24. package/{components → src/components}/AuthingGuard/CompleteUserInfoLayout/index.tsx +1 -1
  25. package/{components → src/components}/AuthingGuard/CompleteUserInfoLayout/style.less +0 -0
  26. package/{components → src/components}/AuthingGuard/Forms/ADLoginForm/index.tsx +2 -2
  27. package/{components → src/components}/AuthingGuard/Forms/Agreements/index.tsx +1 -1
  28. package/{components → src/components}/AuthingGuard/Forms/Agreements/style.less +0 -0
  29. package/{components → src/components}/AuthingGuard/Forms/CompleteUserInfoForm/index.tsx +3 -3
  30. package/{components → src/components}/AuthingGuard/Forms/EmailMfaVerifyForm/CheckEmailForm.tsx +4 -2
  31. package/{components → src/components}/AuthingGuard/Forms/EmailMfaVerifyForm/VerifyCodeForm.tsx +2 -2
  32. package/{components → src/components}/AuthingGuard/Forms/EmailMfaVerifyForm/index.tsx +1 -1
  33. package/{components → src/components}/AuthingGuard/Forms/EmailMfaVerifyForm/style.less +0 -0
  34. package/{components → src/components}/AuthingGuard/Forms/EmailRegisterForm/index.tsx +2 -2
  35. package/{components → src/components}/AuthingGuard/Forms/EmailRegisterForm/style.less +0 -0
  36. package/{components → src/components}/AuthingGuard/Forms/LdapLoginForm/index.tsx +4 -9
  37. package/{components → src/components}/AuthingGuard/Forms/LdapLoginForm/style.less +0 -0
  38. package/{components → src/components}/AuthingGuard/Forms/LoginFormFooter/index.tsx +1 -1
  39. package/{components → src/components}/AuthingGuard/Forms/LoginFormFooter/style.less +0 -0
  40. package/{components → src/components}/AuthingGuard/Forms/MfaResetCodeForm/Step1.tsx +2 -2
  41. package/{components → src/components}/AuthingGuard/Forms/MfaResetCodeForm/Step2.tsx +1 -1
  42. package/{components → src/components}/AuthingGuard/Forms/MfaResetCodeForm/index.tsx +1 -1
  43. package/{components → src/components}/AuthingGuard/Forms/MfaResetCodeForm/style.less +0 -0
  44. package/{components → src/components}/AuthingGuard/Forms/MfaVerifyForm/index.tsx +2 -2
  45. package/{components → src/components}/AuthingGuard/Forms/MfaVerifyForm/style.less +0 -0
  46. package/{components → src/components}/AuthingGuard/Forms/PasswordLoginForm/index.tsx +3 -3
  47. package/{components → src/components}/AuthingGuard/Forms/PhoneCodeLoginForm/index.tsx +2 -2
  48. package/{components → src/components}/AuthingGuard/Forms/PhoneRegisterForm/index.tsx +2 -2
  49. package/{components → src/components}/AuthingGuard/Forms/QrCodeLoginForm/index.tsx +4 -2
  50. package/{components → src/components}/AuthingGuard/Forms/QrCodeLoginForm/style.less +0 -0
  51. package/{components → src/components}/AuthingGuard/Forms/RegisterFormFooter/index.tsx +1 -1
  52. package/{components → src/components}/AuthingGuard/Forms/RegisterFormFooter/style.less +0 -0
  53. package/{components → src/components}/AuthingGuard/Forms/ResetPwdForm/Footer.tsx +1 -1
  54. package/{components → src/components}/AuthingGuard/Forms/ResetPwdForm/Step1.tsx +2 -2
  55. package/{components → src/components}/AuthingGuard/Forms/ResetPwdForm/Step2.tsx +2 -2
  56. package/{components → src/components}/AuthingGuard/Forms/ResetPwdForm/Step3.tsx +2 -2
  57. package/{components → src/components}/AuthingGuard/Forms/ResetPwdForm/Step4.tsx +1 -1
  58. package/{components → src/components}/AuthingGuard/Forms/ResetPwdForm/index.tsx +1 -1
  59. package/{components → src/components}/AuthingGuard/Forms/ResetPwdForm/style.less +0 -0
  60. package/{components → src/components}/AuthingGuard/Forms/SendPhoneCode/SendCodeBtn.tsx +0 -0
  61. package/{components → src/components}/AuthingGuard/Forms/SendPhoneCode/index.tsx +2 -2
  62. package/{components → src/components}/AuthingGuard/Forms/SendPhoneCode/style.less +0 -0
  63. package/{components → src/components}/AuthingGuard/Forms/SmsMfaVerifyForm/CheckPhoneForm.tsx +2 -2
  64. package/{components → src/components}/AuthingGuard/Forms/SmsMfaVerifyForm/VerifyCodeForm.tsx +2 -2
  65. package/{components → src/components}/AuthingGuard/Forms/SmsMfaVerifyForm/index.tsx +1 -1
  66. package/{components → src/components}/AuthingGuard/Forms/SmsMfaVerifyForm/style.less +0 -0
  67. package/{components → src/components}/AuthingGuard/Forms/SocialAndIdpLogin/index.tsx +7 -7
  68. package/{components → src/components}/AuthingGuard/Forms/SocialAndIdpLogin/style.less +0 -0
  69. package/{components → src/components}/AuthingGuard/Forms/UploadImage/index.tsx +1 -1
  70. package/{components → src/components}/AuthingGuard/Forms/index.ts +0 -0
  71. package/{components → src/components}/AuthingGuard/GuardLayout/index.tsx +17 -3
  72. package/{components → src/components}/AuthingGuard/GuardLayout/style.less +0 -0
  73. package/{components → src/components}/AuthingGuard/Header/index.tsx +6 -3
  74. package/{components → src/components}/AuthingGuard/Header/style.less +23 -11
  75. package/{components → src/components}/AuthingGuard/IconFont/iconfont.js +0 -0
  76. package/{components → src/components}/AuthingGuard/IconFont/index.tsx +1 -1
  77. package/{components → src/components}/AuthingGuard/IconFont/style.less +0 -0
  78. package/{components → src/components}/AuthingGuard/IconFont/svg.js +0 -0
  79. package/{components → src/components}/AuthingGuard/LoginLayout/index.tsx +69 -25
  80. package/{components → src/components}/AuthingGuard/LoginLayout/style.less +0 -0
  81. package/{components → src/components}/AuthingGuard/MfaLayout/Steps.ts +0 -0
  82. package/{components → src/components}/AuthingGuard/MfaLayout/index.tsx +1 -1
  83. package/{components → src/components}/AuthingGuard/MfaLayout/style.less +0 -0
  84. package/{components → src/components}/AuthingGuard/RegisterLayout/index.tsx +2 -2
  85. package/{components → src/components}/AuthingGuard/RegisterLayout/style.less +0 -0
  86. package/{components → src/components}/AuthingGuard/ResetPwdLayout/index.tsx +1 -1
  87. package/{components → src/components}/AuthingGuard/ToggleLang/index.tsx +2 -2
  88. package/{components → src/components}/AuthingGuard/api/appConfig.ts +22 -14
  89. package/{components/_utils → src/components/AuthingGuard/api}/http.ts +33 -30
  90. package/{components → src/components}/AuthingGuard/api/index.ts +0 -0
  91. package/{components → src/components}/AuthingGuard/api/sso.ts +1 -1
  92. package/{components → src/components}/AuthingGuard/api/userPoolConfig.ts +3 -2
  93. package/{components → src/components}/AuthingGuard/constants.ts +2 -2
  94. package/{components → src/components}/AuthingGuard/hooks/index.tsx +0 -0
  95. package/{components → src/components}/AuthingGuard/hooks/useScreenSize.tsx +0 -0
  96. package/{components → src/components}/AuthingGuard/index.tsx +11 -3
  97. package/{components/_utils → src/components/AuthingGuard}/locales/en/common.json +26 -70
  98. package/{components/_utils → src/components/AuthingGuard}/locales/en/index.ts +0 -0
  99. package/{components/_utils → src/components/AuthingGuard}/locales/en/login.json +19 -21
  100. package/{components/_utils → src/components/AuthingGuard}/locales/en/map.json +0 -0
  101. package/{components/_utils → src/components/AuthingGuard}/locales/en/user.json +3 -4
  102. package/{components/_utils → src/components/AuthingGuard}/locales/index.ts +2 -2
  103. package/{components/_utils → src/components/AuthingGuard}/locales/zh/common.json +9 -53
  104. package/{components/_utils → src/components/AuthingGuard}/locales/zh/index.ts +0 -0
  105. package/{components/_utils → src/components/AuthingGuard}/locales/zh/login.json +4 -6
  106. package/{components/_utils → src/components/AuthingGuard}/locales/zh/map.json +0 -0
  107. package/{components/_utils → src/components/AuthingGuard}/locales/zh/user.json +1 -3
  108. package/{components → src/components}/AuthingGuard/style.less +5 -0
  109. package/{components → src/components}/AuthingGuard/types/Forms.ts +2 -1
  110. package/{components → src/components}/AuthingGuard/types/GuardConfig.ts +5 -1
  111. package/{components → src/components}/AuthingGuard/types/GuardState.ts +1 -1
  112. package/{components → src/components}/AuthingGuard/types/Locales.ts +0 -0
  113. package/{components → src/components}/AuthingGuard/types/index.ts +0 -0
  114. package/src/components/index.ts +7 -0
  115. package/{components → src}/context/base.tsx +0 -0
  116. package/{components → src}/context/global/context.tsx +0 -0
  117. package/{components → src}/context/global/reducer.tsx +2 -2
  118. package/src/index.tsx +142 -0
  119. package/{logo.svg → src/logo.svg} +0 -0
  120. package/{react-app-env.d.ts → src/react-app-env.d.ts} +0 -0
  121. package/{reportWebVitals.ts → src/reportWebVitals.ts} +0 -0
  122. package/{setupTests.ts → src/setupTests.ts} +0 -0
  123. package/{components/_utils → src/utils}/clipboard.ts +1 -1
  124. package/{components/_utils → src/utils}/index.ts +3 -149
  125. package/{components/_utils → src/utils}/popupCenter.ts +0 -0
  126. package/tsconfig.json +2 -8
  127. package/build/asset-manifest.json +0 -26
  128. package/build/favicon.ico +0 -0
  129. package/build/index.html +0 -1
  130. package/build/logo192.png +0 -0
  131. package/build/logo512.png +0 -0
  132. package/build/manifest.json +0 -25
  133. package/build/robots.txt +0 -3
  134. package/build/static/css/2.51c07e65.chunk.css +0 -3
  135. package/build/static/css/2.51c07e65.chunk.css.map +0 -1
  136. package/build/static/css/main.779f221a.chunk.css +0 -2
  137. package/build/static/css/main.779f221a.chunk.css.map +0 -1
  138. package/build/static/js/2.bbae9fdb.chunk.js +0 -3
  139. package/build/static/js/2.bbae9fdb.chunk.js.LICENSE.txt +0 -102
  140. package/build/static/js/2.bbae9fdb.chunk.js.map +0 -1
  141. package/build/static/js/3.fd17f196.chunk.js +0 -2
  142. package/build/static/js/3.fd17f196.chunk.js.map +0 -1
  143. package/build/static/js/main.5f341531.chunk.js +0 -2
  144. package/build/static/js/main.5f341531.chunk.js.map +0 -1
  145. package/build/static/js/runtime-main.ef138021.js +0 -2
  146. package/build/static/js/runtime-main.ef138021.js.map +0 -1
  147. package/build/static/media/loading.4a67a5f3.svg +0 -29
  148. package/components/BindTotp/core/bindSuccess.tsx +0 -72
  149. package/components/BindTotp/core/securityCode.tsx +0 -108
  150. package/components/BindTotp/index.tsx +0 -134
  151. package/components/BindTotp/interface.ts +0 -30
  152. package/components/BindTotp/styles.less +0 -57
  153. package/components/ChangeLanguage/index.tsx +0 -35
  154. package/components/ChangePassword/core/firstLoginReset.tsx +0 -111
  155. package/components/ChangePassword/core/rotateReset.tsx +0 -114
  156. package/components/ChangePassword/index.tsx +0 -72
  157. package/components/CompleteInfo/core/completeInfo.tsx +0 -155
  158. package/components/CompleteInfo/index.tsx +0 -45
  159. package/components/CompleteInfo/interface.ts +0 -40
  160. package/components/CompleteInfo/styles.less +0 -7
  161. package/components/DownloadAuthenticator/index.tsx +0 -97
  162. package/components/DownloadAuthenticator/interface.ts +0 -22
  163. package/components/DownloadAuthenticator/styles.less +0 -52
  164. package/components/Error/index.tsx +0 -21
  165. package/components/Error/interface.ts +0 -9
  166. package/components/Error/styles.less +0 -12
  167. package/components/ForgetPassword/core/resetPassword.tsx +0 -162
  168. package/components/ForgetPassword/index.tsx +0 -78
  169. package/components/ForgetPassword/interface.ts +0 -32
  170. package/components/Guard/Guard.tsx +0 -295
  171. package/components/Guard/authClient.ts +0 -44
  172. package/components/Guard/config.ts +0 -19
  173. package/components/Guard/event.ts +0 -52
  174. package/components/Guard/index.tsx +0 -4
  175. package/components/Guard/module.ts +0 -20
  176. package/components/Guard/stateMachine.ts +0 -152
  177. package/components/Guard/styles.less +0 -461
  178. package/components/IconFont/iconfont.js +0 -74
  179. package/components/IconFont/index.tsx +0 -16
  180. package/components/IconFont/style.less +0 -6
  181. package/components/IconFont/svg.js +0 -2
  182. package/components/ImagePro/index.tsx +0 -53
  183. package/components/ImagePro/styles.less +0 -40
  184. package/components/InputNumber/index.tsx +0 -33
  185. package/components/Login/codemap.ts +0 -49
  186. package/components/Login/core/withAD.tsx +0 -9
  187. package/components/Login/core/withAppQrcode.tsx +0 -49
  188. package/components/Login/core/withLDAP.tsx +0 -146
  189. package/components/Login/core/withPassword/FormItemAccount.tsx +0 -42
  190. package/components/Login/core/withPassword/GraphicVerifyCode.tsx +0 -30
  191. package/components/Login/core/withPassword/InputAccount.tsx +0 -64
  192. package/components/Login/core/withPassword/index.tsx +0 -173
  193. package/components/Login/core/withPhonecode.tsx +0 -122
  194. package/components/Login/core/withWechatMiniQrcode.tsx +0 -60
  195. package/components/Login/core/withWechatmpQrcode.tsx +0 -53
  196. package/components/Login/index.tsx +0 -374
  197. package/components/Login/props.ts +0 -74
  198. package/components/Login/socialLogin/index.tsx +0 -407
  199. package/components/Login/socialLogin/style.less +0 -69
  200. package/components/Login/styles.less +0 -53
  201. package/components/MFA/VerifyCodeInput/VerifyCodeFormItem.tsx +0 -41
  202. package/components/MFA/VerifyCodeInput/index.tsx +0 -145
  203. package/components/MFA/VerifyCodeInput/style.less +0 -35
  204. package/components/MFA/codemap.ts +0 -24
  205. package/components/MFA/core/email.tsx +0 -203
  206. package/components/MFA/core/face.tsx +0 -297
  207. package/components/MFA/core/face_deps.tsx +0 -37
  208. package/components/MFA/core/sms.tsx +0 -203
  209. package/components/MFA/core/totp.tsx +0 -122
  210. package/components/MFA/index.tsx +0 -143
  211. package/components/MFA/mfaMethods/index.tsx +0 -88
  212. package/components/MFA/mfaMethods/style.less +0 -39
  213. package/components/MFA/props.ts +0 -51
  214. package/components/MFA/styles.less +0 -100
  215. package/components/NeedHelpView/core/describeQuestions.tsx +0 -245
  216. package/components/NeedHelpView/index.tsx +0 -47
  217. package/components/RecoveryCode/core/useCode.tsx +0 -71
  218. package/components/RecoveryCode/index.tsx +0 -27
  219. package/components/RecoveryCode/interface.ts +0 -31
  220. package/components/RecoveryCode/style.less +0 -13
  221. package/components/Register/codemap.ts +0 -12
  222. package/components/Register/components/Agreements/index.tsx +0 -81
  223. package/components/Register/components/Agreements/style.less +0 -44
  224. package/components/Register/core/WithEmail.tsx +0 -242
  225. package/components/Register/core/WithPhone.tsx +0 -184
  226. package/components/Register/index.tsx +0 -139
  227. package/components/Register/props.ts +0 -50
  228. package/components/SendCode/SendCodeBtn.tsx +0 -96
  229. package/components/SendCode/index.tsx +0 -94
  230. package/components/SendCode/style.less +0 -31
  231. package/components/ShieldSpin/index.tsx +0 -27
  232. package/components/ShieldSpin/loading.svg +0 -29
  233. package/components/SubmitButton/index.tsx +0 -50
  234. package/components/SubmitSuccess/index.tsx +0 -66
  235. package/components/SubmitSuccess/interface.ts +0 -17
  236. package/components/Type/index.ts +0 -52
  237. package/components/ValidatorRules/ValidatorFormItem.tsx +0 -139
  238. package/components/ValidatorRules/index.ts +0 -20
  239. package/components/_utils/GuardErrorCode.ts +0 -9
  240. package/components/_utils/config.ts +0 -116
  241. package/components/_utils/guradHttp.ts +0 -101
  242. package/components/_utils/hooks/index.ts +0 -64
  243. package/components/assets/images/error.png +0 -0
  244. package/components/context/module/context.tsx +0 -23
  245. package/components/index.ts +0 -12
  246. package/examples.tsx +0 -87
  247. package/index.js +0 -1
  248. package/lib/static/media/loading.4a67a5f3.svg +0 -29
  249. package/scripts/publish.js +0 -57
@@ -1,100 +0,0 @@
1
- .authing-g2-mfa-title {
2
- color: #282d3c;
3
- font-size: 18px;
4
- font-weight: 600;
5
- text-align: center;
6
- margin-bottom: 8px;
7
- margin-top: 40px;
8
- }
9
-
10
- .authing-g2-mfa-tips {
11
- font-size: 14px;
12
- color: #545968;
13
- text-align: center;
14
- margin-bottom: 24px;
15
- }
16
-
17
- .g2-mfa-content {
18
- margin: 0 38px;
19
-
20
- .g2-mfa-submit-button {
21
- margin-top: 32px !important;
22
- }
23
-
24
- .bind-totp {
25
- margin-top: 80px !important;
26
- }
27
-
28
- .authing-ant-form-item-control-input-content {
29
- display: flex;
30
- justify-content: center;
31
- }
32
-
33
- .g2-mfa-totp-verify-input {
34
- text-align: center;
35
- .authing-code-input-item {
36
- &:not(:first-child) {
37
- margin-left: 14px;
38
- }
39
- }
40
- }
41
-
42
- .authing-ant-form-horizontal {
43
- display: flex;
44
- justify-content: center;
45
- flex-direction: column;
46
- }
47
-
48
- .g2-mfa-face-image {
49
- margin: 0px auto;
50
- display: block;
51
- margin-bottom: 24px;
52
- }
53
- .g2-mfa-face-identifying {
54
- display: flex;
55
- justify-content: center;
56
- align-items: center;
57
-
58
- .video-round {
59
- width: 210px;
60
- height: 210px;
61
- border-radius: 50%;
62
- vertical-align: middle;
63
- }
64
- .mesh {
65
- z-index: 100;
66
- cursor: pointer;
67
- user-select: none;
68
- color: white;
69
- position: absolute;
70
- display: flex;
71
- justify-content: center;
72
- align-items: center;
73
- cursor: pointer;
74
- background: rgba(0, 0, 0, 0.4);
75
- }
76
- .ring {
77
- width: 240px;
78
- height: 240px;
79
- position: absolute;
80
- transform: rotate(270deg);
81
- }
82
- }
83
- }
84
- .svg-circle-bg {
85
- stroke-width: 4;
86
- // stroke: rgba(255, 161, 39, 1);
87
- }
88
- .svg-circle-running {
89
- stroke-width: 4;
90
- transition: all 0.2s linear;
91
- stroke: #396aff;
92
- stroke-linecap: round;
93
- }
94
-
95
- .g2-mfa-verifyCode-formItem {
96
- .authing-ant-form-item-explain-error {
97
- display: flex;
98
- justify-content: center;
99
- }
100
- }
@@ -1,245 +0,0 @@
1
- import React, { useRef, useState } from 'react'
2
- import { useTranslation } from 'react-i18next'
3
- import { Form, Input, Modal, Select, Upload } from 'antd'
4
- import SubmitButton from '../../SubmitButton'
5
- import { UserOutlined, PlusOutlined } from '@ant-design/icons'
6
- import { UploadFile } from 'antd/lib/upload/interface'
7
- import { useGuardHttp } from '../../_utils/guradHttp'
8
- import { fieldRequiredRule, validate } from '../../_utils'
9
-
10
- interface describeQuestionsProps {
11
- appId: string
12
- host: string
13
- onSuccess: any
14
- }
15
-
16
- export const DescribeQuestions = (props: describeQuestionsProps) => {
17
- const { t } = useTranslation()
18
-
19
- // 不清楚为什么放出去之后,i18n 的结果全是 undefeated
20
- const typeProblemMap: any = {
21
- 0: [
22
- t('common.problem.noVerifyTip.tip'),
23
- t('common.problem.noVerifyTip.type1'),
24
- t('common.problem.noVerifyTip.type2'),
25
- t('common.problem.noVerifyTip.type3'),
26
- ],
27
- 1: [
28
- t('common.problem.noLoginTip.tip'),
29
- t('common.problem.noLoginTip.type1'),
30
- t('common.problem.noLoginTip.type2'),
31
- ],
32
- 2: [
33
- t('common.problem.noRegisterTip.tip'),
34
- t('common.problem.noRegisterTip.type1'),
35
- t('common.problem.noRegisterTip.type2'),
36
- t('common.problem.noRegisterTip.type3'),
37
- ],
38
- 3: [
39
- t('common.problem.noAccountTip.tip'),
40
- t('common.problem.noAccountTip.type1'),
41
- t('common.problem.noAccountTip.type2'),
42
- ],
43
- 4: [
44
- t('common.problem.noResetPassTip.tip'),
45
- t('common.problem.noResetPassTip.type1'),
46
- t('common.problem.noResetPassTip.type2'),
47
- ],
48
- 5: [t('common.problem.otherTip.tip'), t('common.problem.otherTip.type1')],
49
- 6: [t('common.problem.otherTip.tip'), t('common.problem.otherTip.type1')],
50
- }
51
-
52
- const typeOperations = [
53
- {
54
- label: t('common.problem.noVerify'),
55
- value: 0,
56
- },
57
- {
58
- label: t('common.problem.noLogin'),
59
- value: 1,
60
- },
61
- {
62
- label: t('common.problem.noRegister'),
63
- value: 2,
64
- },
65
- {
66
- label: t('common.problem.noAccount'),
67
- value: 3,
68
- },
69
- {
70
- label: t('common.problem.noResetPass'),
71
- value: 4,
72
- },
73
- {
74
- label: t('common.problem.locked'),
75
- value: 5,
76
- },
77
- {
78
- label: t('common.problem.other'),
79
- value: 6,
80
- },
81
- ]
82
-
83
- const [form] = Form.useForm()
84
- const { post } = useGuardHttp()
85
- const [uploadUrl, setUploadUrl] = useState([])
86
- const [previewVisible, setPreviewVisible] = useState(false)
87
- const [previewImage, setPreviewImage] = useState()
88
- const [fileList, setFileList] = useState<UploadFile<any>[]>([])
89
- const [typeProblem, setTypeProblem] = useState(0)
90
- const submitButtonRef = useRef<any>(null)
91
- const textMap = typeProblemMap[typeProblem]
92
-
93
- const onFinish = (values: any) => {
94
- submitButtonRef?.current?.onSpin(true)
95
- const params = {
96
- type: typeProblem,
97
- description: values.description,
98
- phone: values.identify,
99
- images: uploadUrl,
100
- appId: props.appId,
101
- }
102
- let context = post('/api/v2/feedback', params)
103
- context.then((res) => {
104
- if (res.code === 200) {
105
- submitButtonRef?.current?.onSpin(false)
106
- props.onSuccess()
107
- }
108
- })
109
- }
110
-
111
- const handlePreview = async (file: any) => {
112
- // setPreviewImage(file.url);
113
- // file 没有 url 属性,需要改成下面的用法
114
- let url = file.response.data.url
115
- setPreviewImage(url)
116
- setPreviewVisible(true)
117
- }
118
-
119
- return (
120
- <div className="authing-g2-describe-questions">
121
- <Form
122
- name="resetPassword"
123
- layout="vertical"
124
- form={form}
125
- onFinish={onFinish}
126
- onFinishFailed={() => {
127
- submitButtonRef?.current?.onError()
128
- }}
129
- autoComplete="off"
130
- >
131
- <Form.Item
132
- className="authing-g2-input-form"
133
- name="identify"
134
- label={t('common.problem.form.phone')}
135
- validateFirst={true}
136
- rules={[
137
- ...fieldRequiredRule(t('common.problem.form.phone')),
138
- {
139
- validator: async (_, value) => {
140
- if (!value) {
141
- return
142
- }
143
- if (validate('email', value) || validate('phone', value)) {
144
- return
145
- } else {
146
- throw new Error(t('login.inputCorrectPhoneOrEmail'))
147
- }
148
- },
149
- },
150
- ]}
151
- >
152
- <Input
153
- className="authing-g2-input"
154
- autoComplete="tel"
155
- size="large"
156
- placeholder={t('login.inputPhoneOrEmail')}
157
- prefix={<UserOutlined style={{ color: '#878A95' }} />}
158
- />
159
- </Form.Item>
160
- <Form.Item
161
- className="authing-g2-input-form"
162
- label={t('common.problem.form.question')}
163
- name="questionPicker"
164
- initialValue={typeProblem}
165
- >
166
- <Select
167
- className="authing-g2-select"
168
- onChange={(value: number) => {
169
- setTypeProblem(value)
170
- }}
171
- >
172
- {typeOperations?.map(({ value, label }) => (
173
- <Select.Option key={value} value={value}>
174
- {label}
175
- </Select.Option>
176
- ))}
177
- </Select>
178
- </Form.Item>
179
- <div className="authing-g2-input-form">
180
- {textMap?.map((item: any, index: any) => (
181
- <div key={index}>{item}</div>
182
- ))}
183
- </div>
184
-
185
- <Form.Item
186
- className="authing-g2-input-form"
187
- name="description"
188
- label={t('common.problem.form.questionDescript')}
189
- >
190
- <Input.TextArea
191
- className="authing-g2-input"
192
- maxLength={200}
193
- showCount
194
- style={{
195
- marginBottom: 10,
196
- }}
197
- />
198
- </Form.Item>
199
-
200
- <div className="authing-g2-input-form">
201
- <div className="label-title">
202
- {t('common.problem.form.questionClip')}
203
- </div>
204
- <div className="g2-questions">
205
- <Upload
206
- action={`${props.host}/api/v2/upload?folder=photos`}
207
- listType="picture-card"
208
- accept="image/png, image/jpeg, image/jpg"
209
- className="authing-g2-questions-upload-self"
210
- fileList={fileList}
211
- onPreview={handlePreview}
212
- onChange={(e) => {
213
- setFileList(e.fileList)
214
- const imgUrl: any = e.fileList.map((item: any) => {
215
- const response = item.response
216
- return response?.data.url
217
- })
218
- setUploadUrl(imgUrl)
219
- }}
220
- >
221
- {fileList.length >= 5 ? null : <PlusOutlined />}
222
- </Upload>
223
- </div>
224
- </div>
225
-
226
- <Form.Item className="authing-g2-input-form submit-form">
227
- <SubmitButton
228
- className="forget-password"
229
- text={t('common.problem.form.submit')}
230
- ref={submitButtonRef}
231
- />
232
- </Form.Item>
233
- </Form>
234
-
235
- <Modal
236
- visible={previewVisible}
237
- title={null}
238
- footer={null}
239
- onCancel={() => setPreviewVisible(false)}
240
- >
241
- <img alt="example" style={{ width: '100%' }} src={previewImage} />
242
- </Modal>
243
- </div>
244
- )
245
- }
@@ -1,47 +0,0 @@
1
- import React from 'react'
2
- import { useTranslation } from 'react-i18next'
3
- import { ImagePro } from '../ImagePro'
4
- import { DescribeQuestions } from './core/describeQuestions'
5
- import { GuardModuleType } from '../Guard/module'
6
-
7
- export const GuardNeedHelpView = (props: any) => {
8
- const { t } = useTranslation()
9
-
10
- const onSuccess = () => {
11
- props.__changeModule?.(GuardModuleType.SUBMIT_SUCCESS)
12
- }
13
-
14
- return (
15
- <div className="g2-view-container">
16
- <div className="g2-view-header">
17
- <ImagePro
18
- src={props.config?.logo}
19
- size={48}
20
- borderRadius={4}
21
- alt=""
22
- className="icon"
23
- />
24
-
25
- <div className="title">{t('common.problem.title')}</div>
26
- </div>
27
- <div className="g2-view-tabs">
28
- <DescribeQuestions
29
- appId={props.config.__publicConfig__.id}
30
- host={props.config.__appHost__}
31
- onSuccess={onSuccess}
32
- />
33
- </div>
34
- <div className="g2-tips-line ">
35
- <div className="back-to-login">
36
- <span className="gray">{t('common.noQuestions')}</span>
37
- <span
38
- className="link-like"
39
- onClick={() => props.__changeModule(GuardModuleType.LOGIN)}
40
- >
41
- {t('common.goToLogin')}
42
- </span>
43
- </div>
44
- </div>
45
- </div>
46
- )
47
- }
@@ -1,71 +0,0 @@
1
- import { LockOutlined } from '@ant-design/icons'
2
- import { Form, Input } from 'antd'
3
- import React, { useRef } from 'react'
4
- import { useTranslation } from 'react-i18next'
5
- import SubmitButton from '../../SubmitButton'
6
- import { useGuardHttp } from '../../_utils/guradHttp'
7
-
8
- export interface UseCodeProps {
9
- mfaToken: string
10
- }
11
-
12
- export const UseCode: React.FC<UseCodeProps> = ({ mfaToken }) => {
13
- const { t } = useTranslation()
14
-
15
- const [form] = Form.useForm()
16
-
17
- const { post } = useGuardHttp()
18
-
19
- const onFinish = async () => {
20
- submitButtonRef.current?.onSpin(true)
21
-
22
- await post(
23
- '/api/v2/mfa/totp/recovery',
24
- {
25
- recoveryCode: form.getFieldValue('recoveryCode'),
26
- },
27
- {
28
- headers: {
29
- authorization: mfaToken,
30
- },
31
- }
32
- )
33
- }
34
-
35
- let submitButtonRef = useRef<any>(null)
36
-
37
- return (
38
- <>
39
- <p className="authing-g2-mfa-title">{t('common.useRecoverCode')}</p>
40
- <p className="authing-g2-mfa-tips">{t('login.mfaAfterReset')}</p>
41
- <Form
42
- form={form}
43
- onFinish={onFinish}
44
- onFinishFailed={() => submitButtonRef.current.onError()}
45
- >
46
- <Form.Item
47
- className="authing-g2-input-form"
48
- name="recoveryCode"
49
- rules={[
50
- {
51
- required: true,
52
- message: t('login.inputRecoverCode'),
53
- },
54
- ]}
55
- >
56
- <Input
57
- className="authing-g2-input"
58
- autoComplete="email"
59
- size="large"
60
- placeholder={t('login.inputRecoverCode')}
61
- prefix={<LockOutlined style={{ color: '#878A95' }} />}
62
- />
63
- </Form.Item>
64
-
65
- <Form.Item className="authing-g2-input-form submit-form">
66
- <SubmitButton text={t('common.sure')} ref={submitButtonRef} />
67
- </Form.Item>
68
- </Form>
69
- </>
70
- )
71
- }
@@ -1,27 +0,0 @@
1
- import React from 'react'
2
- import { useTranslation } from 'react-i18next'
3
- import { IconFont } from '../IconFont'
4
- import { UseCode } from './core/useCode'
5
- import { GuardRecoveryCodeViewProps } from './interface'
6
- import './style.less'
7
- const window: Window = require('global/window')
8
-
9
- export const GuardRecoveryCodeView: React.FC<GuardRecoveryCodeViewProps> = ({
10
- initData,
11
- }) => {
12
- const onBack = () => window.history.back()
13
- const { t } = useTranslation()
14
- return (
15
- <div className="g2-view-container g2-mfa-recovery-code">
16
- <div className="g2-view-back">
17
- <span onClick={onBack}>
18
- <IconFont type="authing-back" />
19
- <span>{t('common.backToVerify')}</span>
20
- </span>
21
- </div>
22
- <div className="g2-mfa-content">
23
- <UseCode mfaToken={initData.mfaToken} />
24
- </div>
25
- </div>
26
- )
27
- }
@@ -1,31 +0,0 @@
1
- import { getDefaultG2Config, IG2Config, IG2Events, IG2FCProps } from '../Type'
2
- import { AuthenticationClient, User } from '..'
3
-
4
- export interface RecoveryCodeConfig extends IG2Config {}
5
-
6
- const defaultConfig: RecoveryCodeConfig = {
7
- ...getDefaultG2Config(),
8
- }
9
-
10
- export const getDefaultRecoveryCodeConfig = (): RecoveryCodeConfig => ({
11
- ...getDefaultG2Config(),
12
- ...defaultConfig,
13
- })
14
-
15
- export interface RecoveryCodeEvents extends IG2Events {
16
- onLogin?: (user: User, authClient: AuthenticationClient) => void
17
- }
18
-
19
- export interface GuardRecoveryCodeInitData {
20
- mfaToken: string
21
- }
22
-
23
- export interface GuardRecoveryCodeProps extends IG2FCProps, RecoveryCodeEvents {
24
- config: Partial<RecoveryCodeConfig>
25
- initData: GuardRecoveryCodeInitData
26
- }
27
-
28
- export interface GuardRecoveryCodeViewProps extends GuardRecoveryCodeProps {
29
- config: RecoveryCodeConfig
30
- initData: GuardRecoveryCodeInitData
31
- }
@@ -1,13 +0,0 @@
1
- .g2-mfa-recovery-code {
2
- .authing-g2-mfa-title {
3
- margin-top: 92px;
4
- }
5
-
6
- .authing-g2-mfa-tips {
7
- margin-bottom: 52px;
8
- }
9
-
10
- .submit-form {
11
- margin-top: 64px !important;
12
- }
13
- }
@@ -1,12 +0,0 @@
1
- import { ErrorCode } from '../_utils/GuardErrorCode'
2
- import { GuardModuleAction } from '../Guard/module'
3
-
4
- export const codeMap: Record<number, GuardModuleAction> = {
5
- [ErrorCode.USER_EXISTENCE]: {
6
- action: 'message',
7
- },
8
- // 频繁注册
9
- 1002: {
10
- action: 'message',
11
- },
12
- }
@@ -1,81 +0,0 @@
1
- import React, { FC, useState, useMemo, useEffect } from 'react'
2
- import { Space, Checkbox } from 'antd'
3
- import './style.less'
4
- import { getClassnames } from '../../../_utils'
5
- import { Agreement } from '../../../AuthingGuard/api'
6
-
7
- export interface AgreementsProps {
8
- value?: boolean
9
- onChange?: (value: boolean) => void
10
- style?: React.CSSProperties
11
- agreements: Agreement[]
12
- showError?: boolean
13
- }
14
-
15
- export const Agreements: FC<AgreementsProps> = ({
16
- showError,
17
- onChange = () => {},
18
- style,
19
- agreements,
20
- }) => {
21
- const [acceptList, setAcceptList] = useState<(string | number)[]>([])
22
-
23
- const toggleItemCheck = (id: string | number) => {
24
- setAcceptList((prev) => {
25
- if (prev.includes(id)) {
26
- return prev.filter((item) => item !== id)
27
- }
28
- return [...prev, id]
29
- })
30
- }
31
-
32
- /** 是否可以注册 */
33
- const isAccept = useMemo(() => {
34
- /** 所有必须勾选的都勾了就可以通过 */
35
- return agreements
36
- .filter((item) => item.required)
37
- .every((item) => acceptList.includes(item.id))
38
- }, [acceptList, agreements])
39
-
40
- useEffect(() => {
41
- onChange(isAccept)
42
- }, [isAccept, onChange])
43
-
44
- return (
45
- <div
46
- className={getClassnames([
47
- 'authing-agreements',
48
- showError && 'authing-agreements-error',
49
- ])}
50
- >
51
- {agreements.map((item) => {
52
- return (
53
- <div
54
- key={item.id}
55
- style={{ ...style }}
56
- className={getClassnames([
57
- 'authing-agreements-item',
58
- item.required &&
59
- !acceptList.includes(item.id) &&
60
- 'authing-agreements-item-invalid',
61
- ])}
62
- onClick={() => toggleItemCheck(item.id)}
63
- >
64
- <Space align="start" size={5}>
65
- <Checkbox
66
- className="authing-agreements-checkbox"
67
- checked={acceptList.includes(item.id)}
68
- />
69
- <div
70
- className="authing-agreements-item-content"
71
- dangerouslySetInnerHTML={{
72
- __html: item.title,
73
- }}
74
- ></div>
75
- </Space>
76
- </div>
77
- )
78
- })}
79
- </div>
80
- )
81
- }
@@ -1,44 +0,0 @@
1
- .authing-agreements {
2
- margin-top: 20px;
3
- margin-bottom: 20px;
4
- &.authing-agreements-error {
5
- .authing-agreements-item-invalid {
6
- color: #ff4d4f;
7
- a {
8
- color: #ff4d4f;
9
- }
10
- :global(.ant-checkbox-inner) {
11
- border-color: #ff4d4f;
12
- }
13
- }
14
- }
15
- }
16
-
17
- .authing-agreements-item {
18
- color: #999999;
19
- user-select: none;
20
- cursor: pointer;
21
- font-size: 12px;
22
- &:not(:first-child) {
23
- margin-top: 4px;
24
- }
25
- p {
26
- margin-bottom: 0;
27
- display: inline-block;
28
- }
29
- }
30
-
31
- .authing-agreements-checkbox {
32
- margin-bottom: 2px;
33
- :global(.ant-checkbox-inner) {
34
- width: 14px;
35
- height: 14px;
36
- &::after {
37
- left: 20%;
38
- }
39
- }
40
- }
41
-
42
- .authing-agreements-item-content {
43
- line-height: 23px;
44
- }