mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-28 20:38:49 +01:00
62 lines
2.4 KiB
TypeScript
62 lines
2.4 KiB
TypeScript
import {exportLayout, getInstanceById} from "../layout/util";
|
|
import {Tab} from "../layout/Tab";
|
|
import {fetchPost} from "../util/fetch";
|
|
import {redirectToCheckAuth} from "../util/pathName";
|
|
import {isWindow} from "../util/functions";
|
|
|
|
const closeTab = (ipcData: IWebSocketData) => {
|
|
const tab = getInstanceById(ipcData.data);
|
|
if (tab && tab instanceof Tab) {
|
|
tab.parent.removeTab(ipcData.data);
|
|
}
|
|
};
|
|
export const onWindowsMsg = (ipcData: IWebSocketData) => {
|
|
switch (ipcData.cmd) {
|
|
case "closetab":
|
|
closeTab(ipcData);
|
|
break;
|
|
case "resetTabsStyle":
|
|
// data: addRegionStyle, rmDragStyle, rmDragStyleRegionStyle
|
|
if (ipcData.data === "rmDragStyle") {
|
|
document.querySelectorAll(".layout-tab-bars--drag").forEach(item => {
|
|
item.classList.remove("layout-tab-bars--drag");
|
|
});
|
|
document.querySelectorAll(".layout-tab-bar li[data-clone='true']").forEach(tabItem => {
|
|
tabItem.remove();
|
|
});
|
|
} else if (isWindow()) {
|
|
document.querySelectorAll(".layout-tab-bar--readonly .fn__flex-1").forEach((item: HTMLElement) => {
|
|
if (item.getBoundingClientRect().top <= 0) {
|
|
if (ipcData.data === "addRegionStyle") {
|
|
(item.style as CSSStyleDeclarationElectron).WebkitAppRegion = "drag";
|
|
} else if (ipcData.data === "removeRegionStyle") {
|
|
(item.style as CSSStyleDeclarationElectron).WebkitAppRegion = "";
|
|
}
|
|
}
|
|
});
|
|
}
|
|
break;
|
|
case "lockscreen":
|
|
exportLayout({
|
|
errorExit: false,
|
|
cb() {
|
|
fetchPost("/api/system/logoutAuth", {}, () => {
|
|
redirectToCheckAuth();
|
|
});
|
|
}
|
|
});
|
|
break;
|
|
case "lockscreenByMode":
|
|
if (window.siyuan.config.system.lockScreenMode === 1) {
|
|
exportLayout({
|
|
errorExit: false,
|
|
cb() {
|
|
fetchPost("/api/system/logoutAuth", {}, () => {
|
|
redirectToCheckAuth();
|
|
});
|
|
}
|
|
});
|
|
}
|
|
break;
|
|
}
|
|
};
|