Skip to content

Commit 774d999

Browse files
committed
[🛠 Fix] Fix issue #29 & #30
1. [/] 改进 PLS 状态同步逻辑 2. [/] 使用 classList 改变元素样式状态, 而非直接赋值 className, 从而避免 #29
1 parent ae2e2ff commit 774d999

4 files changed

Lines changed: 77 additions & 12 deletions

File tree

src/aura/init/main/ipcModules/plsIpcHandler.js

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ const applyPlsIpcHandler = (ipcMain) => {
227227
launched: false,
228228
detached: isPlsDetached,
229229
connected: false,
230-
version: "未知",
230+
version: "unknown",
231231
status: "dead",
232232
authToken: global.__HUGO_AURA_CONFIG__.plsToken,
233233
};
@@ -490,12 +490,42 @@ const applyPlsIpcHandler = (ipcMain) => {
490490
PLS_BIN_PATH,
491491
"--startup auto install"
492492
);
493-
case "rmSvc":
494-
return await functions.execCommand(logHeader, PLS_BIN_PATH, "remove");
493+
case "rmSvc": {
494+
const result = await functions.execCommand(
495+
logHeader,
496+
PLS_BIN_PATH,
497+
"remove"
498+
);
499+
return result;
500+
}
495501
case "startSvc":
496502
return await functions.execCommand(logHeader, PLS_BIN_PATH, "start");
497-
case "stopSvc":
498-
return await functions.execCommand(logHeader, PLS_BIN_PATH, "stop");
503+
case "stopSvc": {
504+
const result = await functions.execCommand(
505+
logHeader,
506+
PLS_BIN_PATH,
507+
"stop"
508+
);
509+
if (result.success && global.__HUGO_AURA__.plsStats) {
510+
global.__HUGO_AURA__.plsStats.connected = false;
511+
global.__HUGO_AURA__.plsStats.launched = false;
512+
global.__HUGO_AURA__.plsStats.version = "unknown";
513+
global.__HUGO_AURA__.plsStats.status = "dead";
514+
515+
ipcMain.send(
516+
"assistant",
517+
`${methodBase}.post.onPlsStatsUpdate`,
518+
global.__HUGO_AURA__.plsStats
519+
);
520+
521+
ipcMain.send(
522+
"auraWsKeepAlive",
523+
`${methodBase}.post.plsStopped`,
524+
{}
525+
);
526+
}
527+
return result;
528+
}
499529
case "rmBin":
500530
const unlinkPromise = new Promise((resolve) => {
501531
fs.unlink(PLS_BIN_PATH, (error) => {
@@ -521,6 +551,19 @@ const applyPlsIpcHandler = (ipcMain) => {
521551

522552
const unlinkRet = await unlinkPromise;
523553

554+
if (unlinkRet.success && global.__HUGO_AURA__.plsStats) {
555+
global.__HUGO_AURA__.plsStats.connected = false;
556+
global.__HUGO_AURA__.plsStats.launched = false;
557+
global.__HUGO_AURA__.plsStats.installed = false;
558+
global.__HUGO_AURA__.plsStats.version = "unknown";
559+
560+
ipcMain.send(
561+
"assistant",
562+
`${methodBase}.post.onPlsStatsUpdate`,
563+
global.__HUGO_AURA__.plsStats
564+
);
565+
}
566+
524567
return unlinkRet;
525568
default:
526569
return { success: false, errorObj: new Error("Method not found") };

src/aura/ui/js/plsConnectionManager.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
connected: false,
1515
launched: false,
1616
status: "dead",
17-
version: "未知",
17+
version: "unknown",
1818
authToken: "",
1919
};
2020

@@ -157,6 +157,13 @@
157157
sendRetryStatusToMain(false);
158158
return;
159159
}
160+
161+
if (global.__HUGO_AURA__.plsStats.launched === false) {
162+
console.warn(
163+
"[HugoAura / UI / PLS Manager / WARN] PLS stopped, closing WebSocket connection."
164+
);
165+
return;
166+
}
160167
}
161168

162169
console.error(
@@ -274,7 +281,7 @@
274281
launched: false,
275282
detached: false,
276283
connected: false,
277-
version: "未知",
284+
version: "unknown",
278285
status: "dead",
279286
authToken: "66ccff0d000721114514191981023333",
280287
};
@@ -332,6 +339,16 @@
332339
initPlsConnection();
333340
}
334341
);
342+
343+
global.ipcRenderer.on(
344+
`${IPC_METHOD_BASE}.post.plsStopped`,
345+
(_evt, _arg) => {
346+
if (!global.__HUGO_AURA__.plsStats) return;
347+
global.__HUGO_AURA__.plsStats.launched = false;
348+
global.__HUGO_AURA__.plsStats.connected = false;
349+
global.__HUGO_AURA__.plsStats.version = "unknown";
350+
}
351+
);
335352
};
336353

337354
setTimeout(() => {

src/aura/ui/pages/config/config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,8 @@ global.__HUGO_AURA_UI_FUNCTIONS__.config = {
359359
let timeout = 0;
360360
Array.from(operationElArr).forEach((el) => {
361361
setTimeout(() => {
362-
el.className = "operation-el-show aura-config-page-operation-el";
362+
el.classList.remove("operation-el-hidden");
363+
el.classList.add("operation-el-show");
363364
}, timeout);
364365
timeout += 150;
365366
});

src/aura/ui/pages/configSubPages/behaviourCtrl/plsStatus.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,10 @@ if (!global.__HUGO_AURA_UI_REACTIVES__.subConfig)
331331
);
332332
if (ret.success) {
333333
lifecycleStatus.svcRunning = false;
334+
global.__HUGO_AURA__.plsStats.launched = false;
335+
global.__HUGO_AURA__.plsStats.version = "unknown";
336+
global.__HUGO_AURA__.plsStats.status = "dead";
337+
334338
global.__HUGO_AURA_UI_FUNCTIONS__.subConfig.plsStatus.updateToast(
335339
"success",
336340
"PLS 已停止",
@@ -442,11 +446,11 @@ if (!global.__HUGO_AURA_UI_REACTIVES__.subConfig)
442446
break;
443447
}
444448

445-
if (curPlsStats.version && curPlsStats.version !== "未知") {
446-
const versionTextEl = document.getElementById(
447-
"acs-bc-psp-version-text"
448-
);
449+
const versionTextEl = document.getElementById("acs-bc-psp-version-text");
450+
if (curPlsStats.version && curPlsStats.version !== "unknown") {
449451
versionTextEl.textContent = "v" + curPlsStats.version;
452+
} else {
453+
versionTextEl.textContent = "不可用"
450454
}
451455
},
452456

0 commit comments

Comments
 (0)