[🛠 Fix] Fix issue #29 & #30

1. [/] 改进 PLS 状态同步逻辑
2. [/] 使用 classList 改变元素样式状态, 而非直接赋值 className, 从而避免 #29
This commit is contained in:
Minoricew
2025-06-21 19:20:01 +08:00
parent ae2e2ff62d
commit 774d999752
4 changed files with 77 additions and 12 deletions

View File

@@ -227,7 +227,7 @@ const applyPlsIpcHandler = (ipcMain) => {
launched: false,
detached: isPlsDetached,
connected: false,
version: "未知",
version: "unknown",
status: "dead",
authToken: global.__HUGO_AURA_CONFIG__.plsToken,
};
@@ -490,12 +490,42 @@ const applyPlsIpcHandler = (ipcMain) => {
PLS_BIN_PATH,
"--startup auto install"
);
case "rmSvc":
return await functions.execCommand(logHeader, PLS_BIN_PATH, "remove");
case "rmSvc": {
const result = await functions.execCommand(
logHeader,
PLS_BIN_PATH,
"remove"
);
return result;
}
case "startSvc":
return await functions.execCommand(logHeader, PLS_BIN_PATH, "start");
case "stopSvc":
return await functions.execCommand(logHeader, PLS_BIN_PATH, "stop");
case "stopSvc": {
const result = await functions.execCommand(
logHeader,
PLS_BIN_PATH,
"stop"
);
if (result.success && global.__HUGO_AURA__.plsStats) {
global.__HUGO_AURA__.plsStats.connected = false;
global.__HUGO_AURA__.plsStats.launched = false;
global.__HUGO_AURA__.plsStats.version = "unknown";
global.__HUGO_AURA__.plsStats.status = "dead";
ipcMain.send(
"assistant",
`${methodBase}.post.onPlsStatsUpdate`,
global.__HUGO_AURA__.plsStats
);
ipcMain.send(
"auraWsKeepAlive",
`${methodBase}.post.plsStopped`,
{}
);
}
return result;
}
case "rmBin":
const unlinkPromise = new Promise((resolve) => {
fs.unlink(PLS_BIN_PATH, (error) => {
@@ -521,6 +551,19 @@ const applyPlsIpcHandler = (ipcMain) => {
const unlinkRet = await unlinkPromise;
if (unlinkRet.success && global.__HUGO_AURA__.plsStats) {
global.__HUGO_AURA__.plsStats.connected = false;
global.__HUGO_AURA__.plsStats.launched = false;
global.__HUGO_AURA__.plsStats.installed = false;
global.__HUGO_AURA__.plsStats.version = "unknown";
ipcMain.send(
"assistant",
`${methodBase}.post.onPlsStatsUpdate`,
global.__HUGO_AURA__.plsStats
);
}
return unlinkRet;
default:
return { success: false, errorObj: new Error("Method not found") };

View File

@@ -14,7 +14,7 @@
connected: false,
launched: false,
status: "dead",
version: "未知",
version: "unknown",
authToken: "",
};
@@ -157,6 +157,13 @@
sendRetryStatusToMain(false);
return;
}
if (global.__HUGO_AURA__.plsStats.launched === false) {
console.warn(
"[HugoAura / UI / PLS Manager / WARN] PLS stopped, closing WebSocket connection."
);
return;
}
}
console.error(
@@ -274,7 +281,7 @@
launched: false,
detached: false,
connected: false,
version: "未知",
version: "unknown",
status: "dead",
authToken: "66ccff0d000721114514191981023333",
};
@@ -332,6 +339,16 @@
initPlsConnection();
}
);
global.ipcRenderer.on(
`${IPC_METHOD_BASE}.post.plsStopped`,
(_evt, _arg) => {
if (!global.__HUGO_AURA__.plsStats) return;
global.__HUGO_AURA__.plsStats.launched = false;
global.__HUGO_AURA__.plsStats.connected = false;
global.__HUGO_AURA__.plsStats.version = "unknown";
}
);
};
setTimeout(() => {

View File

@@ -359,7 +359,8 @@ global.__HUGO_AURA_UI_FUNCTIONS__.config = {
let timeout = 0;
Array.from(operationElArr).forEach((el) => {
setTimeout(() => {
el.className = "operation-el-show aura-config-page-operation-el";
el.classList.remove("operation-el-hidden");
el.classList.add("operation-el-show");
}, timeout);
timeout += 150;
});

View File

@@ -331,6 +331,10 @@ if (!global.__HUGO_AURA_UI_REACTIVES__.subConfig)
);
if (ret.success) {
lifecycleStatus.svcRunning = false;
global.__HUGO_AURA__.plsStats.launched = false;
global.__HUGO_AURA__.plsStats.version = "unknown";
global.__HUGO_AURA__.plsStats.status = "dead";
global.__HUGO_AURA_UI_FUNCTIONS__.subConfig.plsStatus.updateToast(
"success",
"PLS 已停止",
@@ -442,11 +446,11 @@ if (!global.__HUGO_AURA_UI_REACTIVES__.subConfig)
break;
}
if (curPlsStats.version && curPlsStats.version !== "未知") {
const versionTextEl = document.getElementById(
"acs-bc-psp-version-text"
);
const versionTextEl = document.getElementById("acs-bc-psp-version-text");
if (curPlsStats.version && curPlsStats.version !== "unknown") {
versionTextEl.textContent = "v" + curPlsStats.version;
} else {
versionTextEl.textContent = "不可用"
}
},