From e4ae9e1c08755ce7036cd20409c76812938ac9f0 Mon Sep 17 00:00:00 2001 From: Kifungo A <45813955+adkif@users.noreply.github.com> Date: Sun, 29 Sep 2024 18:23:08 +0200 Subject: [PATCH] feat: use windows manager and add new submenu to the unauth menu --- packages/desktop-libs/src/lib/desktop-ipc.ts | 20 ++++++------- packages/desktop-libs/src/lib/desktop-tray.ts | 30 ++++++++++++------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/packages/desktop-libs/src/lib/desktop-ipc.ts b/packages/desktop-libs/src/lib/desktop-ipc.ts index 6411fa928c3..82556a69d1a 100644 --- a/packages/desktop-libs/src/lib/desktop-ipc.ts +++ b/packages/desktop-libs/src/lib/desktop-ipc.ts @@ -1,5 +1,5 @@ import { IActivityWatchEventResult } from '@gauzy/contracts'; -import { ScreenCaptureNotification, WindowManager, loginPage } from '@gauzy/desktop-window'; +import { RegisteredWindow, ScreenCaptureNotification, WindowManager, loginPage } from '@gauzy/desktop-window'; import { BrowserWindow, app, desktopCapturer, ipcMain, screen, systemPreferences } from 'electron'; import log from 'electron-log'; import { resetPermissions } from 'mac-screen-capture-permissions'; @@ -421,18 +421,18 @@ export function ipcTimer( offlineMode.on('offline', async () => { log.info('Offline mode triggered...'); - const windows = [alwaysOn.browserWindow, timeTrackerWindow]; + const windows = [alwaysOn, timeTrackerWindow]; for (const window of windows) { - window.webContents.send('offline-handler', true); + windowManager.webContents(window).send('offline-handler', true); } }); offlineMode.on('connection-restored', async () => { log.info('Api connected...'); try { - const windows = [alwaysOn.browserWindow, timeTrackerWindow]; + const windows = [alwaysOn, timeTrackerWindow]; for (const window of windows) { - window.webContents.send('offline-handler', false); + windowManager.webContents(window).send('offline-handler', false); } await sequentialSyncQueue(timeTrackerWindow); } catch (error) { @@ -1086,23 +1086,23 @@ export function ipcTimer( const setting = LocalStore.getStore('appSetting'); const auth = LocalStore.getStore('auth'); if (setting?.alwaysOn && auth?.employeeId) { - alwaysOn.show(); + windowManager.show(RegisteredWindow.WIDGET); } }); ipcMain.on('hide_ao', (event, arg) => { - alwaysOn.hide(); + windowManager.hide(RegisteredWindow.WIDGET); }); ipcMain.on('change_state_from_ao', async (event, arg) => { - const windows = [alwaysOn.browserWindow, timeTrackerWindow]; + const windows = [alwaysOn, timeTrackerWindow]; for (const window of windows) { - window.webContents.send('change_state_from_ao', arg); + windowManager.webContents(window).send('change_state_from_ao', arg); } }); ipcMain.on('ao_time_update', (event, arg) => { - alwaysOn.browserWindow.webContents.send('ao_time_update', arg); + windowManager.webContents(alwaysOn).send('ao_time_update', arg); }); ipcMain.handle('MARK_AS_STOPPED_OFFLINE', async () => { diff --git a/packages/desktop-libs/src/lib/desktop-tray.ts b/packages/desktop-libs/src/lib/desktop-tray.ts index ddac35cf35c..3114a1bea2c 100644 --- a/packages/desktop-libs/src/lib/desktop-tray.ts +++ b/packages/desktop-libs/src/lib/desktop-tray.ts @@ -46,7 +46,7 @@ export class TrayIcon { if (!settingsWindow) { settingsWindow = await createSettingsWindow(settingsWindow, windowPath.timeTrackerUi); } - settingsWindow.show(); + manager.show(RegisteredWindow.SETTINGS); manager.webContents(settingsWindow).send('app_setting', LocalStore.getApplicationConfig()); manager.webContents(settingsWindow).send('goto_top_menu'); manager.webContents(settingsWindow).send('refresh_menu'); @@ -60,7 +60,7 @@ export class TrayIcon { if (!settingsWindow) { settingsWindow = await createSettingsWindow(settingsWindow, windowPath.timeTrackerUi); } - settingsWindow.show(); + manager.show(RegisteredWindow.SETTINGS); manager.webContents(settingsWindow).send('goto_update'); manager.webContents(settingsWindow).send('app_setting', LocalStore.getApplicationConfig()); manager.webContents(settingsWindow).send('refresh_menu'); @@ -79,6 +79,16 @@ export class TrayIcon { } ]; const unAuthMenu: MenuItemConstructorOptions[] = [ + { + id: '3', + label: TranslateService.instant('TIMER_TRACKER.MENU.OPEN_TIMER'), + enabled: true, + accelerator: 'CmdOrCtrl+O', + visible: appConfig.timeTrackerWindow, + async click(menuItem) { + manager.show(RegisteredWindow.TIMER); + } + }, { id: '4', label: TranslateService.instant('TIMER_TRACKER.SETUP.SETTING'), @@ -87,7 +97,7 @@ export class TrayIcon { if (!settingsWindow) { settingsWindow = await createSettingsWindow(settingsWindow, windowPath.timeTrackerUi); } - settingsWindow.show(); + manager.show(RegisteredWindow.SETTINGS); manager.webContents(settingsWindow).send('app_setting', LocalStore.getApplicationConfig()); manager.webContents(settingsWindow).send('goto_top_menu'); manager.webContents(settingsWindow).send('refresh_menu'); @@ -101,7 +111,7 @@ export class TrayIcon { if (!settingsWindow) { settingsWindow = await createSettingsWindow(settingsWindow, windowPath.timeTrackerUi); } - settingsWindow.show(); + manager.show(RegisteredWindow.SETTINGS); manager.webContents(settingsWindow).send('goto_update'); manager.webContents(settingsWindow).send('app_setting', LocalStore.getApplicationConfig()); manager.webContents(settingsWindow).send('refresh_menu'); @@ -143,7 +153,7 @@ export class TrayIcon { .webContents(timeTrackerWindow) .send('start_from_tray', LocalStore.beforeRequestParams()); } else { - timeTrackerWindow.show(); + manager.show(RegisteredWindow.TIMER); manager.webContents(timeTrackerWindow).send('auth_success_tray_init'); } } @@ -165,7 +175,7 @@ export class TrayIcon { accelerator: 'CmdOrCtrl+O', visible: appConfig.timeTrackerWindow, async click(menuItem) { - timeTrackerWindow.show(); + manager.show(RegisteredWindow.TIMER); manager.webContents(timeTrackerWindow).send('auth_success_tray_init'); } }, @@ -181,7 +191,7 @@ export class TrayIcon { if (!settingsWindow) { settingsWindow = await createSettingsWindow(settingsWindow, windowPath.timeTrackerUi); } - settingsWindow.show(); + manager.show(RegisteredWindow.SETTINGS); manager.webContents(settingsWindow).send('goto_update'); manager.webContents(settingsWindow).send('app_setting', LocalStore.getApplicationConfig()); manager.webContents(settingsWindow).send('refresh_menu'); @@ -195,7 +205,7 @@ export class TrayIcon { if (!settingsWindow) { settingsWindow = await createSettingsWindow(settingsWindow, windowPath.timeTrackerUi); } - settingsWindow.show(); + manager.show(RegisteredWindow.SETTINGS); manager.webContents(settingsWindow).send('app_setting', LocalStore.getApplicationConfig()); manager.webContents(settingsWindow).send('goto_top_menu'); manager.webContents(settingsWindow).send('refresh_menu'); @@ -252,7 +262,7 @@ export class TrayIcon { const openWindow = async () => { if (process.env.IS_DESKTOP_TIMER) { - timeTrackerWindow.show(); + manager.show(RegisteredWindow.TIMER); manager.webContents(timeTrackerWindow).send('auth_success_tray_init'); } }; @@ -364,7 +374,7 @@ export class TrayIcon { manager.webContents(timeTrackerWindow).send('auth_success_tray_init', arg); if (!isGauzyWindow) { - timeTrackerWindow.show(); + manager.show(RegisteredWindow.TIMER); } } event.sender.send('refresh_menu');