@arcblock/did-connect-react 3.4.14 → 3.5.0

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 (208) hide show
  1. package/dist/standalone/did-connect-react.css +1 -0
  2. package/dist/standalone/index.js +133700 -0
  3. package/lib/Connect/components/login-item/connect-choose-list.js +111 -111
  4. package/lib/Connect/components/login-item/connect-provider-list.js +180 -180
  5. package/lib/Connect/components/login-item/mobile-login-item.js +56 -56
  6. package/lib/Connect/components/login-item/passkey-login-item.js +27 -29
  7. package/lib/Connect/components/login-item/web-login-item.js +31 -29
  8. package/lib/Connect/connect.js +202 -197
  9. package/lib/Connect/contexts/state.js +19 -17
  10. package/lib/Connect/hooks/provider-list.js +33 -33
  11. package/lib/Connect/plugins/email/list-item.js +14 -14
  12. package/lib/Connect/plugins/email/placeholder.js +77 -76
  13. package/lib/package.json.js +1 -1
  14. package/package.json +14 -9
  15. package/.aigne/doc-smith/config.yaml +0 -85
  16. package/.aigne/doc-smith/history.yaml +0 -6
  17. package/.aigne/doc-smith/output/structure-plan.json +0 -204
  18. package/.aigne/doc-smith/translation-cache.yaml +0 -11
  19. package/.aigne/doc-smith/upload-cache.yaml +0 -213
  20. package/docs/_sidebar.md +0 -18
  21. package/docs/advanced-authentication-methods.ja.md +0 -261
  22. package/docs/advanced-authentication-methods.md +0 -261
  23. package/docs/advanced-authentication-methods.zh-TW.md +0 -261
  24. package/docs/advanced-authentication-methods.zh.md +0 -261
  25. package/docs/advanced-utilities.ja.md +0 -132
  26. package/docs/advanced-utilities.md +0 -132
  27. package/docs/advanced-utilities.zh-TW.md +0 -132
  28. package/docs/advanced-utilities.zh.md +0 -132
  29. package/docs/advanced.ja.md +0 -95
  30. package/docs/advanced.md +0 -95
  31. package/docs/advanced.zh-TW.md +0 -95
  32. package/docs/advanced.zh.md +0 -95
  33. package/docs/api-reference.ja.md +0 -178
  34. package/docs/api-reference.md +0 -178
  35. package/docs/api-reference.zh-TW.md +0 -178
  36. package/docs/api-reference.zh.md +0 -178
  37. package/docs/assets/diagram/core-components-session-provider-01.ja.jpg +0 -0
  38. package/docs/assets/diagram/core-components-session-provider-01.jpg +0 -0
  39. package/docs/assets/diagram/core-components-session-provider-01.zh-TW.jpg +0 -0
  40. package/docs/assets/diagram/core-components-session-provider-01.zh.jpg +0 -0
  41. package/docs/assets/diagram/did-connect-diagram-0.ja.jpg +0 -0
  42. package/docs/assets/diagram/did-connect-diagram-0.jpg +0 -0
  43. package/docs/assets/diagram/did-connect-diagram-0.zh-TW.jpg +0 -0
  44. package/docs/assets/diagram/did-connect-diagram-0.zh.jpg +0 -0
  45. package/docs/assets/diagram/overview-01.ja.jpg +0 -0
  46. package/docs/assets/diagram/overview-01.jpg +0 -0
  47. package/docs/assets/diagram/overview-01.zh-TW.jpg +0 -0
  48. package/docs/assets/diagram/overview-01.zh.jpg +0 -0
  49. package/docs/assets/diagram/use-connect-diagram-0.ja.jpg +0 -0
  50. package/docs/assets/diagram/use-connect-diagram-0.jpg +0 -0
  51. package/docs/assets/diagram/use-connect-diagram-0.zh-TW.jpg +0 -0
  52. package/docs/assets/diagram/use-connect-diagram-0.zh.jpg +0 -0
  53. package/docs/core-components-did-connect.ja.md +0 -166
  54. package/docs/core-components-did-connect.md +0 -166
  55. package/docs/core-components-did-connect.zh-TW.md +0 -166
  56. package/docs/core-components-did-connect.zh.md +0 -166
  57. package/docs/core-components-session-provider.ja.md +0 -197
  58. package/docs/core-components-session-provider.md +0 -197
  59. package/docs/core-components-session-provider.zh-TW.md +0 -197
  60. package/docs/core-components-session-provider.zh.md +0 -197
  61. package/docs/core-components.ja.md +0 -16
  62. package/docs/core-components.md +0 -16
  63. package/docs/core-components.zh-TW.md +0 -16
  64. package/docs/core-components.zh.md +0 -16
  65. package/docs/getting-started.ja.md +0 -138
  66. package/docs/getting-started.md +0 -138
  67. package/docs/getting-started.zh-TW.md +0 -138
  68. package/docs/getting-started.zh.md +0 -138
  69. package/docs/hooks-use-connect.ja.md +0 -178
  70. package/docs/hooks-use-connect.md +0 -178
  71. package/docs/hooks-use-connect.zh-TW.md +0 -178
  72. package/docs/hooks-use-connect.zh.md +0 -178
  73. package/docs/hooks-use-did.ja.md +0 -107
  74. package/docs/hooks-use-did.md +0 -107
  75. package/docs/hooks-use-did.zh-TW.md +0 -107
  76. package/docs/hooks-use-did.zh.md +0 -107
  77. package/docs/hooks-use-oauth-passkey.ja.md +0 -188
  78. package/docs/hooks-use-oauth-passkey.md +0 -188
  79. package/docs/hooks-use-oauth-passkey.zh-TW.md +0 -188
  80. package/docs/hooks-use-oauth-passkey.zh.md +0 -188
  81. package/docs/hooks.ja.md +0 -23
  82. package/docs/hooks.md +0 -23
  83. package/docs/hooks.zh-TW.md +0 -23
  84. package/docs/hooks.zh.md +0 -23
  85. package/docs/overview.ja.md +0 -119
  86. package/docs/overview.md +0 -119
  87. package/docs/overview.zh-TW.md +0 -119
  88. package/docs/overview.zh.md +0 -119
  89. package/docs/ui-components-address.ja.md +0 -121
  90. package/docs/ui-components-address.md +0 -121
  91. package/docs/ui-components-address.zh-TW.md +0 -121
  92. package/docs/ui-components-address.zh.md +0 -121
  93. package/docs/ui-components-avatar.ja.md +0 -65
  94. package/docs/ui-components-avatar.md +0 -65
  95. package/docs/ui-components-avatar.zh-TW.md +0 -65
  96. package/docs/ui-components-avatar.zh.md +0 -65
  97. package/docs/ui-components-button.ja.md +0 -99
  98. package/docs/ui-components-button.md +0 -99
  99. package/docs/ui-components-button.zh-TW.md +0 -99
  100. package/docs/ui-components-button.zh.md +0 -99
  101. package/docs/ui-components-logo.ja.md +0 -52
  102. package/docs/ui-components-logo.md +0 -52
  103. package/docs/ui-components-logo.zh-TW.md +0 -52
  104. package/docs/ui-components-logo.zh.md +0 -52
  105. package/docs/ui-components.ja.md +0 -57
  106. package/docs/ui-components.md +0 -57
  107. package/docs/ui-components.zh-TW.md +0 -57
  108. package/docs/ui-components.zh.md +0 -57
  109. package/glossary.md +0 -1
  110. package/src/Address/index.jsx +0 -2
  111. package/src/Avatar/index.jsx +0 -2
  112. package/src/Button/Button.stories.jsx +0 -7
  113. package/src/Button/index.jsx +0 -21
  114. package/src/Connect/Connect.stories.jsx +0 -34
  115. package/src/Connect/assets/locale.js +0 -149
  116. package/src/Connect/assets/login-bg.png +0 -0
  117. package/src/Connect/assets/login-slogan.js +0 -7
  118. package/src/Connect/components/action-button.jsx +0 -22
  119. package/src/Connect/components/app-tips.jsx +0 -156
  120. package/src/Connect/components/auto-height.jsx +0 -38
  121. package/src/Connect/components/back-button.jsx +0 -24
  122. package/src/Connect/components/connect-status.jsx +0 -259
  123. package/src/Connect/components/did-connect-title.jsx +0 -107
  124. package/src/Connect/components/download-tips.jsx +0 -55
  125. package/src/Connect/components/loading.jsx +0 -25
  126. package/src/Connect/components/login-item/connect-choose-list.jsx +0 -317
  127. package/src/Connect/components/login-item/connect-provider-list.jsx +0 -462
  128. package/src/Connect/components/login-item/login-method-item.jsx +0 -139
  129. package/src/Connect/components/login-item/mobile-login-item.jsx +0 -181
  130. package/src/Connect/components/login-item/passkey-login-item.jsx +0 -54
  131. package/src/Connect/components/login-item/wallet-login-options.jsx +0 -129
  132. package/src/Connect/components/login-item/web-login-item.jsx +0 -157
  133. package/src/Connect/components/mask-overlay.jsx +0 -32
  134. package/src/Connect/components/refresh-overlay.jsx +0 -52
  135. package/src/Connect/components/switch-app.jsx +0 -69
  136. package/src/Connect/connect.jsx +0 -617
  137. package/src/Connect/contexts/state.jsx +0 -234
  138. package/src/Connect/fallback-connect.jsx +0 -47
  139. package/src/Connect/fullpage.jsx +0 -3
  140. package/src/Connect/hooks/auth-url.js +0 -31
  141. package/src/Connect/hooks/method-list.js +0 -121
  142. package/src/Connect/hooks/page-show.js +0 -24
  143. package/src/Connect/hooks/provider-list.js +0 -165
  144. package/src/Connect/hooks/security.js +0 -40
  145. package/src/Connect/hooks/token.js +0 -627
  146. package/src/Connect/hooks/use-apps.js +0 -69
  147. package/src/Connect/hooks/use-quick-connect.js +0 -119
  148. package/src/Connect/index.jsx +0 -21
  149. package/src/Connect/landing-page.jsx +0 -3
  150. package/src/Connect/plugins/email/index.jsx +0 -85
  151. package/src/Connect/plugins/email/list-item.jsx +0 -34
  152. package/src/Connect/plugins/email/placeholder.jsx +0 -365
  153. package/src/Connect/plugins/index.js +0 -2
  154. package/src/Connect/use-connect.jsx +0 -321
  155. package/src/Connect/with-blocklet.jsx +0 -26
  156. package/src/Connect/with-bridge-call.jsx +0 -138
  157. package/src/Federated/context.jsx +0 -93
  158. package/src/Federated/index.jsx +0 -1
  159. package/src/Logo/index.jsx +0 -2
  160. package/src/OAuth/bind-conflict-alert.jsx +0 -37
  161. package/src/OAuth/context.jsx +0 -407
  162. package/src/OAuth/guest.svg +0 -20
  163. package/src/OAuth/index.jsx +0 -1
  164. package/src/OAuth/passport-switcher.jsx +0 -2
  165. package/src/Passkey/actions.jsx +0 -217
  166. package/src/Passkey/constants.js +0 -2
  167. package/src/Passkey/context.jsx +0 -395
  168. package/src/Passkey/dialog.jsx +0 -401
  169. package/src/Passkey/icon.jsx +0 -10
  170. package/src/Passkey/index.jsx +0 -2
  171. package/src/Service/index.jsx +0 -96
  172. package/src/Session/assets/did-spaces-guide-cover.svg +0 -1
  173. package/src/Session/assets/did-spaces-guide-icon.svg +0 -7
  174. package/src/Session/context.jsx +0 -7
  175. package/src/Session/did-spaces-guide.jsx +0 -173
  176. package/src/Session/handler.jsx +0 -98
  177. package/src/Session/hooks/use-federated.js +0 -91
  178. package/src/Session/hooks/use-mobile.jsx +0 -6
  179. package/src/Session/hooks/use-protected-routes.js +0 -16
  180. package/src/Session/hooks/use-session-token.js +0 -400
  181. package/src/Session/hooks/use-verify.jsx +0 -76
  182. package/src/Session/index.jsx +0 -1789
  183. package/src/Session/libs/constants.js +0 -17
  184. package/src/Session/libs/did-spaces.js +0 -38
  185. package/src/Session/libs/federated.js +0 -82
  186. package/src/Session/libs/index.js +0 -5
  187. package/src/Session/libs/locales.js +0 -160
  188. package/src/Session/libs/login-mobile.js +0 -80
  189. package/src/Session/window-focus-aware.jsx +0 -28
  190. package/src/SessionManager/index.jsx +0 -2
  191. package/src/Storage/engine/cookie.js +0 -25
  192. package/src/Storage/engine/local-storage.js +0 -57
  193. package/src/Storage/index.js +0 -25
  194. package/src/User/index.js +0 -4
  195. package/src/User/use-did.js +0 -80
  196. package/src/User/wrap-did.jsx +0 -18
  197. package/src/WebWalletSWKeeper/index.jsx +0 -3
  198. package/src/components/PassportSwitcher.jsx +0 -160
  199. package/src/constant.js +0 -27
  200. package/src/error.js +0 -6
  201. package/src/hooks/use-locale.jsx +0 -6
  202. package/src/index.js +0 -32
  203. package/src/locales/en.jsx +0 -15
  204. package/src/locales/index.jsx +0 -13
  205. package/src/locales/zh.jsx +0 -15
  206. package/src/types.d.ts +0 -355
  207. package/src/utils.js +0 -413
  208. package/vite.config.mjs +0 -29
@@ -1,317 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import { Box } from '@mui/material';
3
- import { LOGIN_PROVIDER, LOGIN_PROVIDER_ICON_SIZE, LOGIN_PROVIDER_NAME } from '@arcblock/ux/lib/Util/constant';
4
- import { getWebWalletUrl } from '@arcblock/ux/lib/Util/wallet';
5
- import noop from 'lodash/noop';
6
- import { useMemoizedFn } from 'ahooks';
7
- import Cookie from 'js-cookie';
8
- import { getCookieOptions } from '@arcblock/ux/lib/Util';
9
- import { useEffect, useRef } from 'react';
10
- import { mergeSx } from '@arcblock/ux/lib/Util/style';
11
- import ProviderIcon from '@arcblock/ux/lib/DIDConnect/provider-icon';
12
- import { GA_LAST_LOGIN_METHOD } from '@arcblock/ux/lib/withTracker/constant';
13
-
14
- import MobileLoginItem from './mobile-login-item';
15
- import WebLoginItem from './web-login-item';
16
- import LoginMethodItem from './login-method-item';
17
- import { useOAuth } from '../../../OAuth';
18
- import { useStateContext } from '../../contexts/state';
19
- import { getApiErrorMessage, getAppId, logger } from '../../../utils';
20
- import PasskeyLoginItem from './passkey-login-item';
21
- import { usePasskey } from '../../../Passkey';
22
- import { useEmailPlugin } from '../../plugins';
23
-
24
- export default function ConnectChooseList({
25
- onSuccess = noop,
26
- onError = noop,
27
- size = 'small',
28
- tokenState,
29
- webWalletUrl = getWebWalletUrl(),
30
- tokenKey,
31
- passkeyBehavior = 'none',
32
- onReset = noop,
33
- showMobileLogin = true,
34
- showOAuthLogin = true,
35
- showPasskeyLogin = true,
36
- showWebLogin = true,
37
- showEmailLogin = true,
38
- oauthProviderList = [],
39
- slotProps = {},
40
- disableSwitchApp = false,
41
- forceUpdate = noop,
42
- magicToken = undefined,
43
- baseUrl = '/',
44
- customItems = [],
45
- }) {
46
- const walletLoginRef = useRef(null);
47
- const webLoginRef = useRef(null);
48
- const passkeyLoginRef = useRef(null);
49
- const { loginOAuth, logoutOAuth, t, oauthState } = useOAuth();
50
- const { passkeyState } = usePasskey();
51
- const { extraParams, locale, connectState, plugins, setPlugins, setSelectedPlugin, getPlugin, lastLoginMethod } =
52
- useStateContext();
53
-
54
- const handleLoginOAuth = useMemoizedFn(async (item) => {
55
- localStorage.setItem(GA_LAST_LOGIN_METHOD, item.provider);
56
- tokenState.reset();
57
- oauthState.reset({
58
- status: 'scanned',
59
- });
60
- passkeyState.reset();
61
- connectState.chooseMethod = item.provider;
62
-
63
- const sourceAppPid = extraParams?.sourceAppPid;
64
- try {
65
- oauthState.loading = true;
66
- oauthState.status = 'scanned';
67
- const loginResult = await loginOAuth(item, {
68
- action: tokenState.action,
69
- ...extraParams,
70
- });
71
- const cookieOptions = getCookieOptions({ returnDomain: false });
72
- Cookie.remove('connected_did', cookieOptions);
73
- Cookie.remove('connected_pk', cookieOptions);
74
- Cookie.remove('connected_wallet_os', cookieOptions);
75
-
76
- if (loginResult?.sessionToken) {
77
- await onSuccess(
78
- {
79
- ...loginResult,
80
- encrypted: false,
81
- },
82
- (val) => val,
83
- {
84
- sourceAppPid,
85
- connected_app: getAppId(tokenState.appInfo, tokenState.memberAppInfo),
86
- }
87
- );
88
- oauthState.loading = false;
89
- oauthState.status = 'succeed';
90
- }
91
- } catch (e) {
92
- logger.error(`Failed login OAuth: ${item.provider}`, e);
93
- const errorMessage = getApiErrorMessage(e, t('loginOAuthFailed'));
94
- oauthState.loading = false;
95
- oauthState.error = errorMessage;
96
- oauthState.status = 'error';
97
- await logoutOAuth({ provider: item.provider });
98
- onError(new Error(errorMessage));
99
- }
100
- });
101
-
102
- const defaultRetryConnect = useMemoizedFn(async () => {
103
- tokenState.reset();
104
- await onReset();
105
- tokenState.status = 'created';
106
- connectState.chooseMethod = 'wallet';
107
- });
108
-
109
- const emailPlugin = useEmailPlugin({ baseUrl });
110
-
111
- const setupMagicToken = useMemoizedFn(() => {
112
- if (magicToken && showEmailLogin && plugins.some((plugin) => plugin.name === LOGIN_PROVIDER.EMAIL)) {
113
- const plugin = getPlugin(LOGIN_PROVIDER.EMAIL);
114
- if (plugin.state.status === 'idle') {
115
- localStorage.setItem(GA_LAST_LOGIN_METHOD, LOGIN_PROVIDER.EMAIL);
116
- plugin.state.reset();
117
- plugin.state.magicToken = magicToken;
118
- connectState.chooseMethod = LOGIN_PROVIDER.EMAIL;
119
- setSelectedPlugin(plugin);
120
- forceUpdate();
121
- }
122
- }
123
- });
124
-
125
- // 考虑到切换账号的情况,此时 showEmailLogin 会根据当前上下文的 blocklet 发生变化,所以需要监听 showEmailLogin 的变化
126
- useEffect(() => {
127
- const finalList = [];
128
- if (showEmailLogin) {
129
- // 尽可能确保在 baseUrl 不变的情况下,不更改 email 插件的数据,以确保页面的展示不会出现闪烁
130
- const prevEmailPlugin = getPlugin(LOGIN_PROVIDER.EMAIL);
131
- if (prevEmailPlugin && prevEmailPlugin.baseUrl === emailPlugin.baseUrl) {
132
- finalList.push(prevEmailPlugin);
133
- } else {
134
- finalList.push(emailPlugin);
135
- }
136
- }
137
- setPlugins(finalList);
138
- connectState.retryConnect = defaultRetryConnect;
139
- // HACK: 必须要设置延迟,不然拿不到最新的 plugins 的值
140
- setTimeout(() => {
141
- setupMagicToken();
142
- }, 100);
143
- // eslint-disable-next-line react-hooks/exhaustive-deps
144
- }, [showEmailLogin]);
145
-
146
- return (
147
- <Box className="did-connect__choose" sx={mergeSx({ flex: 1 }, slotProps?.root?.sx)}>
148
- <Box
149
- sx={{
150
- display: 'flex',
151
- flexDirection: 'column',
152
- gap: 2,
153
- }}>
154
- <Box
155
- sx={[
156
- {
157
- display: 'flex',
158
- flexDirection: 'column',
159
- gap: 1.5,
160
- },
161
- ]}>
162
- {showMobileLogin && (
163
- <MobileLoginItem
164
- t={t}
165
- isLatest={lastLoginMethod && lastLoginMethod === LOGIN_PROVIDER.WALLET}
166
- ref={walletLoginRef}
167
- tokenState={tokenState}
168
- sx={[size === 'small' ? { p: 1 } : { p: 2 }]}
169
- locale={locale}
170
- tokenKey={tokenKey}
171
- disableSwitchApp={disableSwitchApp}
172
- onClick={async () => {
173
- localStorage.setItem(GA_LAST_LOGIN_METHOD, LOGIN_PROVIDER.WALLET);
174
- tokenState.reset();
175
- await onReset();
176
- tokenState.status = 'created';
177
- connectState.chooseMethod = 'wallet';
178
- const connectFn = walletLoginRef.current?.connect;
179
- connectState.retryConnect = () => {
180
- connectFn(defaultRetryConnect);
181
- };
182
- }}
183
- />
184
- )}
185
- {showWebLogin && (
186
- <WebLoginItem
187
- isLatest={lastLoginMethod && lastLoginMethod === LOGIN_PROVIDER.WALLET}
188
- ref={webLoginRef}
189
- tokenState={tokenState}
190
- webWalletUrl={webWalletUrl}
191
- t={t}
192
- sx={[size === 'small' ? { p: 1 } : { p: 2 }]}
193
- disableSwitchApp={disableSwitchApp}
194
- onClick={() => {
195
- localStorage.setItem(GA_LAST_LOGIN_METHOD, LOGIN_PROVIDER.WALLET);
196
- // HACK: 在点击插件登录时,直接将状态置为扫码中,避免插件登录时的状态切换
197
- tokenState.status = 'scanned';
198
- connectState.chooseMethod = 'wallet-web';
199
- const connectFn = webLoginRef.current.connect;
200
- connectState.retryConnect = async () => {
201
- await onReset();
202
- tokenState.error = '';
203
- tokenState.status = 'scanned';
204
- connectFn();
205
- };
206
- }}
207
- />
208
- )}
209
-
210
- {showOAuthLogin || showPasskeyLogin || showEmailLogin ? (
211
- <Box
212
- sx={[
213
- {
214
- display: 'flex',
215
- flexDirection: 'column',
216
- gap: 1.5,
217
- },
218
- ]}>
219
- {/* TODO: @zhanghan 需要将所有 method 转换为 plugin 的形式注入 */}
220
- {plugins.map((plugin) =>
221
- plugin.renderListItem({
222
- key: plugin.name,
223
- sx: [size === 'small' ? { p: 1 } : { p: 2 }],
224
- // forceUpdate,
225
- })
226
- )}
227
- {showOAuthLogin
228
- ? oauthProviderList.map((item) => (
229
- <LoginMethodItem
230
- t={t}
231
- isLatest={lastLoginMethod && lastLoginMethod === item.provider}
232
- key={item.provider}
233
- title={LOGIN_PROVIDER_NAME[item.provider]}
234
- icon={
235
- <ProviderIcon
236
- provider={item.provider}
237
- sx={{
238
- transform: 'scale(0.95)',
239
- width: LOGIN_PROVIDER_ICON_SIZE,
240
- height: LOGIN_PROVIDER_ICON_SIZE,
241
- color: 'text.primary',
242
- }}
243
- />
244
- }
245
- onClick={() => {
246
- handleLoginOAuth(item);
247
- connectState.retryConnect = () => {
248
- handleLoginOAuth(item);
249
- };
250
- }}
251
- sx={[size === 'small' ? { p: 1 } : { p: 2 }]}
252
- />
253
- ))
254
- : null}
255
- {showPasskeyLogin ? (
256
- <PasskeyLoginItem
257
- ref={passkeyLoginRef}
258
- onSuccess={onSuccess}
259
- onError={onError}
260
- tokenState={tokenState}
261
- behavior={passkeyBehavior}
262
- sx={[size === 'small' ? { p: 1 } : { p: 2 }]}
263
- onClick={() => {
264
- localStorage.setItem(GA_LAST_LOGIN_METHOD, LOGIN_PROVIDER.PASSKEY);
265
- const connectFn = passkeyLoginRef.current.connect;
266
- connectState.chooseMethod = 'passkey';
267
- connectState.retryConnect = () => {
268
- passkeyState.verifying = true;
269
- connectState.chooseMethod = 'passkey';
270
- connectFn();
271
- };
272
- }}
273
- slotProps={{
274
- icon: {
275
- sx: {
276
- fontSize: LOGIN_PROVIDER_ICON_SIZE,
277
- '& svg': {
278
- fontSize: LOGIN_PROVIDER_ICON_SIZE,
279
- width: '1em',
280
- height: '1em',
281
- },
282
- },
283
- },
284
- }}
285
- />
286
- ) : null}
287
- </Box>
288
- ) : null}
289
- {customItems.map((item) => (!item ? null : item))}
290
- </Box>
291
- </Box>
292
- </Box>
293
- );
294
- }
295
-
296
- ConnectChooseList.propTypes = {
297
- onSuccess: PropTypes.func,
298
- onError: PropTypes.func,
299
- size: PropTypes.oneOf(['small', 'normal', 'large']),
300
- tokenState: PropTypes.object.isRequired,
301
- webWalletUrl: PropTypes.string,
302
- tokenKey: PropTypes.string.isRequired,
303
- passkeyBehavior: PropTypes.oneOf(['none', 'both', 'only-existing', 'only-new']),
304
- onReset: PropTypes.func,
305
- showMobileLogin: PropTypes.bool,
306
- showOAuthLogin: PropTypes.bool,
307
- showPasskeyLogin: PropTypes.bool,
308
- showWebLogin: PropTypes.bool,
309
- showEmailLogin: PropTypes.bool,
310
- oauthProviderList: PropTypes.array,
311
- slotProps: PropTypes.object,
312
- disableSwitchApp: PropTypes.bool,
313
- forceUpdate: PropTypes.func,
314
- magicToken: PropTypes.string,
315
- baseUrl: PropTypes.string,
316
- customItems: PropTypes.arrayOf(PropTypes.node),
317
- };