@arcblock/did-connect-react 3.5.1 → 4.0.0-beta.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 (170) hide show
  1. package/dist/ConnectContext.d.ts +13 -0
  2. package/dist/ConnectContext.d.ts.map +1 -0
  3. package/dist/ConnectContext.js +14 -0
  4. package/dist/ConnectContext.js.map +1 -0
  5. package/dist/ConnectProvider.d.ts +11 -0
  6. package/dist/ConnectProvider.d.ts.map +1 -0
  7. package/dist/ConnectProvider.js +23 -0
  8. package/dist/ConnectProvider.js.map +1 -0
  9. package/dist/compat/SessionProvider.d.ts +22 -0
  10. package/dist/compat/SessionProvider.d.ts.map +1 -0
  11. package/dist/compat/SessionProvider.js +17 -0
  12. package/dist/compat/SessionProvider.js.map +1 -0
  13. package/dist/compat/index.d.ts +4 -0
  14. package/dist/compat/index.d.ts.map +1 -0
  15. package/dist/compat/index.js +3 -0
  16. package/dist/compat/index.js.map +1 -0
  17. package/dist/compat/useSessionContext.d.ts +14 -0
  18. package/dist/compat/useSessionContext.d.ts.map +1 -0
  19. package/dist/compat/useSessionContext.js +20 -0
  20. package/dist/compat/useSessionContext.js.map +1 -0
  21. package/dist/components/LoginPage.d.ts +15 -0
  22. package/dist/components/LoginPage.d.ts.map +1 -0
  23. package/dist/components/LoginPage.js +33 -0
  24. package/dist/components/LoginPage.js.map +1 -0
  25. package/dist/components/UserAvatar.d.ts +19 -0
  26. package/dist/components/UserAvatar.d.ts.map +1 -0
  27. package/dist/components/UserAvatar.js +45 -0
  28. package/dist/components/UserAvatar.js.map +1 -0
  29. package/dist/hooks/index.d.ts +11 -0
  30. package/dist/hooks/index.d.ts.map +1 -0
  31. package/dist/hooks/index.js +6 -0
  32. package/dist/hooks/index.js.map +1 -0
  33. package/dist/hooks/useConnect.d.ts +15 -0
  34. package/dist/hooks/useConnect.d.ts.map +1 -0
  35. package/dist/hooks/useConnect.js +19 -0
  36. package/dist/hooks/useConnect.js.map +1 -0
  37. package/dist/hooks/useEmail.d.ts +11 -0
  38. package/dist/hooks/useEmail.d.ts.map +1 -0
  39. package/dist/hooks/useEmail.js +47 -0
  40. package/dist/hooks/useEmail.js.map +1 -0
  41. package/dist/hooks/useOAuth.d.ts +12 -0
  42. package/dist/hooks/useOAuth.d.ts.map +1 -0
  43. package/dist/hooks/useOAuth.js +75 -0
  44. package/dist/hooks/useOAuth.js.map +1 -0
  45. package/dist/hooks/usePasskey.d.ts +14 -0
  46. package/dist/hooks/usePasskey.d.ts.map +1 -0
  47. package/dist/hooks/usePasskey.js +35 -0
  48. package/dist/hooks/usePasskey.js.map +1 -0
  49. package/dist/hooks/useSession.d.ts +12 -0
  50. package/dist/hooks/useSession.d.ts.map +1 -0
  51. package/dist/hooks/useSession.js +30 -0
  52. package/dist/hooks/useSession.js.map +1 -0
  53. package/dist/index.d.ts +13 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +11 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/internals/blocklet-config.d.ts +22 -0
  58. package/dist/internals/blocklet-config.d.ts.map +1 -0
  59. package/dist/internals/blocklet-config.js +26 -0
  60. package/dist/internals/blocklet-config.js.map +1 -0
  61. package/dist/internals/local-storage-adapter.d.ts +12 -0
  62. package/dist/internals/local-storage-adapter.d.ts.map +1 -0
  63. package/dist/internals/local-storage-adapter.js +32 -0
  64. package/dist/internals/local-storage-adapter.js.map +1 -0
  65. package/dist/internals/use-sync-state.d.ts +18 -0
  66. package/dist/internals/use-sync-state.d.ts.map +1 -0
  67. package/dist/internals/use-sync-state.js +38 -0
  68. package/dist/internals/use-sync-state.js.map +1 -0
  69. package/package.json +33 -79
  70. package/LICENSE +0 -13
  71. package/README.md +0 -134
  72. package/dist/standalone/did-connect-react.css +0 -1
  73. package/dist/standalone/index.js +0 -133700
  74. package/lib/Address/index.js +0 -4
  75. package/lib/Avatar/index.js +0 -4
  76. package/lib/Button/index.js +0 -17
  77. package/lib/Connect/assets/locale.js +0 -147
  78. package/lib/Connect/assets/login-bg.png +0 -0
  79. package/lib/Connect/assets/login-slogan.js +0 -9
  80. package/lib/Connect/components/action-button.js +0 -26
  81. package/lib/Connect/components/app-tips.js +0 -132
  82. package/lib/Connect/components/auto-height.js +0 -31
  83. package/lib/Connect/components/back-button.js +0 -25
  84. package/lib/Connect/components/connect-status.js +0 -263
  85. package/lib/Connect/components/did-connect-title.js +0 -127
  86. package/lib/Connect/components/download-tips.js +0 -52
  87. package/lib/Connect/components/loading.js +0 -26
  88. package/lib/Connect/components/login-item/connect-choose-list.js +0 -257
  89. package/lib/Connect/components/login-item/connect-provider-list.js +0 -345
  90. package/lib/Connect/components/login-item/login-method-item.js +0 -147
  91. package/lib/Connect/components/login-item/mobile-login-item.js +0 -116
  92. package/lib/Connect/components/login-item/passkey-login-item.js +0 -44
  93. package/lib/Connect/components/login-item/wallet-login-options.js +0 -114
  94. package/lib/Connect/components/login-item/web-login-item.js +0 -104
  95. package/lib/Connect/components/mask-overlay.js +0 -34
  96. package/lib/Connect/components/refresh-overlay.js +0 -57
  97. package/lib/Connect/components/switch-app.js +0 -70
  98. package/lib/Connect/connect.js +0 -505
  99. package/lib/Connect/contexts/state.js +0 -156
  100. package/lib/Connect/fallback-connect.js +0 -53
  101. package/lib/Connect/fullpage.js +0 -5
  102. package/lib/Connect/hooks/auth-url.js +0 -23
  103. package/lib/Connect/hooks/method-list.js +0 -46
  104. package/lib/Connect/hooks/page-show.js +0 -17
  105. package/lib/Connect/hooks/provider-list.js +0 -69
  106. package/lib/Connect/hooks/security.js +0 -27
  107. package/lib/Connect/hooks/token.js +0 -296
  108. package/lib/Connect/hooks/use-apps.js +0 -19
  109. package/lib/Connect/hooks/use-quick-connect.js +0 -86
  110. package/lib/Connect/index.js +0 -16
  111. package/lib/Connect/landing-page.js +0 -5
  112. package/lib/Connect/plugins/email/index.js +0 -65
  113. package/lib/Connect/plugins/email/list-item.js +0 -31
  114. package/lib/Connect/plugins/email/placeholder.js +0 -284
  115. package/lib/Connect/plugins/index.js +0 -4
  116. package/lib/Connect/use-connect.js +0 -164
  117. package/lib/Connect/with-blocklet.js +0 -15
  118. package/lib/Connect/with-bridge-call.js +0 -108
  119. package/lib/Federated/context.js +0 -61
  120. package/lib/Federated/index.js +0 -7
  121. package/lib/Logo/index.js +0 -4
  122. package/lib/OAuth/bind-conflict-alert.js +0 -29
  123. package/lib/OAuth/context.js +0 -277
  124. package/lib/OAuth/guest.svg.js +0 -5
  125. package/lib/OAuth/index.js +0 -7
  126. package/lib/OAuth/passport-switcher.js +0 -5
  127. package/lib/Passkey/actions.js +0 -170
  128. package/lib/Passkey/constants.js +0 -4
  129. package/lib/Passkey/context.js +0 -281
  130. package/lib/Passkey/dialog.js +0 -280
  131. package/lib/Passkey/icon.js +0 -13
  132. package/lib/Passkey/index.js +0 -9
  133. package/lib/Service/index.js +0 -62
  134. package/lib/Session/assets/did-spaces-guide-cover.svg.js +0 -111
  135. package/lib/Session/assets/did-spaces-guide-icon.svg.js +0 -9
  136. package/lib/Session/context.js +0 -5
  137. package/lib/Session/did-spaces-guide.js +0 -136
  138. package/lib/Session/handler.js +0 -55
  139. package/lib/Session/hooks/use-federated.js +0 -64
  140. package/lib/Session/hooks/use-mobile.js +0 -8
  141. package/lib/Session/hooks/use-protected-routes.js +0 -11
  142. package/lib/Session/hooks/use-session-token.js +0 -181
  143. package/lib/Session/hooks/use-verify.js +0 -45
  144. package/lib/Session/index.js +0 -941
  145. package/lib/Session/libs/constants.js +0 -18
  146. package/lib/Session/libs/did-spaces.js +0 -10
  147. package/lib/Session/libs/federated.js +0 -42
  148. package/lib/Session/libs/index.js +0 -15
  149. package/lib/Session/libs/locales.js +0 -161
  150. package/lib/Session/libs/login-mobile.js +0 -55
  151. package/lib/Session/window-focus-aware.js +0 -17
  152. package/lib/SessionManager/index.js +0 -4
  153. package/lib/Storage/engine/cookie.js +0 -22
  154. package/lib/Storage/engine/local-storage.js +0 -37
  155. package/lib/Storage/index.js +0 -23
  156. package/lib/User/index.js +0 -6
  157. package/lib/User/use-did.js +0 -59
  158. package/lib/User/wrap-did.js +0 -13
  159. package/lib/WebWalletSWKeeper/index.js +0 -5
  160. package/lib/components/PassportSwitcher.js +0 -128
  161. package/lib/constant.js +0 -23
  162. package/lib/error.js +0 -8
  163. package/lib/hooks/use-locale.js +0 -7
  164. package/lib/index.js +0 -111
  165. package/lib/locales/en.js +0 -17
  166. package/lib/locales/index.js +0 -10
  167. package/lib/locales/zh.js +0 -17
  168. package/lib/package.json.js +0 -7
  169. package/lib/types.d.ts +0 -355
  170. package/lib/utils.js +0 -225
@@ -1,257 +0,0 @@
1
- import { jsx as l, jsxs as G } from "react/jsx-runtime";
2
- import o from "prop-types";
3
- import { Box as g } from "@mui/material";
4
- import { LAST_USED_LOGIN_METHOD as re, LOGIN_PROVIDER as n, WALLET_LOGIN_METHOD as U, LOGIN_PROVIDER_NAME as se, LOGIN_PROVIDER_ICON_SIZE as h } from "@arcblock/ux/lib/Util/constant";
5
- import { getWebWalletUrl as ne } from "@arcblock/ux/lib/Util/wallet";
6
- import L from "lodash/noop";
7
- import { useMemoizedFn as y } from "ahooks";
8
- import x from "js-cookie";
9
- import { getCookieOptions as le } from "@arcblock/ux/lib/Util";
10
- import { useRef as M, useEffect as ie } from "react";
11
- import { mergeSx as ae } from "@arcblock/ux/lib/Util/style";
12
- import ce from "@arcblock/ux/lib/DIDConnect/provider-icon";
13
- import { GA_LAST_LOGIN_METHOD as u } from "@arcblock/ux/lib/withTracker/constant";
14
- import pe from "./mobile-login-item.js";
15
- import me from "./web-login-item.js";
16
- import ue from "./login-method-item.js";
17
- import { useOAuth as de } from "../../../OAuth/context.js";
18
- import { useStateContext as fe } from "../../contexts/state.js";
19
- import { getAppId as ge, logger as he, getApiErrorMessage as Le } from "../../../utils.js";
20
- import Ie from "./passkey-login-item.js";
21
- import { usePasskey as ye } from "../../../Passkey/context.js";
22
- import "../../../Passkey/actions.js";
23
- import xe from "../../plugins/email/index.js";
24
- function Me({
25
- onSuccess: O = L,
26
- onError: A = L,
27
- size: c = "small",
28
- tokenState: r,
29
- webWalletUrl: F = ne(),
30
- tokenKey: j,
31
- passkeyBehavior: B = "none",
32
- onReset: I = L,
33
- showMobileLogin: H = !0,
34
- showOAuthLogin: E = !0,
35
- showPasskeyLogin: b = !0,
36
- showWebLogin: V = !0,
37
- showEmailLogin: d = !0,
38
- oauthProviderList: q = [],
39
- slotProps: K = {},
40
- disableSwitchApp: v = !1,
41
- forceUpdate: Y = L,
42
- magicToken: w = void 0,
43
- baseUrl: Z = "/",
44
- customItems: $ = []
45
- }) {
46
- const _ = M(null), P = M(null), C = M(null), { loginOAuth: z, logoutOAuth: J, t: f, oauthState: s } = de(), { passkeyState: T } = ye(), { extraParams: R, locale: Q, connectState: t, plugins: D, setPlugins: X, setSelectedPlugin: ee, getPlugin: N, lastLoginMethod: i } = fe(), W = y(async (e) => {
47
- localStorage.setItem(u, e.provider), r.reset(), s.reset({
48
- status: "scanned"
49
- }), T.reset(), t.chooseMethod = e.provider, t.walletMethod = "";
50
- const p = R?.sourceAppPid;
51
- try {
52
- s.loading = !0, s.status = "scanned";
53
- const m = await z(e, {
54
- action: r.action,
55
- ...R
56
- }), a = le({ returnDomain: !1 });
57
- x.remove("connected_did", a), x.remove("connected_pk", a), x.remove("connected_wallet_os", a), m?.sessionToken && (localStorage.setItem(re, e.provider), await O(
58
- {
59
- ...m,
60
- encrypted: !1
61
- },
62
- (te) => te,
63
- {
64
- sourceAppPid: p,
65
- connected_app: ge(r.appInfo, r.memberAppInfo)
66
- }
67
- ), s.loading = !1, s.status = "succeed");
68
- } catch (m) {
69
- he.error(`Failed login OAuth: ${e.provider}`, m);
70
- const a = Le(m, f("loginOAuthFailed"));
71
- s.loading = !1, s.error = a, s.status = "error", await J({ provider: e.provider }), A(new Error(a));
72
- }
73
- }), k = y(async () => {
74
- r.reset(), await I(), r.status = "created", t.chooseMethod = "wallet", t.walletMethod = "";
75
- }), S = xe({ baseUrl: Z }), oe = y(() => {
76
- if (w && d && D.some((e) => e.name === n.EMAIL)) {
77
- const e = N(n.EMAIL);
78
- e.state.status === "idle" && (localStorage.setItem(u, n.EMAIL), e.state.reset(), e.state.magicToken = w, t.chooseMethod = n.EMAIL, ee(e), Y());
79
- }
80
- });
81
- return ie(() => {
82
- const e = [];
83
- if (d) {
84
- const p = N(n.EMAIL);
85
- p && p.baseUrl === S.baseUrl ? e.push(p) : e.push(S);
86
- }
87
- X(e), t.retryConnect = k, setTimeout(() => {
88
- oe();
89
- }, 100);
90
- }, [d]), /* @__PURE__ */ l(g, { className: "did-connect__choose", sx: ae({ flex: 1 }, K?.root?.sx), children: /* @__PURE__ */ l(
91
- g,
92
- {
93
- sx: {
94
- display: "flex",
95
- flexDirection: "column",
96
- gap: 2
97
- },
98
- children: /* @__PURE__ */ G(
99
- g,
100
- {
101
- sx: [
102
- {
103
- display: "flex",
104
- flexDirection: "column",
105
- gap: 1.5
106
- }
107
- ],
108
- children: [
109
- H && /* @__PURE__ */ l(
110
- pe,
111
- {
112
- t: f,
113
- isLatest: i && i === U.MOBILE,
114
- ref: _,
115
- tokenState: r,
116
- sx: [c === "small" ? { p: 1 } : { p: 2 }],
117
- locale: Q,
118
- tokenKey: j,
119
- disableSwitchApp: v,
120
- onClick: async () => {
121
- localStorage.setItem(u, n.WALLET), r.reset(), await I(), r.status = "created", t.chooseMethod = "wallet";
122
- const e = _.current?.connect;
123
- t.retryConnect = () => {
124
- e(k);
125
- };
126
- }
127
- }
128
- ),
129
- V && /* @__PURE__ */ l(
130
- me,
131
- {
132
- isLatest: i && i === U.WEB,
133
- ref: P,
134
- tokenState: r,
135
- webWalletUrl: F,
136
- t: f,
137
- sx: [c === "small" ? { p: 1 } : { p: 2 }],
138
- disableSwitchApp: v,
139
- onClick: () => {
140
- localStorage.setItem(u, n.WALLET), r.status = "scanned", t.chooseMethod = "wallet-web";
141
- const e = P.current.connect;
142
- t.retryConnect = async () => {
143
- await I(), r.error = "", r.status = "scanned", e();
144
- };
145
- }
146
- }
147
- ),
148
- E || b || d ? /* @__PURE__ */ G(
149
- g,
150
- {
151
- sx: [
152
- {
153
- display: "flex",
154
- flexDirection: "column",
155
- gap: 1.5
156
- }
157
- ],
158
- children: [
159
- D.map(
160
- (e) => e.renderListItem({
161
- key: e.name,
162
- sx: [c === "small" ? { p: 1 } : { p: 2 }]
163
- // forceUpdate,
164
- })
165
- ),
166
- E ? q.map((e) => /* @__PURE__ */ l(
167
- ue,
168
- {
169
- t: f,
170
- isLatest: i && i === e.provider,
171
- title: se[e.provider],
172
- icon: /* @__PURE__ */ l(
173
- ce,
174
- {
175
- provider: e.provider,
176
- sx: {
177
- transform: "scale(0.95)",
178
- width: h,
179
- height: h,
180
- color: "text.primary"
181
- }
182
- }
183
- ),
184
- onClick: () => {
185
- W(e), t.retryConnect = () => {
186
- W(e);
187
- };
188
- },
189
- sx: [c === "small" ? { p: 1 } : { p: 2 }]
190
- },
191
- e.provider
192
- )) : null,
193
- b ? /* @__PURE__ */ l(
194
- Ie,
195
- {
196
- ref: C,
197
- onSuccess: O,
198
- onError: A,
199
- tokenState: r,
200
- behavior: B,
201
- sx: [c === "small" ? { p: 1 } : { p: 2 }],
202
- onClick: () => {
203
- localStorage.setItem(u, n.PASSKEY);
204
- const e = C.current.connect;
205
- t.chooseMethod = "passkey", t.walletMethod = "", t.retryConnect = () => {
206
- T.verifying = !0, t.chooseMethod = "passkey", e();
207
- };
208
- },
209
- slotProps: {
210
- icon: {
211
- sx: {
212
- fontSize: h,
213
- "& svg": {
214
- fontSize: h,
215
- width: "1em",
216
- height: "1em"
217
- }
218
- }
219
- }
220
- }
221
- }
222
- ) : null
223
- ]
224
- }
225
- ) : null,
226
- $.map((e) => e || null)
227
- ]
228
- }
229
- )
230
- }
231
- ) });
232
- }
233
- Me.propTypes = {
234
- onSuccess: o.func,
235
- onError: o.func,
236
- size: o.oneOf(["small", "normal", "large"]),
237
- tokenState: o.object.isRequired,
238
- webWalletUrl: o.string,
239
- tokenKey: o.string.isRequired,
240
- passkeyBehavior: o.oneOf(["none", "both", "only-existing", "only-new"]),
241
- onReset: o.func,
242
- showMobileLogin: o.bool,
243
- showOAuthLogin: o.bool,
244
- showPasskeyLogin: o.bool,
245
- showWebLogin: o.bool,
246
- showEmailLogin: o.bool,
247
- oauthProviderList: o.array,
248
- slotProps: o.object,
249
- disableSwitchApp: o.bool,
250
- forceUpdate: o.func,
251
- magicToken: o.string,
252
- baseUrl: o.string,
253
- customItems: o.arrayOf(o.node)
254
- };
255
- export {
256
- Me as default
257
- };
@@ -1,345 +0,0 @@
1
- import { jsx as l, jsxs as ho } from "react/jsx-runtime";
2
- import e from "prop-types";
3
- import { Box as E } from "@mui/material";
4
- import { LAST_USED_LOGIN_METHOD as uo, LOGIN_PROVIDER as t, WALLET_LOGIN_METHOD as J, LOGIN_PROVIDER_ICON_SIZE as A, LOGIN_PROVIDER_NAME as go } from "@arcblock/ux/lib/Util/constant";
5
- import { checkSameProtocol as fo, getWebWalletUrl as Lo } from "@arcblock/ux/lib/Util/wallet";
6
- import M from "lodash/noop";
7
- import { useMemoizedFn as c, useCreation as yo } from "ahooks";
8
- import v from "js-cookie";
9
- import { detectWalletExtension as Io, getCookieOptions as Eo } from "@arcblock/ux/lib/Util";
10
- import { useRef as w, useEffect as X } from "react";
11
- import { mergeSx as Ao } from "@arcblock/ux/lib/Util/style";
12
- import Mo from "@arcblock/ux/lib/DIDConnect/provider-icon";
13
- import { GA_LAST_LOGIN_METHOD as L } from "@arcblock/ux/lib/withTracker/constant";
14
- import { translate as bo } from "@arcblock/ux/lib/Locale/util";
15
- import xo from "@arcblock/ux/lib/Empty";
16
- import { useBrowser as _o } from "@arcblock/react-hooks";
17
- import Co from "./mobile-login-item.js";
18
- import Oo from "./web-login-item.js";
19
- import Po from "./login-method-item.js";
20
- import vo from "./wallet-login-options.js";
21
- import { useOAuth as wo } from "../../../OAuth/context.js";
22
- import { useStateContext as To } from "../../contexts/state.js";
23
- import { getAppId as Wo, logger as So, getApiErrorMessage as ko } from "../../../utils.js";
24
- import Do from "./passkey-login-item.js";
25
- import { usePasskey as No } from "../../../Passkey/context.js";
26
- import "../../../Passkey/actions.js";
27
- import Ro from "../../plugins/email/index.js";
28
- import jo from "../../assets/locale.js";
29
- function Bo({
30
- onSuccess: T = M,
31
- onError: W = M,
32
- size: m = "small",
33
- tokenState: n,
34
- webWalletUrl: b = Lo(),
35
- tokenKey: S,
36
- passkeyBehavior: k = "none",
37
- onReset: x = M,
38
- providerList: d = [],
39
- slotProps: z = {},
40
- disableSwitchApp: _ = !1,
41
- forceUpdate: Q = M,
42
- magicToken: D = void 0,
43
- baseUrl: oo = "/",
44
- customItems: eo = [],
45
- qrcode: to = null,
46
- hideQRCode: p = !1
47
- }) {
48
- const C = w(null), O = w(null), N = w(null), no = fo(b), R = Io(), h = _o(), { loginOAuth: ro, logoutOAuth: io, t: lo, oauthState: s } = wo(), { passkeyState: j } = No(), {
49
- extraParams: B,
50
- locale: G,
51
- connectState: r,
52
- plugins: F,
53
- setPlugins: so,
54
- setSelectedPlugin: ao,
55
- getPlugin: U,
56
- showWalletOptions: f,
57
- setShowWalletOptions: y,
58
- lastLoginMethod: u
59
- } = To(), I = c((o, i = {}) => bo(jo, o, G, "en", i)), q = c(async (o) => {
60
- localStorage.setItem(L, o.provider), n.reset(), s.reset({
61
- status: "scanned"
62
- }), j.reset(), r.chooseMethod = o.provider, r.walletMethod = "";
63
- const i = B?.sourceAppPid;
64
- try {
65
- s.loading = !0, s.status = "scanned";
66
- const a = await ro(o, {
67
- action: n.action,
68
- ...B
69
- }), g = Eo({ returnDomain: !1 });
70
- v.remove("connected_did", g), v.remove("connected_pk", g), v.remove("connected_wallet_os", g), a?.sessionToken && (localStorage.setItem(uo, o.provider), await T(
71
- {
72
- ...a,
73
- encrypted: !1
74
- },
75
- (po) => po,
76
- {
77
- sourceAppPid: i,
78
- connected_app: Wo(n.appInfo, n.memberAppInfo)
79
- }
80
- ), s.loading = !1, s.status = "succeed");
81
- } catch (a) {
82
- So.error(`Failed login OAuth: ${o.provider}`, a);
83
- const g = ko(a, lo("loginOAuthFailed"));
84
- s.loading = !1, s.error = g, s.status = "error", await io({ provider: o.provider }), W(new Error(g));
85
- }
86
- }), H = c(async () => {
87
- n.reset(), await x(), n.status = "created", r.chooseMethod = "wallet", r.walletMethod = "";
88
- }), K = c(async () => {
89
- localStorage.setItem(L, t.WALLET), n.reset(), await x(), n.status = "created", r.chooseMethod = "wallet";
90
- const o = C.current?.connect;
91
- r.retryConnect = () => {
92
- o(H);
93
- };
94
- }), V = c(() => {
95
- localStorage.setItem(L, t.WALLET), n.status = "scanned", r.chooseMethod = "wallet-web";
96
- const o = O.current.connect;
97
- r.retryConnect = async () => {
98
- await x(), n.error = "", n.status = "scanned", o();
99
- };
100
- }), co = c(() => {
101
- y(!1);
102
- }), P = yo(() => d.length === 1 && d[0].provider === t.WALLET, [d]);
103
- X(() => {
104
- p && P && !h.mobile.any && !f && y(!0);
105
- }, [p, P, h.mobile.any, y, f]);
106
- const Y = d.some((o) => o.provider === t.EMAIL), Z = Ro({ baseUrl: oo }), mo = c(() => {
107
- if (D && d.some((o) => o.name === t.EMAIL) && F.some((o) => o.name === t.EMAIL)) {
108
- const o = U(t.EMAIL);
109
- o.state.status === "idle" && (localStorage.setItem(L, t.EMAIL), o.state.reset(), o.state.magicToken = D, r.chooseMethod = t.EMAIL, ao(o), Q());
110
- }
111
- });
112
- X(() => {
113
- const o = [];
114
- if (Y) {
115
- const i = U(t.EMAIL);
116
- i && i.baseUrl === Z.baseUrl ? o.push(i) : o.push(Z);
117
- }
118
- so(o), r.retryConnect = H, setTimeout(() => {
119
- mo();
120
- }, 100);
121
- }, [Y]);
122
- const $ = d.map((o) => {
123
- if (o.provider === t.WALLET)
124
- return h.mobile.any && !f ? /* @__PURE__ */ l(
125
- Co,
126
- {
127
- t: I,
128
- isLatest: u && u === J.MOBILE,
129
- ref: C,
130
- tokenState: n,
131
- sx: [m === "small" ? { p: 1 } : { p: 2 }],
132
- locale: G,
133
- tokenKey: S,
134
- disableSwitchApp: _,
135
- onClick: K
136
- },
137
- t.WALLET
138
- ) : p || !p && (no || R) && (!h.mobile.any || R) ? /* @__PURE__ */ l(
139
- Oo,
140
- {
141
- t: I,
142
- isLatest: u && u === J.WEB,
143
- ref: O,
144
- tokenState: n,
145
- webWalletUrl: b,
146
- sx: [m === "small" ? { p: 1 } : { p: 2 }],
147
- disableSwitchApp: _,
148
- autoConnect: !p,
149
- onClick: () => {
150
- p ? y(!0) : V();
151
- }
152
- },
153
- t.WALLET
154
- ) : null;
155
- if (o.provider === t.PASSKEY)
156
- return k === "none" ? null : /* @__PURE__ */ l(
157
- Do,
158
- {
159
- ref: N,
160
- onSuccess: T,
161
- onError: W,
162
- tokenState: n,
163
- behavior: k,
164
- sx: [m === "small" ? { p: 1 } : { p: 2 }],
165
- onClick: () => {
166
- localStorage.setItem(L, t.PASSKEY);
167
- const i = N.current.connect;
168
- r.chooseMethod = "passkey", r.walletMethod = "", r.retryConnect = () => {
169
- j.verifying = !0, r.chooseMethod = "passkey", i();
170
- };
171
- },
172
- slotProps: {
173
- icon: {
174
- sx: {
175
- fontSize: A,
176
- "& svg": {
177
- fontSize: A,
178
- width: "1em",
179
- height: "1em"
180
- }
181
- }
182
- }
183
- }
184
- },
185
- t.PASSKEY
186
- );
187
- if (o.provider === t.EMAIL) {
188
- const i = F.find((a) => a.name === t.EMAIL);
189
- return i ? i?.renderListItem({
190
- key: i.name,
191
- sx: [m === "small" ? { p: 1 } : { p: 2 }]
192
- // forceUpdate,
193
- }) : null;
194
- }
195
- return o.type === "oauth" ? /* @__PURE__ */ l(
196
- Po,
197
- {
198
- t: I,
199
- isLatest: u && u === o.provider,
200
- title: go[o.provider],
201
- icon: /* @__PURE__ */ l(
202
- Mo,
203
- {
204
- provider: o.provider,
205
- sx: {
206
- transform: "scale(0.95)",
207
- width: A,
208
- height: A,
209
- color: "text.primary"
210
- }
211
- }
212
- ),
213
- onClick: () => {
214
- q(o), r.retryConnect = () => {
215
- q(o);
216
- };
217
- },
218
- sx: [m === "small" ? { p: 1.2 } : { p: 2 }]
219
- },
220
- o.provider
221
- ) : null;
222
- }).filter(Boolean);
223
- return /* @__PURE__ */ l(E, { className: "did-connect__choose", sx: Ao({ flex: 1 }, z?.root?.sx), children: /* @__PURE__ */ l(
224
- E,
225
- {
226
- sx: {
227
- display: "flex",
228
- flexDirection: "column",
229
- gap: 2
230
- },
231
- children: /* @__PURE__ */ ho(
232
- E,
233
- {
234
- sx: [
235
- {
236
- display: "flex",
237
- flexDirection: "column",
238
- ...f && !h.mobile.any ? { alignItems: "center", gap: 0 } : { gap: 1.5 }
239
- }
240
- ],
241
- children: [
242
- f && !h.mobile.any ? /* @__PURE__ */ l(
243
- vo,
244
- {
245
- qrcode: to,
246
- tokenState: n,
247
- webWalletUrl: b,
248
- size: m,
249
- disableSwitchApp: _,
250
- tokenKey: S,
251
- walletLoginRef: C,
252
- webLoginRef: O,
253
- onMobileLoginClick: K,
254
- onWebLoginClick: V,
255
- onBack: P ? void 0 : co
256
- }
257
- ) : /* @__PURE__ */ l(
258
- E,
259
- {
260
- sx: {
261
- display: "grid",
262
- gridTemplateColumns: "repeat(12, 1fr)",
263
- gap: 1.5,
264
- ".arc-login-item:nth-child(-n+3)": {
265
- gridColumn: "span 12"
266
- },
267
- // 当登录项大于等于 5 时,第三个登录项增加一个 marginBottom,用于分割独占一行的和一行多个的登录项
268
- ".arc-login-item:nth-child(3):nth-last-child(n+3)": {
269
- mb: 1
270
- },
271
- ".arc-login-item:nth-child(4):last-child": {
272
- gridColumn: "span 12"
273
- },
274
- ".arc-login-item:nth-child(4):nth-last-child(2), .arc-login-item:nth-child(4):nth-last-child(2), .arc-login-item:nth-child(4):nth-last-child(2) ~ .arc-login-item": {
275
- gridColumn: "span 6",
276
- justifyContent: "center",
277
- ".arc-login-item__body, .other-item-icon": {
278
- display: "none"
279
- }
280
- },
281
- ".arc-login-item:nth-child(4):nth-last-child(3), .arc-login-item:nth-child(4):nth-last-child(3) ~ .arc-login-item": {
282
- justifyContent: "center",
283
- gridColumn: "span 4",
284
- ".arc-login-item__body, .other-item-icon": {
285
- display: "none"
286
- }
287
- },
288
- ".arc-login-item:nth-child(4):nth-last-child(4), .arc-login-item:nth-child(4):nth-last-child(4) ~ .arc-login-item": {
289
- gridColumn: "span 3",
290
- justifyContent: "center",
291
- ".arc-login-item__body, .other-item-icon": {
292
- display: "none"
293
- }
294
- },
295
- "&:has(.arc-login-item:nth-child(8)) .arc-login-item:nth-child(n+4)": {
296
- gridColumn: "span 3",
297
- justifyContent: "center",
298
- ".arc-login-item__body, .other-item-icon": {
299
- display: "none"
300
- }
301
- }
302
- },
303
- children: $.length > 0 ? $ : /* @__PURE__ */ l(
304
- xo,
305
- {
306
- className: "arc-login-item",
307
- sx: {
308
- ".empty-content": {
309
- textAlign: "center"
310
- }
311
- },
312
- children: I("noAuthenticationProvider")
313
- }
314
- )
315
- }
316
- ),
317
- eo.map((o) => o || null)
318
- ]
319
- }
320
- )
321
- }
322
- ) });
323
- }
324
- Bo.propTypes = {
325
- onSuccess: e.func,
326
- onError: e.func,
327
- size: e.oneOf(["small", "normal", "large"]),
328
- tokenState: e.object.isRequired,
329
- webWalletUrl: e.string,
330
- tokenKey: e.string.isRequired,
331
- passkeyBehavior: e.oneOf(["none", "both", "only-existing", "only-new"]),
332
- onReset: e.func,
333
- providerList: e.array,
334
- slotProps: e.object,
335
- disableSwitchApp: e.bool,
336
- forceUpdate: e.func,
337
- magicToken: e.string,
338
- baseUrl: e.string,
339
- customItems: e.arrayOf(e.node),
340
- qrcode: e.node,
341
- hideQRCode: e.bool
342
- };
343
- export {
344
- Bo as default
345
- };