mirror of
https://github.com/HugoAura/Seewo-HugoAura.git
synced 2026-06-20 23:14:28 +08:00
[✨ Feat] {#21} Add AppBar window oper icons
1. [+] {#21} 增加了应用栏 (顶栏) 上的窗口操作按钮
2. [-] 删掉了几个调试时留下的 console.debug
This commit is contained in:
@@ -76,6 +76,7 @@ const buildIpcMain = (electron) => {
|
||||
}
|
||||
};
|
||||
|
||||
const { applyBaseIpcHandler } = require("./ipcModules/baseIpcHandler");
|
||||
const { applyConfigIpcHandler } = require("./ipcModules/configIpcHandler");
|
||||
const { applyFsIpcHandler } = require("./ipcModules/fsIpcHandler");
|
||||
const { applyPlsIpcHandler } = require("./ipcModules/plsIpcHandler");
|
||||
@@ -85,6 +86,7 @@ const buildIpcMain = (electron) => {
|
||||
app.exit(0);
|
||||
});
|
||||
|
||||
applyBaseIpcHandler(ipcMain);
|
||||
applyConfigIpcHandler(ipcMain);
|
||||
applyFsIpcHandler(ipcMain);
|
||||
applyPlsIpcHandler(ipcMain);
|
||||
|
||||
59
src/aura/init/main/ipcModules/baseIpcHandler.js
Normal file
59
src/aura/init/main/ipcModules/baseIpcHandler.js
Normal file
@@ -0,0 +1,59 @@
|
||||
// @ts-check
|
||||
|
||||
const { BrowserWindow } = require("electron");
|
||||
|
||||
const composables = {
|
||||
getBrowserWindowInstance: (windowKey) => {
|
||||
if (!global.__HUGO_AURA__.hookedWindows) return null;
|
||||
const hookedWindowIns = global.__HUGO_AURA__.hookedWindows.get(windowKey);
|
||||
if (!hookedWindowIns) return undefined;
|
||||
const browserWindowIns = BrowserWindow.fromWebContents(
|
||||
hookedWindowIns.webContents
|
||||
);
|
||||
return browserWindowIns;
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {import("electron").IpcMain} ipcMain
|
||||
*/
|
||||
const applyBaseIpcHandler = (ipcMain) => {
|
||||
const methodBase = "$aura.base";
|
||||
|
||||
ipcMain.on(
|
||||
`${methodBase}.minimizeWindow`,
|
||||
/**
|
||||
*
|
||||
* @param {import("electron").IpcMainEvent} _event
|
||||
* @param {{ targetWindowKey: string }} arg
|
||||
*/
|
||||
(_event, arg) => {
|
||||
const browserWindowIns = composables.getBrowserWindowInstance(
|
||||
arg.targetWindowKey
|
||||
);
|
||||
if (!browserWindowIns) return;
|
||||
|
||||
browserWindowIns.minimize();
|
||||
}
|
||||
);
|
||||
|
||||
ipcMain.on(
|
||||
`${methodBase}.closeWindow`,
|
||||
/**
|
||||
*
|
||||
* @param {import("electron").IpcMainEvent} _event
|
||||
* @param {{ targetWindowKey: string }} arg
|
||||
*/
|
||||
(_event, arg) => {
|
||||
const browserWindowIns = composables.getBrowserWindowInstance(
|
||||
arg.targetWindowKey
|
||||
);
|
||||
if (!browserWindowIns) return;
|
||||
|
||||
browserWindowIns.close();
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
module.exports = { applyBaseIpcHandler };
|
||||
@@ -7,11 +7,48 @@
|
||||
<div class="aura-config-page-app-bar" style="-webkit-app-region: drag">
|
||||
<div
|
||||
onclick="global.__HUGO_AURA_UI_FUNCTIONS__.config.handleNavBack()"
|
||||
style="-webkit-app-region: no-drag; z-index: 2000"
|
||||
style="-webkit-app-region: no-drag; z-index: 2000; margin-right: 0.1rem"
|
||||
>
|
||||
<i class="iconfont"></i>
|
||||
<!-- Chevron Left Icon -->
|
||||
</div>
|
||||
<p>雨光之环</p>
|
||||
<div class="aura-config-page-app-bar-hr-vertical"></div>
|
||||
<div
|
||||
onclick="global.__HUGO_AURA_UI_FUNCTIONS__.config.handleNavHome()"
|
||||
style="-webkit-app-region: no-drag; z-index: 2000; margin-left: 6px"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="21"
|
||||
height="21"
|
||||
viewBox="0 0 24 24"
|
||||
class="iconfont"
|
||||
style="margin-top: -1.5px"
|
||||
>
|
||||
<path
|
||||
fill="currentColor"
|
||||
d="M6 19h3.692v-5.884h4.616V19H18v-9l-6-4.538L6 10zm-1 1V9.5l7-5.288L19 9.5V20h-5.692v-5.884h-2.616V20zm7-7.77"
|
||||
stroke-width="0.5"
|
||||
stroke="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="aura-config-page-app-bar-spacer"></div>
|
||||
<div
|
||||
onclick="global.__HUGO_AURA_UI_FUNCTIONS__.config.minimizeWindow()"
|
||||
style="-webkit-app-region: no-drag; z-index: 2000"
|
||||
>
|
||||
<i class="iconfont"></i>
|
||||
<!-- Minimize Icon -->
|
||||
</div>
|
||||
<div
|
||||
onclick="global.__HUGO_AURA_UI_FUNCTIONS__.config.closeWindow()"
|
||||
style="-webkit-app-region: no-drag; z-index: 2000; margin-left: 0.5rem"
|
||||
>
|
||||
<i class="iconfont"></i>
|
||||
<!-- Failed / Cancel Icon -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -6,6 +6,22 @@ global.__HUGO_AURA_UI_REACTIVES__.config = {
|
||||
};
|
||||
|
||||
global.__HUGO_AURA_UI_FUNCTIONS__.config = {
|
||||
closeWindow: async () => {
|
||||
if (global.__HUGO_AURA_UI_REACTIVES__.config.isConfigPendingWrite) {
|
||||
await global.__HUGO_AURA_UI_FUNCTIONS__.config.handleSaveConfig();
|
||||
}
|
||||
|
||||
global.ipcRenderer.send("$aura.base.closeWindow", {
|
||||
targetWindowKey: "assistant",
|
||||
});
|
||||
},
|
||||
|
||||
minimizeWindow: () => {
|
||||
global.ipcRenderer.send("$aura.base.minimizeWindow", {
|
||||
targetWindowKey: "assistant",
|
||||
});
|
||||
},
|
||||
|
||||
handleNavBack: () => {
|
||||
if (global.__HUGO_AURA_UI_REACTIVES__.config.isInSubPage) {
|
||||
const acsDialogAreaEl = document.getElementsByClassName(
|
||||
@@ -30,6 +46,19 @@ global.__HUGO_AURA_UI_FUNCTIONS__.config = {
|
||||
}
|
||||
},
|
||||
|
||||
handleNavHome: async () => {
|
||||
if (global.__HUGO_AURA_UI_REACTIVES__.config.isConfigPendingWrite) {
|
||||
global.__HUGO_AURA_UI_FUNCTIONS__.config.handleSaveConfig();
|
||||
}
|
||||
|
||||
global.__HUGO_AURA_UI_FUNCTIONS__.config.hideConfigPage();
|
||||
|
||||
setTimeout(() => {
|
||||
const onLeaveEvent = new CustomEvent("onCurConfigPageLeave");
|
||||
document.dispatchEvent(onLeaveEvent);
|
||||
}, 500);
|
||||
},
|
||||
|
||||
hideConfigPage: async () => {
|
||||
const defaultHeader = document.getElementsByClassName(
|
||||
"index__header__16DmR2a5"
|
||||
|
||||
@@ -19,6 +19,11 @@
|
||||
color: rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
|
||||
.aura-config-page-header-area.color-reverse
|
||||
.aura-config-page-app-bar-hr-vertical {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.aura-config-page-header-area .iconfont {
|
||||
font-size: 24px;
|
||||
}
|
||||
@@ -33,7 +38,7 @@
|
||||
}
|
||||
|
||||
.aura-config-page-header-area p {
|
||||
margin-top: -1px;
|
||||
margin-top: -2px;
|
||||
}
|
||||
|
||||
.aura-config-page-header-area.header-collapsed {
|
||||
@@ -48,3 +53,16 @@
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.aura-config-page-app-bar-spacer {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.aura-config-page-app-bar-hr-vertical {
|
||||
position: relative;
|
||||
margin-left: 8px;
|
||||
width: 1px;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
height: 12px;
|
||||
transition: background 0.5s;
|
||||
}
|
||||
|
||||
@@ -96,12 +96,9 @@ const functions = {
|
||||
|
||||
const handleExit = async () => {
|
||||
const result = await awaitCompletePromise;
|
||||
console.debug(result);
|
||||
if (result) {
|
||||
console.debug("ret true");
|
||||
return { valid: true };
|
||||
} else {
|
||||
console.debug("ret false");
|
||||
const inputEl = document.getElementById("auraSettingsPasswd");
|
||||
// @ts-expect-error
|
||||
inputEl.value = "";
|
||||
|
||||
Reference in New Issue
Block a user