@abtnode/ux 1.8.63-beta-b71f5f80 → 1.8.63-beta-a36b5e1a

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,191 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = AddCert;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _useAsyncRetry = _interopRequireDefault(require("react-use/lib/useAsyncRetry"));
10
+ var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
11
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
12
+ var _Alert = _interopRequireDefault(require("@arcblock/ux/lib/Alert"));
13
+ var _context = require("@arcblock/ux/lib/Locale/context");
14
+ var _constant = require("@blocklet/constant");
15
+ var _toast = _interopRequireDefault(require("../toast"));
16
+ var _confirm = _interopRequireDefault(require("../confirm"));
17
+ var _node = require("../contexts/node");
18
+ var _blocklet = require("../contexts/blocklet");
19
+ var _util = require("../util");
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+ const _excluded = ["domain", "domainStatus"];
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+ 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; }
24
+ 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; }
25
+ 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; }
26
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
27
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
28
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
29
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
30
+ const isCertInProgress = status => ['waiting', 'creating', 'renewaling'].includes(status);
31
+ function Add(props) {
32
+ var _certState$value2;
33
+ const {
34
+ t
35
+ } = (0, _context.useLocaleContext)();
36
+ const [loading, setLoading] = (0, _react.useState)(false);
37
+ const [confirmSetting, setConfirmSetting] = (0, _react.useState)(null);
38
+ const {
39
+ domain,
40
+ onAdd,
41
+ children,
42
+ did
43
+ } = props;
44
+ const {
45
+ api,
46
+ ws: {
47
+ useSubscription
48
+ }
49
+ } = (0, _node.useNodeContext)();
50
+ const [issuing, setIssuing] = (0, _react.useState)(false);
51
+ const {
52
+ actions: {
53
+ refreshDomainStatus
54
+ }
55
+ } = (0, _blocklet.useBlockletContext)();
56
+ const certState = (0, _useAsyncRetry.default)(async () => {
57
+ const {
58
+ cert
59
+ } = await api.findCertificateByDomain({
60
+ input: {
61
+ domain,
62
+ did
63
+ }
64
+ });
65
+ return cert;
66
+ });
67
+ const handleIssueComplete = (cert, type) => {
68
+ if (cert.domain === domain) {
69
+ setIssuing(false);
70
+ if (type === 'success') {
71
+ _toast.default.success("The ".concat(cert.domain, " certificate is issued successfully"));
72
+ } else if (type === 'error') {
73
+ _toast.default.error("Failed to issue certificate for ".concat(cert.domain));
74
+ }
75
+ }
76
+ };
77
+ (0, _react.useEffect)(() => {
78
+ var _certState$value;
79
+ if (!certState.loading && isCertInProgress((_certState$value = certState.value) === null || _certState$value === void 0 ? void 0 : _certState$value.status)) {
80
+ setIssuing(true);
81
+ }
82
+ }, [certState]);
83
+ useSubscription(_constant.BlockletEvents.certError, cert => handleIssueComplete(cert, 'error'));
84
+ useSubscription(_constant.BlockletEvents.certIssued, cert => {
85
+ certState.retry();
86
+ refreshDomainStatus(cert.domain);
87
+ handleIssueComplete(cert, 'success');
88
+ });
89
+ if (certState.loading) {
90
+ return ''; // 如果正在加载证书的状态,则不渲染任何元素
91
+ }
92
+
93
+ if (((_certState$value2 = certState.value) === null || _certState$value2 === void 0 ? void 0 : _certState$value2.status) === 'normal') {
94
+ return ''; // 如果证书已经生成,则不渲染任何元素
95
+ }
96
+
97
+ const onCancel = () => {
98
+ setLoading(false);
99
+ setConfirmSetting(null);
100
+ };
101
+ const onConfirm = async () => {
102
+ setLoading(true);
103
+ try {
104
+ await api.issueLetsEncryptCert({
105
+ input: {
106
+ domain,
107
+ did
108
+ }
109
+ });
110
+ onAdd();
111
+ setIssuing(true);
112
+ } catch (error) {
113
+ console.error(error);
114
+ setIssuing(false);
115
+ } finally {
116
+ setLoading(false);
117
+ setConfirmSetting(null);
118
+ }
119
+ };
120
+ const setting = {
121
+ title: t('router.cert.genLetsEncryptCert.title'),
122
+ description: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
124
+ type: "success",
125
+ children: t('router.cert.genLetsEncryptCert.dnsTip')
126
+ }), t('router.cert.genLetsEncryptCert.description')]
127
+ }),
128
+ confirm: t('common.confirm'),
129
+ onConfirm,
130
+ onCancel
131
+ };
132
+ const onClick = e => {
133
+ e.stopPropagation();
134
+ setConfirmSetting(setting);
135
+ };
136
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
137
+ children: [issuing ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
138
+ title: t('router.cert.issuing'),
139
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
140
+ size: 12
141
+ })
142
+ }) : children({
143
+ loading,
144
+ open: onClick
145
+ }), confirmSetting && /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirm.default, {
146
+ color: "primary",
147
+ title: confirmSetting.title,
148
+ description: confirmSetting.description,
149
+ confirm: confirmSetting.confirm,
150
+ params: confirmSetting.params,
151
+ onConfirm: confirmSetting.onConfirm,
152
+ onCancel: confirmSetting.onCancel
153
+ })]
154
+ });
155
+ }
156
+ Add.propTypes = {
157
+ domain: _propTypes.default.string.isRequired,
158
+ did: _propTypes.default.string.isRequired,
159
+ onAdd: _propTypes.default.func,
160
+ children: _propTypes.default.any
161
+ };
162
+ Add.defaultProps = {
163
+ onAdd: () => {},
164
+ children: null
165
+ };
166
+ function AddCert(props) {
167
+ const {
168
+ domain,
169
+ domainStatus
170
+ } = props,
171
+ others = _objectWithoutProperties(props, _excluded);
172
+ if (!(0, _util.shouldCheckDomainStatus)(domain) || domainStatus !== null && domainStatus !== void 0 && domainStatus.isHttps) {
173
+ return '';
174
+ }
175
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Add, _objectSpread({}, _objectSpread({
176
+ domain
177
+ }, others)));
178
+ }
179
+ AddCert.propTypes = {
180
+ domain: _propTypes.default.string.isRequired,
181
+ domainStatus: _propTypes.default.shape({
182
+ isHttps: _propTypes.default.bool
183
+ }).isRequired,
184
+ did: _propTypes.default.string.isRequired,
185
+ onAdd: _propTypes.default.func,
186
+ children: _propTypes.default.any
187
+ };
188
+ AddCert.defaultProps = {
189
+ onAdd: () => {},
190
+ children: null
191
+ };
@@ -35,6 +35,7 @@ var _domainStatus = _interopRequireDefault(require("./router/domain-status"));
35
35
  var _domainActions = _interopRequireDefault(require("./router/domain-actions"));
36
36
  var _walletType = _interopRequireDefault(require("./preferences/wallet-type"));
37
37
  var _appSk = _interopRequireDefault(require("./preferences/app-sk"));
38
+ var _addCert = _interopRequireDefault(require("./add-cert"));
38
39
  var _jsxRuntime = require("react/jsx-runtime");
39
40
  var _templateObject;
40
41
  const _excluded = ["blocklet", "onUpdate", "hasPermission"],
@@ -420,6 +421,20 @@ function BlockletEnvironment(_ref) {
420
421
  style: {
421
422
  marginLeft: 12
422
423
  }
424
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_addCert.default, {
425
+ domain: domain.value,
426
+ domainStatus: domain.domainStatus,
427
+ did: blocklet.meta.did,
428
+ children: _ref4 => {
429
+ let {
430
+ open
431
+ } = _ref4;
432
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
433
+ size: "small",
434
+ onClick: e => open(e),
435
+ children: t('router.cert.genLetsEncryptCert.title')
436
+ });
437
+ }
423
438
  })]
424
439
  }), hasPermission && !domain.isProtected ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_domainActions.default, {
425
440
  site: site,
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.8.63-beta-b71f5f80",
6
+ "version": "1.8.63-beta-a36b5e1a",
7
7
  "description": "UX components shared across abtnode packages",
8
8
  "main": "lib/index.js",
9
9
  "files": [
@@ -21,18 +21,18 @@
21
21
  "author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
- "@abtnode/auth": "1.8.63-beta-b71f5f80",
25
- "@abtnode/constant": "1.8.63-beta-b71f5f80",
26
- "@abtnode/util": "1.8.63-beta-b71f5f80",
24
+ "@abtnode/auth": "1.8.63-beta-a36b5e1a",
25
+ "@abtnode/constant": "1.8.63-beta-a36b5e1a",
26
+ "@abtnode/util": "1.8.63-beta-a36b5e1a",
27
27
  "@arcblock/did-connect": "^2.4.65",
28
28
  "@arcblock/did-motif": "^1.1.10",
29
29
  "@arcblock/icons": "^2.4.65",
30
30
  "@arcblock/terminal": "^2.4.65",
31
31
  "@arcblock/ux": "^2.4.65",
32
- "@blocklet/constant": "1.8.63-beta-b71f5f80",
32
+ "@blocklet/constant": "1.8.63-beta-a36b5e1a",
33
33
  "@blocklet/launcher-layout": "^1.9.38",
34
34
  "@blocklet/list": "^0.10.47",
35
- "@blocklet/meta": "1.8.63-beta-b71f5f80",
35
+ "@blocklet/meta": "1.8.63-beta-a36b5e1a",
36
36
  "@blocklet/ui-react": "^2.4.65",
37
37
  "@emotion/react": "^11.10.4",
38
38
  "@emotion/styled": "^11.10.4",
@@ -86,5 +86,5 @@
86
86
  "@babel/preset-react": "^7.18.6",
87
87
  "babel-plugin-inline-react-svg": "^1.1.2"
88
88
  },
89
- "gitHead": "ad50b6425a056b2db12b07283d0c08af62532c64"
89
+ "gitHead": "0c5385668fbd6235a3aead7d3a4a1ca5159088dd"
90
90
  }