@blocklet/launcher-workflow 1.7.38 → 1.7.39

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.
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.RouterProvider = RouterProvider;
7
7
  exports.default = attachPrefix;
8
+ exports.useDisabledBack = useDisabledBack;
8
9
  exports.usePrefix = usePrefix;
9
10
 
10
11
  var _react = _interopRequireWildcard(require("react"));
@@ -27,18 +28,24 @@ const {
27
28
  function RouterProvider(_ref) {
28
29
  let {
29
30
  prefix,
30
- children
31
+ children,
32
+ disabledBack
31
33
  } = _ref;
32
34
  return /*#__PURE__*/_react.default.createElement(Provider, {
33
35
  value: {
34
- prefix
36
+ prefix,
37
+ disabledBack
35
38
  }
36
39
  }, children);
37
40
  }
38
41
 
39
42
  RouterProvider.propTypes = {
40
43
  prefix: _propTypes.default.string.isRequired,
41
- children: _propTypes.default.any.isRequired
44
+ children: _propTypes.default.any.isRequired,
45
+ disabledBack: _propTypes.default.array
46
+ };
47
+ RouterProvider.defaultProps = {
48
+ disabledBack: []
42
49
  };
43
50
 
44
51
  function usePrefix() {
@@ -48,6 +55,13 @@ function usePrefix() {
48
55
  return prefix;
49
56
  }
50
57
 
58
+ function useDisabledBack() {
59
+ const {
60
+ disabledBack
61
+ } = (0, _react.useContext)(RequestContext);
62
+ return disabledBack;
63
+ }
64
+
51
65
  function attachPrefix(prefix, url) {
52
66
  return (0, _urlJoin.default)(prefix, url);
53
67
  }
package/lib/index.js CHANGED
@@ -11,6 +11,8 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
+ var _reactRouterDom = require("react-router-dom");
15
+
14
16
  var _content = _interopRequireDefault(require("@blocklet/launcher-layout/lib/content"));
15
17
 
16
18
  var _checkout = _interopRequireDefault(require("./components/stripe/checkout"));
@@ -46,7 +48,9 @@ function LaunchContent(_ref) {
46
48
  let {
47
49
  Route,
48
50
  routerPrefix,
49
- locale
51
+ locale,
52
+ noMatchRedirect,
53
+ disabledBack
50
54
  } = _ref;
51
55
  const {
52
56
  changeLocale
@@ -54,29 +58,56 @@ function LaunchContent(_ref) {
54
58
  (0, _react.useEffect)(() => {
55
59
  changeLocale(locale);
56
60
  }, [locale]);
57
- return /*#__PURE__*/_react.default.createElement(_content.default, null, /*#__PURE__*/_react.default.createElement(_router.RouterProvider, {
58
- prefix: routerPrefix
59
- }, /*#__PURE__*/_react.default.createElement(Route, {
60
- exact: true,
61
+ const routers = [{
61
62
  path: "".concat(routerPrefix),
62
63
  component: PurchasePage
63
- }), /*#__PURE__*/_react.default.createElement(Route, {
64
- exact: true,
64
+ }, {
65
65
  path: (0, _router.default)(routerPrefix, '/prepare/:nftId'),
66
66
  component: PreparePage
67
- }), /*#__PURE__*/_react.default.createElement(Route, {
68
- exact: true,
67
+ }, {
69
68
  path: (0, _router.default)(routerPrefix, '/in-progress/:nftId'),
70
69
  component: LaunchPage
71
- })));
70
+ }];
71
+
72
+ const redirectToRoot = () => {
73
+ const result = routers.some(_ref2 => {
74
+ let {
75
+ path
76
+ } = _ref2;
77
+ return (0, _reactRouterDom.matchPath)(window.location.pathname, {
78
+ path,
79
+ exact: true,
80
+ strict: true
81
+ });
82
+ });
83
+
84
+ if (!result) {
85
+ return /*#__PURE__*/_react.default.createElement(_reactRouterDom.Redirect, {
86
+ path: "*",
87
+ to: "/"
88
+ });
89
+ }
90
+
91
+ return '';
92
+ };
93
+
94
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_content.default, null, /*#__PURE__*/_react.default.createElement(_router.RouterProvider, {
95
+ prefix: routerPrefix,
96
+ disabledBack: disabledBack
97
+ }, routers.map(e => /*#__PURE__*/_react.default.createElement(Route, {
98
+ exact: true,
99
+ path: e.path,
100
+ component: e.component,
101
+ key: e.path
102
+ })))), noMatchRedirect && redirectToRoot());
72
103
  }
73
104
 
74
- function Stripe(_ref2) {
105
+ function Stripe(_ref3) {
75
106
  let {
76
107
  locale,
77
108
  baseURL
78
- } = _ref2,
79
- rest = _objectWithoutProperties(_ref2, _excluded);
109
+ } = _ref3,
110
+ rest = _objectWithoutProperties(_ref3, _excluded);
80
111
 
81
112
  return /*#__PURE__*/_react.default.createElement(_locale.LocaleProvider, {
82
113
  translations: _locales.translations,
@@ -95,13 +126,15 @@ Stripe.defaultProps = {
95
126
  baseURL: '/'
96
127
  };
97
128
 
98
- function Launcher(_ref3) {
129
+ function Launcher(_ref4) {
99
130
  let {
100
131
  Route,
101
132
  routerPrefix,
102
133
  locale,
103
- baseURL
104
- } = _ref3;
134
+ baseURL,
135
+ noMatchRedirect,
136
+ disabledBack
137
+ } = _ref4;
105
138
  return /*#__PURE__*/_react.default.createElement(_locale.LocaleProvider, {
106
139
  translations: _locales.translations,
107
140
  locale: locale
@@ -110,7 +143,9 @@ function Launcher(_ref3) {
110
143
  }, /*#__PURE__*/_react.default.createElement(LaunchContent, {
111
144
  Route: Route,
112
145
  routerPrefix: routerPrefix,
113
- locale: locale
146
+ locale: locale,
147
+ noMatchRedirect: noMatchRedirect,
148
+ disabledBack: disabledBack
114
149
  })));
115
150
  }
116
151
 
@@ -118,19 +153,23 @@ Launcher.propTypes = {
118
153
  Route: _propTypes.default.any.isRequired,
119
154
  routerPrefix: _propTypes.default.string,
120
155
  locale: _propTypes.default.string,
121
- baseURL: _propTypes.default.string
156
+ baseURL: _propTypes.default.string,
157
+ noMatchRedirect: _propTypes.default.bool,
158
+ disabledBack: _propTypes.default.array
122
159
  };
123
160
  Launcher.defaultProps = {
124
161
  routerPrefix: '/',
125
162
  locale: 'en',
126
- baseURL: '/'
163
+ baseURL: '/',
164
+ noMatchRedirect: false,
165
+ disabledBack: []
127
166
  };
128
167
 
129
- function PaymentType(_ref4) {
168
+ function PaymentType(_ref5) {
130
169
  let {
131
170
  locale
132
- } = _ref4,
133
- props = _objectWithoutProperties(_ref4, _excluded2);
171
+ } = _ref5,
172
+ props = _objectWithoutProperties(_ref5, _excluded2);
134
173
 
135
174
  return /*#__PURE__*/_react.default.createElement(_locale.LocaleProvider, {
136
175
  translations: _locales.translations,
package/lib/prepare.js CHANGED
@@ -66,6 +66,7 @@ function PreparePage() {
66
66
  description: ''
67
67
  });
68
68
  const routerPrefix = (0, _router.usePrefix)();
69
+ const disabledBack = (0, _router.useDisabledBack)();
69
70
  const [launching, setLaunching] = (0, _react.useState)(false);
70
71
  const [showLaunchInstanceDialog, setShowLaunchInstanceDialog] = (0, _react.useState)(false);
71
72
  const {
@@ -190,7 +191,7 @@ function PreparePage() {
190
191
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(_pageHeader.default, {
191
192
  title: t("".concat(headerScope, ".title")),
192
193
  subTitle: t("".concat(headerScope, ".subTitle")),
193
- onClickBack: headerScope === 'redeem' ? clickBack : ''
194
+ onClickBack: headerScope === 'redeem' && !disabledBack.includes('prepare') ? clickBack : ''
194
195
  }), /*#__PURE__*/_react.default.createElement("div", {
195
196
  className: "page-body"
196
197
  }, /*#__PURE__*/_react.default.createElement("div", {
package/lib/purchase.js CHANGED
@@ -82,6 +82,7 @@ function PurchasePage() {
82
82
  } = (0, _request.default)();
83
83
  const query = (0, _query.default)();
84
84
  const history = (0, _reactRouterDom.useHistory)();
85
+ const disabledBack = (0, _router.useDisabledBack)();
85
86
  const [plan, setPlan] = (0, _react.useState)(null);
86
87
  const {
87
88
  session
@@ -281,7 +282,7 @@ function PurchasePage() {
281
282
  }, isEmbed && !isMobile && /*#__PURE__*/_react.default.createElement(_pageHeader.default, {
282
283
  title: t('plan.title'),
283
284
  subTitle: t('plan.subTitle'),
284
- onClickBack: clickBack
285
+ onClickBack: disabledBack.includes('purchase') ? '' : clickBack
285
286
  }), /*#__PURE__*/_react.default.createElement("div", {
286
287
  className: "page-body body"
287
288
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -294,7 +295,7 @@ function PurchasePage() {
294
295
  }, (!isEmbed || isMobile) && /*#__PURE__*/_react.default.createElement(_pageHeader.default, {
295
296
  title: t('plan.title'),
296
297
  subTitle: t('plan.subTitle'),
297
- onClickBack: clickBack
298
+ onClickBack: disabledBack.includes('purchase') ? '' : clickBack
298
299
  }), plans.length ? /*#__PURE__*/_react.default.createElement("div", {
299
300
  className: "select-payment"
300
301
  }, /*#__PURE__*/_react.default.createElement(_Tabs.default, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/launcher-workflow",
3
- "version": "1.7.38",
3
+ "version": "1.7.39",
4
4
  "description": "Purchase components for Launcher UI",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -41,8 +41,8 @@
41
41
  "@arcblock/icons": "^2.1.42",
42
42
  "@arcblock/license": "^2.1.42",
43
43
  "@arcblock/ux": "^2.1.42",
44
- "@blocklet/launcher-layout": "1.7.38",
45
- "@blocklet/launcher-util": "1.7.38",
44
+ "@blocklet/launcher-layout": "1.7.39",
45
+ "@blocklet/launcher-util": "1.7.39",
46
46
  "@emotion/react": "^11.9.0",
47
47
  "@emotion/styled": "^11.8.1",
48
48
  "@mui/icons-material": "^5.6.2",
@@ -73,5 +73,5 @@
73
73
  "babel-plugin-inline-react-svg": "^2.0.1",
74
74
  "babel-plugin-styled-components": "^1.10.7"
75
75
  },
76
- "gitHead": "bcdd56337b07ea894fbb4db97eddeafda75ca1ec"
76
+ "gitHead": "14b84b43a0aa2b95cf5b3dec8d4c4f6737d351e5"
77
77
  }