diff --git a/packages/frontend/core/src/utils/popup.ts b/packages/frontend/core/src/utils/popup.ts index 528d629e332b..b1c46cef56cb 100644 --- a/packages/frontend/core/src/utils/popup.ts +++ b/packages/frontend/core/src/utils/popup.ts @@ -1,3 +1,8 @@ +import { DebugLogger } from '@affine/debug'; +import { apis } from '@affine/electron-api'; + +const logger = new DebugLogger('popup'); + export function popupWindow(target: string) { target = /^https?:\/\//.test(target) ? target @@ -14,5 +19,11 @@ export function popupWindow(target: string) { url = builder.toString(); } - return window.open(url, '_blank', `noreferrer noopener`); + if (BUILD_CONFIG.isElectron) { + apis?.ui.openExternal(url).catch(e => { + logger.error('Failed to open external URL', e); + }); + } else { + window.open(url, '_blank', `noreferrer noopener`); + } }