import { ipcMain } from "electron"; import { socket } from "./tray"; import { hideMainWin, isMaximized, minimizeMainWin, unmaximizeMainWin, maximizeMainWin, middleMainWin, } from "../win/mainWin"; let hasEmittedUid = false; export const initIpcMain = () => { // 获取当前窗口 // callback(BrowserWindow.fromWebContents(e.sender), e, ...par) const handle = (name: string, callback: Function) => { ipcMain.handle(name, (e, ...par) => callback(e, ...par)); }; // 关闭窗口 handle("close", () => hideMainWin()); // 最小化 handle("min", () => minimizeMainWin()); // 最大化 handle("max", () => { let obj = { type: "max", data: "unmax" }; if (isMaximized()) { unmaximizeMainWin(); } else { obj.data = "max"; maximizeMainWin(); } return obj; }); handle("middle", () => middleMainWin()); ipcMain.on("login-uid", (event, uid) => { if (hasEmittedUid) { console.log("Uid already emitted, skipping..."); return; } console.log("Received uid in main process:", uid); if (socket && socket.connected) { socket.emit("login", Number(uid)); hasEmittedUid = true; console.log("Socket login with uid:", uid); } else { console.warn("Socket not connected when trying to send uid"); } }); // 添加重置状态的处理 socket?.on("disconnect", () => { hasEmittedUid = false; // socket断开连接时重置状态 }); };