@arcblock/ux 3.4.15 → 3.5.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.
- package/lib/package.json.js +1 -1
- package/package.json +10 -7
- package/src/ActionButton/ActionButton.stories.jsx +0 -61
- package/src/ActionButton/index.jsx +0 -106
- package/src/ActivityIndicator/ActivityIndicator.stories.jsx +0 -9
- package/src/ActivityIndicator/index.jsx +0 -140
- package/src/Address/Address.stories.jsx +0 -38
- package/src/Address/compact-text.jsx +0 -76
- package/src/Address/did-address.tsx +0 -223
- package/src/Address/index.tsx +0 -21
- package/src/Address/responsive-did-address.tsx +0 -154
- package/src/Alert/Alert.stories.jsx +0 -100
- package/src/Alert/index.jsx +0 -130
- package/src/AnimationWaiter/AnimationWaiter.stories.jsx +0 -35
- package/src/AnimationWaiter/dark-animation.json +0 -1
- package/src/AnimationWaiter/default-animation.json +0 -1
- package/src/AnimationWaiter/index.jsx +0 -296
- package/src/Async/index.tsx +0 -44
- package/src/Avatar/Avatar.stories.jsx +0 -11
- package/src/Avatar/did-motif.jsx +0 -38
- package/src/Avatar/etherscan-blockies.js +0 -81
- package/src/Avatar/index.jsx +0 -195
- package/src/Badge/Badge.stories.jsx +0 -41
- package/src/Badge/index.jsx +0 -101
- package/src/Blocklet/Blocklet.stories.jsx +0 -21
- package/src/Blocklet/blocklet.jsx +0 -276
- package/src/Blocklet/index.js +0 -5
- package/src/Blocklet/utils.jsx +0 -58
- package/src/BlockletContext/index.tsx +0 -72
- package/src/BlockletNFT/BlockletNFT.stories.jsx +0 -21
- package/src/BlockletNFT/index.jsx +0 -378
- package/src/BlockletV2/Blocklet.stories.jsx +0 -34
- package/src/BlockletV2/blocklet.tsx +0 -247
- package/src/BlockletV2/components/icon-text.tsx +0 -47
- package/src/BlockletV2/components/tooltip-icon.tsx +0 -52
- package/src/BlockletV2/index.ts +0 -6
- package/src/BlockletV2/utils.js +0 -75
- package/src/Button/Button.stories.jsx +0 -24
- package/src/Button/index.js +0 -9
- package/src/Button/wrap.jsx +0 -126
- package/src/ButtonGroup/index.js +0 -16
- package/src/CardSelector/index.tsx +0 -136
- package/src/Center/Center.stories.jsx +0 -20
- package/src/Center/index.tsx +0 -33
- package/src/ClickToCopy/ClickToCopy.stories.jsx +0 -24
- package/src/ClickToCopy/copy-button.tsx +0 -43
- package/src/ClickToCopy/hook.ts +0 -42
- package/src/ClickToCopy/index.tsx +0 -96
- package/src/CloseButton/index.tsx +0 -37
- package/src/CodeBlock/CodeBlock.stories.jsx +0 -22
- package/src/CodeBlock/LightBox.tsx +0 -87
- package/src/CodeBlock/index.tsx +0 -217
- package/src/Colors/Colors.stories.jsx +0 -211
- package/src/Colors/index.ts +0 -4
- package/src/Colors/themes/default.ts +0 -8
- package/src/Colors/themes/did-connect.ts +0 -64
- package/src/Colors/themes/temp.ts +0 -52
- package/src/Config/Config.stories.jsx +0 -16
- package/src/Config/config-provider.tsx +0 -62
- package/src/Config/index.ts +0 -2
- package/src/Config/theme-mode-toggle.tsx +0 -38
- package/src/ContactForm/ContactForm.stories.jsx +0 -32
- package/src/ContactForm/index.tsx +0 -264
- package/src/CookieConsent/CookieConsent.stories.jsx +0 -33
- package/src/CookieConsent/index.tsx +0 -104
- package/src/CountDown/CountDown.stories.jsx +0 -15
- package/src/CountDown/index.tsx +0 -170
- package/src/DID/DID.stories.jsx +0 -37
- package/src/DID/index.tsx +0 -393
- package/src/DIDConnect/app-icon.tsx +0 -37
- package/src/DIDConnect/app-info-item.tsx +0 -93
- package/src/DIDConnect/auth-apps/auth-apps-info.tsx +0 -77
- package/src/DIDConnect/auth-apps/index.tsx +0 -278
- package/src/DIDConnect/auth-apps/switch-role.tsx +0 -47
- package/src/DIDConnect/did-connect-container.tsx +0 -326
- package/src/DIDConnect/did-connect-footer.tsx +0 -76
- package/src/DIDConnect/did-connect-logo.tsx +0 -8
- package/src/DIDConnect/icons/did-wallet-logo.tsx +0 -18
- package/src/DIDConnect/icons/github-logo.tsx +0 -17
- package/src/DIDConnect/index.ts +0 -11
- package/src/DIDConnect/landing-page.tsx +0 -218
- package/src/DIDConnect/powered-by.tsx +0 -48
- package/src/DIDConnect/provider-icon.tsx +0 -62
- package/src/DIDConnect/request-storage-access-api-dialog.tsx +0 -304
- package/src/DIDConnect/with-container.tsx +0 -323
- package/src/DIDConnect/with-ux-theme.tsx +0 -22
- package/src/DIDLogo/Logo.stories.jsx +0 -11
- package/src/DIDLogo/index.tsx +0 -168
- package/src/Datatable/CustomToolbar.jsx +0 -415
- package/src/Datatable/Datatable.stories.jsx +0 -92
- package/src/Datatable/DatatableContext.jsx +0 -35
- package/src/Datatable/TableSearch.jsx +0 -166
- package/src/Datatable/index.jsx +0 -652
- package/src/Datatable/utils.js +0 -161
- package/src/Dialog/Dialog.stories.jsx +0 -21
- package/src/Dialog/confirm.jsx +0 -143
- package/src/Dialog/dialog.jsx +0 -199
- package/src/Dialog/index.js +0 -4
- package/src/Dialog/types.d.ts +0 -20
- package/src/Dialog/use-confirm.jsx +0 -188
- package/src/DriftBot/index.tsx +0 -81
- package/src/Earth/Earth.stories.jsx +0 -39
- package/src/Earth/countries.json +0 -8057
- package/src/Earth/index.tsx +0 -515
- package/src/Earth/util.ts +0 -72
- package/src/Empty/Empty.stories.jsx +0 -23
- package/src/Empty/index.jsx +0 -48
- package/src/ErrorBoundary/ErrorBoundary.stories.jsx +0 -13
- package/src/ErrorBoundary/fallback.tsx +0 -85
- package/src/ErrorBoundary/index.ts +0 -1
- package/src/Footer/Footer.stories.jsx +0 -13
- package/src/Footer/index.tsx +0 -130
- package/src/Header/Header.stories.jsx +0 -30
- package/src/Header/addon-button.tsx +0 -41
- package/src/Header/auto-hidden.tsx +0 -31
- package/src/Header/header-addons.tsx +0 -37
- package/src/Header/header.tsx +0 -214
- package/src/Header/index.ts +0 -3
- package/src/Header/responsive-header.tsx +0 -145
- package/src/Icon/Icon.stories.jsx +0 -45
- package/src/Icon/image.tsx +0 -53
- package/src/Icon/index.tsx +0 -63
- package/src/Img/Img.stories.jsx +0 -17
- package/src/Img/index.jsx +0 -258
- package/src/InfoRow/InfoRow.stories.jsx +0 -14
- package/src/InfoRow/index.tsx +0 -91
- package/src/Layout/Layout.stories.jsx +0 -24
- package/src/Layout/dashboard/external-link.tsx +0 -59
- package/src/Layout/dashboard/full-page.tsx +0 -58
- package/src/Layout/dashboard/index.tsx +0 -260
- package/src/Layout/dashboard/sidebar.tsx +0 -198
- package/src/Layout/dashboard-legacy/header.tsx +0 -156
- package/src/Layout/dashboard-legacy/index.tsx +0 -127
- package/src/Layout/dashboard-legacy/sidebar.tsx +0 -129
- package/src/Layout/index.tsx +0 -310
- package/src/LoadingMask/index.tsx +0 -108
- package/src/Locale/LocaleSelector.stories.jsx +0 -44
- package/src/Locale/browser-lang.ts +0 -65
- package/src/Locale/context.tsx +0 -162
- package/src/Locale/languages.ts +0 -58
- package/src/Locale/selector.tsx +0 -174
- package/src/Locale/util.ts +0 -38
- package/src/Logo/Logo.stories.jsx +0 -23
- package/src/Logo/images/logo-dark-text.svg +0 -3
- package/src/Logo/images/logo-dark-top.svg +0 -6
- package/src/Logo/images/logo-light-text.svg +0 -3
- package/src/Logo/images/logo-light-top.svg +0 -6
- package/src/Logo/index.tsx +0 -58
- package/src/Metric/Metric.stories.jsx +0 -29
- package/src/Metric/index.tsx +0 -130
- package/src/MuiWrap/index.tsx +0 -10
- package/src/NFTDisplay/NFTBroken.svg +0 -34
- package/src/NFTDisplay/NFTDisplay.stories.jsx +0 -30
- package/src/NFTDisplay/README.md +0 -59
- package/src/NFTDisplay/aspect-ratio-container.tsx +0 -36
- package/src/NFTDisplay/broken.tsx +0 -51
- package/src/NFTDisplay/displayApi.ts +0 -43
- package/src/NFTDisplay/index.tsx +0 -393
- package/src/NFTDisplay/loading.tsx +0 -16
- package/src/NFTDisplay/preview.tsx +0 -84
- package/src/NFTDisplay/render-svg.tsx +0 -21
- package/src/NFTDisplay/svg-embedder/img.tsx +0 -27
- package/src/NFTDisplay/svg-embedder/inline-svg.tsx +0 -36
- package/src/NavMenu/NavMenu.stories.jsx +0 -17
- package/src/NavMenu/images/OCAP.svg +0 -1
- package/src/NavMenu/images/abt-network.svg +0 -1
- package/src/NavMenu/images/ai-kit.svg +0 -1
- package/src/NavMenu/images/aigne-image-smith.svg +0 -1
- package/src/NavMenu/images/aigne.svg +0 -1
- package/src/NavMenu/images/aistro.png +0 -0
- package/src/NavMenu/images/arcsphere.svg +0 -1
- package/src/NavMenu/images/blocklet-framework.svg +0 -1
- package/src/NavMenu/images/blocklet-launcher.svg +0 -1
- package/src/NavMenu/images/blocklet-server.svg +0 -1
- package/src/NavMenu/images/blocklet-store.svg +0 -1
- package/src/NavMenu/images/creator-studio.svg +0 -1
- package/src/NavMenu/images/did-wallet.svg +0 -1
- package/src/NavMenu/images/did.svg +0 -1
- package/src/NavMenu/images/nft-studio.svg +0 -1
- package/src/NavMenu/images/payment-kit.png +0 -0
- package/src/NavMenu/images/vc.svg +0 -1
- package/src/NavMenu/images/web3-kit.svg +0 -1
- package/src/NavMenu/index.ts +0 -3
- package/src/NavMenu/nav-menu-context.tsx +0 -30
- package/src/NavMenu/nav-menu.tsx +0 -441
- package/src/NavMenu/products.tsx +0 -830
- package/src/NavMenu/style.ts +0 -258
- package/src/NavMenu/sub-container.tsx +0 -125
- package/src/NavMenu/sub-item-group.tsx +0 -42
- package/src/OrgTransfer/index.tsx +0 -53
- package/src/OrgTransfer/locales.ts +0 -25
- package/src/OrgTransfer/selector.tsx +0 -252
- package/src/OrgTransfer/type.ts +0 -31
- package/src/PageScroller/index.tsx +0 -316
- package/src/PageScroller/story/FifthComponent.jsx +0 -7
- package/src/PageScroller/story/FirstComponent.jsx +0 -7
- package/src/PageScroller/story/FourthComponent.jsx +0 -7
- package/src/PageScroller/story/FullPage.jsx +0 -55
- package/src/PageScroller/story/PageContain.jsx +0 -59
- package/src/PageScroller/story/PageScroller.stories.jsx +0 -18
- package/src/PageScroller/story/SecondComponent.jsx +0 -7
- package/src/PageScroller/story/ThirdComponent.jsx +0 -7
- package/src/PageScroller/story/index.css +0 -115
- package/src/PageScroller/usePrevValue.ts +0 -11
- package/src/Passport/index.ts +0 -3
- package/src/Passport/passport.tsx +0 -118
- package/src/PhoneInput/PhoneInput.stories.jsx +0 -12
- package/src/PhoneInput/country-select.tsx +0 -148
- package/src/PhoneInput/index.tsx +0 -269
- package/src/PoweredByArcBlock/index.tsx +0 -27
- package/src/PricingTable/PricingPlan.tsx +0 -120
- package/src/PricingTable/PricingTable.stories.jsx +0 -38
- package/src/PricingTable/index.tsx +0 -59
- package/src/QRCode/QRCode.stories.jsx +0 -13
- package/src/QRCode/index.tsx +0 -66
- package/src/RelativeTime/RelativeTime.stories.jsx +0 -20
- package/src/RelativeTime/index.tsx +0 -334
- package/src/Result/Result.stories.jsx +0 -61
- package/src/Result/common.tsx +0 -119
- package/src/Result/index.tsx +0 -30
- package/src/Result/result.tsx +0 -65
- package/src/Result/translations.ts +0 -57
- package/src/Screenshot/BaseScreenshot/index.tsx +0 -73
- package/src/Screenshot/BaseScreenshot/shells/Macbook.tsx +0 -38
- package/src/Screenshot/BaseScreenshot/shells/Phone.tsx +0 -35
- package/src/Screenshot/Screenshot.stories.jsx +0 -44
- package/src/Screenshot/devices.css +0 -1366
- package/src/Screenshot/index.tsx +0 -300
- package/src/SessionBlocklet/index.tsx +0 -178
- package/src/SessionManager/SessionManager.stories.jsx +0 -9
- package/src/SessionManager/index.tsx +0 -3
- package/src/SessionPermission/index.tsx +0 -26
- package/src/SessionUser/components/did-space.tsx +0 -68
- package/src/SessionUser/components/logged-in.tsx +0 -338
- package/src/SessionUser/components/quick-login-item.tsx +0 -132
- package/src/SessionUser/components/session-user-item.tsx +0 -93
- package/src/SessionUser/components/session-user-switch.tsx +0 -240
- package/src/SessionUser/components/un-login.tsx +0 -257
- package/src/SessionUser/components/user-info.tsx +0 -201
- package/src/SessionUser/index.tsx +0 -68
- package/src/SessionUser/libs/translation.ts +0 -30
- package/src/SessionUser/libs/utils.ts +0 -39
- package/src/SharedBridge/index.tsx +0 -126
- package/src/SocialShare/index.tsx +0 -194
- package/src/Sparkline/Sparkline.stories.jsx +0 -13
- package/src/Sparkline/index.tsx +0 -231
- package/src/Spinner/Spinner.stories.jsx +0 -98
- package/src/Spinner/index.tsx +0 -20
- package/src/SplitButton/SplitButton.stories.jsx +0 -32
- package/src/SplitButton/index.tsx +0 -116
- package/src/SplitButton/useClickAway.tsx +0 -24
- package/src/Success/index.tsx +0 -175
- package/src/Switch/Switch.stories.jsx +0 -16
- package/src/Switch/index.jsx +0 -79
- package/src/Tabs/Tabs.stories.jsx +0 -18
- package/src/Tabs/index.tsx +0 -255
- package/src/Tag/Tag.stories.jsx +0 -15
- package/src/Tag/index.jsx +0 -106
- package/src/TextCollapse/TextCollapse.stories.jsx +0 -73
- package/src/TextCollapse/index.tsx +0 -85
- package/src/Theme/Theme.stories.jsx +0 -11
- package/src/Theme/index.ts +0 -21
- package/src/Theme/theme-provider.tsx +0 -374
- package/src/Theme/theme.ts +0 -229
- package/src/Toast/Toast.stories.jsx +0 -28
- package/src/Toast/index.tsx +0 -80
- package/src/Typography/index.tsx +0 -124
- package/src/UserCard/Cards/avatar-only.tsx +0 -27
- package/src/UserCard/Cards/basic-info.tsx +0 -43
- package/src/UserCard/Cards/index.tsx +0 -16
- package/src/UserCard/Cards/social-actions.tsx +0 -196
- package/src/UserCard/Container/card.tsx +0 -63
- package/src/UserCard/Container/dialog.tsx +0 -37
- package/src/UserCard/Content/basic.tsx +0 -330
- package/src/UserCard/Content/clock.tsx +0 -82
- package/src/UserCard/Content/minimal.tsx +0 -113
- package/src/UserCard/Content/shorten-label.tsx +0 -32
- package/src/UserCard/Content/tooltip-avatar.tsx +0 -80
- package/src/UserCard/UserCard.stories.jsx +0 -19
- package/src/UserCard/components.tsx +0 -81
- package/src/UserCard/index.tsx +0 -132
- package/src/UserCard/types.ts +0 -165
- package/src/UserCard/use-follow.tsx +0 -111
- package/src/UserCard/utils.ts +0 -155
- package/src/Util/WebWalletOpener.stories.jsx +0 -5
- package/src/Util/client.ts +0 -4
- package/src/Util/constant.ts +0 -70
- package/src/Util/deprecate.tsx +0 -29
- package/src/Util/federated.ts +0 -125
- package/src/Util/iframe.ts +0 -19
- package/src/Util/index.ts +0 -760
- package/src/Util/logger.ts +0 -44
- package/src/Util/passport.ts +0 -127
- package/src/Util/security.ts +0 -72
- package/src/Util/style.ts +0 -17
- package/src/Util/wallet.ts +0 -35
- package/src/VerificationCode/index.tsx +0 -83
- package/src/Video/Video.stories.jsx +0 -6
- package/src/Video/index.tsx +0 -70
- package/src/Wallet/Action.stories.jsx +0 -8
- package/src/Wallet/Action.tsx +0 -118
- package/src/Wallet/Download.stories.jsx +0 -9
- package/src/Wallet/Download.tsx +0 -157
- package/src/Wallet/Open.tsx +0 -47
- package/src/Wallet/OpenInWallet.stories.jsx +0 -5
- package/src/Wallet/images/abtwallet.png +0 -0
- package/src/Wallet/images/android_download.svg +0 -22
- package/src/Wallet/images/app-store.svg +0 -30
- package/src/Wallet/images/google-play.svg +0 -69
- package/src/WalletOSIcon/index.tsx +0 -47
- package/src/WebWalletSWKeeper/index.tsx +0 -117
- package/src/WechatPrompt/images/android.png +0 -0
- package/src/WechatPrompt/images/ios.png +0 -0
- package/src/WechatPrompt/index.tsx +0 -75
- package/src/global.d.ts +0 -28
- package/src/hooks/use-blocklet-logo.tsx +0 -32
- package/src/hooks/use-clock.tsx +0 -62
- package/src/hooks/use-location-state.tsx +0 -117
- package/src/hooks/use-mobile.tsx +0 -6
- package/src/index.ts +0 -79
- package/src/type.d.ts +0 -44
- package/src/withTheme/index.tsx +0 -72
- package/src/withTracker/README.md +0 -37
- package/src/withTracker/action/bind-wallet.tsx +0 -17
- package/src/withTracker/action/login.tsx +0 -18
- package/src/withTracker/action/pay.tsx +0 -14
- package/src/withTracker/action/switch-passport.tsx +0 -20
- package/src/withTracker/constant/index.tsx +0 -3
- package/src/withTracker/env.tsx +0 -1
- package/src/withTracker/error_boundary.jsx +0 -34
- package/src/withTracker/index.tsx +0 -50
- package/src/withTracker/libs/utm.ts +0 -46
- package/vite.config.mjs +0 -37
|
@@ -1,326 +0,0 @@
|
|
|
1
|
-
import { memo, useRef } from 'react';
|
|
2
|
-
import { useBrowser } from '@arcblock/react-hooks';
|
|
3
|
-
import { Backdrop, Box, Dialog, DialogContent, Drawer, SwipeableDrawer, SxProps, useMediaQuery } from '@mui/material';
|
|
4
|
-
import { useCreation, useDebounce } from 'ahooks';
|
|
5
|
-
import colorConvert from 'color-convert';
|
|
6
|
-
import { getDIDMotifInfo } from '@arcblock/did-motif';
|
|
7
|
-
import noop from 'lodash/noop';
|
|
8
|
-
|
|
9
|
-
import { useTheme } from '../Theme';
|
|
10
|
-
import { mergeSx } from '../Util/style';
|
|
11
|
-
import { getDIDColor, hexToRgba, isEthereumDid } from '../Util';
|
|
12
|
-
import DIDConnectFooter from './did-connect-footer';
|
|
13
|
-
|
|
14
|
-
// eslint-disable-next-line react/require-default-props
|
|
15
|
-
const BackdropWrap = memo(({ ref, ...backdropProps }: { ref?: React.Ref<unknown> }) => {
|
|
16
|
-
return (
|
|
17
|
-
<Backdrop
|
|
18
|
-
open
|
|
19
|
-
ref={ref}
|
|
20
|
-
style={{
|
|
21
|
-
backgroundColor: 'rgba(0, 0, 0, 0.6)',
|
|
22
|
-
backdropFilter: 'blur(3px)',
|
|
23
|
-
touchAction: 'none',
|
|
24
|
-
}}
|
|
25
|
-
{...backdropProps}
|
|
26
|
-
key="background"
|
|
27
|
-
/>
|
|
28
|
-
);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
export default function DIDConnectContainer({
|
|
32
|
-
open = false,
|
|
33
|
-
popup = false,
|
|
34
|
-
hideCloseButton = false,
|
|
35
|
-
children,
|
|
36
|
-
appPid = undefined,
|
|
37
|
-
slotProps = undefined,
|
|
38
|
-
onClose = noop,
|
|
39
|
-
keepMounted = false,
|
|
40
|
-
}: {
|
|
41
|
-
// 是否弹出显示, true 表示在 Dialog 中渲染, 并可以通过 open/onClose 控制 dialog 的显示/隐藏, false 表示直接渲染原内容
|
|
42
|
-
popup?: boolean;
|
|
43
|
-
open?: boolean;
|
|
44
|
-
hideCloseButton?: boolean;
|
|
45
|
-
children: React.ReactNode;
|
|
46
|
-
onClose?: () => void;
|
|
47
|
-
appPid?: string;
|
|
48
|
-
slotProps?: {
|
|
49
|
-
footer?: {
|
|
50
|
-
sx?: SxProps;
|
|
51
|
-
};
|
|
52
|
-
containerPage?: {
|
|
53
|
-
sx?: SxProps;
|
|
54
|
-
};
|
|
55
|
-
containerDrawer?: {
|
|
56
|
-
sx?: SxProps;
|
|
57
|
-
};
|
|
58
|
-
containerDialog?: {
|
|
59
|
-
sx?: SxProps;
|
|
60
|
-
};
|
|
61
|
-
};
|
|
62
|
-
keepMounted?: boolean;
|
|
63
|
-
}) {
|
|
64
|
-
const color = useCreation(() => {
|
|
65
|
-
const did = appPid || window.blocklet.appPid;
|
|
66
|
-
const isEthDid = isEthereumDid(did);
|
|
67
|
-
const didMotifInfo = isEthDid ? undefined : getDIDMotifInfo(did);
|
|
68
|
-
if (isEthDid) {
|
|
69
|
-
return getDIDColor(did);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return didMotifInfo.color;
|
|
73
|
-
}, []);
|
|
74
|
-
|
|
75
|
-
const drawerDragger = useRef(null);
|
|
76
|
-
const browser = useBrowser();
|
|
77
|
-
// 屏宽小于 sm 且在 mobile 设备中全屏显示 dialog (PC 端屏宽小于 sm 的情况正常弹窗, 不全屏显示)
|
|
78
|
-
const matchSm = useMediaQuery('(max-width:640px)');
|
|
79
|
-
let openVariant = 'page';
|
|
80
|
-
if (popup) {
|
|
81
|
-
openVariant = 'dialog';
|
|
82
|
-
if (matchSm && browser.mobile.any) {
|
|
83
|
-
openVariant = 'drawer';
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
const theme = useTheme();
|
|
88
|
-
|
|
89
|
-
const leavingScreenDelay = theme?.transitions?.duration?.leavingScreen || 500; // 默认值是 195
|
|
90
|
-
const debouncedOpen = useDebounce(open, {
|
|
91
|
-
wait: leavingScreenDelay,
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
// eslint-disable-next-line no-unused-vars
|
|
95
|
-
const handleOnClose = (e: React.MouseEvent<HTMLElement>, reason: string) => {
|
|
96
|
-
if (['backdropClick', 'escapeKeyDown'].includes(reason)) return;
|
|
97
|
-
onClose();
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
const showModal = debouncedOpen || open || keepMounted;
|
|
101
|
-
|
|
102
|
-
const DrawerComponent = hideCloseButton ? Drawer : SwipeableDrawer;
|
|
103
|
-
|
|
104
|
-
const hslColor = colorConvert.hex.hsl(color);
|
|
105
|
-
|
|
106
|
-
const [h, s, l] = hslColor;
|
|
107
|
-
const percentageList = [0, 30, 60, 30, 0, 30, 60, 30];
|
|
108
|
-
const maxPercentage = Math.max(...percentageList);
|
|
109
|
-
const minPercentage = Math.min(...percentageList);
|
|
110
|
-
let useAlpha = false;
|
|
111
|
-
if ((l * (100 + maxPercentage)) / 100 > 100 || (l * (100 + minPercentage)) / 100 < 0) {
|
|
112
|
-
// 超出范围,使用 alpha 通道变化
|
|
113
|
-
useAlpha = true;
|
|
114
|
-
}
|
|
115
|
-
const colorList = percentageList.map((percentageItem) => {
|
|
116
|
-
let finalL = (l * (100 + percentageItem)) / 100;
|
|
117
|
-
let finalAlpha = 0.6;
|
|
118
|
-
if (useAlpha) {
|
|
119
|
-
finalAlpha = (0.5 * (100 + percentageItem)) / 100;
|
|
120
|
-
} else {
|
|
121
|
-
finalL = (l * (100 + percentageItem)) / 100;
|
|
122
|
-
}
|
|
123
|
-
return `hsla(${h}, ${s}%, ${finalL}%, ${finalAlpha})`;
|
|
124
|
-
});
|
|
125
|
-
const background = `linear-gradient(45deg, ${colorList.join(', ')})`;
|
|
126
|
-
const colorListGlow = percentageList.map((percentageItem) => {
|
|
127
|
-
let finalL = (l * (100 + percentageItem)) / 100;
|
|
128
|
-
let finalAlpha = 0.2;
|
|
129
|
-
if (useAlpha) {
|
|
130
|
-
finalAlpha = (0.3 * (100 + percentageItem)) / 100;
|
|
131
|
-
} else {
|
|
132
|
-
finalL = (l * (100 + percentageItem)) / 100;
|
|
133
|
-
}
|
|
134
|
-
return `hsla(${h}, ${s}%, ${finalL}%, ${finalAlpha})`;
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
const backgroundGlow = `linear-gradient(45deg, ${colorListGlow.join(', ')})`;
|
|
138
|
-
|
|
139
|
-
const glowStyle = open
|
|
140
|
-
? {
|
|
141
|
-
overflow: 'visible',
|
|
142
|
-
'&::before, &::after': {
|
|
143
|
-
content: '""',
|
|
144
|
-
position: 'absolute',
|
|
145
|
-
top: '-3px',
|
|
146
|
-
right: '-3px',
|
|
147
|
-
bottom: '-3px',
|
|
148
|
-
left: '-3px',
|
|
149
|
-
background,
|
|
150
|
-
backgroundSize: '300% 300%',
|
|
151
|
-
backgroundRepeat: 'no-repeat',
|
|
152
|
-
animation: 'glowRotate 10s linear infinite',
|
|
153
|
-
borderRadius: '14px !important',
|
|
154
|
-
zIndex: 0,
|
|
155
|
-
},
|
|
156
|
-
'&::after': {
|
|
157
|
-
background: backgroundGlow,
|
|
158
|
-
filter: 'blur(15px)',
|
|
159
|
-
},
|
|
160
|
-
|
|
161
|
-
'@keyframes glowRotate': {
|
|
162
|
-
'0%': {
|
|
163
|
-
backgroundPosition: '0 0',
|
|
164
|
-
},
|
|
165
|
-
'50%': {
|
|
166
|
-
backgroundPosition: '100% 0',
|
|
167
|
-
},
|
|
168
|
-
'100%': {
|
|
169
|
-
backgroundPosition: '0 0',
|
|
170
|
-
},
|
|
171
|
-
},
|
|
172
|
-
}
|
|
173
|
-
: {};
|
|
174
|
-
|
|
175
|
-
if (openVariant === 'page') {
|
|
176
|
-
return (
|
|
177
|
-
<Box
|
|
178
|
-
className="did-connect__container-page"
|
|
179
|
-
sx={mergeSx(
|
|
180
|
-
{
|
|
181
|
-
borderRadius: 1,
|
|
182
|
-
position: 'relative',
|
|
183
|
-
zIndex: 1,
|
|
184
|
-
backgroundColor: 'background.default',
|
|
185
|
-
},
|
|
186
|
-
glowStyle,
|
|
187
|
-
slotProps?.containerPage?.sx
|
|
188
|
-
)}>
|
|
189
|
-
<Box
|
|
190
|
-
sx={{
|
|
191
|
-
border: `3px solid ${hexToRgba(color, 0.1)}`,
|
|
192
|
-
m: '-1px',
|
|
193
|
-
position: 'relative',
|
|
194
|
-
borderRadius: '12px',
|
|
195
|
-
zIndex: 2,
|
|
196
|
-
overflow: 'hidden',
|
|
197
|
-
backgroundColor: 'background.default',
|
|
198
|
-
}}>
|
|
199
|
-
{children}
|
|
200
|
-
<DIDConnectFooter currentAppColor={color} sx={mergeSx({ mx: 0 }, slotProps?.footer?.sx)} />
|
|
201
|
-
</Box>
|
|
202
|
-
</Box>
|
|
203
|
-
);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
if (openVariant === 'drawer') {
|
|
207
|
-
return (
|
|
208
|
-
<DrawerComponent
|
|
209
|
-
className="did-connect__container-drawer"
|
|
210
|
-
disableSwipeToOpen
|
|
211
|
-
open={open}
|
|
212
|
-
anchor="bottom"
|
|
213
|
-
drawerDragger={drawerDragger.current}
|
|
214
|
-
// @ts-ignore
|
|
215
|
-
onClose={handleOnClose}
|
|
216
|
-
slots={{
|
|
217
|
-
backdrop: BackdropWrap,
|
|
218
|
-
}}
|
|
219
|
-
slotProps={{
|
|
220
|
-
paper: {
|
|
221
|
-
sx: mergeSx(
|
|
222
|
-
{
|
|
223
|
-
backgroundColor: 'background.default',
|
|
224
|
-
borderRadius: 3, // 保持跟 DID Wallet 一致
|
|
225
|
-
borderBottomLeftRadius: 0,
|
|
226
|
-
borderBottomRightRadius: 0,
|
|
227
|
-
p: '2px',
|
|
228
|
-
'.did-connect__root': {
|
|
229
|
-
backgroundColor: 'transparent',
|
|
230
|
-
},
|
|
231
|
-
overflow: 'hidden',
|
|
232
|
-
animation: open ? 'glowBreathe 7s linear infinite' : 'none',
|
|
233
|
-
'@keyframes glowBreathe': {
|
|
234
|
-
'0%, 100%': {
|
|
235
|
-
boxShadow: `
|
|
236
|
-
inset 0 0 7px ${hexToRgba(color, 0.3)},
|
|
237
|
-
inset 0 0 12px ${hexToRgba(color, 0.3)}`,
|
|
238
|
-
},
|
|
239
|
-
'50%': {
|
|
240
|
-
boxShadow: `
|
|
241
|
-
inset 0 0 18px ${hexToRgba(color, 0.7)},
|
|
242
|
-
inset 0 0 24px ${hexToRgba(color, 0.5)}`,
|
|
243
|
-
},
|
|
244
|
-
},
|
|
245
|
-
},
|
|
246
|
-
slotProps?.containerDrawer?.sx
|
|
247
|
-
),
|
|
248
|
-
},
|
|
249
|
-
}}>
|
|
250
|
-
{hideCloseButton ? null : (
|
|
251
|
-
<Box
|
|
252
|
-
ref={drawerDragger}
|
|
253
|
-
sx={{
|
|
254
|
-
px: 1,
|
|
255
|
-
pt: 2,
|
|
256
|
-
m: 'auto',
|
|
257
|
-
mt: -1,
|
|
258
|
-
mb: -2,
|
|
259
|
-
zIndex: 2,
|
|
260
|
-
}}>
|
|
261
|
-
<Box
|
|
262
|
-
sx={{
|
|
263
|
-
width: '48px',
|
|
264
|
-
height: '4px',
|
|
265
|
-
borderRadius: '100vw',
|
|
266
|
-
backgroundColor: 'rgba(0, 0, 0, 0.2)',
|
|
267
|
-
}}
|
|
268
|
-
/>
|
|
269
|
-
</Box>
|
|
270
|
-
)}
|
|
271
|
-
<Box
|
|
272
|
-
sx={{
|
|
273
|
-
touchAction: 'none',
|
|
274
|
-
maxWidth: '100%',
|
|
275
|
-
width: 500,
|
|
276
|
-
height: 'auto',
|
|
277
|
-
backgroundColor: 'background.default',
|
|
278
|
-
}}>
|
|
279
|
-
{/* HACK: 由于 MUI 文档中描述 使用 keepMounted: false 可能会造成问题,所以采用下面的方案进行 HACK */}
|
|
280
|
-
{/* https://mui.com/material-ui/react-drawer/#keep-mounted */}
|
|
281
|
-
{showModal ? children : null}
|
|
282
|
-
<DIDConnectFooter currentAppColor={color} sx={mergeSx({ mx: 0 }, slotProps?.footer?.sx)} />
|
|
283
|
-
</Box>
|
|
284
|
-
</DrawerComponent>
|
|
285
|
-
);
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
return (
|
|
289
|
-
<Dialog
|
|
290
|
-
open={open}
|
|
291
|
-
slots={{
|
|
292
|
-
backdrop: BackdropWrap,
|
|
293
|
-
}}
|
|
294
|
-
keepMounted={keepMounted}
|
|
295
|
-
className="did-connect__container-dialog"
|
|
296
|
-
onClose={handleOnClose}
|
|
297
|
-
PaperProps={{
|
|
298
|
-
sx: mergeSx(
|
|
299
|
-
{
|
|
300
|
-
// 避免样式被 server 中的定义覆盖
|
|
301
|
-
'&.MuiPaper-rounded': {
|
|
302
|
-
borderRadius: '12px !important',
|
|
303
|
-
},
|
|
304
|
-
position: 'relative',
|
|
305
|
-
backgroundColor: 'background.default',
|
|
306
|
-
},
|
|
307
|
-
glowStyle,
|
|
308
|
-
slotProps?.containerDialog?.sx
|
|
309
|
-
),
|
|
310
|
-
}}>
|
|
311
|
-
<DialogContent
|
|
312
|
-
sx={{
|
|
313
|
-
maxWidth: 'calc(100vw - 18px)',
|
|
314
|
-
maxHeight: 'calc(100vh - 18px)',
|
|
315
|
-
p: '0px !important',
|
|
316
|
-
height: 'auto',
|
|
317
|
-
borderRadius: '12px !important',
|
|
318
|
-
zIndex: 1,
|
|
319
|
-
backgroundColor: 'background.default',
|
|
320
|
-
}}>
|
|
321
|
-
{showModal ? children : null}
|
|
322
|
-
<DIDConnectFooter currentAppColor={color} sx={mergeSx({ mx: 0 }, slotProps?.footer?.sx)} />
|
|
323
|
-
</DialogContent>
|
|
324
|
-
</Dialog>
|
|
325
|
-
);
|
|
326
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Box, SxProps } from '@mui/material';
|
|
2
|
-
import { useCreation, useSize } from 'ahooks';
|
|
3
|
-
import { useRef } from 'react';
|
|
4
|
-
import useBrowser from '@arcblock/react-hooks/lib/useBrowser';
|
|
5
|
-
|
|
6
|
-
import PoweredBy from './powered-by';
|
|
7
|
-
import AppInfoItem from './app-info-item';
|
|
8
|
-
import AppIcon from './app-icon';
|
|
9
|
-
import { getDIDColor, hexToRgba } from '../Util';
|
|
10
|
-
import { mergeSx } from '../Util/style';
|
|
11
|
-
import { DID_CONNECT_MEDIUM_WIDTH } from '../Util/constant';
|
|
12
|
-
|
|
13
|
-
export default function DIDConnectFooter({
|
|
14
|
-
currentAppInfo = globalThis.blocklet,
|
|
15
|
-
currentAppColor = globalThis.blocklet?.appPid ? getDIDColor(globalThis.blocklet?.appPid) : '#fff',
|
|
16
|
-
sx = {},
|
|
17
|
-
}: {
|
|
18
|
-
currentAppInfo?: any;
|
|
19
|
-
currentAppColor?: string;
|
|
20
|
-
sx?: SxProps;
|
|
21
|
-
}) {
|
|
22
|
-
// 使用当前应用的配置,不用跟随主站变化
|
|
23
|
-
const blocklet = globalThis?.blocklet;
|
|
24
|
-
const browser = useBrowser();
|
|
25
|
-
const rootRef = useRef<HTMLDivElement>(null);
|
|
26
|
-
const size = useSize(rootRef);
|
|
27
|
-
const isSmallView = useCreation(() => {
|
|
28
|
-
if (size) {
|
|
29
|
-
return size.width < DID_CONNECT_MEDIUM_WIDTH - 50;
|
|
30
|
-
}
|
|
31
|
-
return true;
|
|
32
|
-
}, [size, size?.width]);
|
|
33
|
-
|
|
34
|
-
return (
|
|
35
|
-
<Box
|
|
36
|
-
ref={rootRef}
|
|
37
|
-
sx={mergeSx(
|
|
38
|
-
{
|
|
39
|
-
display: 'flex',
|
|
40
|
-
justifyContent: blocklet?.settings?.didConnect?.showAppInfo === false ? 'center' : 'space-between',
|
|
41
|
-
alignItems: 'center',
|
|
42
|
-
gap: 1,
|
|
43
|
-
fontSize: 12,
|
|
44
|
-
backgroundColor:
|
|
45
|
-
blocklet?.settings?.didConnect?.showDidColor === false ? 'grey.50' : hexToRgba(currentAppColor, 0.08),
|
|
46
|
-
// 需要保持跟 .did-connect__root 的规则一样
|
|
47
|
-
mx: -3,
|
|
48
|
-
// eslint-disable-next-line no-nested-ternary
|
|
49
|
-
px: isSmallView && browser.arcSphere ? 1 : 3,
|
|
50
|
-
py: 1.5,
|
|
51
|
-
// HACK: 极限条件下,footer 会溢出,使用隐藏的滚动条来处理这种情况(屏幕宽度小于 360 时会出现)
|
|
52
|
-
overflow: 'auto',
|
|
53
|
-
'&::-webkit-scrollbar': {
|
|
54
|
-
display: 'none', // 隐藏滚动条 (Webkit 浏览器)
|
|
55
|
-
},
|
|
56
|
-
'-ms-overflow-style': 'none', // 隐藏滚动条 (IE 浏览器)
|
|
57
|
-
'scrollbar-width': 'none', // 隐藏滚动条 (Firefox)
|
|
58
|
-
},
|
|
59
|
-
sx
|
|
60
|
-
)}
|
|
61
|
-
className="did-connect__footer">
|
|
62
|
-
{blocklet?.settings?.didConnect?.showAppInfo === false ? null : (
|
|
63
|
-
<AppInfoItem
|
|
64
|
-
appInfo={currentAppInfo}
|
|
65
|
-
appLogo={<AppIcon appInfo={currentAppInfo} size={24} sx={{ flexShrink: 0 }} />}
|
|
66
|
-
sx={{
|
|
67
|
-
flex: 1,
|
|
68
|
-
overflow: 'hidden',
|
|
69
|
-
}}
|
|
70
|
-
/>
|
|
71
|
-
)}
|
|
72
|
-
|
|
73
|
-
<PoweredBy sx={{ maxWidth: '100%', justifyContent: 'end' }} />
|
|
74
|
-
</Box>
|
|
75
|
-
);
|
|
76
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Box } from '@mui/material';
|
|
2
|
-
|
|
3
|
-
type LogoSize = number | string;
|
|
4
|
-
|
|
5
|
-
export default function DIDWalletLogo({
|
|
6
|
-
width = '100%',
|
|
7
|
-
height = '100%',
|
|
8
|
-
...rest
|
|
9
|
-
}: {
|
|
10
|
-
width?: LogoSize;
|
|
11
|
-
height?: LogoSize;
|
|
12
|
-
[key: string]: any;
|
|
13
|
-
}) {
|
|
14
|
-
const didWalletLogo =
|
|
15
|
-
'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI3ByZWZpeF9fY2xpcDApIj48cmVjdCB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHJ4PSI2IiBmaWxsPSJ1cmwoI3ByZWZpeF9fcGFpbnQwX2xpbmVhcikiLz48ZyBmaWx0ZXI9InVybCgjcHJlZml4X19maWx0ZXIwX2kpIj48cGF0aCBkPSJNMy41MiA3LjM2QTIuNTYgMi41NiAwIDAxNi4wOCA0LjhoMTkuODRhMi41NiAyLjU2IDAgMDEyLjU2IDIuNTZ2MTIuMTZhMi41NiAyLjU2IDAgMDEtMi41NiAyLjU2SDYuMDhhMi41NiAyLjU2IDAgMDEtMi41Ni0yLjU2VjcuMzZ6IiBmaWxsPSIjOUZDQkZGIi8+PC9nPjxnIGZpbHRlcj0idXJsKCNwcmVmaXhfX2ZpbHRlcjFfZCkiPjxwYXRoIGQ9Ik0yLjU2IDkuMjhhMi41NiAyLjU2IDAgMDEyLjU2LTIuNTZoMjEuNzZhMi41NiAyLjU2IDAgMDEyLjU2IDIuNTZ2MTMuNmEyLjU2IDIuNTYgMCAwMS0yLjU2IDIuNTZINS4xMmEyLjU2IDIuNTYgMCAwMS0yLjU2LTIuNTZWOS4yOHoiIGZpbGw9InVybCgjcHJlZml4X19wYWludDFfbGluZWFyKSIvPjwvZz48ZyBmaWx0ZXI9InVybCgjcHJlZml4X19maWx0ZXIyX2QpIj48cGF0aCBkPSJNMCAyMi4zMmwzMi02LjE2VjMySDB2LTkuNjh6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fcGFpbnQyX2xpbmVhcikiLz48L2c+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjUzNiA5LjI0OGg4LjI4OGMuNDA4IDAgLjc0LjMuNzQuNjcydjQuNjRjMCAuMzcxLS4zMzIuNjcyLS43NC42NzJINS41MzZjLS40MDggMC0uNzQtLjMtLjc0LS42NzJ2LS4wNGEuMTU4LjE1OCAwIDEwLS4zMTYgMHYuMDRjMCAuNTMuNDczLjk2IDEuMDU2Ljk2aDguMjg4Yy41ODMgMCAxLjA1Ni0uNDMgMS4wNTYtLjk2VjkuOTJjMC0uNTMtLjQ3My0uOTYtMS4wNTYtLjk2SDUuNTM2Yy0uNTgzIDAtMS4wNTYuNDMtMS4wNTYuOTZ2LjA0YS4xNTguMTU4IDAgMDAuMzE3IDB2LS4wNGMwLS4zNzEuMzMtLjY3Mi43MzktLjY3MnptLTEuMDIzIDQuNjM4YS4xMjcuMTI3IDAgMDAuMDg3LjAzNGgxLjI2N2MuNDcyIDAgLjgzLS4xMDcgMS4wNzYtLjMyMi4yNS0uMjE3LjM4MS0uNTQ4LjM5Ny0uOTkzYTExLjI4MSAxMS4yODEgMCAwMDAtLjczNGMtLjAxMi0uNDI2LS4xNDgtLjc1MS0uNDA2LS45NzUtLjI1OC0uMjI0LS42MjItLjMzNi0xLjA5LS4zMzZINC42YS4xMjcuMTI3IDAgMDAtLjA4Ny4wMzQuMTE3LjExNyAwIDAwLS4wMzMuMDg2djMuMTJjMCAuMDMyLjAxMS4wNi4wMzMuMDg2em0xLjc5NC0uODA2Yy0uMDk5LjEtLjI1My4xNDktLjQ2NC4xNDloLS41MDJWMTEuMjVoLjQ3OGMuMjEgMCAuMzY5LjA1MS40NzQuMTU0LjEwOC4xMDIuMTY2LjI2LjE3Mi40NzUuMDA2LjA5LjAxLjIwOC4wMS4zNTVzLS4wMDQuMjY3LS4wMS4zNmMtLjAwNi4yMjEtLjA1OS4zODMtLjE1OC40ODV6bTEuNjMuODA2YS4xMjcuMTI3IDAgMDAuMDg3LjAzNGguNjRhLjExNi4xMTYgMCAwMC4wODctLjAzNC4xMS4xMSAwIDAwLjAzOC0uMDg2di0zLjEyYS4xMS4xMSAwIDAwLS4wMzgtLjA4Ni4xMTYuMTE2IDAgMDAtLjA4Ni0uMDM0aC0uNjQxYS4xMjcuMTI3IDAgMDAtLjA4Ny4wMzQuMTE3LjExNyAwIDAwLS4wMzMuMDg2djMuMTJjMCAuMDMyLjAxMS4wNi4wMzMuMDg2em0xLjYzNy4wMzRhLjEyNy4xMjcgMCAwMS0uMDg2LS4wMzQuMTI4LjEyOCAwIDAxLS4wMzMtLjA4NnYtMy4xMmMwLS4wMzUuMDEtLjA2NC4wMzMtLjA4NmEuMTI3LjEyNyAwIDAxLjA4Ni0uMDM0aDEuMjQ0Yy40NjkgMCAuODMyLjExMiAxLjA5LjMzNi4yNTkuMjI0LjM5NC41NDkuNDA3Ljk3NGExMS4yNDQgMTEuMjQ0IDAgMDEwIC43MzVjLS4wMTYuNDQ1LS4xNDguNzc2LS4zOTcuOTkzLS4yNDUuMjE1LS42MDQuMzIyLTEuMDc2LjMyMkg5LjU3NHptMS4yNDQtLjY5MWMuMjEgMCAuMzY1LS4wNS40NjQtLjE0OS4wOTktLjEwMi4xNTItLjI2NC4xNTgtLjQ4NWE1LjUyIDUuNTIgMCAwMC4wMS0uMzZjMC0uMTQ3LS4wMDQtLjI2NS0uMDEtLjM1NS0uMDA2LS4yMTQtLjA2NC0uMzczLS4xNzItLjQ3NS0uMTA2LS4xMDMtLjI2My0uMTU0LS40NzQtLjE1NGgtLjQ3OHYxLjk3OGguNTAyem0yLjQ2OC0xLjM4MmEuMjg4LjI4OCAwIDAxLS4yODgtLjI4Ni4yODguMjg4IDAgMDEuNTc2IDBjMCAuMTU4LS4xMy4yODYtLjI4OC4yODZ6bTAgMS40OTVhLjI4OC4yODggMCAwMS0uMjg4LS4yODYuMjg4LjI4OCAwIDAxLjU3NiAwYzAgLjE1OC0uMTMuMjg3LS4yODguMjg3eiIgZmlsbD0iIzQ1OThGQSIvPjwvZz48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fcGFpbnQwX2xpbmVhciIgeDE9IjE2IiB5MT0iMCIgeDI9IjE2IiB5Mj0iMzIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjNEY5REY2Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMEE3OUY4Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fcGFpbnQxX2xpbmVhciIgeDE9IjE2IiB5MT0iNi43MiIgeDI9IjE2IiB5Mj0iMjUuNDQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRUNFRkZGIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fcGFpbnQyX2xpbmVhciIgeDE9IjE2IiB5MT0iMTkuMiIgeDI9IjE4LjQ4IiB5Mj0iMzIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9Ii4wMDciIHN0b3AtY29sb3I9IiM3N0IyRjYiLz48c3RvcCBvZmZzZXQ9Ii4wNTUiIHN0b3AtY29sb3I9IiM0RjlERjYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM0NTk4RkEiLz48L2xpbmVhckdyYWRpZW50PjxmaWx0ZXIgaWQ9InByZWZpeF9fZmlsdGVyMF9pIiB4PSIzLjUyIiB5PSIxLjgiIHdpZHRoPSIyNC45NiIgaGVpZ2h0PSIyMC4yOCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIi8+PGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPjxmZU9mZnNldCBkeT0iLTMiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIyIi8+PGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPjxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMC4yIDAiLz48ZmVCbGVuZCBpbjI9InNoYXBlIiByZXN1bHQ9ImVmZmVjdDFfaW5uZXJTaGFkb3ciLz48L2ZpbHRlcj48ZmlsdGVyIGlkPSJwcmVmaXhfX2ZpbHRlcjFfZCIgeD0iLTEuNDQiIHk9IjEuNzIiIHdpZHRoPSIzNC44OCIgaGVpZ2h0PSIyNi43MiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPjxmZU9mZnNldCBkeT0iLTEiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIyIi8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAuMjIwNzY3IDAgMCAwIDAgMC40NzA4MDMgMCAwIDAgMCAwLjcwMTYwNSAwIDAgMCAwLjE4IDAiLz48ZmVCbGVuZCBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3ciLz48ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3ciIHJlc3VsdD0ic2hhcGUiLz48L2ZpbHRlcj48ZmlsdGVyIGlkPSJwcmVmaXhfX2ZpbHRlcjJfZCIgeD0iLTUiIHk9IjExLjE2IiB3aWR0aD0iNDIiIGhlaWdodD0iMjUuODQiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIgcmVzdWx0PSJoYXJkQWxwaGEiLz48ZmVPZmZzZXQvPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjIuNSIvPjxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwLjE0MzgyIDAgMCAwIDAgMC4yMDUwNjUgMCAwIDAgMCAwLjUyMjYzNCAwIDAgMCAwLjI1IDAiLz48ZmVCbGVuZCBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3ciLz48ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3ciIHJlc3VsdD0ic2hhcGUiLz48L2ZpbHRlcj48Y2xpcFBhdGggaWQ9InByZWZpeF9fY2xpcDAiPjxyZWN0IHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgcng9IjYiIGZpbGw9IiNmZmYiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=';
|
|
16
|
-
|
|
17
|
-
return <Box component="img" width={width} height={height} alt="did-wallet-logo" {...rest} src={didWalletLogo} />;
|
|
18
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
type LogoSize = number | string;
|
|
2
|
-
|
|
3
|
-
export default function GithubLogo({
|
|
4
|
-
width = 24,
|
|
5
|
-
height = 24,
|
|
6
|
-
...props
|
|
7
|
-
}: {
|
|
8
|
-
width?: LogoSize;
|
|
9
|
-
height?: LogoSize;
|
|
10
|
-
[key: string]: any;
|
|
11
|
-
}) {
|
|
12
|
-
return (
|
|
13
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 250" width={width} height={height} {...props}>
|
|
14
|
-
<path d="M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46c6.397 1.185 8.746-2.777 8.746-6.158c0-3.052-.12-13.135-.174-23.83c-35.61 7.742-43.124-15.103-43.124-15.103c-5.823-14.795-14.213-18.73-14.213-18.73c-11.613-7.944.876-7.78.876-7.78c12.853.902 19.621 13.19 19.621 13.19c11.417 19.568 29.945 13.911 37.249 10.64c1.149-8.272 4.466-13.92 8.127-17.116c-28.431-3.236-58.318-14.212-58.318-63.258c0-13.975 5-25.394 13.188-34.358c-1.329-3.224-5.71-16.242 1.24-33.874c0 0 10.749-3.44 35.21 13.121c10.21-2.836 21.16-4.258 32.038-4.307c10.878.049 21.837 1.47 32.066 4.307c24.431-16.56 35.165-13.12 35.165-13.12c6.967 17.63 2.584 30.65 1.255 33.873c8.207 8.964 13.173 20.383 13.173 34.358c0 49.163-29.944 59.988-58.447 63.157c4.591 3.972 8.682 11.762 8.682 23.704c0 17.126-.148 30.91-.148 35.126c0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002C256 57.307 198.691 0 128.001 0m-80.06 182.34c-.282.636-1.283.827-2.194.39c-.929-.417-1.45-1.284-1.15-1.922c.276-.655 1.279-.838 2.205-.399c.93.418 1.46 1.293 1.139 1.931m6.296 5.618c-.61.566-1.804.303-2.614-.591c-.837-.892-.994-2.086-.375-2.66c.63-.566 1.787-.301 2.626.591c.838.903 1 2.088.363 2.66m4.32 7.188c-.785.545-2.067.034-2.86-1.104c-.784-1.138-.784-2.503.017-3.05c.795-.547 2.058-.055 2.861 1.075c.782 1.157.782 2.522-.019 3.08m7.304 8.325c-.701.774-2.196.566-3.29-.49c-1.119-1.032-1.43-2.496-.726-3.27c.71-.776 2.213-.558 3.315.49c1.11 1.03 1.45 2.505.701 3.27m9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033c-1.448-.439-2.395-1.613-2.103-2.626c.301-1.01 1.747-1.484 3.207-1.028c1.446.436 2.396 1.602 2.095 2.622m10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95c-1.53.034-2.769-.82-2.786-1.86c0-1.065 1.202-1.932 2.733-1.958c1.522-.03 2.768.818 2.768 1.868m10.555-.405c.182 1.03-.875 2.088-2.387 2.37c-1.485.271-2.861-.365-3.05-1.386c-.184-1.056.893-2.114 2.376-2.387c1.514-.263 2.868.356 3.061 1.403" />
|
|
15
|
-
</svg>
|
|
16
|
-
);
|
|
17
|
-
}
|
package/src/DIDConnect/index.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export { default as DIDConnectFooter } from './did-connect-footer';
|
|
2
|
-
export { default as AppInfoItem } from './app-info-item';
|
|
3
|
-
export { default as AppIcon } from './app-icon';
|
|
4
|
-
export { default as PoweredBy } from './powered-by';
|
|
5
|
-
export { default as withContainer } from './with-container';
|
|
6
|
-
export { default as withUxTheme } from './with-ux-theme';
|
|
7
|
-
export { default as DIDConnectLogo } from './did-connect-logo';
|
|
8
|
-
export { default as DIDConnectContainer } from './did-connect-container';
|
|
9
|
-
export { default as RequestStorageAccessApiDialog } from './request-storage-access-api-dialog';
|
|
10
|
-
export { default as AuthApps } from './auth-apps';
|
|
11
|
-
export type { RequestAppInfo, CurrentAppInfo } from './auth-apps/auth-apps-info';
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import { Box, Theme, Typography, useMediaQuery } from '@mui/material';
|
|
2
|
-
import { isEthereumDid } from '@arcblock/did';
|
|
3
|
-
import { getDIDMotifInfo } from '@arcblock/did-motif';
|
|
4
|
-
import { useCreation } from 'ahooks';
|
|
5
|
-
import { useTheme } from '../Theme';
|
|
6
|
-
|
|
7
|
-
import PoweredByArcBlock from '../PoweredByArcBlock';
|
|
8
|
-
import Avatar from '../Avatar';
|
|
9
|
-
import { getDIDColor, hexToRgba } from '../Util';
|
|
10
|
-
import useBlockletLogo from '../hooks/use-blocklet-logo';
|
|
11
|
-
|
|
12
|
-
type LandingPageProps = {
|
|
13
|
-
did: string;
|
|
14
|
-
children: React.ReactNode;
|
|
15
|
-
title?: any;
|
|
16
|
-
description?: any;
|
|
17
|
-
actions?: any;
|
|
18
|
-
logo?: any;
|
|
19
|
-
logoSize?: number;
|
|
20
|
-
poweredBy?: any;
|
|
21
|
-
termsOfUse?: any;
|
|
22
|
-
standalone?: boolean;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export default function LandingPage({
|
|
26
|
-
did,
|
|
27
|
-
children,
|
|
28
|
-
title = undefined,
|
|
29
|
-
description = undefined,
|
|
30
|
-
actions = undefined,
|
|
31
|
-
logo = undefined,
|
|
32
|
-
logoSize = 50,
|
|
33
|
-
poweredBy = undefined,
|
|
34
|
-
termsOfUse = undefined,
|
|
35
|
-
standalone = false,
|
|
36
|
-
}: LandingPageProps) {
|
|
37
|
-
const blockletData = globalThis?.blocklet || globalThis?.env || {};
|
|
38
|
-
const { palette } = useTheme();
|
|
39
|
-
const isMd = useMediaQuery((theme: Theme) => theme.breakpoints.down('lg'));
|
|
40
|
-
const appLogo = useBlockletLogo({
|
|
41
|
-
meta: blockletData,
|
|
42
|
-
});
|
|
43
|
-
const currentAppColor = useCreation(() => {
|
|
44
|
-
const _did = blockletData.appPid;
|
|
45
|
-
const isEthDid = isEthereumDid(_did);
|
|
46
|
-
const didMotifInfo = isEthDid ? undefined : getDIDMotifInfo(_did);
|
|
47
|
-
if (isEthDid) {
|
|
48
|
-
return getDIDColor(_did);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return didMotifInfo.color;
|
|
52
|
-
}, [blockletData?.appPid]);
|
|
53
|
-
|
|
54
|
-
if (!did) {
|
|
55
|
-
return children;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
if (title === undefined) {
|
|
59
|
-
// eslint-disable-next-line no-param-reassign
|
|
60
|
-
title = blockletData.appName;
|
|
61
|
-
}
|
|
62
|
-
if (description === undefined) {
|
|
63
|
-
// eslint-disable-next-line no-param-reassign
|
|
64
|
-
description = blockletData.appDescription;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (logo === undefined) {
|
|
68
|
-
// eslint-disable-next-line no-param-reassign
|
|
69
|
-
logo = appLogo || '';
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (typeof logo === 'string') {
|
|
73
|
-
if (logo) {
|
|
74
|
-
// eslint-disable-next-line no-param-reassign
|
|
75
|
-
logo = (
|
|
76
|
-
<Box
|
|
77
|
-
sx={{
|
|
78
|
-
height: logoSize,
|
|
79
|
-
maxHeight: logoSize,
|
|
80
|
-
objectFit: 'contain',
|
|
81
|
-
}}
|
|
82
|
-
component="img"
|
|
83
|
-
src={logo}
|
|
84
|
-
alt={`${blockletData.appName}'s logo`}
|
|
85
|
-
/>
|
|
86
|
-
);
|
|
87
|
-
} else {
|
|
88
|
-
// eslint-disable-next-line no-param-reassign
|
|
89
|
-
logo = <Avatar size={logoSize} did={did} src={logo} variant="rounded" />;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
if (poweredBy === undefined) {
|
|
94
|
-
// eslint-disable-next-line no-param-reassign
|
|
95
|
-
poweredBy = (
|
|
96
|
-
<PoweredByArcBlock
|
|
97
|
-
linkProps={{
|
|
98
|
-
color: palette.text.secondary,
|
|
99
|
-
sx: {
|
|
100
|
-
'&:hover': {
|
|
101
|
-
textDecoration: 'underline',
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
}}
|
|
105
|
-
showExtra={!isMd}
|
|
106
|
-
sx={{
|
|
107
|
-
textAlign: 'center',
|
|
108
|
-
fontSize: '12px',
|
|
109
|
-
color: 'text.secondary',
|
|
110
|
-
}}
|
|
111
|
-
/>
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
let content = children;
|
|
116
|
-
if (!children && !isMd) {
|
|
117
|
-
content = (
|
|
118
|
-
<Box
|
|
119
|
-
sx={{
|
|
120
|
-
filter: 'blur(180px)',
|
|
121
|
-
display: 'flex',
|
|
122
|
-
}}>
|
|
123
|
-
{/* 这里只能使用 did-avatar,用于加强页面的层次感 */}
|
|
124
|
-
<Avatar size={210} did={did} variant="rounded" />
|
|
125
|
-
</Box>
|
|
126
|
-
);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
const showChildren = Boolean(children);
|
|
130
|
-
let showInfo = !standalone;
|
|
131
|
-
if (isMd) {
|
|
132
|
-
showInfo = !showChildren;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
return (
|
|
136
|
-
<Box
|
|
137
|
-
sx={{
|
|
138
|
-
width: '100%',
|
|
139
|
-
minHeight: '100vh',
|
|
140
|
-
display: 'flex',
|
|
141
|
-
justifyContent: 'center',
|
|
142
|
-
alignItems: 'center',
|
|
143
|
-
px: {
|
|
144
|
-
xs: 2,
|
|
145
|
-
sm: 4,
|
|
146
|
-
md: 8,
|
|
147
|
-
},
|
|
148
|
-
pt: {
|
|
149
|
-
xs: 2,
|
|
150
|
-
sm: 4,
|
|
151
|
-
md: 6,
|
|
152
|
-
},
|
|
153
|
-
pb: {
|
|
154
|
-
xs: 5,
|
|
155
|
-
md: 8,
|
|
156
|
-
},
|
|
157
|
-
background: `radial-gradient(circle at bottom right, ${hexToRgba(currentAppColor, 0.3)} 10%, ${palette.background.default} 50%)`,
|
|
158
|
-
position: 'relative',
|
|
159
|
-
}}>
|
|
160
|
-
<Box
|
|
161
|
-
sx={{
|
|
162
|
-
maxWidth: 1200,
|
|
163
|
-
display: 'flex',
|
|
164
|
-
alignItems: 'center',
|
|
165
|
-
justifyContent: [showInfo, content].filter(Boolean).length > 1 ? 'space-between' : 'center',
|
|
166
|
-
width: '100%',
|
|
167
|
-
margin: 'auto',
|
|
168
|
-
}}>
|
|
169
|
-
{showInfo ? (
|
|
170
|
-
<Box
|
|
171
|
-
sx={{
|
|
172
|
-
display: 'flex',
|
|
173
|
-
flexDirection: 'column',
|
|
174
|
-
gap: 1.5,
|
|
175
|
-
}}>
|
|
176
|
-
<Box sx={{ display: 'flex', alignItems: 'center' }}>{logo}</Box>
|
|
177
|
-
<Typography
|
|
178
|
-
variant="h2"
|
|
179
|
-
sx={{
|
|
180
|
-
fontWeight: 'bold',
|
|
181
|
-
fontSize: {
|
|
182
|
-
sm: '2.25rem',
|
|
183
|
-
md: '2.75rem',
|
|
184
|
-
xl: '3.5rem',
|
|
185
|
-
},
|
|
186
|
-
}}>
|
|
187
|
-
{title}
|
|
188
|
-
</Typography>
|
|
189
|
-
{description ? (
|
|
190
|
-
<Box
|
|
191
|
-
sx={{
|
|
192
|
-
mb: 2,
|
|
193
|
-
color: 'text.secondary',
|
|
194
|
-
}}>
|
|
195
|
-
{description}
|
|
196
|
-
</Box>
|
|
197
|
-
) : null}
|
|
198
|
-
{actions ? <Box sx={{ mt: 8 }}>{actions}</Box> : null}
|
|
199
|
-
{termsOfUse ? <Box sx={{ mt: -1, color: 'grey' }}>{termsOfUse}</Box> : null}
|
|
200
|
-
</Box>
|
|
201
|
-
) : null}
|
|
202
|
-
|
|
203
|
-
{content}
|
|
204
|
-
</Box>
|
|
205
|
-
<Box
|
|
206
|
-
sx={{
|
|
207
|
-
position: 'absolute',
|
|
208
|
-
zIndex: 10,
|
|
209
|
-
bottom: 10,
|
|
210
|
-
left: 10,
|
|
211
|
-
right: 10,
|
|
212
|
-
textAlign: 'center',
|
|
213
|
-
}}>
|
|
214
|
-
{poweredBy}
|
|
215
|
-
</Box>
|
|
216
|
-
</Box>
|
|
217
|
-
);
|
|
218
|
-
}
|