@blocklet/launcher-workflow 1.5.32 → 1.5.35

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.
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = OperationPage;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactRouterDom = require("react-router-dom");
11
+
12
+ var _reactUse = require("react-use");
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _lodash = _interopRequireDefault(require("lodash.get"));
17
+
18
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
19
+
20
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
21
+
22
+ var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
23
+
24
+ var _util = require("../util");
25
+
26
+ var _query = _interopRequireDefault(require("../hooks/query"));
27
+
28
+ var _request = _interopRequireDefault(require("../contexts/request"));
29
+
30
+ var _router = _interopRequireDefault(require("../contexts/router"));
31
+
32
+ var _locale = require("../contexts/locale");
33
+
34
+ var _constant = require("../constant");
35
+
36
+ var _pageHeader = _interopRequireDefault(require("./page-header"));
37
+
38
+ var _launchResultMessage = _interopRequireDefault(require("./launch-result-message"));
39
+
40
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
+
42
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
+
44
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
+
46
+ 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; }
47
+
48
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
49
+
50
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
51
+
52
+ const STATUS = {
53
+ waiting: 0,
54
+ // 未使用
55
+ launching: 1,
56
+ // 初始状态
57
+ success: 2,
58
+ error: 10,
59
+ notFoundError: 11,
60
+ launchFailedError: 12
61
+ };
62
+
63
+ function OperationPage(_ref) {
64
+ let {
65
+ type,
66
+ routerPrefix
67
+ } = _ref;
68
+ const query = (0, _query.default)();
69
+ const blockletMetaUrl = query.get('blocklet_meta_url');
70
+ const {
71
+ t,
72
+ locale
73
+ } = (0, _react.useContext)(_locale.LocaleContext);
74
+ const [launchState, setLaunchState] = (0, _react.useState)({
75
+ appUrl: '',
76
+ status: STATUS.waiting
77
+ });
78
+ const {
79
+ nftId
80
+ } = (0, _reactRouterDom.useParams)();
81
+ const {
82
+ api
83
+ } = (0, _request.default)();
84
+ const [frameLoading, setFrameLoading] = (0, _react.useState)(true);
85
+ (0, _reactUse.useInterval)(async () => {
86
+ await getInstanceStatus();
87
+ }, launchState.status === STATUS.launching && nftId ? 5000 : null); // TODO: 这样处理容易发出重复的请求
88
+
89
+ const getInstanceStatus = async () => {
90
+ try {
91
+ const {
92
+ data: {
93
+ instance
94
+ }
95
+ } = await api.get("/public/instances/".concat(nftId, "/status"));
96
+
97
+ if (instance.status >= _constant.INSTANCE_STATUS.running) {
98
+ setLaunchState(pre => _objectSpread(_objectSpread({}, pre), {}, {
99
+ status: STATUS.success,
100
+ appUrl: (0, _util.getLaunchBlockletUrl)(instance.serverUrl, blockletMetaUrl, locale)
101
+ }));
102
+ return;
103
+ }
104
+ } catch (error) {
105
+ if ((0, _lodash.default)(error, 'response.status') === 404 && launchState.status !== STATUS.launching) {
106
+ setLaunchState(state => _objectSpread(_objectSpread({}, state), {}, {
107
+ status: STATUS.notFoundError
108
+ }));
109
+ throw error;
110
+ }
111
+
112
+ setLaunchState(state => _objectSpread(_objectSpread({}, state), {}, {
113
+ status: STATUS.error
114
+ }));
115
+ console.warn('load instance status error', error);
116
+ throw error;
117
+ }
118
+ };
119
+
120
+ (0, _react.useEffect)(() => {
121
+ if (!nftId) {
122
+ return;
123
+ }
124
+
125
+ getInstanceStatus().then(() => {
126
+ if (launchState.status !== STATUS.success) {
127
+ setLaunchState(state => _objectSpread(_objectSpread({}, state), {}, {
128
+ status: STATUS.launching
129
+ }));
130
+ }
131
+ });
132
+ }, [nftId]); // eslint-disable-line
133
+
134
+ (0, _react.useEffect)(() => {
135
+ let preloadFrame;
136
+ let timer;
137
+
138
+ if (launchState.appUrl) {
139
+ preloadFrame = document.createElement('iframe');
140
+ preloadFrame.src = launchState.appUrl;
141
+ Object.assign(preloadFrame.style, {
142
+ width: 0,
143
+ height: 0,
144
+ border: 0,
145
+ display: 'block',
146
+ position: 'absolute',
147
+ top: 0
148
+ });
149
+ preloadFrame.addEventListener('load', () => {
150
+ setFrameLoading(false);
151
+ clearTimeout(timer);
152
+ });
153
+ document.body.appendChild(preloadFrame);
154
+ timer = setTimeout(() => {
155
+ setFrameLoading(false);
156
+ }, 5000);
157
+ }
158
+
159
+ return () => {
160
+ if (preloadFrame) {
161
+ preloadFrame.parentNode.removeChild(preloadFrame);
162
+ }
163
+
164
+ if (timer) {
165
+ clearTimeout(timer);
166
+ }
167
+ };
168
+ }, [launchState.appUrl]);
169
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, launchState.status !== STATUS.success && /*#__PURE__*/_react.default.createElement(_pageHeader.default, {
170
+ title: t("".concat(type, ".title"))
171
+ }), /*#__PURE__*/_react.default.createElement(Content, null, launchState.status === STATUS.waiting && /*#__PURE__*/_react.default.createElement("div", {
172
+ className: "center"
173
+ }, /*#__PURE__*/_react.default.createElement(_Spinner.default, null)), launchState.status === STATUS.launching && /*#__PURE__*/_react.default.createElement("div", {
174
+ className: "center"
175
+ }, /*#__PURE__*/_react.default.createElement("div", {
176
+ className: "status"
177
+ }, /*#__PURE__*/_react.default.createElement(_Spinner.default, {
178
+ className: "status-spinner"
179
+ }), /*#__PURE__*/_react.default.createElement("span", {
180
+ className: "status-text"
181
+ }, t('launch.waitingForLaunching')))), launchState.status === STATUS.success && /*#__PURE__*/_react.default.createElement(_launchResultMessage.default, {
182
+ className: "message",
183
+ variant: "success",
184
+ title: t('launch.launched'),
185
+ subTitle: blockletMetaUrl ? t('launch.launchBlockletTip') : '',
186
+ footer: /*#__PURE__*/_react.default.createElement(_Button.default, {
187
+ color: "primary",
188
+ variant: "contained",
189
+ rounded: true,
190
+ loading: frameLoading,
191
+ href: launchState.appUrl,
192
+ className: "button"
193
+ }, blockletMetaUrl ? t('launch.launchApp') : t('launch.accessServer'))
194
+ }), [STATUS.error, STATUS.launchFailedError].includes(launchState.status) && /*#__PURE__*/_react.default.createElement(_launchResultMessage.default, {
195
+ variant: "error",
196
+ title: t("".concat(type, ".error.launchFailed")),
197
+ subTitle: type === 'launch' ? t('launch.error.launchFailedDescription') : '',
198
+ footer: type === 'launch' && /*#__PURE__*/_react.default.createElement(_Button.default, {
199
+ color: "primary",
200
+ variant: "contained",
201
+ className: "button",
202
+ rounded: true,
203
+ component: _reactRouterDom.Link,
204
+ to: (0, _router.default)(routerPrefix, "/prepare/".concat(nftId).concat(window.location.search))
205
+ }, t('common.retry'))
206
+ }), launchState.status === STATUS.notFoundError && /*#__PURE__*/_react.default.createElement(_launchResultMessage.default, {
207
+ variant: "error",
208
+ title: t("".concat(type, ".error.notFound")),
209
+ subTitle: type === 'launch' ? t('launch.error.notFoundDescription') : '',
210
+ footer: type === 'launch' && /*#__PURE__*/_react.default.createElement(_Button.default, {
211
+ color: "primary",
212
+ variant: "contained",
213
+ className: "button",
214
+ rounded: true,
215
+ component: _reactRouterDom.Link,
216
+ to: (0, _router.default)(routerPrefix, "/prepare/".concat(nftId).concat(window.location.search))
217
+ }, t('common.launch'))
218
+ })));
219
+ }
220
+
221
+ const Content = _styledComponents.default.div.withConfig({
222
+ displayName: "instance-operation__Content",
223
+ componentId: "sc-1fcaixs-0"
224
+ })(["margin:auto;height:100%;.status{color:", ";display:flex;flex-direction:column;align-items:center;.status-spinner{color:inherit !important;}.status-text{display:inline-block;padding:0 20px;max-width:420px;margin-top:24px;text-align:center;}}.button{min-width:150px;margin-bottom:100px;}.center{display:flex;align-items:center;justify-content:center;width:100%;height:100%;}"], props => props.theme.palette.primary.main);
225
+
226
+ OperationPage.propTypes = {
227
+ type: _propTypes.default.oneOf(['launch', 'start']),
228
+ routerPrefix: _propTypes.default.string
229
+ };
230
+ OperationPage.defaultProps = {
231
+ type: 'launch',
232
+ routerPrefix: ''
233
+ };
@@ -28,7 +28,7 @@ function PageHeader(_ref) {
28
28
  const Content = _styledComponents.default.div.withConfig({
29
29
  displayName: "page-header__Content",
30
30
  componentId: "sc-2cz88s-0"
31
- })(["text-align:center;.title{font-size:24px;color:", ";}.sub-title{font-size:14px;color:", ";}"], props => props.theme.palette.common.black, props => props.theme.palette.grey[600]);
31
+ })(["width:100%;text-align:center;.title{font-size:24px;color:", ";}.sub-title{font-size:14px;color:", ";}"], props => props.theme.palette.common.black, props => props.theme.palette.grey[600]);
32
32
 
33
33
  var _default = PageHeader;
34
34
  exports.default = _default;
package/lib/launch.js CHANGED
@@ -5,247 +5,18 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = LaunchPage;
7
7
 
8
- var _react = _interopRequireWildcard(require("react"));
8
+ var _react = _interopRequireDefault(require("react"));
9
9
 
10
- var _reactRouterDom = require("react-router-dom");
10
+ var _router = require("./contexts/router");
11
11
 
12
- var _reactUse = require("react-use");
13
-
14
- var _lodash = _interopRequireDefault(require("lodash.get"));
15
-
16
- var _styledComponents = _interopRequireDefault(require("styled-components"));
17
-
18
- var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
19
-
20
- var _Connect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect"));
21
-
22
- var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
23
-
24
- var _utils = require("@arcblock/did-connect/lib/utils");
25
-
26
- var _util = require("./util");
27
-
28
- var _query = _interopRequireDefault(require("./hooks/query"));
29
-
30
- var _request = _interopRequireDefault(require("./contexts/request"));
31
-
32
- var _locale = require("./contexts/locale");
33
-
34
- var _constant = require("./constant");
35
-
36
- var _pageHeader = _interopRequireDefault(require("./components/page-header"));
37
-
38
- var _launchResultMessage = _interopRequireDefault(require("./components/launch-result-message"));
39
-
40
- var _router = _interopRequireWildcard(require("./contexts/router"));
12
+ var _instanceOperation = _interopRequireDefault(require("./components/instance-operation"));
41
13
 
42
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
15
 
44
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
45
-
46
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
47
-
48
- 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; }
49
-
50
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
51
-
52
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
53
-
54
- const STATUS = {
55
- waiting: 0,
56
- // 未使用
57
- launching: 1,
58
- // 初始状态
59
- success: 2,
60
- error: 10,
61
- notFoundError: 11,
62
- launchFailedError: 12
63
- };
64
-
65
16
  function LaunchPage() {
66
- const query = (0, _query.default)();
67
- const blockletMetaUrl = query.get('blocklet_meta_url');
68
- const {
69
- t,
70
- locale
71
- } = (0, _react.useContext)(_locale.LocaleContext);
72
- const [launchState, setLaunchState] = (0, _react.useState)({
73
- appUrl: '',
74
- status: STATUS.waiting
75
- });
76
- const [retryLaunch] = (0, _react.useState)(false);
77
- const {
78
- nftId
79
- } = (0, _reactRouterDom.useParams)();
80
- const {
81
- api,
82
- create: createRequest
83
- } = (0, _request.default)();
84
- const [frameLoading, setFrameLoading] = (0, _react.useState)(true);
85
17
  const routerPrefix = (0, _router.usePrefix)();
86
- (0, _reactUse.useInterval)(async () => {
87
- await getInstanceStatus();
88
- }, launchState.status === STATUS.launching && nftId ? 5000 : null); // TODO: 这样处理容易发出重复的请求
89
-
90
- const handleAuthSuccess = () => {
91
- setLaunchState(_objectSpread(_objectSpread({}, launchState), {}, {
92
- status: STATUS.launching
93
- }));
94
- };
95
-
96
- const getInstanceStatus = async () => {
97
- try {
98
- const {
99
- data: {
100
- instance
101
- }
102
- } = await api.get("/public/instances/".concat(nftId, "/status"));
103
-
104
- if (instance.status >= _constant.INSTANCE_STATUS.running) {
105
- setLaunchState(pre => _objectSpread(_objectSpread({}, pre), {}, {
106
- status: STATUS.success,
107
- appUrl: (0, _util.getLaunchBlockletUrl)(instance.serverUrl, blockletMetaUrl, locale)
108
- }));
109
- return;
110
- }
111
- } catch (error) {
112
- if ((0, _lodash.default)(error, 'response.status') === 404 && launchState.status !== STATUS.launching) {
113
- setLaunchState(state => _objectSpread(_objectSpread({}, state), {}, {
114
- status: STATUS.notFoundError
115
- }));
116
- throw error;
117
- }
118
-
119
- setLaunchState(state => _objectSpread(_objectSpread({}, state), {}, {
120
- status: STATUS.error
121
- }));
122
- console.warn('load instance status error', error);
123
- throw error;
124
- }
125
- };
126
-
127
- (0, _react.useEffect)(() => {
128
- if (!nftId) {
129
- return;
130
- }
131
-
132
- getInstanceStatus().then(() => {
133
- if (launchState.status !== STATUS.success) {
134
- setLaunchState(state => _objectSpread(_objectSpread({}, state), {}, {
135
- status: STATUS.launching
136
- }));
137
- }
138
- });
139
- }, [nftId]); // eslint-disable-line
140
-
141
- (0, _react.useEffect)(() => {
142
- let preloadFrame;
143
- let timer;
144
-
145
- if (launchState.appUrl) {
146
- preloadFrame = document.createElement('iframe');
147
- preloadFrame.src = launchState.appUrl;
148
- Object.assign(preloadFrame.style, {
149
- width: 0,
150
- height: 0,
151
- border: 0,
152
- display: 'block',
153
- position: 'absolute',
154
- top: 0
155
- });
156
- preloadFrame.addEventListener('load', () => {
157
- setFrameLoading(false);
158
- clearTimeout(timer);
159
- });
160
- document.body.appendChild(preloadFrame);
161
- timer = setTimeout(() => {
162
- setFrameLoading(false);
163
- }, 5000);
164
- }
165
-
166
- return () => {
167
- if (preloadFrame) {
168
- preloadFrame.parentNode.removeChild(preloadFrame);
169
- }
170
-
171
- if (timer) {
172
- clearTimeout(timer);
173
- }
174
- };
175
- }, [launchState.appUrl]);
176
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, launchState.status !== STATUS.success && /*#__PURE__*/_react.default.createElement(_pageHeader.default, {
177
- title: t('launch.title')
178
- }), /*#__PURE__*/_react.default.createElement(Content, null, launchState.status === STATUS.waiting && /*#__PURE__*/_react.default.createElement("div", {
179
- className: "center"
180
- }, /*#__PURE__*/_react.default.createElement(_Spinner.default, null)), launchState.status === STATUS.launching && /*#__PURE__*/_react.default.createElement("div", {
181
- className: "center"
182
- }, /*#__PURE__*/_react.default.createElement("div", {
183
- className: "status"
184
- }, /*#__PURE__*/_react.default.createElement(_Spinner.default, {
185
- className: "status-spinner"
186
- }), /*#__PURE__*/_react.default.createElement("span", {
187
- className: "status-text"
188
- }, t('launch.waitingForLaunching')))), launchState.status === STATUS.success && /*#__PURE__*/_react.default.createElement(_launchResultMessage.default, {
189
- className: "message",
190
- variant: "success",
191
- title: t('launch.launched'),
192
- subTitle: blockletMetaUrl ? t('launch.launchBlockletTip') : '',
193
- footer: /*#__PURE__*/_react.default.createElement(_Button.default, {
194
- color: "primary",
195
- variant: "contained",
196
- rounded: true,
197
- loading: frameLoading,
198
- href: launchState.appUrl,
199
- className: "button"
200
- }, blockletMetaUrl ? t('launch.launchApp') : t('launch.accessServer'))
201
- }), [STATUS.error, STATUS.launchFailedError].includes(launchState.status) && /*#__PURE__*/_react.default.createElement(_launchResultMessage.default, {
202
- variant: "error",
203
- title: t('launch.error.launchFailed'),
204
- subTitle: t('launch.error.launchFailedDescription'),
205
- footer: /*#__PURE__*/_react.default.createElement(_Button.default, {
206
- color: "primary",
207
- variant: "contained",
208
- className: "button",
209
- rounded: true,
210
- component: _reactRouterDom.Link,
211
- to: (0, _router.default)(routerPrefix, "/prepare/".concat(nftId).concat(window.location.search))
212
- }, t('common.retry'))
213
- }), launchState.status === STATUS.notFoundError && /*#__PURE__*/_react.default.createElement(_launchResultMessage.default, {
214
- variant: "error",
215
- title: t('launch.error.notFound'),
216
- subTitle: t('launch.error.notFoundDescription'),
217
- footer: /*#__PURE__*/_react.default.createElement(_Button.default, {
218
- color: "primary",
219
- variant: "contained",
220
- className: "button",
221
- rounded: true,
222
- component: _reactRouterDom.Link,
223
- to: (0, _router.default)(routerPrefix, "/prepare/".concat(nftId).concat(window.location.search))
224
- }, t('common.launch'))
225
- })), /*#__PURE__*/_react.default.createElement(_Connect.default, {
226
- open: retryLaunch,
227
- popup: true,
228
- action: "launch-instance",
229
- checkFn: createRequest().get,
230
- onSuccess: handleAuthSuccess,
231
- checkTimeout: 60 * 5000,
232
- extraParams: {
233
- assetId: nftId,
234
- blockletMetaUrl
235
- },
236
- webWalletUrl: (0, _utils.getWebWalletUrl)(),
237
- disableClose: true,
238
- showDownload: false,
239
- messages: {
240
- title: t('launch.dialog.title'),
241
- scan: t('launch.dialog.scan'),
242
- confirm: t('launch.dialog.confirm'),
243
- success: t('launch.dialog.success')
244
- }
245
- }));
246
- }
247
-
248
- const Content = _styledComponents.default.div.withConfig({
249
- displayName: "launch__Content",
250
- componentId: "sc-ke0swc-0"
251
- })(["margin:auto;height:100%;.status{color:", ";display:flex;flex-direction:column;align-items:center;.status-spinner{color:inherit !important;}.status-text{display:inline-block;padding:0 20px;max-width:420px;margin-top:24px;text-align:center;}}.button{min-width:150px;margin-bottom:100px;}.center{display:flex;align-items:center;justify-content:center;width:100%;height:100%;}"], props => props.theme.palette.primary.main);
18
+ return /*#__PURE__*/_react.default.createElement(_instanceOperation.default, {
19
+ type: "launch",
20
+ routerPrefix: routerPrefix
21
+ });
22
+ }
package/lib/locales/en.js CHANGED
@@ -58,6 +58,13 @@ module.exports = {
58
58
  notFoundDescription: 'You can launch the Blocklet Server by clicking the button below'
59
59
  }
60
60
  },
61
+ start: {
62
+ title: 'Starting Blocklet Server',
63
+ error: {
64
+ launchFailed: 'Blocklet Server Launch Failed',
65
+ notFound: 'No Blocklet Server being started'
66
+ }
67
+ },
61
68
  redeem: {
62
69
  title: 'Redeem Blocklet Server',
63
70
  subTitle: 'Name and describe the Blocklet Server you are going to redeem',
package/lib/locales/zh.js CHANGED
@@ -58,6 +58,13 @@ module.exports = {
58
58
  notFoundDescription: '您可以点击下面按钮启动节点'
59
59
  }
60
60
  },
61
+ start: {
62
+ title: '启动节点',
63
+ error: {
64
+ launchFailed: '节点启动失败',
65
+ notFound: '没有正在启动的节点'
66
+ }
67
+ },
61
68
  redeem: {
62
69
  title: '启动节点',
63
70
  subTitle: '为你的节点起个名字吧',
package/lib/start.js ADDED
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = StartPage;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _locale = require("./contexts/locale");
13
+
14
+ var _instanceOperation = _interopRequireDefault(require("./components/instance-operation"));
15
+
16
+ var _locales = require("./locales");
17
+
18
+ var _request = require("./contexts/request");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ function StartPage(_ref) {
23
+ let {
24
+ locale
25
+ } = _ref;
26
+ return /*#__PURE__*/_react.default.createElement(_request.RequestProvider, null, /*#__PURE__*/_react.default.createElement(_locale.LocaleProvider, {
27
+ translations: _locales.translations,
28
+ locale: locale
29
+ }, /*#__PURE__*/_react.default.createElement(_instanceOperation.default, {
30
+ type: "start"
31
+ })));
32
+ }
33
+
34
+ StartPage.propTypes = {
35
+ locale: _propTypes.default.string
36
+ };
37
+ StartPage.defaultProps = {
38
+ locale: 'en'
39
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/launcher-workflow",
3
- "version": "1.5.32",
3
+ "version": "1.5.35",
4
4
  "description": "Purchase components for Launcher UI",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -39,7 +39,7 @@
39
39
  "dependencies": {
40
40
  "@arcblock/did-connect": "^1.16.34",
41
41
  "@arcblock/ux": "^1.16.34",
42
- "@blocklet/launcher-layout": "1.5.32",
42
+ "@blocklet/launcher-layout": "1.5.35",
43
43
  "@material-ui/core": "^4.12.3",
44
44
  "@material-ui/icons": "^4.11.2",
45
45
  "@material-ui/lab": "^4.0.0-alpha.60",
@@ -64,5 +64,5 @@
64
64
  "babel-plugin-inline-react-svg": "^2.0.1",
65
65
  "babel-plugin-styled-components": "^1.10.7"
66
66
  },
67
- "gitHead": "28b5b383b59b169f2b4969cb228b5904c01c94c9"
67
+ "gitHead": "4f124ae14307e882ea05cd24f9ad32a5660620b3"
68
68
  }