@blocklet/ui-react 2.13.70 → 3.0.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.
- package/lib/@types/index.js +5 -18
- package/lib/BlockletStudio/index.js +75 -89
- package/lib/ComponentInstaller/index.js +153 -190
- package/lib/ComponentInstaller/installer-item.js +56 -55
- package/lib/ComponentInstaller/locales.js +19 -18
- package/lib/ComponentInstaller/use-component-installed.js +49 -80
- package/lib/ComponentManager/components/add-component.js +68 -89
- package/lib/ComponentManager/components/check-component.js +4 -2
- package/lib/ComponentManager/components/publish-component.js +48 -57
- package/lib/ComponentManager/components/resource-dialog.js +41 -55
- package/lib/ComponentManager/index.js +8 -3
- package/lib/ComponentManager/libs/locales.js +8 -5
- package/lib/Dashboard/index.js +88 -124
- package/lib/Footer/brand.js +25 -28
- package/lib/Footer/copyright.js +15 -16
- package/lib/Footer/index.js +55 -65
- package/lib/Footer/internal-footer.js +93 -95
- package/lib/Footer/layout/plain.js +26 -24
- package/lib/Footer/layout/row.js +16 -20
- package/lib/Footer/layout/standard.js +73 -59
- package/lib/Footer/links.js +100 -120
- package/lib/Footer/social-media.js +28 -33
- package/lib/Header/index.js +108 -130
- package/lib/Icon/index.js +43 -59
- package/lib/Notifications/Snackbar.js +114 -151
- package/lib/Notifications/hooks/use-title.js +85 -126
- package/lib/Notifications/hooks/use-width.js +10 -9
- package/lib/Notifications/utils.js +74 -114
- package/lib/UserCenter/components/config-inviter.js +21 -31
- package/lib/UserCenter/components/config-profile.js +41 -47
- package/lib/UserCenter/components/danger-zone.js +88 -93
- package/lib/UserCenter/components/editable-field.js +149 -167
- package/lib/UserCenter/components/nft.js +90 -66
- package/lib/UserCenter/components/notification.js +206 -195
- package/lib/UserCenter/components/passport.js +37 -53
- package/lib/UserCenter/components/privacy.js +53 -64
- package/lib/UserCenter/components/settings.js +117 -128
- package/lib/UserCenter/components/status-dialog/date-picker.js +35 -36
- package/lib/UserCenter/components/status-dialog/index.js +132 -144
- package/lib/UserCenter/components/status-selector/duration-menu.js +53 -48
- package/lib/UserCenter/components/status-selector/index.js +37 -36
- package/lib/UserCenter/components/status-selector/menu-item.js +13 -9
- package/lib/UserCenter/components/storage/action.js +27 -25
- package/lib/UserCenter/components/storage/connected.js +59 -30
- package/lib/UserCenter/components/storage/delete.js +32 -39
- package/lib/UserCenter/components/storage/disconnect.js +43 -25
- package/lib/UserCenter/components/storage/icons/empty-spaces-nft.svg.js +7 -0
- package/lib/UserCenter/components/storage/index.js +24 -18
- package/lib/UserCenter/components/storage/preview-nft.js +35 -36
- package/lib/UserCenter/components/third-party-login/index.js +73 -143
- package/lib/UserCenter/components/third-party-login/third-party-item.js +132 -153
- package/lib/UserCenter/components/user-center.js +345 -461
- package/lib/UserCenter/components/user-info/address.js +120 -100
- package/lib/UserCenter/components/user-info/index.js +10 -4
- package/lib/UserCenter/components/user-info/link-preview-input.js +159 -156
- package/lib/UserCenter/components/user-info/metadata.js +291 -385
- package/lib/UserCenter/components/user-info/switch-role.js +24 -18
- package/lib/UserCenter/components/user-info/timezone-select.js +37 -45
- package/lib/UserCenter/components/user-info/user-basic-info.js +213 -207
- package/lib/UserCenter/components/user-info/user-info-item.js +39 -26
- package/lib/UserCenter/components/user-info/user-info.js +52 -67
- package/lib/UserCenter/components/user-info/user-status.js +111 -154
- package/lib/UserCenter/components/user-info/utils.js +52 -93
- package/lib/UserCenter/components/webhook-item.js +95 -143
- package/lib/UserCenter/index.js +4 -1
- package/lib/UserCenter/libs/locales.js +132 -129
- package/lib/UserCenter/libs/utils.js +17 -22
- package/lib/UserSessions/components/user-session-info.js +30 -26
- package/lib/UserSessions/components/user-sessions.js +222 -268
- package/lib/UserSessions/index.js +4 -1
- package/lib/UserSessions/libs/locales.js +31 -28
- package/lib/UserSessions/libs/utils.js +30 -56
- package/lib/blocklets.js +75 -156
- package/lib/common/domain-warning.js +64 -104
- package/lib/common/header-addons.js +59 -80
- package/lib/common/link-blocker.js +10 -16
- package/lib/common/notification-addon.js +56 -89
- package/lib/common/overridable-theme-provider.js +12 -12
- package/lib/common/wallet-hidden-topbar.js +11 -13
- package/lib/common/ws.js +23 -34
- package/lib/contexts/config-user-space.js +34 -43
- package/lib/hooks/use-mobile.js +7 -4
- package/lib/index.js +25 -10
- package/lib/libs/client.js +5 -2
- package/lib/libs/constant.js +4 -1
- package/lib/libs/spaces.js +11 -11
- package/lib/libs/with-hide-when-embed.js +13 -15
- package/lib/packages/blocklet-ui-react/build.config.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/jest.config.d.ts +8 -0
- package/lib/packages/blocklet-ui-react/lib/@types/index.d.ts +3 -0
- package/lib/packages/blocklet-ui-react/lib/BlockletStudio/index.d.ts +26 -0
- package/lib/packages/blocklet-ui-react/lib/ComponentInstaller/index.d.ts +18 -0
- package/lib/packages/blocklet-ui-react/lib/ComponentInstaller/installer-item.d.ts +18 -0
- package/lib/packages/blocklet-ui-react/lib/ComponentInstaller/locales.d.ts +28 -0
- package/lib/packages/blocklet-ui-react/lib/ComponentInstaller/use-component-installed.d.ts +12 -0
- package/lib/packages/blocklet-ui-react/lib/ComponentManager/components/add-component.d.ts +13 -0
- package/lib/packages/blocklet-ui-react/lib/ComponentManager/components/check-component.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/lib/ComponentManager/components/publish-component.d.ts +7 -0
- package/lib/packages/blocklet-ui-react/lib/ComponentManager/components/resource-dialog.d.ts +11 -0
- package/lib/packages/blocklet-ui-react/lib/ComponentManager/index.d.ts +4 -0
- package/lib/packages/blocklet-ui-react/lib/ComponentManager/libs/locales.d.ts +19 -0
- package/lib/packages/blocklet-ui-react/lib/Dashboard/index.d.ts +27 -0
- package/lib/packages/blocklet-ui-react/lib/Footer/brand.d.ts +15 -0
- package/lib/packages/blocklet-ui-react/lib/Footer/copyright.d.ts +13 -0
- package/lib/packages/blocklet-ui-react/lib/Footer/index.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/lib/Footer/internal-footer.d.ts +29 -0
- package/lib/packages/blocklet-ui-react/lib/Footer/layout/plain.d.ts +19 -0
- package/lib/packages/blocklet-ui-react/lib/Footer/layout/row.d.ts +13 -0
- package/lib/packages/blocklet-ui-react/lib/Footer/layout/standard.d.ts +21 -0
- package/lib/packages/blocklet-ui-react/lib/Footer/links.d.ts +20 -0
- package/lib/packages/blocklet-ui-react/lib/Footer/social-media.d.ts +14 -0
- package/lib/packages/blocklet-ui-react/lib/Header/index.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/lib/Icon/index.d.ts +7 -0
- package/lib/packages/blocklet-ui-react/lib/Notifications/Snackbar.d.ts +8 -0
- package/lib/packages/blocklet-ui-react/lib/Notifications/hooks/use-title.d.ts +9 -0
- package/lib/packages/blocklet-ui-react/lib/Notifications/hooks/use-width.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/lib/Notifications/utils.d.ts +10 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/config-inviter.d.ts +4 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/config-profile.d.ts +5 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/danger-zone.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/editable-field.d.ts +50 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/nft.d.ts +4 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/notification.d.ts +5 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/passport.d.ts +5 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/privacy.d.ts +5 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/settings.d.ts +8 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/status-dialog/date-picker.d.ts +9 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/status-dialog/index.d.ts +9 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/status-selector/duration-menu.d.ts +7 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/status-selector/index.d.ts +8 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/status-selector/menu-item.d.ts +9 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/action.d.ts +7 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/connected.d.ts +4 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/delete.d.ts +5 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/disconnect.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/icons/empty-spaces-nft.svg.d.ts +3 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/index.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/preview-nft.d.ts +5 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/third-party-login/index.d.ts +4 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/third-party-login/third-party-item.d.ts +4 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-center.d.ts +15 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/address.d.ts +7 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/index.d.ts +5 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/link-preview-input.d.ts +6 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/metadata.d.ts +7 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/switch-role.d.ts +6 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/timezone-select.d.ts +7 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/user-basic-info.d.ts +12 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/user-info-item.d.ts +6 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/user-info.d.ts +6 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/user-status.d.ts +9 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/utils.d.ts +33 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/components/webhook-item.d.ts +10 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/index.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/libs/locales.d.ts +513 -0
- package/lib/packages/blocklet-ui-react/lib/UserCenter/libs/utils.d.ts +3 -0
- package/lib/packages/blocklet-ui-react/lib/UserSessions/components/user-session-info.d.ts +5 -0
- package/lib/packages/blocklet-ui-react/lib/UserSessions/components/user-sessions.d.ts +8 -0
- package/lib/packages/blocklet-ui-react/lib/UserSessions/index.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/lib/UserSessions/libs/locales.d.ts +88 -0
- package/lib/packages/blocklet-ui-react/lib/UserSessions/libs/utils.d.ts +3 -0
- package/lib/packages/blocklet-ui-react/lib/blocklets.d.ts +18 -0
- package/lib/packages/blocklet-ui-react/lib/common/domain-warning.d.ts +12 -0
- package/lib/packages/blocklet-ui-react/lib/common/header-addons.d.ts +19 -0
- package/lib/packages/blocklet-ui-react/lib/common/link-blocker.d.ts +4 -0
- package/lib/packages/blocklet-ui-react/lib/common/notification-addon.d.ts +10 -0
- package/lib/packages/blocklet-ui-react/lib/common/overridable-theme-provider.d.ts +12 -0
- package/lib/packages/blocklet-ui-react/lib/common/wallet-hidden-topbar.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/lib/common/ws.d.ts +4 -0
- package/lib/packages/blocklet-ui-react/lib/contexts/config-user-space.d.ts +7 -0
- package/lib/packages/blocklet-ui-react/lib/hooks/use-mobile.d.ts +4 -0
- package/lib/packages/blocklet-ui-react/lib/index.d.ts +12 -0
- package/lib/packages/blocklet-ui-react/lib/libs/client.d.ts +3 -0
- package/lib/packages/blocklet-ui-react/lib/libs/constant.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/lib/libs/spaces.d.ts +3 -0
- package/lib/packages/blocklet-ui-react/lib/libs/with-hide-when-embed.d.ts +5 -0
- package/lib/packages/blocklet-ui-react/lib/types.d.ts +37 -0
- package/lib/packages/blocklet-ui-react/lib/utils.d.ts +11 -0
- package/lib/{@types → packages/blocklet-ui-react/src/@types}/index.d.ts +3 -3
- package/lib/{BlockletStudio → packages/blocklet-ui-react/src/BlockletStudio}/index.d.ts +1 -1
- package/lib/packages/blocklet-ui-react/src/ComponentInstaller/ComponentInstaller.stories.d.ts +9 -0
- package/lib/packages/blocklet-ui-react/src/ComponentInstaller/demo/basic.d.ts +29 -0
- package/lib/packages/blocklet-ui-react/src/ComponentInstaller/demo/mock-optional-components.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/src/ComponentInstaller/index.d.ts +18 -0
- package/lib/packages/blocklet-ui-react/src/ComponentInstaller/installer-item.d.ts +18 -0
- package/lib/{ComponentInstaller → packages/blocklet-ui-react/src/ComponentInstaller}/use-component-installed.d.ts +1 -1
- package/lib/{ComponentManager → packages/blocklet-ui-react/src/ComponentManager}/components/add-component.d.ts +2 -2
- package/lib/packages/blocklet-ui-react/src/ComponentManager/components/check-component.d.ts +2 -0
- package/lib/{ComponentManager → packages/blocklet-ui-react/src/ComponentManager}/components/publish-component.d.ts +2 -2
- package/lib/{ComponentManager → packages/blocklet-ui-react/src/ComponentManager}/components/resource-dialog.d.ts +2 -2
- package/lib/packages/blocklet-ui-react/src/Dashboard/Dashboard.stories.d.ts +13 -0
- package/lib/packages/blocklet-ui-react/src/Dashboard/demo/basic.d.ts +29 -0
- package/lib/packages/blocklet-ui-react/src/Dashboard/index.d.ts +30 -0
- package/lib/packages/blocklet-ui-react/src/Footer/Footer.stories.d.ts +19 -0
- package/lib/packages/blocklet-ui-react/src/Footer/brand.d.ts +15 -0
- package/lib/packages/blocklet-ui-react/src/Footer/copyright.d.ts +13 -0
- package/lib/packages/blocklet-ui-react/src/Footer/demo/arcblock-site.d.ts +31 -0
- package/lib/packages/blocklet-ui-react/src/Footer/demo/brand.d.ts +1 -0
- package/lib/packages/blocklet-ui-react/src/Footer/demo/copyright.d.ts +1 -0
- package/lib/packages/blocklet-ui-react/src/Footer/demo/footer.d.ts +10 -0
- package/lib/packages/blocklet-ui-react/src/Footer/demo/links.d.ts +1 -0
- package/lib/packages/blocklet-ui-react/src/Footer/demo/social-media-icons.d.ts +1 -0
- package/lib/packages/blocklet-ui-react/src/Footer/index.d.ts +6 -0
- package/lib/packages/blocklet-ui-react/src/Footer/internal-footer.d.ts +32 -0
- package/lib/packages/blocklet-ui-react/src/Footer/layout/plain.d.ts +22 -0
- package/lib/packages/blocklet-ui-react/src/Footer/layout/row.d.ts +13 -0
- package/lib/packages/blocklet-ui-react/src/Footer/layout/standard.d.ts +24 -0
- package/lib/packages/blocklet-ui-react/src/Footer/links.d.ts +23 -0
- package/lib/packages/blocklet-ui-react/src/Footer/social-media.d.ts +14 -0
- package/lib/packages/blocklet-ui-react/src/Header/Header.stories.d.ts +26 -0
- package/lib/packages/blocklet-ui-react/src/Header/demo/addons-customization.d.ts +11 -0
- package/lib/packages/blocklet-ui-react/src/Header/demo/basic.d.ts +1 -0
- package/lib/packages/blocklet-ui-react/src/Header/demo/fixtures/index.d.ts +49 -0
- package/lib/packages/blocklet-ui-react/src/Header/demo/with-enable-connect-enable-locale.d.ts +1 -0
- package/lib/{Header → packages/blocklet-ui-react/src/Header}/index.d.ts +3 -2
- package/lib/packages/blocklet-ui-react/src/Icon/Icon.stories.d.ts +12 -0
- package/lib/packages/blocklet-ui-react/src/Icon/demo/basic.d.ts +1 -0
- package/lib/{Icon → packages/blocklet-ui-react/src/Icon}/index.d.ts +2 -3
- package/lib/packages/blocklet-ui-react/src/Notifications/Snackbar.d.ts +16 -0
- package/lib/{Notifications → packages/blocklet-ui-react/src/Notifications}/hooks/use-title.d.ts +1 -1
- package/lib/{Notifications → packages/blocklet-ui-react/src/Notifications}/utils.d.ts +2 -2
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/config-inviter.d.ts +1 -1
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/config-profile.d.ts +1 -1
- package/lib/packages/blocklet-ui-react/src/UserCenter/components/danger-zone.d.ts +1 -0
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/editable-field.d.ts +3 -3
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/nft.d.ts +1 -1
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/notification.d.ts +1 -1
- package/lib/packages/blocklet-ui-react/src/UserCenter/components/passport.d.ts +5 -0
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/privacy.d.ts +1 -1
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/settings.d.ts +2 -2
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/status-dialog/date-picker.d.ts +1 -1
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/status-dialog/index.d.ts +1 -1
- package/lib/packages/blocklet-ui-react/src/UserCenter/components/status-selector/duration-menu.d.ts +7 -0
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/status-selector/index.d.ts +1 -1
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/status-selector/menu-item.d.ts +4 -4
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/storage/action.d.ts +1 -1
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/storage/connected.d.ts +1 -1
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/storage/delete.d.ts +1 -1
- package/lib/packages/blocklet-ui-react/src/UserCenter/components/storage/disconnect.d.ts +2 -0
- package/lib/packages/blocklet-ui-react/src/UserCenter/components/storage/index.d.ts +2 -0
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/storage/preview-nft.d.ts +1 -1
- package/lib/packages/blocklet-ui-react/src/UserCenter/components/third-party-login/index.d.ts +4 -0
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/third-party-login/third-party-item.d.ts +2 -2
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-center.d.ts +2 -2
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/address.d.ts +2 -2
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/link-preview-input.d.ts +1 -1
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/metadata.d.ts +2 -2
- package/lib/packages/blocklet-ui-react/src/UserCenter/components/user-info/switch-role.d.ts +7 -0
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/timezone-select.d.ts +1 -1
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/user-basic-info.d.ts +3 -3
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/user-info-item.d.ts +1 -1
- package/lib/packages/blocklet-ui-react/src/UserCenter/components/user-info/user-info.d.ts +6 -0
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/user-status.d.ts +2 -2
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/utils.d.ts +8 -5
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/webhook-item.d.ts +1 -1
- package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/libs/utils.d.ts +1 -1
- package/lib/{UserSessions → packages/blocklet-ui-react/src/UserSessions}/components/user-session-info.d.ts +1 -1
- package/lib/{UserSessions → packages/blocklet-ui-react/src/UserSessions}/components/user-sessions.d.ts +1 -1
- package/lib/packages/blocklet-ui-react/src/common/domain-warning.d.ts +12 -0
- package/lib/packages/blocklet-ui-react/src/common/header-addons.d.ts +19 -0
- package/lib/{common → packages/blocklet-ui-react/src/common}/link-blocker.d.ts +1 -1
- package/lib/{common → packages/blocklet-ui-react/src/common}/notification-addon.d.ts +3 -6
- package/lib/{common → packages/blocklet-ui-react/src/common}/overridable-theme-provider.d.ts +5 -8
- package/lib/{contexts → packages/blocklet-ui-react/src/contexts}/config-user-space.d.ts +3 -3
- package/lib/{libs → packages/blocklet-ui-react/src/libs}/with-hide-when-embed.d.ts +1 -1
- package/lib/packages/blocklet-ui-react/src/types.d.ts +36 -0
- package/lib/packages/blocklet-ui-react/tools/auto-exports.d.ts +1 -0
- package/lib/packages/blocklet-ui-react/tools/jest.d.ts +1 -0
- package/lib/packages/blocklet-ui-react/vite.config.d.mts +2 -0
- package/lib/types.js +39 -39
- package/lib/utils.js +61 -175
- package/package.json +29 -34
- package/src/ComponentInstaller/ComponentInstaller.stories.jsx +16 -0
- package/src/ComponentInstaller/index.jsx +11 -27
- package/src/ComponentInstaller/installer-item.jsx +1 -5
- package/src/ComponentManager/components/add-component.tsx +3 -3
- package/src/ComponentManager/components/publish-component.tsx +3 -3
- package/src/Dashboard/Dashboard.stories.jsx +20 -0
- package/src/Dashboard/index.jsx +16 -27
- package/src/Footer/Footer.stories.jsx +32 -0
- package/src/Footer/brand.jsx +1 -7
- package/src/Footer/copyright.jsx +1 -6
- package/src/Footer/index.jsx +1 -6
- package/src/Footer/internal-footer.jsx +26 -16
- package/src/Footer/layout/row.jsx +2 -7
- package/src/Footer/layout/standard.jsx +12 -2
- package/src/Footer/links.jsx +2 -7
- package/src/Footer/social-media.jsx +1 -5
- package/src/Header/Header.stories.jsx +30 -0
- package/src/Header/index.tsx +1 -1
- package/src/Icon/Icon.stories.jsx +12 -0
- package/src/Notifications/Snackbar.tsx +119 -126
- package/src/Notifications/hooks/use-title.tsx +5 -2
- package/src/Notifications/hooks/use-width.tsx +1 -1
- package/src/UserCenter/components/config-profile.tsx +0 -1
- package/src/UserCenter/components/danger-zone.tsx +7 -3
- package/src/UserCenter/components/editable-field.tsx +45 -44
- package/src/UserCenter/components/nft.tsx +23 -5
- package/src/UserCenter/components/notification.tsx +22 -6
- package/src/UserCenter/components/privacy.tsx +1 -1
- package/src/UserCenter/components/settings.tsx +6 -1
- package/src/UserCenter/components/status-dialog/date-picker.tsx +10 -7
- package/src/UserCenter/components/status-dialog/index.tsx +11 -4
- package/src/UserCenter/components/status-selector/duration-menu.tsx +7 -2
- package/src/UserCenter/components/status-selector/index.tsx +7 -1
- package/src/UserCenter/components/status-selector/menu-item.tsx +1 -2
- package/src/UserCenter/components/storage/action.tsx +1 -2
- package/src/UserCenter/components/storage/connected.tsx +18 -5
- package/src/UserCenter/components/storage/delete.tsx +1 -1
- package/src/UserCenter/components/storage/disconnect.tsx +10 -2
- package/src/UserCenter/components/storage/index.tsx +6 -1
- package/src/UserCenter/components/storage/preview-nft.tsx +1 -1
- package/src/UserCenter/components/third-party-login/index.tsx +2 -2
- package/src/UserCenter/components/third-party-login/third-party-item.tsx +11 -7
- package/src/UserCenter/components/user-center.tsx +10 -5
- package/src/UserCenter/components/user-info/address.tsx +12 -6
- package/src/UserCenter/components/user-info/link-preview-input.tsx +31 -13
- package/src/UserCenter/components/user-info/metadata.tsx +44 -37
- package/src/UserCenter/components/user-info/timezone-select.tsx +2 -5
- package/src/UserCenter/components/user-info/user-basic-info.tsx +24 -8
- package/src/UserCenter/components/user-info/user-info-item.tsx +7 -2
- package/src/UserCenter/components/user-info/user-status.tsx +7 -9
- package/src/UserCenter/components/webhook-item.tsx +4 -2
- package/src/UserSessions/components/user-sessions.tsx +1 -1
- package/src/common/domain-warning.jsx +2 -14
- package/src/common/header-addons.jsx +8 -11
- package/src/common/notification-addon.jsx +1 -7
- package/src/common/overridable-theme-provider.jsx +1 -5
- package/src/common/ws.js +2 -2
- package/src/contexts/config-user-space.tsx +3 -3
- package/vite.config.mjs +31 -0
- package/lib/@types/shims.d.ts +0 -18
- package/lib/ComponentInstaller/index.d.ts +0 -37
- package/lib/ComponentInstaller/installer-item.d.ts +0 -21
- package/lib/ComponentManager/components/check-component.d.ts +0 -2
- package/lib/Dashboard/index.d.ts +0 -44
- package/lib/Footer/brand.d.ts +0 -22
- package/lib/Footer/copyright.d.ts +0 -18
- package/lib/Footer/index.d.ts +0 -6
- package/lib/Footer/internal-footer.d.ts +0 -29
- package/lib/Footer/layout/plain.d.ts +0 -15
- package/lib/Footer/layout/row.d.ts +0 -18
- package/lib/Footer/layout/standard.d.ts +0 -17
- package/lib/Footer/links.d.ts +0 -23
- package/lib/Footer/social-media.d.ts +0 -14
- package/lib/Notifications/Snackbar.d.ts +0 -14
- package/lib/UserCenter/components/danger-zone.d.ts +0 -1
- package/lib/UserCenter/components/passport.d.ts +0 -5
- package/lib/UserCenter/components/status-selector/duration-menu.d.ts +0 -7
- package/lib/UserCenter/components/storage/disconnect.d.ts +0 -2
- package/lib/UserCenter/components/storage/icons/empty-spaces-nft.svg +0 -58
- package/lib/UserCenter/components/storage/icons/long-arrow.svg +0 -5
- package/lib/UserCenter/components/storage/icons/space-connected.svg +0 -3
- package/lib/UserCenter/components/storage/icons/space-disconnect.svg +0 -3
- package/lib/UserCenter/components/storage/index.d.ts +0 -2
- package/lib/UserCenter/components/third-party-login/index.d.ts +0 -4
- package/lib/UserCenter/components/user-info/switch-role.d.ts +0 -7
- package/lib/UserCenter/components/user-info/user-info.d.ts +0 -6
- package/lib/common/domain-warning.d.ts +0 -17
- package/lib/common/header-addons.d.ts +0 -27
- package/lib/types.d.ts +0 -2
- /package/lib/{ComponentInstaller → packages/blocklet-ui-react/src/ComponentInstaller}/locales.d.ts +0 -0
- /package/lib/{ComponentManager → packages/blocklet-ui-react/src/ComponentManager}/index.d.ts +0 -0
- /package/lib/{ComponentManager → packages/blocklet-ui-react/src/ComponentManager}/libs/locales.d.ts +0 -0
- /package/lib/{Notifications → packages/blocklet-ui-react/src/Notifications}/hooks/use-width.d.ts +0 -0
- /package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/index.d.ts +0 -0
- /package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/index.d.ts +0 -0
- /package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/libs/locales.d.ts +0 -0
- /package/lib/{UserSessions → packages/blocklet-ui-react/src/UserSessions}/index.d.ts +0 -0
- /package/lib/{UserSessions → packages/blocklet-ui-react/src/UserSessions}/libs/locales.d.ts +0 -0
- /package/lib/{UserSessions → packages/blocklet-ui-react/src/UserSessions}/libs/utils.d.ts +0 -0
- /package/lib/{blocklets.d.ts → packages/blocklet-ui-react/src/blocklets.d.ts} +0 -0
- /package/lib/{common → packages/blocklet-ui-react/src/common}/wallet-hidden-topbar.d.ts +0 -0
- /package/lib/{common → packages/blocklet-ui-react/src/common}/ws.d.ts +0 -0
- /package/lib/{hooks → packages/blocklet-ui-react/src/hooks}/use-mobile.d.ts +0 -0
- /package/lib/{index.d.ts → packages/blocklet-ui-react/src/index.d.ts} +0 -0
- /package/lib/{libs → packages/blocklet-ui-react/src/libs}/client.d.ts +0 -0
- /package/lib/{libs → packages/blocklet-ui-react/src/libs}/constant.d.ts +0 -0
- /package/lib/{libs → packages/blocklet-ui-react/src/libs}/spaces.d.ts +0 -0
- /package/lib/{utils.d.ts → packages/blocklet-ui-react/src/utils.d.ts} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { use } from 'react';
|
|
2
2
|
import { Box, CircularProgress, Divider, Typography } from '@mui/material';
|
|
3
3
|
import type { BoxProps } from '@mui/material';
|
|
4
4
|
import { useCreation, useMemoizedFn, useRequest } from 'ahooks';
|
|
@@ -111,7 +111,7 @@ export default function UserCenter({
|
|
|
111
111
|
const t = useMemoizedFn((key, data = {}) => {
|
|
112
112
|
return translate(translations, key, locale, 'en', data);
|
|
113
113
|
});
|
|
114
|
-
const sessionCtx: TSessionContext =
|
|
114
|
+
const sessionCtx: TSessionContext = use(SessionContext);
|
|
115
115
|
const session = sessionCtx?.session;
|
|
116
116
|
|
|
117
117
|
const currentDid = useCreation(() => {
|
|
@@ -502,12 +502,17 @@ export default function UserCenter({
|
|
|
502
502
|
|
|
503
503
|
return (
|
|
504
504
|
<ContentWrapper display="flex" flexDirection={isMobile ? 'column' : 'row'}>
|
|
505
|
-
<Box
|
|
505
|
+
<Box
|
|
506
|
+
className="user-center-tabs"
|
|
507
|
+
sx={{
|
|
508
|
+
flex: '1',
|
|
509
|
+
order: isMobile ? 2 : 'unset',
|
|
510
|
+
}}>
|
|
506
511
|
{userCenterTabs.length > 0 && currentTab ? (
|
|
507
512
|
<Box
|
|
508
|
-
display="flex"
|
|
509
|
-
flexDirection="column"
|
|
510
513
|
sx={{
|
|
514
|
+
display: 'flex',
|
|
515
|
+
flexDirection: 'column',
|
|
511
516
|
height: '100%',
|
|
512
517
|
overflow: 'auto',
|
|
513
518
|
padding: '1px',
|
|
@@ -58,7 +58,13 @@ export default function AddressEditor({
|
|
|
58
58
|
});
|
|
59
59
|
|
|
60
60
|
return (
|
|
61
|
-
<Box
|
|
61
|
+
<Box
|
|
62
|
+
sx={{
|
|
63
|
+
display: 'flex',
|
|
64
|
+
flexDirection: 'column',
|
|
65
|
+
gap: 2,
|
|
66
|
+
mt: 2,
|
|
67
|
+
}}>
|
|
62
68
|
<EditableField
|
|
63
69
|
placeholder={t('profile.address.country')}
|
|
64
70
|
value={address.country || defaultCountry}
|
|
@@ -76,8 +82,11 @@ export default function AddressEditor({
|
|
|
76
82
|
sx={selectStyle}
|
|
77
83
|
/>
|
|
78
84
|
</EditableField>
|
|
79
|
-
|
|
80
|
-
|
|
85
|
+
<Box
|
|
86
|
+
sx={{
|
|
87
|
+
display: 'flex',
|
|
88
|
+
gap: 2,
|
|
89
|
+
}}>
|
|
81
90
|
<EditableField
|
|
82
91
|
value={address.province || ''}
|
|
83
92
|
onChange={(value) => handleChange('province', value)}
|
|
@@ -96,7 +105,6 @@ export default function AddressEditor({
|
|
|
96
105
|
errorMsg={errors.city}
|
|
97
106
|
/>
|
|
98
107
|
</Box>
|
|
99
|
-
|
|
100
108
|
<EditableField
|
|
101
109
|
value={address.line1 || ''}
|
|
102
110
|
onChange={(value) => handleChange('line1', value)}
|
|
@@ -107,7 +115,6 @@ export default function AddressEditor({
|
|
|
107
115
|
rows={2}
|
|
108
116
|
errorMsg={errors.line1}
|
|
109
117
|
/>
|
|
110
|
-
|
|
111
118
|
<EditableField
|
|
112
119
|
value={address.line2 || ''}
|
|
113
120
|
onChange={(value) => handleChange('line2', value)}
|
|
@@ -118,7 +125,6 @@ export default function AddressEditor({
|
|
|
118
125
|
rows={2}
|
|
119
126
|
errorMsg={errors.line2}
|
|
120
127
|
/>
|
|
121
|
-
|
|
122
128
|
<EditableField
|
|
123
129
|
value={address.postalCode || ''}
|
|
124
130
|
onChange={(value) => handleChange('postalCode', value)}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import { Box, Button, FormControl, IconButton, styled, TextField, Typography } from '@mui/material';
|
|
2
|
-
import RemoveIcon from '@mui/icons-material/Remove';
|
|
3
|
-
import AddIcon from '@mui/icons-material/Add';
|
|
4
|
-
import useTheme from '@mui/material/styles/useTheme';
|
|
5
1
|
import { ChangeEvent, useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import { Box, Button, FormControl, IconButton, styled, TextField, Typography, useTheme } from '@mui/material';
|
|
3
|
+
import { Remove as RemoveIcon, Add as AddIcon } from '@mui/icons-material';
|
|
6
4
|
import { translate } from '@arcblock/ux/lib/Locale/util';
|
|
7
5
|
import { useMemoizedFn } from 'ahooks';
|
|
8
6
|
import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
9
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
10
7
|
import LinkIcon from '@arcblock/icons/lib/Link';
|
|
11
8
|
import { mergeSx } from '@arcblock/ux/lib/Util/style';
|
|
12
9
|
import { joinURL, withoutProtocol } from 'ufo';
|
|
@@ -96,15 +93,30 @@ function DynamicLinkForm({ links = [], onChange }: { links: string[]; onChange:
|
|
|
96
93
|
};
|
|
97
94
|
|
|
98
95
|
return (
|
|
99
|
-
<Box
|
|
100
|
-
|
|
96
|
+
<Box
|
|
97
|
+
sx={{
|
|
98
|
+
width: '100%',
|
|
99
|
+
}}>
|
|
100
|
+
<Box
|
|
101
|
+
sx={{
|
|
102
|
+
display: 'flex',
|
|
103
|
+
justifyContent: 'space-between',
|
|
104
|
+
alignItems: 'center',
|
|
105
|
+
gap: 1,
|
|
106
|
+
}}>
|
|
101
107
|
<Typography variant="subtitle1" gutterBottom sx={{ mb: 0, fontSize: '12px', color: 'text.primary' }}>
|
|
102
108
|
{t('profile.socialMedia')}
|
|
103
109
|
</Typography>
|
|
104
110
|
</Box>
|
|
105
111
|
{links.map((link, index) => (
|
|
106
|
-
|
|
107
|
-
|
|
112
|
+
<Box
|
|
113
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
114
|
+
key={index}
|
|
115
|
+
sx={{
|
|
116
|
+
display: 'flex',
|
|
117
|
+
alignItems: 'flex-start',
|
|
118
|
+
mb: 1,
|
|
119
|
+
}}>
|
|
108
120
|
<LinkInput
|
|
109
121
|
value={link}
|
|
110
122
|
onChange={(value) => handleInputChange(index, value)}
|
|
@@ -205,14 +217,20 @@ export function LinkPreviewInput({
|
|
|
205
217
|
}
|
|
206
218
|
|
|
207
219
|
return (
|
|
208
|
-
<Box
|
|
220
|
+
<Box
|
|
221
|
+
sx={{
|
|
222
|
+
width: '100%',
|
|
223
|
+
display: 'flex',
|
|
224
|
+
flexDirection: 'column',
|
|
225
|
+
gap: 2,
|
|
226
|
+
}}>
|
|
209
227
|
{links.map((link) => (
|
|
210
228
|
<Box
|
|
211
229
|
key={link}
|
|
212
|
-
display="flex"
|
|
213
|
-
alignItems="center"
|
|
214
|
-
gap={1}
|
|
215
230
|
sx={{
|
|
231
|
+
display: 'flex',
|
|
232
|
+
alignItems: 'center',
|
|
233
|
+
gap: 1,
|
|
216
234
|
overflow: 'hidden',
|
|
217
235
|
width: '100%',
|
|
218
236
|
}}>
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/* eslint-disable react/no-unstable-nested-components */
|
|
2
|
-
/* eslint-disable import/no-extraneous-dependencies */
|
|
3
1
|
import { Icon } from '@iconify/react';
|
|
4
2
|
import { Box, Backdrop, useMediaQuery, SwipeableDrawer, Typography, Tooltip } from '@mui/material';
|
|
5
3
|
import type { BackdropProps } from '@mui/material';
|
|
@@ -19,7 +17,7 @@ import omit from 'lodash/omit';
|
|
|
19
17
|
import { mergeSx } from '@arcblock/ux/lib/Util/style';
|
|
20
18
|
import { LOGIN_PROVIDER } from '@arcblock/ux/lib/Util/constant';
|
|
21
19
|
import { useCreation, useMemoizedFn, useReactive } from 'ahooks';
|
|
22
|
-
import { useMemo, useRef, useState, memo,
|
|
20
|
+
import { useMemo, useRef, useState, memo, useEffect, lazy } from 'react';
|
|
23
21
|
import { translate } from '@arcblock/ux/lib/Locale/util';
|
|
24
22
|
import isEmail from 'validator/lib/isEmail';
|
|
25
23
|
import isPostalCode from 'validator/lib/isPostalCode';
|
|
@@ -47,23 +45,27 @@ const iconSize = {
|
|
|
47
45
|
|
|
48
46
|
const bioMaxLength = 200;
|
|
49
47
|
|
|
50
|
-
const BackdropWrap = memo(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
48
|
+
const BackdropWrap = memo(function BackdropWrap({
|
|
49
|
+
ref,
|
|
50
|
+
...backdropProps
|
|
51
|
+
}: BackdropProps & {
|
|
52
|
+
// eslint-disable-next-line react/require-default-props
|
|
53
|
+
ref?: React.Ref<unknown>;
|
|
54
|
+
}) {
|
|
55
|
+
return (
|
|
56
|
+
<Backdrop
|
|
57
|
+
ref={ref}
|
|
58
|
+
component="div"
|
|
59
|
+
style={{
|
|
60
|
+
backgroundColor: 'rgba(0, 0, 0, 0.6)',
|
|
61
|
+
backdropFilter: 'blur(3px)',
|
|
62
|
+
touchAction: 'none',
|
|
63
|
+
}}
|
|
64
|
+
{...backdropProps}
|
|
65
|
+
key="background"
|
|
66
|
+
/>
|
|
67
|
+
);
|
|
68
|
+
});
|
|
67
69
|
|
|
68
70
|
// 添加 displayName
|
|
69
71
|
BackdropWrap.displayName = 'BackdropWrap';
|
|
@@ -363,7 +365,6 @@ export default function UserMetadataComponent({
|
|
|
363
365
|
{t('profile.editProfile')}
|
|
364
366
|
</Button>
|
|
365
367
|
) : null}
|
|
366
|
-
|
|
367
368
|
{editing && isMyself && isSupportAddress ? (
|
|
368
369
|
<AddressEditor
|
|
369
370
|
address={address}
|
|
@@ -388,7 +389,13 @@ export default function UserMetadataComponent({
|
|
|
388
389
|
}
|
|
389
390
|
return (
|
|
390
391
|
<Box key={k}>
|
|
391
|
-
<Typography
|
|
392
|
+
<Typography
|
|
393
|
+
variant="caption"
|
|
394
|
+
component="p"
|
|
395
|
+
sx={{
|
|
396
|
+
fontWeight: 600,
|
|
397
|
+
mb: 0,
|
|
398
|
+
}}>
|
|
392
399
|
{t(`profile.address.${k}`)}
|
|
393
400
|
</Typography>
|
|
394
401
|
<Typography variant="caption" component="span">
|
|
@@ -410,7 +417,6 @@ export default function UserMetadataComponent({
|
|
|
410
417
|
icon={<LocationIcon {...iconSize} />}
|
|
411
418
|
/>
|
|
412
419
|
)}
|
|
413
|
-
|
|
414
420
|
<EditableField
|
|
415
421
|
value={metadata.timezone || currentTimezone}
|
|
416
422
|
onChange={(value) => onChange(value, 'timezone')}
|
|
@@ -428,7 +434,6 @@ export default function UserMetadataComponent({
|
|
|
428
434
|
mode={mode}
|
|
429
435
|
/>
|
|
430
436
|
</EditableField>
|
|
431
|
-
|
|
432
437
|
<EditableField
|
|
433
438
|
value={metadata.email ?? user?.email ?? ''}
|
|
434
439
|
editable={editing}
|
|
@@ -477,7 +482,6 @@ export default function UserMetadataComponent({
|
|
|
477
482
|
validateMsg.email = msg;
|
|
478
483
|
}}
|
|
479
484
|
/>
|
|
480
|
-
|
|
481
485
|
<EditableField
|
|
482
486
|
value={phoneValue.phone}
|
|
483
487
|
editable={editing}
|
|
@@ -519,15 +523,16 @@ export default function UserMetadataComponent({
|
|
|
519
523
|
}}
|
|
520
524
|
/>
|
|
521
525
|
</EditableField>
|
|
522
|
-
|
|
523
526
|
<LinkPreviewInput editable={editing} links={links} onChange={handleLinksChange} />
|
|
524
527
|
{editing && isMyself ? (
|
|
525
528
|
<Box
|
|
526
|
-
display="flex"
|
|
527
|
-
gap={1}
|
|
528
529
|
style={{ width: '100%' }}
|
|
529
|
-
|
|
530
|
-
|
|
530
|
+
sx={{
|
|
531
|
+
display: 'flex',
|
|
532
|
+
gap: 1,
|
|
533
|
+
justifyContent: 'flex-end',
|
|
534
|
+
flexDirection: mode === 'drawer' ? 'column' : 'row',
|
|
535
|
+
}}>
|
|
531
536
|
<Button
|
|
532
537
|
fullWidth={mode === 'drawer'}
|
|
533
538
|
size="small"
|
|
@@ -573,12 +578,14 @@ export default function UserMetadataComponent({
|
|
|
573
578
|
slots={{
|
|
574
579
|
backdrop: BackdropWrap,
|
|
575
580
|
}}
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
581
|
+
slotProps={{
|
|
582
|
+
paper: {
|
|
583
|
+
sx: {
|
|
584
|
+
boxShadow: '0px -2px 16px 0px rgba(0, 0, 0, 0.08)',
|
|
585
|
+
borderRadius: 1.5, // 保持跟 DID Wallet 一致
|
|
586
|
+
borderBottomLeftRadius: 0,
|
|
587
|
+
borderBottomRightRadius: 0,
|
|
588
|
+
},
|
|
582
589
|
},
|
|
583
590
|
}}>
|
|
584
591
|
<Box
|
|
@@ -598,8 +605,8 @@ export default function UserMetadataComponent({
|
|
|
598
605
|
/>
|
|
599
606
|
</Box>
|
|
600
607
|
<Box
|
|
601
|
-
p={2}
|
|
602
608
|
sx={{
|
|
609
|
+
p: 2,
|
|
603
610
|
maxHeight: '500px',
|
|
604
611
|
overflowY: 'auto',
|
|
605
612
|
}}>
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { useState, useEffect, useMemo } from 'react';
|
|
2
|
-
import MenuItem from '@mui/material
|
|
3
|
-
import Select, { SelectChangeEvent } from '@mui/material/Select';
|
|
4
|
-
import ListSubheader from '@mui/material/ListSubheader';
|
|
5
|
-
import TextField from '@mui/material/TextField';
|
|
2
|
+
import { MenuItem, Select, SelectChangeEvent, ListSubheader, TextField } from '@mui/material';
|
|
6
3
|
import debounce from 'lodash/debounce';
|
|
7
|
-
import KeyboardArrowDownIcon from '@mui/icons-material
|
|
4
|
+
import { KeyboardArrowDown as KeyboardArrowDownIcon } from '@mui/icons-material';
|
|
8
5
|
import { getTimezones } from './utils';
|
|
9
6
|
|
|
10
7
|
const timezones = getTimezones();
|
|
@@ -10,8 +10,10 @@ import { useEffect, useState } from 'react';
|
|
|
10
10
|
import Toast from '@arcblock/ux/lib/Toast';
|
|
11
11
|
import type { AxiosError } from 'axios';
|
|
12
12
|
import { parseURL, joinURL } from 'ufo';
|
|
13
|
-
import
|
|
14
|
-
|
|
13
|
+
import {
|
|
14
|
+
KeyboardArrowDown as KeyboardArrowDownIcon,
|
|
15
|
+
KeyboardArrowUp as KeyboardArrowUpIcon,
|
|
16
|
+
} from '@mui/icons-material';
|
|
15
17
|
|
|
16
18
|
import { translations } from '../../libs/locales';
|
|
17
19
|
import type { User, UserAddress, UserMetadata } from '../../../@types';
|
|
@@ -134,13 +136,21 @@ export default function UserBasicInfo({
|
|
|
134
136
|
position: 'relative',
|
|
135
137
|
...(rest.sx ?? {}),
|
|
136
138
|
}}>
|
|
137
|
-
<Box
|
|
139
|
+
<Box
|
|
140
|
+
className="user-info"
|
|
141
|
+
sx={{
|
|
142
|
+
display: 'flex',
|
|
143
|
+
flexDirection: isMobile ? 'row' : 'column',
|
|
144
|
+
gap: 2,
|
|
145
|
+
}}>
|
|
138
146
|
<Box
|
|
139
147
|
className="user-avatar"
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
148
|
+
sx={{
|
|
149
|
+
position: 'relative',
|
|
150
|
+
display: 'flex',
|
|
151
|
+
alignItems: 'center',
|
|
152
|
+
justifyContent: 'space-between',
|
|
153
|
+
}}>
|
|
144
154
|
<Avatar
|
|
145
155
|
// @ts-ignore
|
|
146
156
|
src={user?.avatar}
|
|
@@ -241,7 +251,13 @@ export default function UserBasicInfo({
|
|
|
241
251
|
</Box>
|
|
242
252
|
) : null}
|
|
243
253
|
<Collapse in={expanded} timeout="auto">
|
|
244
|
-
<Typography
|
|
254
|
+
<Typography
|
|
255
|
+
component="p"
|
|
256
|
+
sx={{
|
|
257
|
+
color: 'text.secondary',
|
|
258
|
+
fontSize: '14px',
|
|
259
|
+
mb: 2,
|
|
260
|
+
}}>
|
|
245
261
|
{t('profile.justForYou')}
|
|
246
262
|
</Typography>
|
|
247
263
|
<UserInfo user={user} isMySelf={isMyself} />
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Box, BoxProps, Typography } from '@mui/material';
|
|
2
|
-
import VerifiedIcon from '@mui/icons-material
|
|
2
|
+
import { Verified as VerifiedIcon } from '@mui/icons-material';
|
|
3
3
|
|
|
4
4
|
type TUserInfoItemProps = {
|
|
5
5
|
data: {
|
|
@@ -32,7 +32,12 @@ export default function UserInfoItem({ data, verified, ...rest }: TUserInfoItemP
|
|
|
32
32
|
{data.icon}
|
|
33
33
|
{data.title}
|
|
34
34
|
</Typography>
|
|
35
|
-
<Box
|
|
35
|
+
<Box
|
|
36
|
+
sx={{
|
|
37
|
+
display: 'flex',
|
|
38
|
+
flexDirection: 'row',
|
|
39
|
+
alignItems: 'center',
|
|
40
|
+
}}>
|
|
36
41
|
<Typography
|
|
37
42
|
sx={{
|
|
38
43
|
color: 'text.secondary',
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import Badge from '@mui/material/Badge';
|
|
3
|
-
import Box from '@mui/material/Box';
|
|
1
|
+
import { Box, Badge, Tooltip, type SvgIconProps } from '@mui/material';
|
|
4
2
|
import styled from '@emotion/styled';
|
|
5
3
|
import { lazy, Suspense, useCallback, useEffect, useMemo, useState } from 'react';
|
|
6
4
|
import { useCreation, useMemoizedFn, useInterval, useUnmount } from 'ahooks';
|
|
7
5
|
import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
8
|
-
import Tooltip from '@mui/material/Tooltip';
|
|
9
6
|
import { translate } from '@arcblock/ux/lib/Locale/util';
|
|
10
|
-
import { SvgIconProps } from '@mui/material/SvgIcon';
|
|
11
7
|
import { formatToDatetime } from '@arcblock/ux/lib/Util';
|
|
12
8
|
import type { UserMetadata } from '../../../@types';
|
|
13
9
|
import { DurationEnum, StatusEnum } from '../../../@types';
|
|
@@ -184,10 +180,12 @@ export default function UserStatus({
|
|
|
184
180
|
<Tooltip title={tooltipTitle}>
|
|
185
181
|
<Box
|
|
186
182
|
className="status-icon"
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
183
|
+
onClick={onOpenStatusSelector}
|
|
184
|
+
sx={{
|
|
185
|
+
display: 'flex',
|
|
186
|
+
alignItems: 'center',
|
|
187
|
+
justifyContent: 'center',
|
|
188
|
+
}}>
|
|
191
189
|
{StatusIcon ? (
|
|
192
190
|
<Suspense fallback={null}>
|
|
193
191
|
<StatusIcon style={{ width: 16, height: 16 }} />
|
|
@@ -177,8 +177,10 @@ export default function WebhookItem({
|
|
|
177
177
|
checkUrl();
|
|
178
178
|
}}
|
|
179
179
|
error={!!currentState.error}
|
|
180
|
-
|
|
181
|
-
|
|
180
|
+
slotProps={{
|
|
181
|
+
input: {
|
|
182
|
+
endAdornment: <InputAdornment position="end">{inputAdornment}</InputAdornment>,
|
|
183
|
+
},
|
|
182
184
|
}}
|
|
183
185
|
/>
|
|
184
186
|
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { useMemo, useState, useCallback } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
|
|
4
|
-
import Box from '@mui/material/Box';
|
|
5
|
-
import Typography from '@mui/material/Typography';
|
|
6
|
-
import Button from '@mui/material/Button';
|
|
7
|
-
import Dialog from '@mui/material/Dialog';
|
|
8
|
-
import DialogActions from '@mui/material/DialogActions';
|
|
9
|
-
import DialogContent from '@mui/material/DialogContent';
|
|
10
|
-
|
|
3
|
+
import { Box, Typography, Button, Dialog, DialogActions, DialogContent } from '@mui/material';
|
|
11
4
|
import { useMemoizedFn } from 'ahooks';
|
|
12
5
|
import { translate } from '@arcblock/ux/lib/Locale/util';
|
|
13
6
|
import { joinURL } from 'ufo';
|
|
@@ -67,7 +60,7 @@ const ONE_MONTH = 1000 * 60 * 60 * 24 * 30;
|
|
|
67
60
|
|
|
68
61
|
const DASHBOARD_DOMAIN = '.well-known/service/admin/domains';
|
|
69
62
|
|
|
70
|
-
export default function DomainWarning({ locale, session }) {
|
|
63
|
+
export default function DomainWarning({ locale = 'en', session = {} }) {
|
|
71
64
|
const user = session?.user;
|
|
72
65
|
const isMobile = useMobile();
|
|
73
66
|
|
|
@@ -183,8 +176,3 @@ DomainWarning.propTypes = {
|
|
|
183
176
|
locale: PropTypes.string,
|
|
184
177
|
session: PropTypes.object,
|
|
185
178
|
};
|
|
186
|
-
|
|
187
|
-
DomainWarning.defaultProps = {
|
|
188
|
-
locale: 'en',
|
|
189
|
-
session: {},
|
|
190
|
-
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import 'iconify-icon';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { use, createElement } from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
// FIXME: 直接从 react 中 import Fragment 可能会在 vite 下出错,先暂时从 react/jsx-runtime 导入 Fragment 来跳过这个问题
|
|
6
6
|
import { Fragment } from 'react/jsx-runtime';
|
|
@@ -22,8 +22,13 @@ const hasNotification = () => {
|
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
// eslint-disable-next-line no-shadow
|
|
25
|
-
export default function HeaderAddons({
|
|
26
|
-
|
|
25
|
+
export default function HeaderAddons({
|
|
26
|
+
formattedBlocklet,
|
|
27
|
+
addons = null,
|
|
28
|
+
showDomainWarningDialog = true,
|
|
29
|
+
sessionManagerProps = { showRole: true },
|
|
30
|
+
}) {
|
|
31
|
+
const sessionCtx = use(SessionContext);
|
|
27
32
|
const { locale, languages } = useLocaleContext() || {};
|
|
28
33
|
const { enableConnect = true, enableLocale = true } = formattedBlocklet;
|
|
29
34
|
const authenticated = !!sessionCtx?.session?.user;
|
|
@@ -106,11 +111,3 @@ HeaderAddons.propTypes = {
|
|
|
106
111
|
sessionManagerProps: SessionManagerProps,
|
|
107
112
|
showDomainWarningDialog: PropTypes.bool,
|
|
108
113
|
};
|
|
109
|
-
|
|
110
|
-
HeaderAddons.defaultProps = {
|
|
111
|
-
addons: null,
|
|
112
|
-
sessionManagerProps: {
|
|
113
|
-
showRole: true,
|
|
114
|
-
},
|
|
115
|
-
showDomainWarningDialog: true,
|
|
116
|
-
};
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import Badge from '@mui/material/Badge';
|
|
2
1
|
import PropTypes from 'prop-types';
|
|
3
2
|
import { useCallback, useEffect, useMemo } from 'react';
|
|
4
|
-
import { IconButton } from '@mui/material';
|
|
3
|
+
import { IconButton, Badge } from '@mui/material';
|
|
5
4
|
import { useSnackbar } from 'notistack';
|
|
6
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
7
5
|
import NotificationsOutlinedIcon from '@arcblock/icons/lib/Notification';
|
|
8
6
|
import { useCreation } from 'ahooks';
|
|
9
7
|
import { EVENTS, WELLKNOWN_SERVICE_PATH_PREFIX } from '@abtnode/constant';
|
|
@@ -125,7 +123,3 @@ export default function NotificationAddon({ session = {} }) {
|
|
|
125
123
|
NotificationAddon.propTypes = {
|
|
126
124
|
session: PropTypes.object,
|
|
127
125
|
};
|
|
128
|
-
|
|
129
|
-
NotificationAddon.defaultProps = {
|
|
130
|
-
session: {},
|
|
131
|
-
};
|
|
@@ -6,7 +6,7 @@ const defaultTheme = createTheme();
|
|
|
6
6
|
/**
|
|
7
7
|
* 允许 theme 被覆盖的 ThemeProvider 组件, 默认使用 ux default theme, 可以传入 theme 进行覆盖
|
|
8
8
|
*/
|
|
9
|
-
export default function OverridableThemeProvider({ theme: themeOverrides, children }) {
|
|
9
|
+
export default function OverridableThemeProvider({ theme: themeOverrides = null, children }) {
|
|
10
10
|
const theme = themeOverrides ? createTheme(themeOverrides) : defaultTheme;
|
|
11
11
|
return <ThemeProvider theme={theme}>{children}</ThemeProvider>;
|
|
12
12
|
}
|
|
@@ -15,7 +15,3 @@ OverridableThemeProvider.propTypes = {
|
|
|
15
15
|
children: PropTypes.any.isRequired,
|
|
16
16
|
theme: PropTypes.object,
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
OverridableThemeProvider.defaultProps = {
|
|
20
|
-
theme: null,
|
|
21
|
-
};
|
package/src/common/ws.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { use } from 'react';
|
|
2
2
|
import { WsClient } from '@arcblock/ws';
|
|
3
3
|
import { SessionContext } from '@arcblock/did-connect/lib/Session';
|
|
4
4
|
import { joinURL } from 'ufo';
|
|
@@ -26,7 +26,7 @@ export default function getWsClient(endpoint = 'admin') {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
export const useListenWsClient = (endpoint = 'admin') => {
|
|
29
|
-
const sessionCtx =
|
|
29
|
+
const sessionCtx = use(SessionContext);
|
|
30
30
|
const { session } = sessionCtx ?? {};
|
|
31
31
|
|
|
32
32
|
if (!client[endpoint] && session.user) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createContext,
|
|
1
|
+
import { createContext, use, useMemo, useState, useEffect } from 'react';
|
|
2
2
|
import { SessionContext } from '@arcblock/did-connect/lib/Session';
|
|
3
3
|
|
|
4
4
|
import { SessionContext as TSessionContext } from '../@types';
|
|
@@ -31,7 +31,7 @@ const { Provider, Consumer } = ConfigUserSpaceContext;
|
|
|
31
31
|
|
|
32
32
|
function ConfigUserSpaceProvider({ children }: { children: React.ReactNode }) {
|
|
33
33
|
const [loading] = useState(false);
|
|
34
|
-
const { session } =
|
|
34
|
+
const { session } = use<TSessionContext>(SessionContext);
|
|
35
35
|
const { user } = session;
|
|
36
36
|
|
|
37
37
|
const [spaceGateway, setSpaceGateway] = useState<SpaceGateway | undefined>();
|
|
@@ -77,7 +77,7 @@ function ConfigUserSpaceProvider({ children }: { children: React.ReactNode }) {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
function useConfigUserSpaceContext() {
|
|
80
|
-
const res =
|
|
80
|
+
const res = use(ConfigUserSpaceContext);
|
|
81
81
|
return res;
|
|
82
82
|
}
|
|
83
83
|
|
package/vite.config.mjs
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { defineConfig } from 'vite';
|
|
2
|
+
import svgr from 'vite-plugin-svgr';
|
|
3
|
+
import react from '@vitejs/plugin-react';
|
|
4
|
+
import noBundlePlugin from 'vite-plugin-no-bundle';
|
|
5
|
+
import fg from 'fast-glob';
|
|
6
|
+
import dts from 'vite-plugin-dts';
|
|
7
|
+
|
|
8
|
+
export default defineConfig({
|
|
9
|
+
plugins: [
|
|
10
|
+
react({ jsxRuntime: 'automatic' }),
|
|
11
|
+
svgr({
|
|
12
|
+
include: ['**/*.svg', '**/*.svg?react'],
|
|
13
|
+
}),
|
|
14
|
+
noBundlePlugin({
|
|
15
|
+
root: 'src',
|
|
16
|
+
copy: ['**/*.png', '**/*.gif', '**/*.jpg', '**/*.jpeg'],
|
|
17
|
+
}),
|
|
18
|
+
dts(),
|
|
19
|
+
],
|
|
20
|
+
build: {
|
|
21
|
+
lib: {
|
|
22
|
+
entry: fg.sync('src/**/*.{tsx,ts,jsx,js}', {
|
|
23
|
+
ignore: ['**/stories/**', '**/demo/**', '**/*.d.ts', '**/*.stories.*'],
|
|
24
|
+
}),
|
|
25
|
+
formats: ['es'],
|
|
26
|
+
fileName: (format, entryName) => `${entryName}.js`,
|
|
27
|
+
},
|
|
28
|
+
outDir: 'lib',
|
|
29
|
+
emptyOutDir: true,
|
|
30
|
+
},
|
|
31
|
+
});
|
package/lib/@types/shims.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
declare module '@arcblock/ux/*';
|
|
2
|
-
declare module '@arcblock/ux/lib/DID';
|
|
3
|
-
declare module '@arcblock/ux/lib/Tabs';
|
|
4
|
-
declare module '@arcblock/ux/lib/Switch';
|
|
5
|
-
declare module '@arcblock/ux/lib/ErrorBoundary';
|
|
6
|
-
|
|
7
|
-
declare module '@arcblock/did-connect/*';
|
|
8
|
-
declare module '@arcblock/did-connect/lib/Session';
|
|
9
|
-
declare module '@abtnode/constant';
|
|
10
|
-
declare module '@abtnode/util/lib/notification-preview/*';
|
|
11
|
-
|
|
12
|
-
declare module 'is-url';
|
|
13
|
-
|
|
14
|
-
declare module '*.png';
|
|
15
|
-
|
|
16
|
-
declare interface Window {
|
|
17
|
-
blocklet: any;
|
|
18
|
-
}
|