@authing/react-ui-components 3.0.2-beta.4 → 3.0.2-beta.9

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 (261) hide show
  1. package/lib/index.d.ts +453 -35
  2. package/lib/index.min.css +2 -2
  3. package/lib/index.min.js +1 -1
  4. package/package.json +25 -7
  5. package/.eslintignore +0 -6
  6. package/.eslintrc.js +0 -7
  7. package/.prettierrc +0 -5
  8. package/.vscode/settings.json +0 -31
  9. package/build/asset-manifest.json +0 -26
  10. package/build/favicon.ico +0 -0
  11. package/build/index.html +0 -1
  12. package/build/logo192.png +0 -0
  13. package/build/logo512.png +0 -0
  14. package/build/manifest.json +0 -25
  15. package/build/robots.txt +0 -3
  16. package/build/static/css/2.51c07e65.chunk.css +0 -3
  17. package/build/static/css/2.51c07e65.chunk.css.map +0 -1
  18. package/build/static/css/main.779f221a.chunk.css +0 -2
  19. package/build/static/css/main.779f221a.chunk.css.map +0 -1
  20. package/build/static/js/2.bbae9fdb.chunk.js +0 -3
  21. package/build/static/js/2.bbae9fdb.chunk.js.LICENSE.txt +0 -102
  22. package/build/static/js/2.bbae9fdb.chunk.js.map +0 -1
  23. package/build/static/js/3.fd17f196.chunk.js +0 -2
  24. package/build/static/js/3.fd17f196.chunk.js.map +0 -1
  25. package/build/static/js/main.5f341531.chunk.js +0 -2
  26. package/build/static/js/main.5f341531.chunk.js.map +0 -1
  27. package/build/static/js/runtime-main.ef138021.js +0 -2
  28. package/build/static/js/runtime-main.ef138021.js.map +0 -1
  29. package/build/static/media/loading.4a67a5f3.svg +0 -29
  30. package/components/AuthingDropdown/index.tsx +0 -52
  31. package/components/AuthingDropdown/style.less +0 -43
  32. package/components/AuthingGuard/AppMFALayout/index.tsx +0 -74
  33. package/components/AuthingGuard/AppMFALayout/style.less +0 -12
  34. package/components/AuthingGuard/CompleteUserInfoLayout/index.tsx +0 -29
  35. package/components/AuthingGuard/CompleteUserInfoLayout/style.less +0 -8
  36. package/components/AuthingGuard/Forms/ADLoginForm/index.tsx +0 -117
  37. package/components/AuthingGuard/Forms/Agreements/index.tsx +0 -81
  38. package/components/AuthingGuard/Forms/Agreements/style.less +0 -44
  39. package/components/AuthingGuard/Forms/CompleteUserInfoForm/index.tsx +0 -139
  40. package/components/AuthingGuard/Forms/EmailMfaVerifyForm/CheckEmailForm.tsx +0 -84
  41. package/components/AuthingGuard/Forms/EmailMfaVerifyForm/VerifyCodeForm.tsx +0 -116
  42. package/components/AuthingGuard/Forms/EmailMfaVerifyForm/index.tsx +0 -40
  43. package/components/AuthingGuard/Forms/EmailMfaVerifyForm/style.less +0 -0
  44. package/components/AuthingGuard/Forms/EmailRegisterForm/index.tsx +0 -181
  45. package/components/AuthingGuard/Forms/EmailRegisterForm/style.less +0 -0
  46. package/components/AuthingGuard/Forms/LdapLoginForm/index.tsx +0 -166
  47. package/components/AuthingGuard/Forms/LdapLoginForm/style.less +0 -0
  48. package/components/AuthingGuard/Forms/LoginFormFooter/index.tsx +0 -76
  49. package/components/AuthingGuard/Forms/LoginFormFooter/style.less +0 -6
  50. package/components/AuthingGuard/Forms/MfaResetCodeForm/Step1.tsx +0 -86
  51. package/components/AuthingGuard/Forms/MfaResetCodeForm/Step2.tsx +0 -53
  52. package/components/AuthingGuard/Forms/MfaResetCodeForm/index.tsx +0 -65
  53. package/components/AuthingGuard/Forms/MfaResetCodeForm/style.less +0 -20
  54. package/components/AuthingGuard/Forms/MfaVerifyForm/index.tsx +0 -105
  55. package/components/AuthingGuard/Forms/MfaVerifyForm/style.less +0 -12
  56. package/components/AuthingGuard/Forms/PasswordLoginForm/index.tsx +0 -261
  57. package/components/AuthingGuard/Forms/PhoneCodeLoginForm/index.tsx +0 -133
  58. package/components/AuthingGuard/Forms/PhoneRegisterForm/index.tsx +0 -202
  59. package/components/AuthingGuard/Forms/QrCodeLoginForm/index.tsx +0 -59
  60. package/components/AuthingGuard/Forms/QrCodeLoginForm/style.less +0 -14
  61. package/components/AuthingGuard/Forms/RegisterFormFooter/index.tsx +0 -56
  62. package/components/AuthingGuard/Forms/RegisterFormFooter/style.less +0 -0
  63. package/components/AuthingGuard/Forms/ResetPwdForm/Footer.tsx +0 -21
  64. package/components/AuthingGuard/Forms/ResetPwdForm/Step1.tsx +0 -86
  65. package/components/AuthingGuard/Forms/ResetPwdForm/Step2.tsx +0 -127
  66. package/components/AuthingGuard/Forms/ResetPwdForm/Step3.tsx +0 -141
  67. package/components/AuthingGuard/Forms/ResetPwdForm/Step4.tsx +0 -51
  68. package/components/AuthingGuard/Forms/ResetPwdForm/index.tsx +0 -96
  69. package/components/AuthingGuard/Forms/ResetPwdForm/style.less +0 -3
  70. package/components/AuthingGuard/Forms/SendPhoneCode/SendCodeBtn.tsx +0 -88
  71. package/components/AuthingGuard/Forms/SendPhoneCode/index.tsx +0 -50
  72. package/components/AuthingGuard/Forms/SendPhoneCode/style.less +0 -26
  73. package/components/AuthingGuard/Forms/SmsMfaVerifyForm/CheckPhoneForm.tsx +0 -86
  74. package/components/AuthingGuard/Forms/SmsMfaVerifyForm/VerifyCodeForm.tsx +0 -113
  75. package/components/AuthingGuard/Forms/SmsMfaVerifyForm/index.tsx +0 -40
  76. package/components/AuthingGuard/Forms/SmsMfaVerifyForm/style.less +0 -3
  77. package/components/AuthingGuard/Forms/SocialAndIdpLogin/index.tsx +0 -325
  78. package/components/AuthingGuard/Forms/SocialAndIdpLogin/style.less +0 -75
  79. package/components/AuthingGuard/Forms/UploadImage/index.tsx +0 -70
  80. package/components/AuthingGuard/Forms/index.ts +0 -13
  81. package/components/AuthingGuard/GuardLayout/index.tsx +0 -474
  82. package/components/AuthingGuard/GuardLayout/style.less +0 -111
  83. package/components/AuthingGuard/Header/index.tsx +0 -25
  84. package/components/AuthingGuard/Header/style.less +0 -52
  85. package/components/AuthingGuard/IconFont/iconfont.js +0 -74
  86. package/components/AuthingGuard/IconFont/index.tsx +0 -19
  87. package/components/AuthingGuard/IconFont/style.less +0 -6
  88. package/components/AuthingGuard/IconFont/svg.js +0 -2
  89. package/components/AuthingGuard/LoginLayout/index.tsx +0 -161
  90. package/components/AuthingGuard/LoginLayout/style.less +0 -0
  91. package/components/AuthingGuard/MfaLayout/Steps.ts +0 -4
  92. package/components/AuthingGuard/MfaLayout/index.tsx +0 -49
  93. package/components/AuthingGuard/MfaLayout/style.less +0 -3
  94. package/components/AuthingGuard/RegisterLayout/index.tsx +0 -89
  95. package/components/AuthingGuard/RegisterLayout/style.less +0 -0
  96. package/components/AuthingGuard/ResetPwdLayout/index.tsx +0 -20
  97. package/components/AuthingGuard/ToggleLang/index.tsx +0 -51
  98. package/components/AuthingGuard/api/appConfig.ts +0 -146
  99. package/components/AuthingGuard/api/index.ts +0 -3
  100. package/components/AuthingGuard/api/sso.ts +0 -29
  101. package/components/AuthingGuard/api/userPoolConfig.ts +0 -111
  102. package/components/AuthingGuard/constants.ts +0 -107
  103. package/components/AuthingGuard/hooks/index.tsx +0 -70
  104. package/components/AuthingGuard/hooks/useScreenSize.tsx +0 -68
  105. package/components/AuthingGuard/index.tsx +0 -126
  106. package/components/AuthingGuard/style.less +0 -103
  107. package/components/AuthingGuard/types/Forms.ts +0 -94
  108. package/components/AuthingGuard/types/GuardConfig.ts +0 -420
  109. package/components/AuthingGuard/types/GuardState.ts +0 -7
  110. package/components/AuthingGuard/types/Locales.ts +0 -12
  111. package/components/AuthingGuard/types/index.ts +0 -4
  112. package/components/AuthingTabs/index.tsx +0 -98
  113. package/components/AuthingTabs/style.less +0 -135
  114. package/components/BindTotp/core/bindSuccess.tsx +0 -72
  115. package/components/BindTotp/core/securityCode.tsx +0 -108
  116. package/components/BindTotp/index.tsx +0 -134
  117. package/components/BindTotp/interface.ts +0 -30
  118. package/components/BindTotp/styles.less +0 -57
  119. package/components/ChangeLanguage/index.tsx +0 -35
  120. package/components/ChangePassword/core/firstLoginReset.tsx +0 -104
  121. package/components/ChangePassword/core/rotateReset.tsx +0 -114
  122. package/components/ChangePassword/index.tsx +0 -59
  123. package/components/CompleteInfo/core/completeInfo.tsx +0 -155
  124. package/components/CompleteInfo/index.tsx +0 -45
  125. package/components/CompleteInfo/interface.ts +0 -40
  126. package/components/CompleteInfo/styles.less +0 -7
  127. package/components/CopyAbleText/index.tsx +0 -54
  128. package/components/CopyAbleText/style.less +0 -13
  129. package/components/DownloadAuthenticator/index.tsx +0 -97
  130. package/components/DownloadAuthenticator/interface.ts +0 -22
  131. package/components/DownloadAuthenticator/styles.less +0 -52
  132. package/components/Error/index.tsx +0 -21
  133. package/components/Error/interface.ts +0 -9
  134. package/components/Error/styles.less +0 -12
  135. package/components/ForgetPassword/core/resetPassword.tsx +0 -162
  136. package/components/ForgetPassword/index.tsx +0 -78
  137. package/components/ForgetPassword/interface.ts +0 -32
  138. package/components/Guard/Guard.tsx +0 -287
  139. package/components/Guard/authClient.ts +0 -44
  140. package/components/Guard/config.ts +0 -19
  141. package/components/Guard/event.ts +0 -52
  142. package/components/Guard/index.tsx +0 -4
  143. package/components/Guard/module.ts +0 -20
  144. package/components/Guard/stateMachine.ts +0 -152
  145. package/components/Guard/styles.less +0 -461
  146. package/components/IconFont/iconfont.js +0 -74
  147. package/components/IconFont/index.tsx +0 -16
  148. package/components/IconFont/style.less +0 -6
  149. package/components/IconFont/svg.js +0 -2
  150. package/components/ImagePro/index.tsx +0 -53
  151. package/components/ImagePro/styles.less +0 -40
  152. package/components/InputNumber/index.tsx +0 -33
  153. package/components/Login/codemap.ts +0 -47
  154. package/components/Login/core/withAD.tsx +0 -9
  155. package/components/Login/core/withAppQrcode.tsx +0 -49
  156. package/components/Login/core/withLDAP.tsx +0 -146
  157. package/components/Login/core/withPassword/FormItemAccount.tsx +0 -42
  158. package/components/Login/core/withPassword/GraphicVerifyCode.tsx +0 -30
  159. package/components/Login/core/withPassword/InputAccount.tsx +0 -64
  160. package/components/Login/core/withPassword/index.tsx +0 -173
  161. package/components/Login/core/withPhonecode.tsx +0 -122
  162. package/components/Login/core/withWechatMiniQrcode.tsx +0 -60
  163. package/components/Login/core/withWechatmpQrcode.tsx +0 -53
  164. package/components/Login/index.tsx +0 -373
  165. package/components/Login/props.ts +0 -74
  166. package/components/Login/socialLogin/index.tsx +0 -407
  167. package/components/Login/socialLogin/style.less +0 -69
  168. package/components/Login/styles.less +0 -53
  169. package/components/MFA/VerifyCodeInput/VerifyCodeFormItem.tsx +0 -41
  170. package/components/MFA/VerifyCodeInput/index.tsx +0 -145
  171. package/components/MFA/VerifyCodeInput/style.less +0 -35
  172. package/components/MFA/codemap.ts +0 -24
  173. package/components/MFA/core/email.tsx +0 -203
  174. package/components/MFA/core/face.tsx +0 -297
  175. package/components/MFA/core/face_deps.tsx +0 -37
  176. package/components/MFA/core/sms.tsx +0 -203
  177. package/components/MFA/core/totp.tsx +0 -122
  178. package/components/MFA/index.tsx +0 -143
  179. package/components/MFA/mfaMethods/index.tsx +0 -88
  180. package/components/MFA/mfaMethods/style.less +0 -39
  181. package/components/MFA/props.ts +0 -51
  182. package/components/MFA/styles.less +0 -100
  183. package/components/NeedHelpView/core/describeQuestions.tsx +0 -245
  184. package/components/NeedHelpView/index.tsx +0 -47
  185. package/components/RecoveryCode/core/useCode.tsx +0 -71
  186. package/components/RecoveryCode/index.tsx +0 -27
  187. package/components/RecoveryCode/interface.ts +0 -31
  188. package/components/RecoveryCode/style.less +0 -13
  189. package/components/Register/codemap.ts +0 -12
  190. package/components/Register/components/Agreements/index.tsx +0 -81
  191. package/components/Register/components/Agreements/style.less +0 -44
  192. package/components/Register/core/WithEmail.tsx +0 -242
  193. package/components/Register/core/WithPhone.tsx +0 -184
  194. package/components/Register/index.tsx +0 -139
  195. package/components/Register/props.ts +0 -50
  196. package/components/SendCode/SendCodeBtn.tsx +0 -96
  197. package/components/SendCode/index.tsx +0 -94
  198. package/components/SendCode/style.less +0 -31
  199. package/components/ShieldSpin/index.tsx +0 -27
  200. package/components/ShieldSpin/loading.svg +0 -29
  201. package/components/SubmitButton/index.tsx +0 -50
  202. package/components/SubmitSuccess/index.tsx +0 -66
  203. package/components/SubmitSuccess/interface.ts +0 -17
  204. package/components/Type/index.ts +0 -52
  205. package/components/ValidatorRules/ValidatorFormItem.tsx +0 -139
  206. package/components/ValidatorRules/index.ts +0 -20
  207. package/components/VerifyCodeInput/index.tsx +0 -76
  208. package/components/VerifyCodeInput/style.less +0 -24
  209. package/components/_utils/GuardErrorCode.ts +0 -9
  210. package/components/_utils/clipboard.ts +0 -27
  211. package/components/_utils/config.ts +0 -116
  212. package/components/_utils/guradHttp.ts +0 -97
  213. package/components/_utils/hooks/index.ts +0 -64
  214. package/components/_utils/http.ts +0 -85
  215. package/components/_utils/index.ts +0 -322
  216. package/components/_utils/locales/en/common.json +0 -227
  217. package/components/_utils/locales/en/index.ts +0 -6
  218. package/components/_utils/locales/en/login.json +0 -96
  219. package/components/_utils/locales/en/map.json +0 -4
  220. package/components/_utils/locales/en/user.json +0 -82
  221. package/components/_utils/locales/index.ts +0 -45
  222. package/components/_utils/locales/zh/common.json +0 -227
  223. package/components/_utils/locales/zh/index.ts +0 -6
  224. package/components/_utils/locales/zh/login.json +0 -96
  225. package/components/_utils/locales/zh/map.json +0 -4
  226. package/components/_utils/locales/zh/user.json +0 -82
  227. package/components/_utils/popupCenter.ts +0 -48
  228. package/components/assets/images/error.png +0 -0
  229. package/components/context/base.tsx +0 -28
  230. package/components/context/global/context.tsx +0 -39
  231. package/components/context/global/reducer.tsx +0 -56
  232. package/components/context/module/context.tsx +0 -23
  233. package/components/index.ts +0 -12
  234. package/config/antdReplacer.js +0 -51
  235. package/config/env.js +0 -104
  236. package/config/getHttpsConfig.js +0 -66
  237. package/config/jest/cssTransform.js +0 -14
  238. package/config/jest/fileTransform.js +0 -40
  239. package/config/modules.js +0 -134
  240. package/config/paths.js +0 -71
  241. package/config/pnpTs.js +0 -35
  242. package/config/webpack.config.js +0 -835
  243. package/config/webpackDevServer.config.js +0 -130
  244. package/examples.tsx +0 -86
  245. package/index.js +0 -1
  246. package/logo.svg +0 -7
  247. package/public/favicon.ico +0 -0
  248. package/public/index.html +0 -43
  249. package/public/logo192.png +0 -0
  250. package/public/logo512.png +0 -0
  251. package/public/manifest.json +0 -25
  252. package/public/robots.txt +0 -3
  253. package/react-app-env.d.ts +0 -71
  254. package/reportWebVitals.ts +0 -15
  255. package/scripts/build.js +0 -208
  256. package/scripts/lib.js +0 -200
  257. package/scripts/publish.js +0 -57
  258. package/scripts/start.js +0 -162
  259. package/scripts/test.js +0 -49
  260. package/setupTests.ts +0 -5
  261. package/tsconfig.json +0 -30
@@ -1,44 +0,0 @@
1
- import { AuthenticationClient } from 'authing-js-sdk'
2
-
3
- import packageConfig from '../../package.json'
4
- import { GuardLocalConfig } from './config'
5
-
6
- let authClient: AuthenticationClient
7
-
8
- export const initAuthClient = (
9
- config: GuardLocalConfig,
10
- appId: string,
11
- tenantId?: string
12
- ) => {
13
- const host = config.__appHost__ ?? config.host
14
- const lang = config.lang
15
-
16
- if (!authClient) {
17
- try {
18
- authClient = new AuthenticationClient({
19
- appHost: host,
20
- tenantId: tenantId,
21
- appId,
22
- lang,
23
- requestFrom: `Guard-${packageConfig.framework}@${packageConfig.version}`,
24
- onError: (code, msg: any) => {
25
- console.error(code, msg)
26
- },
27
- })
28
- } catch (error) {
29
- throw error
30
- }
31
- }
32
-
33
- return authClient
34
- }
35
-
36
- export const getAuthClient = () => {
37
- if (!authClient) {
38
- throw new Error('Please initialize AuthClient')
39
- }
40
-
41
- return authClient
42
- }
43
-
44
- export const useAuthClient = () => getAuthClient()
@@ -1,19 +0,0 @@
1
- import { getDefaultLoginConfig, LoginConfig } from '../Login/props'
2
- import { getDefaultRegisterConfig, RegisterConfig } from '../Register/props'
3
-
4
- export interface GuardComponentConifg extends Partial<GuardLocalConfig> {}
5
-
6
- export interface GuardLocalConfig extends RegisterConfig, LoginConfig {}
7
-
8
- let defaultConfig: GuardLocalConfig
9
-
10
- export const getDefaultGuardLocalConfig = (): GuardLocalConfig => {
11
- if (!defaultConfig) {
12
- defaultConfig = {
13
- ...getDefaultLoginConfig(),
14
- ...getDefaultRegisterConfig(),
15
- }
16
- }
17
-
18
- return defaultConfig
19
- }
@@ -1,52 +0,0 @@
1
- import { message } from 'antd'
2
- import { CompleteInfoEvents } from '../CompleteInfo/interface'
3
- import { ForgetPasswordEvents } from '../ForgetPassword/interface'
4
- import { LoginEvents } from '../Login/props'
5
- import { RegisterEvents } from '../Register/props'
6
- import { i18n } from '../_utils/locales'
7
-
8
- export interface GuardEvents
9
- extends LoginEvents,
10
- RegisterEvents,
11
- CompleteInfoEvents,
12
- ForgetPasswordEvents {}
13
-
14
- export const guardEventsFilter = (props: any) => {
15
- const events: GuardEvents = {}
16
- const eventsName = Object.keys(props).filter((name) => name.startsWith('on'))
17
- eventsName.forEach((eventName) => {
18
- events[eventName as keyof GuardEvents] = props[eventName]
19
- })
20
-
21
- return guardEventsHijacking(events)
22
- }
23
-
24
- const eventsMapping: Partial<GuardEvents> = {
25
- onLogin: (...props) => {
26
- message.success(i18n.t('common.LoginSuccess'))
27
- return props
28
- },
29
-
30
- onRegister: (...props) => {
31
- message.success(i18n.t('common.registrationSuccess'))
32
- return props
33
- },
34
- }
35
-
36
- export const guardEventsHijacking = (events: GuardEvents): GuardEvents => {
37
- const newEvents: GuardEvents = {}
38
- Object.keys(eventsMapping).forEach((eventsKey) => {
39
- // @ts-ignore
40
- newEvents[eventsKey] = (...props) => {
41
- // @ts-ignore
42
- const newProps = eventsMapping[eventsKey](...props)
43
- // @ts-ignore
44
- events[eventsKey]?.(...newProps)
45
- }
46
- })
47
-
48
- return {
49
- ...events,
50
- ...newEvents,
51
- }
52
- }
@@ -1,4 +0,0 @@
1
- export * from './Guard'
2
- export * from './module'
3
- export * from './event'
4
- export * from './config'
@@ -1,20 +0,0 @@
1
- export enum GuardModuleType {
2
- ERROR = 'error',
3
- LOGIN = 'login',
4
- REGISTER = 'register',
5
- MFA = 'mfa',
6
- FORGET_PWD = 'forgetPassword',
7
- CHANGE_PWD = 'changePassword',
8
- DOWNLOAD_AT = 'downloadAT',
9
- BIND_TOTP = 'bindTotp',
10
- ANY_QUESTIONS = 'anyQuestions',
11
- COMPLETE_INFO = 'completeInfo',
12
- RECOVERY_CODE = 'recoveryCode',
13
- SUBMIT_SUCCESS = 'submitSuccess',
14
- }
15
- export interface GuardModuleAction {
16
- action: string
17
- module?: GuardModuleType
18
- message?: string
19
- initData?: any
20
- }
@@ -1,152 +0,0 @@
1
- import { useEffect } from 'react'
2
- import { GuardComponentConifg, GuardLocalConfig } from './config'
3
- import { GuardModuleType } from './module'
4
- const window: Window = require('global/window')
5
-
6
- export interface ModuleState {
7
- moduleName: GuardModuleType
8
- initData?: any
9
- }
10
-
11
- export enum ActionType {
12
- ChangeModule = 'ChangeModule',
13
- Back = 'Back',
14
- Init = 'Init',
15
- }
16
-
17
- export interface StateMachineLog {
18
- action: ActionType
19
- date: number
20
- dataSource: ModuleState
21
- }
22
-
23
- export type ChangeModuleEvent = (
24
- nextModelu: GuardModuleType,
25
- initData?: any
26
- ) => void
27
-
28
- let guardStateMachine: GuardStateMachine
29
-
30
- export class GuardStateMachine {
31
- // 计数器
32
- private order: number = 0
33
-
34
- // 总体的配置信息
35
- private config: GuardComponentConifg = {}
36
-
37
- // 历史记录
38
- private moduleStateHistory: ModuleState[] = []
39
-
40
- private changeMouleEvent: ChangeModuleEvent
41
-
42
- // Log
43
- private stateMachineLog: Record<number, StateMachineLog> = {}
44
-
45
- constructor(changeMouleEvent: ChangeModuleEvent, initData: ModuleState) {
46
- this.changeMouleEvent = changeMouleEvent
47
-
48
- this.historyPush(initData, ActionType.Init)
49
- }
50
- globalWindow = (): Window | undefined =>
51
- typeof window !== undefined ? window : undefined
52
-
53
- next = (nextModelu: GuardModuleType, initData: any) => {
54
- const moduleData: ModuleState = {
55
- moduleName: nextModelu,
56
- initData,
57
- }
58
- this.changeMouleEvent(nextModelu, initData)
59
-
60
- this.historyPush(moduleData)
61
- console.log('next Log', this.stateMachineLog)
62
- console.log('next History', this.moduleStateHistory)
63
- }
64
-
65
- back = (initData: any = {}) => {
66
- if (this.moduleStateHistory.length <= 1) return
67
-
68
- const backModule = this.moduleStateHistory[1]
69
- this.changeMouleEvent(backModule.moduleName, {
70
- ...initData,
71
- ...backModule.initData,
72
- })
73
-
74
- this.moduleStateHistory.splice(0, 1)
75
- console.log('back Log', this.stateMachineLog)
76
- }
77
-
78
- // 业务终点 Log 发送
79
- end = () => {
80
- console.log('业务终点 Log', this.stateMachineLog)
81
-
82
- // TODO 请求
83
- }
84
-
85
- historyPush = (
86
- data: ModuleState,
87
- actionType: ActionType = ActionType.ChangeModule
88
- ) => {
89
- this.moduleStateHistory.unshift(data)
90
-
91
- this.stateMachineLog[this.order++] = {
92
- action: actionType,
93
- date: new Date().getTime(),
94
- dataSource: data,
95
- }
96
-
97
- if (this.moduleStateHistory.length > 10)
98
- this.moduleStateHistory.splice(10, this.moduleStateHistory.length - 10)
99
- }
100
-
101
- historyBack = (data: ModuleState) => {
102
- if (this.moduleStateHistory.length <= 1) return
103
-
104
- this.moduleStateHistory.splice(0, 1)
105
-
106
- this.stateMachineLog[this.order++] = {
107
- action: ActionType.Back,
108
- date: new Date().getTime(),
109
- dataSource: data,
110
- }
111
- }
112
-
113
- setConfig = (config: GuardLocalConfig) => {
114
- this.config = config
115
- }
116
- }
117
-
118
- export const useHistoryHijack = (back?: () => void) => {
119
- const next = (state: any = {}) => {
120
- window?.history.pushState(state, '', window?.location.href)
121
- }
122
-
123
- useEffect(() => {
124
- const onPopstate = () => {
125
- back?.()
126
- }
127
-
128
- back && window?.addEventListener('popstate', onPopstate)
129
-
130
- return () => {
131
- back && window.removeEventListener('popstate', onPopstate)
132
- }
133
- }, [back])
134
-
135
- return [next]
136
- }
137
-
138
- export const initGuardStateMachine = (
139
- changeMouleEvent: ChangeModuleEvent,
140
- initData: ModuleState
141
- ) => {
142
- guardStateMachine = new GuardStateMachine(changeMouleEvent, initData)
143
- return guardStateMachine
144
- }
145
-
146
- export const getGuardStateMachine = () => {
147
- if (!guardStateMachine) throw new Error('Please initialize GuardStateMachine')
148
-
149
- return guardStateMachine
150
- }
151
-
152
- export const useGuardStateMachine = () => getGuardStateMachine()