From 8bea31698ed8f28396f448b5ee53fd03ebdaca4a Mon Sep 17 00:00:00 2001 From: pengx17 Date: Mon, 31 Mar 2025 07:23:01 +0000 Subject: [PATCH] fix(electron): tray menu icon adapt to dark theme (#11288) fix AF-2431 --- .../apps/electron-renderer/src/popup/recording/index.tsx | 1 + .../frontend/apps/electron/src/main/recording/feature.ts | 8 ++------ packages/frontend/apps/electron/src/main/tray/index.ts | 4 ++++ .../frontend/core/src/modules/feature-flag/constant.ts | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/frontend/apps/electron-renderer/src/popup/recording/index.tsx b/packages/frontend/apps/electron-renderer/src/popup/recording/index.tsx index c04b18b3d..d59323267 100644 --- a/packages/frontend/apps/electron-renderer/src/popup/recording/index.tsx +++ b/packages/frontend/apps/electron-renderer/src/popup/recording/index.tsx @@ -94,6 +94,7 @@ export function Recording() { let id: number | undefined; try { const result = await apis?.recording?.getCurrentRecording(); + if (!result) { return; } diff --git a/packages/frontend/apps/electron/src/main/recording/feature.ts b/packages/frontend/apps/electron/src/main/recording/feature.ts index 6f53c9f65..810c502c1 100644 --- a/packages/frontend/apps/electron/src/main/recording/feature.ts +++ b/packages/frontend/apps/electron/src/main/recording/feature.ts @@ -471,11 +471,11 @@ export function setupRecordingFeature() { shareableContent = new ShareableContent(); setupMediaListeners(); } + // reset all states + recordingStatus$.next(null); setupAppGroups(); setupNewRunningAppGroup(); setupRecordingListeners(); - // reset all states - recordingStatus$.next(null); return true; } catch (error) { logger.error('failed to setup recording feature', error); @@ -499,10 +499,6 @@ function normalizeAppGroupInfo( export function newRecording( appGroup?: AppGroupInfo | number ): RecordingStatus | null { - if (!shareableContent) { - return null; // likely called on unsupported platform - } - return recordingStateMachine.dispatch({ type: 'NEW_RECORDING', appGroup: normalizeAppGroupInfo(appGroup), diff --git a/packages/frontend/apps/electron/src/main/tray/index.ts b/packages/frontend/apps/electron/src/main/tray/index.ts index 8ec1acc09..8160d4c89 100644 --- a/packages/frontend/apps/electron/src/main/tray/index.ts +++ b/packages/frontend/apps/electron/src/main/tray/index.ts @@ -64,6 +64,10 @@ function buildMenuConfig(config: TrayMenuConfig): MenuItemConstructorOptions[] { } if (nativeIcon) { nativeIcon = nativeIcon.resize({ width: 20, height: 20 }); + // string icon should be template image + if (typeof icon === 'string') { + nativeIcon.setTemplateImage(true); + } } const submenuConfig = submenu ? buildMenuConfig(submenu) : undefined; menuConfig.push({ diff --git a/packages/frontend/core/src/modules/feature-flag/constant.ts b/packages/frontend/core/src/modules/feature-flag/constant.ts index d6a787e9b..46168fd17 100644 --- a/packages/frontend/core/src/modules/feature-flag/constant.ts +++ b/packages/frontend/core/src/modules/feature-flag/constant.ts @@ -280,7 +280,7 @@ export const AFFINE_FLAGS = { 'com.affine.settings.workspace.experimental-features.enable-meetings.name', description: 'com.affine.settings.workspace.experimental-features.enable-meetings.description', - configurable: !isMobile && environment.isMacOs, + configurable: !isMobile && environment.isMacOs && BUILD_CONFIG.isElectron, defaultState: false, }, } satisfies { [key in string]: FlagInfo };