@blocklet/launcher-workflow 2.2.22 → 2.2.23

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/es/checkout.js CHANGED
@@ -401,7 +401,8 @@ function CheckoutPage({
401
401
  onCancel: handleCancelPay,
402
402
  metadata: {
403
403
  sessionId: state.sessionId,
404
- currentUserDid: session?.user?.did
404
+ currentUserDid: session?.user?.did,
405
+ forceSwitch: !session?.user
405
406
  }
406
407
  }), /*#__PURE__*/_jsx(Confirm, {
407
408
  open: state.showPaidDialog.open,
@@ -52,7 +52,8 @@ export function RequestProvider({
52
52
  return /*#__PURE__*/_jsx(Provider, {
53
53
  value: {
54
54
  api: configRequest(request),
55
- create
55
+ create,
56
+ baseURL
56
57
  },
57
58
  children: children
58
59
  });
package/es/purchase.js CHANGED
@@ -1,5 +1,4 @@
1
1
  /* eslint-disable react-hooks/exhaustive-deps */
2
- import Connect, { useSecurity } from '@arcblock/did-connect/lib/Connect';
3
2
  import Button from '@arcblock/ux/lib/Button';
4
3
  import Center from '@arcblock/ux/lib/Center';
5
4
  import CompactLayout from '@blocklet/launcher-layout/lib/compact-layout';
@@ -17,9 +16,10 @@ import { Link, useNavigate, useSearchParams } from 'react-router-dom';
17
16
  import useMeasure from 'react-use/lib/useMeasure';
18
17
  import useSetState from 'react-use/lib/useSetState';
19
18
  import joinURL from 'url-join';
20
- import '@splidejs/splide/dist/css/splide.min.css';
19
+ import { API_DID_PREFIX } from '@arcblock/did-connect/lib/constant';
21
20
  import ResultMessage from '@blocklet/launcher-layout/lib/launch-result-message';
22
21
  import formatError from '@blocklet/launcher-util/es/format-error';
22
+ import '@splidejs/splide/dist/css/splide.min.css';
23
23
  var NextIcon = function NextIcon(props) {
24
24
  return /*#__PURE__*/_jsx("svg", {
25
25
  ...props,
@@ -80,19 +80,18 @@ function PurchasePage({
80
80
  } = useLocaleContext();
81
81
  const {
82
82
  create,
83
- api: launchSessionAPI
83
+ api: launchSessionAPI,
84
+ baseURL
84
85
  } = useRequest();
85
86
  const {
86
87
  isMobile
87
88
  } = useMobile();
88
- const {
89
- decrypt
90
- } = useSecurity();
91
89
  const navigate = useNavigate();
92
90
  const {
93
91
  session,
94
92
  storage,
95
- events
93
+ events,
94
+ connectApi
96
95
  } = useSessionContext();
97
96
  const [params, setParams] = useSearchParams();
98
97
  const {
@@ -112,7 +111,6 @@ function PurchasePage({
112
111
  paymentMethod: params.get('paymentMethod'),
113
112
  sessionId: params.get('sessionId'),
114
113
  planId: params.get('planId'),
115
- showRedeem: false,
116
114
  showMorePrompt: false,
117
115
  arrows: false,
118
116
  perPage: 100,
@@ -333,24 +331,41 @@ function PurchasePage({
333
331
  }
334
332
  }
335
333
  const handleRedeem = () => {
336
- setState({
337
- showRedeem: true
334
+ connectApi.openPopup({
335
+ useSocket: false,
336
+ locale,
337
+ action: 'redeem',
338
+ prefix: `${window.location.origin}${joinURL(baseURL || '', API_DID_PREFIX)}`,
339
+ onSuccess: handleRedeemed,
340
+ checkTimeout: 60 * 5000,
341
+ showDownload: false,
342
+ extraParams: {
343
+ planId: state.planId || state.plans[0]._id,
344
+ sessionId: state.sessionId,
345
+ forceSwitch: !session?.user
346
+ },
347
+ messages: {
348
+ title: t('redeem.dialog.title'),
349
+ scan: t('redeem.dialog.scan'),
350
+ confirm: t('redeem.dialog.confirm'),
351
+ success: t('redeem.dialog.success')
352
+ },
353
+ baseUrl: window.location.origin
354
+ }, {
355
+ locale
338
356
  });
339
357
  };
340
- const handleRedeemed = async ({
341
- loginToken,
358
+ const handleRedeemed = ({
359
+ sessionToken,
342
360
  nftId,
343
361
  type,
344
362
  sessionId
345
- }, _decrypt, extraParams) => {
363
+ }) => {
346
364
  if (type === NFT_TYPE_SERVERLESS) {
347
365
  params.set('launchType', 'serverless');
348
366
  }
349
- if (loginToken) {
350
- storage.setToken(decrypt(loginToken));
351
- if (extraParams?.sourceAppPid) {
352
- await session.loginFederatedMaster();
353
- }
367
+ if (sessionToken) {
368
+ storage.setToken(sessionToken);
354
369
  session.refresh();
355
370
  }
356
371
  if (sessionId) {
@@ -503,31 +518,7 @@ function PurchasePage({
503
518
  })
504
519
  })]
505
520
  })
506
- }), session.user && /*#__PURE__*/_jsx(InProgressSession, {}), state.showRedeem && /*#__PURE__*/_jsx(Connect, {
507
- open: true,
508
- popup: true,
509
- useSocket: false,
510
- locale: locale,
511
- action: "redeem",
512
- prefix: "/did",
513
- checkFn: create().get,
514
- onSuccess: handleRedeemed,
515
- onClose: () => setState({
516
- showRedeem: false
517
- }),
518
- checkTimeout: 60 * 5000,
519
- showDownload: false,
520
- extraParams: {
521
- planId: state.planId || state.plans[0]._id,
522
- sessionId: state.sessionId
523
- },
524
- messages: {
525
- title: t('redeem.dialog.title'),
526
- scan: t('redeem.dialog.scan'),
527
- confirm: t('redeem.dialog.confirm'),
528
- success: t('redeem.dialog.success')
529
- }
530
- })]
521
+ }), session.user && /*#__PURE__*/_jsx(InProgressSession, {})]
531
522
  });
532
523
  }
533
524
  const Container = styled(Layout)`
package/lib/checkout.js CHANGED
@@ -419,7 +419,8 @@ function CheckoutPage(_ref) {
419
419
  onCancel: handleCancelPay,
420
420
  metadata: {
421
421
  sessionId: state.sessionId,
422
- currentUserDid: session === null || session === void 0 || (_session$user2 = session.user) === null || _session$user2 === void 0 ? void 0 : _session$user2.did
422
+ currentUserDid: session === null || session === void 0 || (_session$user2 = session.user) === null || _session$user2 === void 0 ? void 0 : _session$user2.did,
423
+ forceSwitch: !(session !== null && session !== void 0 && session.user)
423
424
  }
424
425
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirm.default, {
425
426
  open: state.showPaidDialog.open,
@@ -65,7 +65,8 @@ function RequestProvider(_ref) {
65
65
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Provider, {
66
66
  value: {
67
67
  api: configRequest(request),
68
- create
68
+ create,
69
+ baseURL
69
70
  },
70
71
  children: children
71
72
  });
package/lib/purchase.js CHANGED
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _Connect = _interopRequireWildcard(require("@arcblock/did-connect/lib/Connect"));
8
7
  var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
9
8
  var _Center = _interopRequireDefault(require("@arcblock/ux/lib/Center"));
10
9
  var _compactLayout = _interopRequireDefault(require("@blocklet/launcher-layout/lib/compact-layout"));
@@ -22,9 +21,10 @@ var _reactRouterDom = require("react-router-dom");
22
21
  var _useMeasure = _interopRequireDefault(require("react-use/lib/useMeasure"));
23
22
  var _useSetState = _interopRequireDefault(require("react-use/lib/useSetState"));
24
23
  var _urlJoin = _interopRequireDefault(require("url-join"));
25
- require("@splidejs/splide/dist/css/splide.min.css");
24
+ var _constant2 = require("@arcblock/did-connect/lib/constant");
26
25
  var _launchResultMessage = _interopRequireDefault(require("@blocklet/launcher-layout/lib/launch-result-message"));
27
26
  var _formatError = _interopRequireDefault(require("@blocklet/launcher-util/es/format-error"));
27
+ require("@splidejs/splide/dist/css/splide.min.css");
28
28
  var _inProgressSession = _interopRequireDefault(require("./components/in-progress-session"));
29
29
  var _layout = _interopRequireDefault(require("./components/layout"));
30
30
  var _body = _interopRequireDefault(require("./components/layout/body"));
@@ -39,9 +39,9 @@ var _util = require("./util");
39
39
  var _jsxRuntime = require("react/jsx-runtime");
40
40
  var _templateObject;
41
41
  /* eslint-disable react-hooks/exhaustive-deps */
42
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
42
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
44
43
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
44
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
45
45
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
46
46
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
47
47
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -94,19 +94,18 @@ function PurchasePage(_ref) {
94
94
  } = (0, _locale.useLocaleContext)();
95
95
  const {
96
96
  create,
97
- api: launchSessionAPI
97
+ api: launchSessionAPI,
98
+ baseURL
98
99
  } = (0, _request.default)();
99
100
  const {
100
101
  isMobile
101
102
  } = (0, _useMobile.default)();
102
- const {
103
- decrypt
104
- } = (0, _Connect.useSecurity)();
105
103
  const navigate = (0, _reactRouterDom.useNavigate)();
106
104
  const {
107
105
  session,
108
106
  storage,
109
- events
107
+ events,
108
+ connectApi
110
109
  } = (0, _session.useSessionContext)();
111
110
  const [params, setParams] = (0, _reactRouterDom.useSearchParams)();
112
111
  const {
@@ -126,7 +125,6 @@ function PurchasePage(_ref) {
126
125
  paymentMethod: params.get('paymentMethod'),
127
126
  sessionId: params.get('sessionId'),
128
127
  planId: params.get('planId'),
129
- showRedeem: false,
130
128
  showMorePrompt: false,
131
129
  arrows: false,
132
130
  perPage: 100,
@@ -351,13 +349,33 @@ function PurchasePage(_ref) {
351
349
  }
352
350
  }
353
351
  const handleRedeem = () => {
354
- setState({
355
- showRedeem: true
352
+ connectApi.openPopup({
353
+ useSocket: false,
354
+ locale,
355
+ action: 'redeem',
356
+ prefix: "".concat(window.location.origin).concat((0, _urlJoin.default)(baseURL || '', _constant2.API_DID_PREFIX)),
357
+ onSuccess: handleRedeemed,
358
+ checkTimeout: 60 * 5000,
359
+ showDownload: false,
360
+ extraParams: {
361
+ planId: state.planId || state.plans[0]._id,
362
+ sessionId: state.sessionId,
363
+ forceSwitch: !(session !== null && session !== void 0 && session.user)
364
+ },
365
+ messages: {
366
+ title: t('redeem.dialog.title'),
367
+ scan: t('redeem.dialog.scan'),
368
+ confirm: t('redeem.dialog.confirm'),
369
+ success: t('redeem.dialog.success')
370
+ },
371
+ baseUrl: window.location.origin
372
+ }, {
373
+ locale
356
374
  });
357
375
  };
358
- const handleRedeemed = async (_ref3, _decrypt, extraParams) => {
376
+ const handleRedeemed = _ref3 => {
359
377
  let {
360
- loginToken,
378
+ sessionToken,
361
379
  nftId,
362
380
  type,
363
381
  sessionId
@@ -365,11 +383,8 @@ function PurchasePage(_ref) {
365
383
  if (type === _constant.NFT_TYPE_SERVERLESS) {
366
384
  params.set('launchType', 'serverless');
367
385
  }
368
- if (loginToken) {
369
- storage.setToken(decrypt(loginToken));
370
- if (extraParams !== null && extraParams !== void 0 && extraParams.sourceAppPid) {
371
- await session.loginFederatedMaster();
372
- }
386
+ if (sessionToken) {
387
+ storage.setToken(sessionToken);
373
388
  session.refresh();
374
389
  }
375
390
  if (sessionId) {
@@ -522,31 +537,7 @@ function PurchasePage(_ref) {
522
537
  })
523
538
  })]
524
539
  })
525
- }), session.user && /*#__PURE__*/(0, _jsxRuntime.jsx)(_inProgressSession.default, {}), state.showRedeem && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Connect.default, {
526
- open: true,
527
- popup: true,
528
- useSocket: false,
529
- locale: locale,
530
- action: "redeem",
531
- prefix: "/did",
532
- checkFn: create().get,
533
- onSuccess: handleRedeemed,
534
- onClose: () => setState({
535
- showRedeem: false
536
- }),
537
- checkTimeout: 60 * 5000,
538
- showDownload: false,
539
- extraParams: {
540
- planId: state.planId || state.plans[0]._id,
541
- sessionId: state.sessionId
542
- },
543
- messages: {
544
- title: t('redeem.dialog.title'),
545
- scan: t('redeem.dialog.scan'),
546
- confirm: t('redeem.dialog.confirm'),
547
- success: t('redeem.dialog.success')
548
- }
549
- })]
540
+ }), session.user && /*#__PURE__*/(0, _jsxRuntime.jsx)(_inProgressSession.default, {})]
550
541
  });
551
542
  }
552
543
  const Container = (0, _styled.default)(_layout.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .container-inner {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n }\n\n .plan-list {\n display: flex;\n justify-content: center;\n align-items: center;\n\n @media (min-width: 900px) {\n margin-top: 20px;\n }\n\n @media (min-width: 680px) and (max-width: 899px) {\n justify-content: center;\n }\n\n .toc {\n min-width: 180px;\n margin-right: 20px;\n }\n\n button.splide__pagination__page.is-active {\n background: #9397a1;\n }\n }\n\n .splide__pagination-custom {\n bottom: -24px;\n }\n\n .footer {\n display: flex;\n justify-content: ", ";\n align-item: center;\n margin-top: auto;\n padding-top: 16px;\n padding-bottom: ", ";\n\n > * {\n margin: 0 8px;\n ", " {\n margin: 0 16px;\n }\n }\n\n @media (max-width: ", "px) {\n flex-direction: column;\n align-items: center;\n }\n\n .footer-left {\n display: flex;\n gap: 16px;\n align-items: center;\n justify-content: space-between;\n\n .select-space {\n order: 1;\n color: #000;\n\n &:hover {\n text-decoration: underline !important;\n }\n }\n\n .redeem-button {\n order: 1;\n }\n\n @media (max-width: ", "px) {\n width: 100%;\n flex-direction: column;\n\n .redeem-button {\n width: 100%;\n order: 2;\n }\n }\n }\n\n .button-next {\n min-width: 200px;\n\n @media (max-width: ", "px) {\n width: 100%;\n margin-top: 20px;\n }\n }\n }\n"])), props => props.embed ? 'space-between' : 'flex-end', props => props.embed ? '0' : '16px', props => props.theme.breakpoints.up('md'), props => props.theme.breakpoints.values.sm, props => props.theme.breakpoints.values.sm, props => props.theme.breakpoints.values.sm);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/launcher-workflow",
3
- "version": "2.2.22",
3
+ "version": "2.2.23",
4
4
  "description": "Purchase components for Launcher UI",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -41,20 +41,20 @@
41
41
  "react": ">=18.1.0"
42
42
  },
43
43
  "dependencies": {
44
- "@arcblock/did-connect": "^2.7.28",
45
- "@arcblock/icons": "^2.7.28",
46
- "@arcblock/license": "^2.7.28",
47
- "@arcblock/react-hooks": "^2.7.28",
48
- "@arcblock/ux": "^2.7.28",
49
- "@blocklet/launcher-layout": "2.2.22",
50
- "@blocklet/launcher-util": "2.2.22",
51
- "@blocklet/launcher-ux": "2.2.22",
52
- "@blocklet/payment": "^1.13.18",
44
+ "@arcblock/did-connect": "^2.8.5",
45
+ "@arcblock/icons": "^2.8.5",
46
+ "@arcblock/license": "^2.8.5",
47
+ "@arcblock/react-hooks": "^2.8.5",
48
+ "@arcblock/ux": "^2.8.5",
49
+ "@blocklet/launcher-layout": "2.2.23",
50
+ "@blocklet/launcher-util": "2.2.23",
51
+ "@blocklet/launcher-ux": "2.2.23",
52
+ "@blocklet/payment": "^1.13.38",
53
53
  "@emotion/react": "^11.11.1",
54
54
  "@emotion/styled": "^11.11.0",
55
- "@mui/icons-material": "^5.14.13",
56
- "@mui/material": "^5.14.13",
57
- "@ocap/util": "^1.18.92",
55
+ "@mui/icons-material": "^5.14.15",
56
+ "@mui/material": "^5.14.15",
57
+ "@ocap/util": "^1.18.93",
58
58
  "@splidejs/react-splide": "^0.7.12",
59
59
  "@splidejs/splide": "^4.1.4",
60
60
  "@splidejs/splide-extension-grid": "^0.4.1",
@@ -70,7 +70,7 @@
70
70
  "lodash.throttle": "^4.1.1",
71
71
  "prop-types": "^15.8.1",
72
72
  "react-lottie-player": "^1.5.5",
73
- "react-router-dom": "^6.16.0",
73
+ "react-router-dom": "^6.17.0",
74
74
  "react-use": "^17.4.0",
75
75
  "url-join": "^4.0.1"
76
76
  },
@@ -101,5 +101,5 @@
101
101
  "require": "./lib/locales/index.js"
102
102
  }
103
103
  },
104
- "gitHead": "16413efeea480b69ed9a3a0f4570cc17d2f04883"
104
+ "gitHead": "c045106ef5846625efd3b845e3e3b16616593855"
105
105
  }