@blocklet/launcher-layout 2.1.85 → 2.1.86

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/README.md CHANGED
@@ -21,7 +21,7 @@ const theme = useTheme()
21
21
  return <ThemeProvider theme={theme}> {/* The component library depends on the theme of mui, you should wrap components with ThemeProvider */}
22
22
  <LocaleProvider translations={[]}>
23
23
  <StepProvider steps={steps}>
24
- <Layout blockletMeta={blockletMeta}>This is page content</Layout>
24
+ <Layout blockletMeta={blockletMeta} loading={false} navSubTitle="Restore">This is page content</Layout>
25
25
  </StepProvider>
26
26
  </LocaleProvider>
27
27
  <ThemeProvider>
package/lib/header.js CHANGED
@@ -9,9 +9,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _styled = _interopRequireDefault(require("@emotion/styled"));
10
10
  var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery"));
11
11
  var _Skeleton = _interopRequireDefault(require("@mui/material/Skeleton"));
12
- var _Avatar = _interopRequireDefault(require("@arcblock/did-connect/lib/Avatar"));
13
12
  var _Img = _interopRequireDefault(require("@arcblock/ux/lib/Img"));
14
- var _defaultBlockletLogo = _interopRequireDefault(require("./assets/defaultBlockletLogo.png"));
13
+ var _blockletDefaultLogo = _interopRequireDefault(require("./assets/blocklet-default-logo.png"));
15
14
  var _locale = require("./locale");
16
15
  var _jsxRuntime = require("react/jsx-runtime");
17
16
  var _templateObject;
@@ -22,44 +21,22 @@ function AppHeader(_ref) {
22
21
  title,
23
22
  subTitle,
24
23
  logoUrl,
25
- did,
26
24
  locale,
27
- navLogo
25
+ navLogo,
26
+ loading
28
27
  } = _ref;
29
28
  const isMobile = (0, _useMediaQuery.default)(theme => theme.breakpoints.down('md'));
30
29
  const blockletSize = isMobile ? 18 : 48;
31
30
  const appNameRef = (0, _react.useRef)(null);
32
31
  const [appNameSize, setAppNameSize] = (0, _react.useState)('');
33
- let blockletIcon = isMobile ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.default, {
34
- variant: "rectangular",
35
- width: 100,
36
- height: 16,
37
- alt: "".concat(title, " icon"),
38
- style: {
39
- marginTop: 4
40
- }
41
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.default, {
42
- variant: "rectangular",
43
- width: blockletSize,
44
- height: blockletSize
32
+ const appIcon = loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(AppIconSkeleton, {
33
+ blockletSize: blockletSize,
34
+ isMobile: isMobile,
35
+ title: title
36
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(AppIcon, {
37
+ blockletSize: blockletSize,
38
+ logoUrl: logoUrl
45
39
  });
46
- if (logoUrl) {
47
- blockletIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Img.default, {
48
- width: blockletSize,
49
- height: blockletSize,
50
- src: logoUrl,
51
- alt: "blocklet icon",
52
- fallback: _defaultBlockletLogo.default,
53
- style: {
54
- verticalAlign: 'text-bottom'
55
- }
56
- });
57
- } else if (did) {
58
- blockletIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
59
- did: did,
60
- size: blockletSize
61
- });
62
- }
63
40
  (0, _react.useEffect)(() => {
64
41
  if (appNameRef.current && appNameRef.current.offsetHeight > 34) {
65
42
  if (appNameSize === '') {
@@ -76,21 +53,21 @@ function AppHeader(_ref) {
76
53
  children: navLogo
77
54
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
78
55
  className: "app-icon",
79
- children: blockletIcon
56
+ children: appIcon
80
57
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
81
58
  className: "header-title",
82
- children: [subTitle && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
59
+ children: [isMobile && subTitle && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
83
60
  className: "header-title-sub",
84
61
  children: subTitle
85
62
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
86
63
  className: "app-name-content",
87
64
  children: [!isMobile && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
88
65
  className: "launching-context",
89
- children: (0, _locale.getLaunchingText)(locale)
66
+ children: subTitle || (0, _locale.getLaunchingText)(locale)
90
67
  }), title && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
91
68
  className: "header-title-name ".concat(appNameSize === 'middle' || appNameSize === 'small' ? 'middle-size' : ''),
92
69
  ref: appNameRef,
93
- children: [isMobile ? blockletIcon : '', " ", title]
70
+ children: [isMobile ? appIcon : '', " ", title]
94
71
  })]
95
72
  })]
96
73
  })]
@@ -100,18 +77,61 @@ AppHeader.propTypes = {
100
77
  title: _propTypes.default.any,
101
78
  subTitle: _propTypes.default.any,
102
79
  logoUrl: _propTypes.default.string,
103
- did: _propTypes.default.string,
104
80
  locale: _propTypes.default.string,
105
- navLogo: _propTypes.default.any
81
+ navLogo: _propTypes.default.any,
82
+ loading: _propTypes.default.bool
106
83
  };
107
84
  AppHeader.defaultProps = {
108
85
  title: '',
109
86
  subTitle: '',
110
87
  logoUrl: '',
111
- did: '',
112
88
  locale: '',
113
- navLogo: ''
89
+ navLogo: '',
90
+ loading: false
114
91
  };
92
+
93
+ // eslint-disable-next-line react/prop-types
94
+ function AppIconSkeleton(_ref2) {
95
+ let {
96
+ blockletSize,
97
+ isMobile,
98
+ title
99
+ } = _ref2;
100
+ if (isMobile) {
101
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.default, {
102
+ variant: "rectangular",
103
+ width: 100,
104
+ height: 16,
105
+ alt: "".concat(title, " icon"),
106
+ style: {
107
+ marginTop: 4
108
+ }
109
+ });
110
+ }
111
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.default, {
112
+ variant: "rectangular",
113
+ width: blockletSize,
114
+ height: blockletSize
115
+ });
116
+ }
117
+
118
+ // eslint-disable-next-line react/prop-types
119
+ function AppIcon(_ref3) {
120
+ let {
121
+ logoUrl,
122
+ blockletSize
123
+ } = _ref3;
124
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Img.default, {
125
+ width: blockletSize,
126
+ height: blockletSize,
127
+ src: logoUrl,
128
+ alt: "blocklet icon",
129
+ fallback: _blockletDefaultLogo.default,
130
+ style: {
131
+ verticalAlign: 'text-bottom'
132
+ }
133
+ });
134
+ }
115
135
  var _default = AppHeader;
116
136
  exports.default = _default;
117
137
  const Container = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n justify-content: flex-start;\n align-items: flex-start;\n width: 100%;\n ", " {\n min-height: 70px;\n }\n ", " {\n align-items: center;\n }\n .app-name-content {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n ", " {\n align-items: flex-start;\n flex-direction: column;\n }\n ", " {\n height: 22px;\n }\n }\n .launching-context {\n flex-shrink: 0;\n font-size: 14px;\n font-weight: 600;\n color: ", ";\n ", " {\n margin-bottom: 4px;\n }\n ", " {\n font-size: 14px;\n line-height: 15px;\n &:after {\n display: inline-block;\n margin: 0 4px;\n content: ':';\n }\n }\n }\n\n &.center-mode {\n align-items: flex-start;\n .launching-context {\n ", " {\n margin-bottom: 0;\n }\n }\n }\n\n .app-icon {\n flex-shrink: 0;\n > * {\n display: block;\n vertical-align: middle;\n }\n }\n\n .header-title {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n align-items: flex-start;\n margin-left: 24px;\n ", " {\n margin-left: 16px;\n }\n .header-title-name {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n flex: 1;\n height: 100%;\n color: ", ";\n font-weight: 700;\n ", " {\n font-size: 18px;\n\n &.middle-size {\n font-size: 16px;\n }\n }\n ", " {\n display: block;\n max-width: calc(100vw - 100px);\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n .header-title-sub {\n color: ", ";\n font-size: 12px;\n line-height: 16px;\n\n ", " {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n"])), props => props.theme.breakpoints.up('md'), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.up('md'), props => props.theme.breakpoints.down('md'), props => props.theme.palette.grey[500], props => props.theme.breakpoints.up('md'), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.up('sm'), props => props.theme.breakpoints.down('md'), props => props.theme.palette.common.black, props => props.theme.breakpoints.up('sm'), props => props.theme.breakpoints.down('md'), props => props.theme.palette.grey[700], props => props.theme.breakpoints.down('md'));
package/lib/index.js CHANGED
@@ -19,7 +19,7 @@ var _header = _interopRequireDefault(require("./header"));
19
19
  var _locale = require("./locale");
20
20
  var _nav = _interopRequireDefault(require("./nav"));
21
21
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["blockletMeta", "children", "logoUrl", "locale", "header", "headerEndAddons", "pcWidth", "pcHeight", "navLogo", "useOfSkeleton", "stepTip", "contentMaxWidth"];
22
+ const _excluded = ["blockletMeta", "loading", "children", "logoUrl", "locale", "header", "headerEndAddons", "pcWidth", "pcHeight", "navLogo", "useOfSkeleton", "stepTip", "navSubTitle", "contentMaxWidth"];
23
23
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -36,6 +36,7 @@ const PcContent = _styled.default.div(_templateObject2 || (_templateObject2 = _t
36
36
  function Layout(_ref) {
37
37
  let {
38
38
  blockletMeta,
39
+ loading,
39
40
  children,
40
41
  logoUrl,
41
42
  locale,
@@ -46,6 +47,7 @@ function Layout(_ref) {
46
47
  navLogo,
47
48
  useOfSkeleton,
48
49
  stepTip,
50
+ navSubTitle,
49
51
  contentMaxWidth
50
52
  } = _ref,
51
53
  rest = _objectWithoutProperties(_ref, _excluded);
@@ -81,7 +83,7 @@ function Layout(_ref) {
81
83
  }),
82
84
  navLogo: navLogo,
83
85
  subTitle: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
84
- children: ["".concat(stepTip || translations.stepTip, " ").concat(activeStep + 1, "/").concat(totalStepsCount), /*#__PURE__*/(0, _jsxRuntime.jsx)(_smallCircleProgress.default, {
86
+ children: ["".concat(navSubTitle || translations.defaultNavSubTitle, " ").concat(activeStep + 1, "/").concat(totalStepsCount), /*#__PURE__*/(0, _jsxRuntime.jsx)(_smallCircleProgress.default, {
85
87
  value: (activeStep + 1) / totalStepsCount * 100,
86
88
  style: {
87
89
  marginLeft: 3
@@ -89,7 +91,6 @@ function Layout(_ref) {
89
91
  })]
90
92
  }),
91
93
  logoUrl: logoUrl,
92
- did: blockletMeta.did,
93
94
  locale: locale
94
95
  })
95
96
  }), navLogo && !isMobile && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
@@ -110,7 +111,9 @@ function Layout(_ref) {
110
111
  locale: locale,
111
112
  blockletMeta: blockletMeta,
112
113
  logoUrl: logoUrl,
113
- useOfSkeleton: useOfSkeleton
114
+ useOfSkeleton: useOfSkeleton,
115
+ subTitle: navSubTitle,
116
+ loading: loading
114
117
  })
115
118
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Suspense, {
116
119
  fallback: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Center.default, {
@@ -127,7 +130,8 @@ function Layout(_ref) {
127
130
  }));
128
131
  }
129
132
  Layout.propTypes = {
130
- blockletMeta: _propTypes.default.object.isRequired,
133
+ loading: _propTypes.default.bool,
134
+ blockletMeta: _propTypes.default.object,
131
135
  children: _propTypes.default.object.isRequired,
132
136
  logoUrl: _propTypes.default.string,
133
137
  locale: _propTypes.default.oneOf(['en', 'zh']),
@@ -138,9 +142,12 @@ Layout.propTypes = {
138
142
  contentMaxWidth: _propTypes.default.string,
139
143
  navLogo: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.object]),
140
144
  useOfSkeleton: _propTypes.default.bool,
141
- stepTip: _propTypes.default.string
145
+ stepTip: _propTypes.default.string,
146
+ navSubTitle: _propTypes.default.string
142
147
  };
143
148
  Layout.defaultProps = {
149
+ loading: false,
150
+ blockletMeta: {},
144
151
  logoUrl: '',
145
152
  locale: 'en',
146
153
  header: null,
@@ -150,7 +157,8 @@ Layout.defaultProps = {
150
157
  contentMaxWidth: '1245px',
151
158
  navLogo: '',
152
159
  useOfSkeleton: true,
153
- stepTip: ''
160
+ stepTip: '',
161
+ navSubTitle: ''
154
162
  };
155
163
 
156
164
  // 针对 safari 下的 chrome 适配
package/lib/locale.js CHANGED
@@ -3,11 +3,11 @@
3
3
  const translations = {
4
4
  en: {
5
5
  optional: 'Optional',
6
- stepTip: 'Launching Step'
6
+ defaultNavSubTitle: 'Launching'
7
7
  },
8
8
  zh: {
9
9
  optional: '可选',
10
- stepTip: '启动步骤'
10
+ defaultNavSubTitle: '启动'
11
11
  }
12
12
  };
13
13
  const getTranslations = locale => translations[locale] ? translations[locale] : translations.en;
package/lib/nav.js CHANGED
@@ -21,7 +21,9 @@ function Nav(_ref) {
21
21
  blockletMeta,
22
22
  logoUrl,
23
23
  locale,
24
- useOfSkeleton
24
+ useOfSkeleton,
25
+ subTitle,
26
+ loading
25
27
  } = _ref;
26
28
  const {
27
29
  steps,
@@ -32,7 +34,7 @@ function Nav(_ref) {
32
34
  canBackToStep
33
35
  } = (0, _step.useStepContext)();
34
36
  const name = (0, _util.getBlockletDisplayName)(blockletMeta);
35
- const showSkeleton = useOfSkeleton ? !blockletMeta || !name : false;
37
+ const showSkeleton = useOfSkeleton ? loading : false;
36
38
  const getNodeClassName = (step, index) => {
37
39
  const classNameList = ['step-block'];
38
40
  const status = getStepStatus(step.key);
@@ -70,18 +72,19 @@ function Nav(_ref) {
70
72
  };
71
73
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, {
72
74
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_header.default, {
73
- title: /*#__PURE__*/(0, _jsxRuntime.jsx)(AppLink, {
75
+ loading: loading,
76
+ title: /*#__PURE__*/(0, _jsxRuntime.jsxs)(AppLink, {
74
77
  target: "_blank",
75
78
  href: (0, _urlJoin.default)(blockletMeta.registryUrl || '', "/blocklets/".concat(blockletMeta.did)),
76
79
  title: name,
77
- children: name || /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.default, {
80
+ children: [loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.default, {
78
81
  variant: "text",
79
82
  width: 150
80
- })
83
+ }), !loading && name]
81
84
  }),
82
- did: blockletMeta.did,
83
85
  logoUrl: logoUrl,
84
- locale: locale
86
+ locale: locale,
87
+ subTitle: subTitle
85
88
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(StepContainer, {
86
89
  className: "".concat(showSkeleton ? 'hide-child-step-desc' : ''),
87
90
  children: steps.map((step, index) => {
@@ -152,12 +155,16 @@ Nav.propTypes = {
152
155
  blockletMeta: _propTypes.default.object.isRequired,
153
156
  logoUrl: _propTypes.default.string,
154
157
  locale: _propTypes.default.string,
155
- useOfSkeleton: _propTypes.default.bool
158
+ useOfSkeleton: _propTypes.default.bool,
159
+ subTitle: _propTypes.default.string,
160
+ loading: _propTypes.default.bool
156
161
  };
157
162
  Nav.defaultProps = {
158
163
  logoUrl: '',
159
164
  locale: '',
160
- useOfSkeleton: false
165
+ useOfSkeleton: false,
166
+ subTitle: '',
167
+ loading: false
161
168
  };
162
169
  var _default = Nav;
163
170
  exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/launcher-layout",
3
- "version": "2.1.85",
3
+ "version": "2.1.86",
4
4
  "description": "Common ux components of launcher",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -39,8 +39,8 @@
39
39
  "@arcblock/did-connect": "^2.6.7",
40
40
  "@arcblock/icons": "^2.6.7",
41
41
  "@arcblock/ux": "^2.6.7",
42
- "@blocklet/launcher-util": "2.1.85",
43
- "@blocklet/launcher-ux": "2.1.85",
42
+ "@blocklet/launcher-util": "2.1.86",
43
+ "@blocklet/launcher-ux": "2.1.86",
44
44
  "@blocklet/meta": "^1.16.13",
45
45
  "@emotion/react": "^11.11.1",
46
46
  "@emotion/styled": "^11.11.0",
@@ -59,5 +59,5 @@
59
59
  "@storybook/react": "^6.5.16",
60
60
  "babel-plugin-inline-react-svg": "^2.0.2"
61
61
  },
62
- "gitHead": "2eace09047f3a231376882559925c3f654848be4"
62
+ "gitHead": "95ee25d34d82744fcd623f3cdf9e98fa14a3022d"
63
63
  }