@1e0zj/dsh-plugin-mall 0.4.7 → 0.4.12

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/src/client.js CHANGED
@@ -29,6 +29,7 @@ window.__ModuleLoader__.load({
29
29
  ".mkt_btnSm{padding:3px 10px;font-size:12px}",
30
30
  ".mkt_error{color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:18px}",
31
31
  ".mkt_notice{border-left:3px solid var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-state-error-primary);padding:7px 10px;font-size:12px;line-height:18px;overflow-wrap:anywhere}",
32
+ ".mkt_noticeInfo{border-left-color:var(--dsw-alias-state-accent-primary);color:inherit}",
32
33
  ".mkt_list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch;min-width:0}",
33
34
  "@media (max-width:820px){.mkt_list{grid-template-columns:minmax(0,1fr)}}",
34
35
  ".mkt_listHead{grid-column:1/-1;font-size:12px;color:var(--dsw-alias-label-tertiary)}",
@@ -395,6 +396,13 @@ window.__ModuleLoader__.load({
395
396
  return h("div", { className: "mkt_notice", role: "alert" }, props.message);
396
397
  }
397
398
 
399
+ // 状态性提示(区别于 ErrorNotice 的 role=alert):「重启已调度」这类
400
+ // 成功路径的进展信息,页面自动重连后随刷新自然消失。
401
+ function StatusNotice(props) {
402
+ if (!props.message) return null;
403
+ return h("div", { className: "mkt_notice mkt_noticeInfo", role: "status" }, props.message);
404
+ }
405
+
398
406
  function RestartDialog(props) {
399
407
  useEffect(function () {
400
408
  function onKeyDown(event) {
@@ -764,6 +772,9 @@ window.__ModuleLoader__.load({
764
772
  var _restarting = useState(false);
765
773
  var restarting = _restarting[0];
766
774
  var setRestarting = _restarting[1];
775
+ var _restartNote = useState(null);
776
+ var restartNote = _restartNote[0];
777
+ var setRestartNote = _restartNote[1];
767
778
  var _restartConfirm = useState(false);
768
779
  var restartConfirm = _restartConfirm[0];
769
780
  var setRestartConfirm = _restartConfirm[1];
@@ -1026,10 +1037,18 @@ window.__ModuleLoader__.load({
1026
1037
  clearRestartPing();
1027
1038
  setRestarting(true);
1028
1039
  setError(null);
1040
+ setRestartNote(null);
1029
1041
  var requestedAt = Date.now();
1030
1042
  var previousHostStartedAt = Number(hostStartedAt);
1031
- call("restart", {}).then(function () {
1043
+ var scheduledLogPath = null;
1044
+ call("restart", {}).then(function (value) {
1032
1045
  if (restartControlRef.current.mounted !== true) return;
1046
+ // 响应语义是「已调度交接」而不是「重启成功」:新宿主何时接管
1047
+ // 由下面的轮询判断。这里只把输出会出现在哪里告诉用户。
1048
+ scheduledLogPath = value && value.logPath ? String(value.logPath) : null;
1049
+ setRestartNote(value && value.mode === "visible"
1050
+ ? "重启已调度——dsh 正在新的控制台窗口中启动,窗口里 Ctrl+C 可停止;输出同时写入 " + scheduledLogPath
1051
+ : "重启已调度,输出与日志:" + (scheduledLogPath || "<home>/guard/ 下"));
1033
1052
  var tries = 0;
1034
1053
  var ping = setInterval(function () {
1035
1054
  if (restartControlRef.current.mounted !== true) {
@@ -1040,7 +1059,8 @@ window.__ModuleLoader__.load({
1040
1059
  if (tries > 40) {
1041
1060
  clearRestartPing();
1042
1061
  setRestarting(false);
1043
- reportError("restart", "2 分钟内未检测到 dsh 重启完成,请手动检查 dsh 状态后刷新页面。");
1062
+ reportError("restart", "2 分钟内未检测到 dsh 重启完成,请手动检查 dsh 状态后刷新页面。"
1063
+ + (scheduledLogPath ? "输出与日志:" + scheduledLogPath : ""));
1044
1064
  return;
1045
1065
  }
1046
1066
  // Prefer identity change over wall-clock ordering: NTP may move the
@@ -1063,6 +1083,7 @@ window.__ModuleLoader__.load({
1063
1083
  if (restartControlRef.current.mounted !== true) return;
1064
1084
  clearRestartPing();
1065
1085
  setRestarting(false);
1086
+ setRestartNote(null);
1066
1087
  reportError("restart", e);
1067
1088
  });
1068
1089
  }, [call, clearRestartPing, hostStartedAt, reportError]);
@@ -1128,6 +1149,7 @@ window.__ModuleLoader__.load({
1128
1149
  "只看已验证插件")
1129
1150
  ),
1130
1151
  h(ErrorNotice, { message: error && (error.scope === "search" || error.scope === "restart") ? error.message : null }),
1152
+ restarting ? h(StatusNotice, { message: restartNote }) : null,
1131
1153
  h(InstalledPanel, {
1132
1154
  installed: installed,
1133
1155
  removing: removing,