siyuan/app/src/window/onWindowsMsg.ts

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;
}
};