@abtnode/ux 1.16.13-beta-0656f92f → 1.16.13-beta-2eb54cbc

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,269 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = TrafficInsights;
7
+ exports.getDefaultRanges = void 0;
8
+ var _react = require("react");
9
+ var _dayjs = _interopRequireDefault(require("@abtnode/util/lib/dayjs"));
10
+ var _nthArg = _interopRequireDefault(require("lodash/nthArg"));
11
+ var _urlJoin = _interopRequireDefault(require("url-join"));
12
+ var _filesize = _interopRequireDefault(require("filesize"));
13
+ var _useAsyncRetry = _interopRequireDefault(require("react-use/lib/useAsyncRetry"));
14
+ var _reactIframe = _interopRequireDefault(require("react-iframe"));
15
+ var _Alert = _interopRequireDefault(require("@mui/material/Alert"));
16
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
17
+ var _Grid = _interopRequireDefault(require("@mui/material/Grid"));
18
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
19
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
20
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
21
+ var _Popover = _interopRequireDefault(require("@mui/material/Popover"));
22
+ var _LaunchOutlined = _interopRequireDefault(require("@mui/icons-material/LaunchOutlined"));
23
+ var _muiDaterangePicker = require("mui-daterange-picker");
24
+ var _xDatePickers = require("@mui/x-date-pickers");
25
+ var _AdapterDayjs = require("@mui/x-date-pickers/AdapterDayjs");
26
+ var _LocalizationProvider = require("@mui/x-date-pickers/LocalizationProvider");
27
+ var _context = require("@arcblock/ux/lib/Locale/context");
28
+ var _constant = require("@abtnode/constant");
29
+ var _dateFns = require("date-fns");
30
+ var _util = require("../util");
31
+ var _node = require("../contexts/node");
32
+ var _chart = _interopRequireDefault(require("./chart"));
33
+ var _jsxRuntime = require("react/jsx-runtime");
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+ 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
+ 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; }
37
+ 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; }
38
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
39
+ 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); } /* eslint-disable react/prop-types */ /* eslint-disable react-hooks/exhaustive-deps */
40
+ const noop = (0, _nthArg.default)(0);
41
+ const getDefaultRanges = (date, locale) => [{
42
+ label: 'This Week',
43
+ startDate: (0, _dateFns.startOfWeek)(date, {
44
+ locale
45
+ }),
46
+ endDate: (0, _dateFns.endOfWeek)(date, {
47
+ locale
48
+ })
49
+ }, {
50
+ label: 'Last Week',
51
+ startDate: (0, _dateFns.startOfWeek)((0, _dateFns.addWeeks)(date, -1), {
52
+ locale
53
+ }),
54
+ endDate: (0, _dateFns.endOfWeek)((0, _dateFns.addWeeks)(date, -1), {
55
+ locale
56
+ })
57
+ }, {
58
+ label: 'Last 7 Days',
59
+ startDate: (0, _dateFns.addWeeks)(date, -1),
60
+ endDate: date
61
+ }, {
62
+ label: 'This Month',
63
+ startDate: (0, _dateFns.startOfMonth)(date),
64
+ endDate: (0, _dateFns.endOfMonth)(date)
65
+ }, {
66
+ label: 'Last Month',
67
+ startDate: (0, _dateFns.startOfMonth)((0, _dateFns.addMonths)(date, -1)),
68
+ endDate: (0, _dateFns.endOfMonth)((0, _dateFns.addMonths)(date, -1))
69
+ }, {
70
+ label: 'This Year',
71
+ startDate: (0, _dateFns.startOfYear)(date),
72
+ endDate: (0, _dateFns.endOfYear)(date)
73
+ }, {
74
+ label: 'Last Year',
75
+ startDate: (0, _dateFns.startOfYear)((0, _dateFns.addYears)(date, -1)),
76
+ endDate: (0, _dateFns.endOfYear)((0, _dateFns.addYears)(date, -1))
77
+ }];
78
+ exports.getDefaultRanges = getDefaultRanges;
79
+ function TrafficInsights(_ref) {
80
+ let {
81
+ client,
82
+ did
83
+ } = _ref;
84
+ const maxDate = (0, _dayjs.default)().subtract(1, 'day').toDate();
85
+ const {
86
+ info,
87
+ inService
88
+ } = (0, _node.useNodeContext)();
89
+ const {
90
+ t,
91
+ locale
92
+ } = (0, _context.useLocaleContext)();
93
+ const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
94
+ const [loaded, setLoaded] = (0, _react.useState)(false);
95
+ const [date, setDate] = (0, _react.useState)(maxDate);
96
+ const [dateRange, setDateRange] = (0, _react.useState)({
97
+ startDate: (0, _dayjs.default)().subtract(30, 'day').toDate(),
98
+ endDate: maxDate
99
+ });
100
+ const data = (0, _useAsyncRetry.default)(async () => {
101
+ const result = await client.getTrafficInsights({
102
+ input: {
103
+ did,
104
+ startDate: (0, _dayjs.default)(dateRange.startDate).format('YYYY-MM-DD'),
105
+ endDate: (0, _dayjs.default)(dateRange.endDate).format('YYYY-MM-DD')
106
+ }
107
+ });
108
+ return result.list;
109
+ });
110
+ (0, _react.useEffect)(() => {
111
+ if (data.loading) {
112
+ return;
113
+ }
114
+ if (dateRange.startDate && dateRange.endDate) {
115
+ data.retry();
116
+ }
117
+ }, [dateRange]);
118
+ const onTriggerClick = e => {
119
+ if (anchorEl) {
120
+ setAnchorEl(null);
121
+ } else {
122
+ setAnchorEl(e.currentTarget);
123
+ }
124
+ };
125
+ const list = data.value || [];
126
+ const {
127
+ loading,
128
+ error
129
+ } = data;
130
+ if (!list.length && loading) {
131
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {});
132
+ }
133
+ if (error) {
134
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
135
+ severity: "error",
136
+ children: (0, _util.formatError)(error)
137
+ });
138
+ }
139
+ const metrics = {
140
+ totalRequests: noop,
141
+ validRequests: noop,
142
+ failedRequests: noop,
143
+ uniqueVisitors: noop,
144
+ uniqueFiles: noop,
145
+ uniqueReferrers: noop,
146
+ uniqueNotFound: noop,
147
+ uniqueStaticFiles: noop,
148
+ logSize: _filesize.default,
149
+ bandwidth: _filesize.default
150
+ };
151
+ const charts = Object.keys(metrics).map(key => ({
152
+ id: "".concat(key, "_chart"),
153
+ title: t("analytics.traffic.".concat(key)),
154
+ current: list.length ? metrics[key](list[0][key]) : 0,
155
+ data: list.map(v => ({
156
+ date: v.date,
157
+ value: v[key]
158
+ })).reverse(),
159
+ dateFn: noop,
160
+ valueFn: metrics[key]
161
+ }));
162
+ const open = Boolean(anchorEl);
163
+ const id = open ? 'date-range-picker-popover' : undefined;
164
+
165
+ // eslint-disable-next-line no-nested-ternary
166
+ const pathPrefix = inService ? _constant.WELLKNOWN_SERVICE_PATH_PREFIX : process.env.NODE_ENV === 'production' ? info.routing.adminPath : '';
167
+ const breakdownUrl = (0, _urlJoin.default)(window.location.origin, pathPrefix, "/api/analytics/traffic?date=".concat((0, _dayjs.default)(date).format('YYYY-MM-DD'), "&did=").concat(did));
168
+ const onRangeChange = range => {
169
+ setDateRange(range);
170
+ setAnchorEl(null);
171
+ };
172
+ const onDateChange = newDate => {
173
+ setDate(newDate.toDate());
174
+ setLoaded(false);
175
+ };
176
+ const onOpenBreakdown = () => {
177
+ window.open(breakdownUrl);
178
+ };
179
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
180
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
181
+ component: "div",
182
+ variant: "h5",
183
+ className: "page-header",
184
+ color: "textPrimary",
185
+ style: {
186
+ fontSize: 18,
187
+ fontWeight: 'bold'
188
+ },
189
+ mb: 2,
190
+ children: [t('analytics.trend'), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
191
+ onClick: onTriggerClick,
192
+ variant: "outlined",
193
+ size: "small",
194
+ color: "secondary",
195
+ children: [(0, _util.formatToDate)(dateRange.startDate, locale), " - ", (0, _util.formatToDate)(dateRange.endDate, locale)]
196
+ })]
197
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
198
+ id: id,
199
+ open: open,
200
+ anchorEl: anchorEl,
201
+ onClose: () => setAnchorEl(null),
202
+ anchorOrigin: {
203
+ vertical: 'bottom',
204
+ horizontal: 'left'
205
+ },
206
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_muiDaterangePicker.DateRangePicker, {
207
+ open: true,
208
+ toggle: onTriggerClick,
209
+ maxDate: maxDate,
210
+ definedRanges: getDefaultRanges(date),
211
+ onChange: onRangeChange
212
+ })
213
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {
214
+ container: true,
215
+ spacing: 4,
216
+ children: charts.map(x => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {
217
+ item: true,
218
+ lg: 3,
219
+ md: 6,
220
+ sm: 6,
221
+ xs: 12,
222
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_chart.default, _objectSpread({}, x))
223
+ }, x.id))
224
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
225
+ component: "div",
226
+ variant: "h5",
227
+ className: "page-header",
228
+ color: "textPrimary",
229
+ style: {
230
+ fontSize: 18,
231
+ fontWeight: 'bold'
232
+ },
233
+ mt: 4,
234
+ mb: 1,
235
+ children: [t('analytics.detail'), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
236
+ children: [loaded && /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
237
+ onClick: onOpenBreakdown,
238
+ style: {
239
+ marginRight: 32
240
+ },
241
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LaunchOutlined.default, {})
242
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_LocalizationProvider.LocalizationProvider, {
243
+ dateAdapter: _AdapterDayjs.AdapterDayjs,
244
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_xDatePickers.DatePicker, {
245
+ disableFuture: true,
246
+ format: "ll",
247
+ value: (0, _dayjs.default)(date),
248
+ onChange: onDateChange,
249
+ slotProps: {
250
+ textField: {
251
+ size: 'small'
252
+ }
253
+ }
254
+ })
255
+ })]
256
+ })]
257
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIframe.default, {
258
+ url: breakdownUrl,
259
+ width: "100%",
260
+ height: "100%",
261
+ frameBorder: 0,
262
+ onLoad: () => setLoaded(true),
263
+ styles: {
264
+ border: 0,
265
+ minHeight: '400vh'
266
+ }
267
+ })]
268
+ });
269
+ }
@@ -153,7 +153,8 @@ function ComponentItem(_ref) {
153
153
  app
154
154
  } = _ref;
155
155
  const {
156
- t
156
+ t,
157
+ locale
157
158
  } = (0, _react.useContext)(_context.LocaleContext);
158
159
  const [expand, setExpand] = (0, _react.useState)(true);
159
160
  const [componentInfo, setComponentInfo] = (0, _react.useState)();
@@ -217,10 +218,10 @@ function ComponentItem(_ref) {
217
218
  })
218
219
  }, blocklet.status === 'running' ? {
219
220
  name: t('blocklet.startedAt'),
220
- value: (0, _util2.formatToDatetime)(blocklet.startedAt)
221
+ value: (0, _util2.formatToDatetime)(blocklet.startedAt, locale)
221
222
  } : null, blocklet.status !== 'running' ? {
222
223
  name: t('blocklet.stoppedAt'),
223
- value: (0, _util2.formatToDatetime)(blocklet.stoppedAt)
224
+ value: (0, _util2.formatToDatetime)(blocklet.stoppedAt, locale)
224
225
  } : null, {
225
226
  name: t('common.mountPoint'),
226
227
  value: mountPoint
@@ -93,7 +93,8 @@ const LinkDiv = _styled.default.span(_templateObject || (_templateObject = _tagg
93
93
  function BlockletOverview() {
94
94
  var _blocklet$environment, _blocklet$controller, _blocklet$controller2, _blocklet$controller3, _blocklet$settings, _blocklet$site;
95
95
  const {
96
- t
96
+ t,
97
+ locale
97
98
  } = (0, _context.useLocaleContext)();
98
99
  const {
99
100
  info: nodeInfo,
@@ -153,7 +154,7 @@ function BlockletOverview() {
153
154
  })
154
155
  } : null, {
155
156
  name: t('blocklet.installedAt'),
156
- value: (0, _util2.formatToDatetime)(blocklet.installedAt)
157
+ value: (0, _util2.formatToDatetime)(blocklet.installedAt, locale)
157
158
  }, {
158
159
  name: t('blocklet.overview.accessControl'),
159
160
  value: t("team.whoCanAccess.".concat((0, _util.getWhoCanAccess)(blocklet), ".title"))
@@ -8,8 +8,8 @@ var _styled = _interopRequireDefault(require("@emotion/styled"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
10
10
  var _Grid = _interopRequireDefault(require("@mui/material/Grid"));
11
- var _cpu = _interopRequireDefault(require("../monitor/cpu"));
12
- var _memory = _interopRequireDefault(require("../monitor/memory"));
11
+ var _cpu = _interopRequireDefault(require("../analytics/cpu"));
12
+ var _memory = _interopRequireDefault(require("../analytics/memory"));
13
13
  var _jsxRuntime = require("react/jsx-runtime");
14
14
  var _templateObject;
15
15
  const _excluded = ["blocklet", "cpuHistory", "memoryHistory"];
@@ -48,8 +48,7 @@ function BlockletRuntimeInfo(_ref) {
48
48
  history: cpuHistory,
49
49
  style: {
50
50
  height: 150
51
- },
52
- hideDescription: true
51
+ }
53
52
  })
54
53
  }, "cpu"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {
55
54
  item: true,
@@ -62,8 +61,7 @@ function BlockletRuntimeInfo(_ref) {
62
61
  history: memoryHistory,
63
62
  style: {
64
63
  height: 150
65
- },
66
- hideDescription: true
64
+ }
67
65
  })
68
66
  }, "memory")]
69
67
  })
@@ -11,7 +11,7 @@ var _material = require("@mui/material");
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _lodash = require("lodash");
13
13
  var _ahooks = require("ahooks");
14
- var _dayjs = _interopRequireDefault(require("dayjs"));
14
+ var _dayjs = _interopRequireDefault(require("@abtnode/util/lib/dayjs"));
15
15
  var _HelpOutline = _interopRequireDefault(require("@mui/icons-material/HelpOutline"));
16
16
  var _propTypes = require("prop-types");
17
17
  var _node = require("../../contexts/node");
@@ -208,35 +208,23 @@ function SpacesBackupRecords(_ref2) {
208
208
  }
209
209
  }
210
210
  }];
211
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
212
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, _objectSpread(_objectSpread({
213
- display: "flex",
214
- flexDirection: "row",
215
- alignItems: "center",
216
- justifyContent: "space-between"
217
- }, rest), {}, {
218
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
219
- fontSize: "1.2rem",
220
- fontWeight: "bold",
221
- children: t('storage.spaces.backup.records')
222
- })
223
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
224
- children: backups !== null && backups !== void 0 && backups.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Datatable.default, {
225
- data: backups,
226
- columns: columns,
227
- emptyNode: t('storage.spaces.record.emptyData', locale),
228
- options: {
229
- download: false,
230
- filter: false,
231
- print: false
232
- }
233
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
234
- color: "#9397A1",
235
- marginTop: "24px",
236
- children: t('storage.spaces.record.emptyData')
237
- })
238
- })]
239
- });
211
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, _objectSpread(_objectSpread({}, rest), {}, {
212
+ children: backups !== null && backups !== void 0 && backups.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Datatable.default, {
213
+ title: t('storage.spaces.backup.records'),
214
+ data: backups,
215
+ columns: columns,
216
+ emptyNode: t('storage.spaces.record.emptyData', locale),
217
+ options: {
218
+ download: false,
219
+ filter: false,
220
+ print: false
221
+ }
222
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
223
+ color: "#9397A1",
224
+ marginTop: "24px",
225
+ children: t('storage.spaces.record.emptyData')
226
+ })
227
+ }));
240
228
  }
241
229
  SpacesBackupRecords.propTypes = {
242
230
  progress: _propTypes.object.isRequired,
@@ -17,6 +17,7 @@ var _node = require("../../contexts/node");
17
17
  var _spaces = require("../../util/spaces");
18
18
  var _useBackupProgress = _interopRequireDefault(require("../../hooks/use-backup-progress"));
19
19
  var _spaceGateway = require("../../util/space-gateway");
20
+ var _diskInfo = _interopRequireDefault(require("../disk-info"));
20
21
  var _util = require("../../util");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -192,6 +193,13 @@ function Connected() {
192
193
  },
193
194
  spaceGateways: spaceGateways,
194
195
  progress: progress
196
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
197
+ fontSize: "1.2rem",
198
+ fontWeight: "bold",
199
+ mb: 2,
200
+ children: t('common.dataStorage')
201
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_diskInfo.default, {
202
+ blocklet: blocklet
195
203
  })]
196
204
  });
197
205
  }
@@ -7,7 +7,9 @@ exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _material = require("@mui/material");
9
9
  var _context = require("@arcblock/ux/lib/Locale/context");
10
+ var _blocklet = require("../../../lib/contexts/blocklet");
10
11
  var _connectTo = _interopRequireDefault(require("./connect-to"));
12
+ var _diskInfo = _interopRequireDefault(require("../disk-info"));
11
13
  var _jsxRuntime = require("react/jsx-runtime");
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
15
  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; }
@@ -210,23 +212,35 @@ function Disconnect() {
210
212
  const {
211
213
  t
212
214
  } = (0, _context.useLocaleContext)();
215
+ const {
216
+ blocklet
217
+ } = (0, _blocklet.useBlockletContext)();
213
218
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
214
- minHeight: "50vh",
215
- display: "flex",
216
- flexDirection: "column",
217
- justifyContent: "center",
218
- alignItems: "center",
219
- alignContent: "center",
220
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(EmptySpacesNFT, {
221
- style: {
222
- width: 200,
223
- height: 250
224
- }
219
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
220
+ minHeight: "40vh",
221
+ display: "flex",
222
+ flexDirection: "column",
223
+ justifyContent: "center",
224
+ alignItems: "center",
225
+ alignContent: "center",
226
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(EmptySpacesNFT, {
227
+ style: {
228
+ width: 200,
229
+ height: 250
230
+ }
231
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
232
+ marginTop: "24px",
233
+ marginBottom: "24px",
234
+ children: t('storage.spaces.connect.provider')
235
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_connectTo.default, {})]
225
236
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
226
- marginTop: "24px",
227
- marginBottom: "24px",
228
- children: t('storage.spaces.connect.provider')
229
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_connectTo.default, {})]
237
+ fontSize: "1.2rem",
238
+ fontWeight: "bold",
239
+ mb: 2,
240
+ children: t('common.dataStorage')
241
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_diskInfo.default, {
242
+ blocklet: blocklet
243
+ })]
230
244
  });
231
245
  }
232
246
  Disconnect.propTypes = {};
@@ -38,12 +38,10 @@ function TransferOwner(_ref) {
38
38
  } = (0, _react.useContext)(_session.SessionContext);
39
39
  const [loading, setLoading] = (0, _react.useState)(false);
40
40
  const {
41
+ t,
41
42
  locale
42
43
  } = (0, _context.useLocaleContext)();
43
44
  const [error, setError] = (0, _react.useState)('');
44
- const {
45
- t
46
- } = (0, _context.useLocaleContext)();
47
45
  const [openTransferOwner, setOpenTransferOwner] = (0, _react.useState)(false);
48
46
  const [activeStep, setActiveStep] = (0, _react.useState)(0);
49
47
  const [result, setResult] = (0, _react.useState)('');
@@ -131,7 +129,7 @@ function TransferOwner(_ref) {
131
129
  mt: 2,
132
130
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Bold, {
133
131
  children: t('team.transferApp.transferDialog.createSuccessTip2', {
134
- expireDate: (0, _util.formatToDatetime)(result.expireDate)
132
+ expireDate: (0, _util.formatToDatetime)(result.expireDate, locale)
135
133
  })
136
134
  })
137
135
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
@@ -24,7 +24,8 @@ function Certificate(_ref) {
24
24
  const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
25
25
  const node = (0, _node.useNodeContext)();
26
26
  const {
27
- t
27
+ t,
28
+ locale
28
29
  } = (0, _context.useLocaleContext)();
29
30
  const handlePopoverOpen = event => {
30
31
  setAnchorEl(event.currentTarget);
@@ -91,10 +92,10 @@ function Certificate(_ref) {
91
92
  children: "".concat(t('common.issuer'), ": ").concat((0, _get.default)(certificate, 'issuer.commonName', ''))
92
93
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
93
94
  component: "div",
94
- children: "".concat(t('router.cert.issuedOn'), ": ").concat((0, _util.formatToDate)(certificate.validFrom))
95
+ children: "".concat(t('router.cert.issuedOn'), ": ").concat((0, _util.formatToDate)(certificate.validFrom, locale))
95
96
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
96
97
  component: "div",
97
- children: "".concat(t('router.cert.expiryOn'), ": ").concat((0, _util.formatToDate)(certificate.validTo))
98
+ children: "".concat(t('router.cert.expiryOn'), ": ").concat((0, _util.formatToDate)(certificate.validTo, locale))
98
99
  })]
99
100
  })]
100
101
  })
@@ -20,7 +20,7 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
20
20
  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); }
21
21
  // eslint-disable-next-line import/prefer-default-export
22
22
  function useBlocklet(_ref) {
23
- var _blocklet$site, _blocklet$site$domain, _blocklet$meta, _blocklet$meta2, _blocklet$meta3, _blocklet$meta4, _blocklet$meta5, _blocklet$meta6, _blocklet$meta7, _blocklet$meta8, _blocklet$meta9;
23
+ var _blocklet$site, _blocklet$site$domain, _blocklet$meta, _blocklet$meta2, _blocklet$meta3, _blocklet$meta4, _blocklet$meta5, _blocklet$meta6, _blocklet$meta7;
24
24
  let {
25
25
  did,
26
26
  client,
@@ -189,14 +189,31 @@ function useBlocklet(_ref) {
189
189
  [data.domain]: _objectSpread(_objectSpread({}, pre[data.domain]), data)
190
190
  }));
191
191
  }, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta = blocklet.meta) === null || _blocklet$meta === void 0 ? void 0 : _blocklet$meta.did, !disableSubscription]);
192
- useSubscription(_constant.BlockletEvents.statusChange, handleRefreshWithoutRuntime, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta2 = blocklet.meta) === null || _blocklet$meta2 === void 0 ? void 0 : _blocklet$meta2.did, !disableSubscription]); // eslint-disable-line prettier/prettier
192
+ useSubscription(_constant.BlockletEvents.statusChange, data => {
193
+ var _data$meta3;
194
+ if ((data === null || data === void 0 ? void 0 : (_data$meta3 = data.meta) === null || _data$meta3 === void 0 ? void 0 : _data$meta3.did) === blocklet.meta.did) {
195
+ setBlocklet(oldBlocklet => {
196
+ const newBlocklet = _objectSpread({}, oldBlocklet);
197
+ newBlocklet.status = (0, _constant.fromBlockletStatus)(data.status);
198
+ (newBlocklet.children || []).forEach(x => {
199
+ const y = data.children.find(z => {
200
+ var _z$meta, _x$meta;
201
+ return ((_z$meta = z.meta) === null || _z$meta === void 0 ? void 0 : _z$meta.did) === ((_x$meta = x.meta) === null || _x$meta === void 0 ? void 0 : _x$meta.did);
202
+ });
203
+ if (y) {
204
+ x.status = (0, _constant.fromBlockletStatus)(y.status);
205
+ }
206
+ });
207
+ return newBlocklet;
208
+ });
209
+ handleRefreshWithoutRuntime(data);
210
+ }
211
+ }, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta2 = blocklet.meta) === null || _blocklet$meta2 === void 0 ? void 0 : _blocklet$meta2.did, !disableSubscription]); // eslint-disable-line prettier/prettier
193
212
  useSubscription(_constant.BlockletEvents.storeChange, handleRefreshWithoutRuntime, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta3 = blocklet.meta) === null || _blocklet$meta3 === void 0 ? void 0 : _blocklet$meta3.did, !disableSubscription]);
194
- useSubscription(_constant.BlockletEvents.started, handleRefresh, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta4 = blocklet.meta) === null || _blocklet$meta4 === void 0 ? void 0 : _blocklet$meta4.did, !disableSubscription]);
195
- useSubscription(_constant.BlockletEvents.startFailed, handleRefresh, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta5 = blocklet.meta) === null || _blocklet$meta5 === void 0 ? void 0 : _blocklet$meta5.did, !disableSubscription]);
196
- useSubscription(_constant.BlockletEvents.installed, handleRefresh, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta6 = blocklet.meta) === null || _blocklet$meta6 === void 0 ? void 0 : _blocklet$meta6.did, !disableSubscription]);
197
- useSubscription(_constant.BlockletEvents.upgraded, handleRefresh, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta7 = blocklet.meta) === null || _blocklet$meta7 === void 0 ? void 0 : _blocklet$meta7.did, !disableSubscription]);
198
- useSubscription(_constant.BlockletEvents.downgraded, handleRefresh, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta8 = blocklet.meta) === null || _blocklet$meta8 === void 0 ? void 0 : _blocklet$meta8.did, !disableSubscription]);
199
- useSubscription(_constant.BlockletEvents.updated, handleRefresh, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta9 = blocklet.meta) === null || _blocklet$meta9 === void 0 ? void 0 : _blocklet$meta9.did, !disableSubscription]);
213
+ useSubscription(_constant.BlockletEvents.installed, handleRefresh, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta4 = blocklet.meta) === null || _blocklet$meta4 === void 0 ? void 0 : _blocklet$meta4.did, !disableSubscription]);
214
+ useSubscription(_constant.BlockletEvents.upgraded, handleRefresh, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta5 = blocklet.meta) === null || _blocklet$meta5 === void 0 ? void 0 : _blocklet$meta5.did, !disableSubscription]);
215
+ useSubscription(_constant.BlockletEvents.downgraded, handleRefresh, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta6 = blocklet.meta) === null || _blocklet$meta6 === void 0 ? void 0 : _blocklet$meta6.did, !disableSubscription]);
216
+ useSubscription(_constant.BlockletEvents.updated, handleRefresh, [blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta7 = blocklet.meta) === null || _blocklet$meta7 === void 0 ? void 0 : _blocklet$meta7.did, !disableSubscription]);
200
217
  const data = blocklet ? (0, _merge.default)(blocklet, {
201
218
  site: {
202
219
  domainAliases: blocklet.site.domainAliases.map(x => {
@@ -71,7 +71,7 @@ function InvitationReceive(_ref) {
71
71
  children: t('invite.receive')
72
72
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
73
73
  className: "invite-receive__until",
74
- children: [t('invite.validUntil'), (0, _util.formatDateTime)(invitation.expireDate)]
74
+ children: [t('invite.validUntil'), (0, _util.formatDateTime)(invitation.expireDate, locale)]
75
75
  })]
76
76
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Connect.default, {
77
77
  popup: true,
package/lib/locales/en.js CHANGED
@@ -131,7 +131,7 @@ module.exports = {
131
131
  createdAt: 'Created At',
132
132
  createdBy: 'Created By',
133
133
  dAddress: 'Decentralized Identifiers (DID)',
134
- dataStorage: 'Data Storage',
134
+ dataStorage: 'Storage on Local Disk',
135
135
  delConfirm: 'Delete',
136
136
  delConfirmDescription: 'Confirm delete {data}?',
137
137
  delete: 'Delete',
@@ -202,7 +202,9 @@ module.exports = {
202
202
  members: 'Members',
203
203
  memory: 'Memory',
204
204
  meta: 'Meta Data',
205
- monitor: 'Monitor',
205
+ analytics: 'Analytics',
206
+ runtime: 'Runtime',
207
+ traffic: 'Traffic',
206
208
  more: 'More',
207
209
  mountPoint: 'MountPoint',
208
210
  name: 'Name',
@@ -691,7 +693,7 @@ module.exports = {
691
693
  verifying: 'Verifying Blocklet Server v{version}',
692
694
  rollback: 'Rollback Blocklet Server',
693
695
  complete: 'Upgrade complete!',
694
- progress: 'Upgrading Blocklet Server to v{version}',
696
+ progress: 'Upgrading Blocklet Server {version}',
695
697
  check: 'Check for Updates',
696
698
  latest: 'You are running the latest version.'
697
699
  },
@@ -1461,5 +1463,21 @@ module.exports = {
1461
1463
  },
1462
1464
  loading: 'Load subscription...',
1463
1465
  loadFailed: 'Failed to load subscription info, please retry!'
1466
+ },
1467
+ analytics: {
1468
+ trend: 'Trends',
1469
+ detail: 'Breakdown',
1470
+ traffic: {
1471
+ totalRequests: 'Total Requests',
1472
+ validRequests: 'Success Requests',
1473
+ failedRequests: 'Failed Requests',
1474
+ uniqueVisitors: 'Unique Visitors',
1475
+ uniqueFiles: 'Unique URLs',
1476
+ uniqueReferrers: 'Unique Referrers',
1477
+ uniqueNotFound: 'Unique 404',
1478
+ uniqueStaticFiles: 'Unique Static Files',
1479
+ logSize: 'Log Size',
1480
+ bandwidth: 'Bandwidth'
1481
+ }
1464
1482
  }
1465
1483
  };