mirror of
https://github.com/bitwarden/directory-connector
synced 2026-01-03 00:53:14 +00:00
* [deps]: Update eslint to v9 * resolve lint errors, upgrade eslint, replace unmaintained packages * refresh lockfile --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Brandon <btreston@bitwarden.com> Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com> Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
69 lines
1.7 KiB
TypeScript
69 lines
1.7 KiB
TypeScript
import { ipcMain } from "electron";
|
|
|
|
import { TrayMain } from "@/jslib/electron/src/tray.main";
|
|
import { UpdaterMain } from "@/jslib/electron/src/updater.main";
|
|
import { WindowMain } from "@/jslib/electron/src/window.main";
|
|
|
|
import { MenuMain } from "./menu.main";
|
|
|
|
const SyncCheckInterval = 60 * 1000; // 1 minute
|
|
|
|
export class MessagingMain {
|
|
private syncTimeout: ReturnType<typeof setTimeout>;
|
|
|
|
constructor(
|
|
private windowMain: WindowMain,
|
|
private menuMain: MenuMain,
|
|
private updaterMain: UpdaterMain,
|
|
private trayMain: TrayMain,
|
|
) {}
|
|
|
|
init() {
|
|
ipcMain.on("messagingService", async (event: any, message: any) => this.onMessage(message));
|
|
}
|
|
|
|
onMessage(message: any) {
|
|
switch (message.command) {
|
|
case "checkForUpdate":
|
|
this.updaterMain.checkForUpdate(true);
|
|
break;
|
|
case "scheduleNextDirSync":
|
|
this.scheduleNextSync();
|
|
break;
|
|
case "cancelDirSync":
|
|
this.windowMain.win.webContents.send("messagingService", {
|
|
command: "syncScheduleStopped",
|
|
});
|
|
if (this.syncTimeout) {
|
|
global.clearTimeout(this.syncTimeout);
|
|
}
|
|
break;
|
|
case "hideToTray":
|
|
this.trayMain.hideToTray();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
private scheduleNextSync() {
|
|
this.windowMain.win.webContents.send("messagingService", {
|
|
command: "syncScheduleStarted",
|
|
});
|
|
|
|
if (this.syncTimeout) {
|
|
global.clearTimeout(this.syncTimeout);
|
|
}
|
|
|
|
this.syncTimeout = global.setTimeout(() => {
|
|
if (this.windowMain.win == null) {
|
|
return;
|
|
}
|
|
|
|
this.windowMain.win.webContents.send("messagingService", {
|
|
command: "checkDirSync",
|
|
});
|
|
}, SyncCheckInterval);
|
|
}
|
|
}
|