@abtnode/ux 1.16.14-beta-0c29907f → 1.16.14-beta-d802cd3c

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.
@@ -6,7 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = BlockletLog;
7
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
8
8
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
9
- var _util = require("@blocklet/meta/lib/util");
9
+ var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
10
+ var _Select = _interopRequireDefault(require("@mui/material/Select"));
11
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
12
+ var _useLocalStorage = _interopRequireDefault(require("react-use/lib/useLocalStorage"));
10
13
  var _logTerminal = require("../logs/log-terminal");
11
14
  var _download = _interopRequireDefault(require("../logs/download"));
12
15
  var _jsxRuntime = require("react/jsx-runtime");
@@ -39,6 +42,43 @@ function BlockletLog(_ref) {
39
42
  } = _ref,
40
43
  rest = _objectWithoutProperties(_ref, _excluded);
41
44
  const initialData = ['Tip: this tab will only show runtime logs. Please go to "Blocklet Server" to view other lifecycle logs of the blocklet (install/start/stop...)', '\r\n\r\n'];
45
+ const logs = ((blocklet === null || blocklet === void 0 ? void 0 : blocklet.children) || []).map(x => ({
46
+ did: x.meta.did,
47
+ name: x.meta.title,
48
+ types: ['error', 'info', 'access', 'stdout', 'stderr']
49
+ }));
50
+
51
+ // format: `{componentId},{defaultTypeIndex}`
52
+ const [config, setConfig] = (0, _useLocalStorage.default)("blocklet-log-".concat(blocklet.meta.did), '');
53
+
54
+ // eslint-disable-next-line prefer-const
55
+ let [componentId, defaultTypeIndex] = config.split(',');
56
+ if (!logs.find(x => x.did === componentId)) {
57
+ var _logs$;
58
+ componentId = (_logs$ = logs[0]) === null || _logs$ === void 0 ? void 0 : _logs$.did;
59
+ }
60
+ const onSelectChange = e => {
61
+ setConfig([e.target.value, defaultTypeIndex].join(','));
62
+ };
63
+ const componentSelect = /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControl.default, {
64
+ sx: {
65
+ minWidth: 240
66
+ },
67
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Select.default, {
68
+ value: componentId,
69
+ onChange: onSelectChange,
70
+ size: "small",
71
+ children: logs.map(x => /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, {
72
+ value: x.did,
73
+ children: x.name
74
+ }, x.did))
75
+ })
76
+ });
77
+ const log = logs.find(item => item.did === componentId) || logs[0] || blocklet.meta;
78
+ const onTypeChange = type => {
79
+ const index = log.types.indexOf(type);
80
+ setConfig([componentId, index || 0].join(','));
81
+ };
42
82
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, _objectSpread(_objectSpread({
43
83
  height: {
44
84
  xs: 'calc(100vh - 444px)',
@@ -47,14 +87,18 @@ function BlockletLog(_ref) {
47
87
  }
48
88
  }, rest), {}, {
49
89
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_logTerminal.LogTerminalGroup, {
50
- name: (0, _util.getDisplayName)(blocklet),
51
- logId: "blocklet-".concat(blocklet.meta.did),
90
+ logId: log === blocklet.meta ? "blocklet-".concat(blocklet.meta.did) : "blocklet-".concat(blocklet.meta.did, "/").concat(log.did),
52
91
  initialData: initialData,
92
+ prepend: componentSelect,
53
93
  postpend: /*#__PURE__*/(0, _jsxRuntime.jsx)(_download.default, {
54
94
  id: blocklet.meta.did,
55
95
  name: blocklet.meta.name
56
- })
57
- })
96
+ }),
97
+ name: log.name,
98
+ types: log.types,
99
+ defaultTypeIndex: defaultTypeIndex,
100
+ onTypeChange: onTypeChange
101
+ }, log.did)
58
102
  }));
59
103
  }
60
104
  BlockletLog.propTypes = {
@@ -16,7 +16,7 @@ var _clock = _interopRequireDefault(require("./clock"));
16
16
  var _node = require("../contexts/node");
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
18
  var _templateObject, _templateObject2;
19
- const _excluded = ["name", "logId", "types", "initialData", "prepend", "postpend"],
19
+ const _excluded = ["name", "logId", "types", "defaultTypeIndex", "initialData", "prepend", "postpend", "onTypeChange"],
20
20
  _excluded2 = ["logFile"];
21
21
  /**
22
22
  * 按 level/destination 分类的一组 terminal
@@ -35,9 +35,11 @@ function LogTerminalGroup(_ref) {
35
35
  name,
36
36
  logId,
37
37
  types,
38
+ defaultTypeIndex,
38
39
  initialData,
39
40
  prepend,
40
- postpend
41
+ postpend,
42
+ onTypeChange
41
43
  } = _ref,
42
44
  rest = _objectWithoutProperties(_ref, _excluded);
43
45
  const {
@@ -53,7 +55,7 @@ function LogTerminalGroup(_ref) {
53
55
  stderr: 'stderr'
54
56
  };
55
57
  const isMobile = (0, _useMediaQuery.default)(theme => theme.breakpoints.down('md'));
56
- const [currentType, setCurrentType] = (0, _react.useState)(types[0]);
58
+ const [currentType, setCurrentType] = (0, _react.useState)(types[defaultTypeIndex || 0]);
57
59
  const [logFiles, setLogFiles] = (0, _react.useState)();
58
60
  const terminalRefs = (0, _react.useRef)({});
59
61
 
@@ -94,7 +96,10 @@ function LogTerminalGroup(_ref) {
94
96
  variant: 'contained'
95
97
  } : {};
96
98
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, _objectSpread(_objectSpread({}, props), {}, {
97
- onClick: () => setCurrentType(type),
99
+ onClick: () => {
100
+ setCurrentType(type);
101
+ onTypeChange(type);
102
+ },
98
103
  children: logTypeLabels[type]
99
104
  }), type);
100
105
  })
@@ -126,16 +131,20 @@ LogTerminalGroup.propTypes = {
126
131
  logId: _propTypes.default.string.isRequired,
127
132
  // 日志类型, info/error 或 stdin/stdout/access
128
133
  types: _propTypes.default.arrayOf(_propTypes.default.string),
134
+ defaultTypeIndex: _propTypes.default.number,
129
135
  // 写入 terminal 的初始数据
130
136
  initialData: _propTypes.default.arrayOf(_propTypes.default.string),
131
137
  prepend: _propTypes.default.node,
132
- postpend: _propTypes.default.node
138
+ postpend: _propTypes.default.node,
139
+ onTypeChange: _propTypes.default.func
133
140
  };
134
141
  LogTerminalGroup.defaultProps = {
135
142
  types: ['error', 'info', 'access', 'stdout', 'stderr'],
143
+ defaultTypeIndex: 0,
136
144
  initialData: [],
137
145
  prepend: null,
138
- postpend: null
146
+ postpend: null,
147
+ onTypeChange: () => {}
139
148
  };
140
149
  const LogTerminalGroupRoot = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n height: 100%;\n .log-terminal-group-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-bottom: 16px;\n }\n\n .log-terminal-group-head-start {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: 16px;\n ", " {\n flex-direction: column;\n align-items: start;\n }\n }\n\n .log-terminal-group-head-end {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: 16px;\n ", " {\n flex-direction: column;\n align-items: start;\n }\n }\n .log-terminal-group-terminals {\n flex: 1;\n position: relative;\n overflow: hidden;\n > * {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n }\n"])), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.down('md'));
141
150
  const LogTerminal = /*#__PURE__*/(0, _react.forwardRef)((_ref3, ref) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abtnode/ux",
3
- "version": "1.16.14-beta-0c29907f",
3
+ "version": "1.16.14-beta-d802cd3c",
4
4
  "description": "UX components shared across abtnode packages",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,9 +23,9 @@
23
23
  "author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
24
24
  "license": "Apache-2.0",
25
25
  "dependencies": {
26
- "@abtnode/auth": "1.16.14-beta-0c29907f",
27
- "@abtnode/constant": "1.16.14-beta-0c29907f",
28
- "@abtnode/util": "1.16.14-beta-0c29907f",
26
+ "@abtnode/auth": "1.16.14-beta-d802cd3c",
27
+ "@abtnode/constant": "1.16.14-beta-d802cd3c",
28
+ "@abtnode/util": "1.16.14-beta-d802cd3c",
29
29
  "@ahooksjs/use-url-state": "^3.5.1",
30
30
  "@arcblock/did": "^1.18.87",
31
31
  "@arcblock/did-connect": "^2.5.60",
@@ -35,10 +35,10 @@
35
35
  "@arcblock/react-hooks": "^2.5.60",
36
36
  "@arcblock/terminal": "^2.5.60",
37
37
  "@arcblock/ux": "^2.5.60",
38
- "@blocklet/constant": "1.16.14-beta-0c29907f",
38
+ "@blocklet/constant": "1.16.14-beta-d802cd3c",
39
39
  "@blocklet/launcher-layout": "2.1.46",
40
40
  "@blocklet/list": "^0.12.8",
41
- "@blocklet/meta": "1.16.14-beta-0c29907f",
41
+ "@blocklet/meta": "1.16.14-beta-d802cd3c",
42
42
  "@blocklet/ui-react": "^2.5.60",
43
43
  "@emotion/react": "^11.10.4",
44
44
  "@emotion/styled": "^11.10.4",
@@ -97,5 +97,5 @@
97
97
  "@babel/preset-react": "^7.18.6",
98
98
  "babel-plugin-inline-react-svg": "^1.1.2"
99
99
  },
100
- "gitHead": "1f02851a71861dbf09bfedfa9df6d9fc6d2355a3"
100
+ "gitHead": "f8e2dcefd8d6876e5dedee833ac976b4a0496b20"
101
101
  }