From 82c48b916ffade287fb1284814aafcf74e0e1aa9 Mon Sep 17 00:00:00 2001 From: Arvin Xu Date: Sat, 10 May 2025 20:15:41 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20fix=20window=20close=20is?= =?UTF-8?q?sue=20and=20release=20Window/Linux=20beta=20(#7780)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix window close issue * try to fix win loading * try to fix win build * try to fix win build * fix win build issue * fix win build issue --- .github/workflows/desktop-pr-build.yml | 23 ++++++++++++--- .github/workflows/release-desktop-beta.yml | 28 +++++++++++++------ apps/desktop/package.json | 2 +- apps/desktop/src/main/core/BrowserManager.ts | 5 ++++ .../ElectronTitlebar/WinControl/index.tsx | 2 +- 5 files changed, 46 insertions(+), 14 deletions(-) diff --git a/.github/workflows/desktop-pr-build.yml b/.github/workflows/desktop-pr-build.yml index fb6b098cf7..6cca79a914 100644 --- a/.github/workflows/desktop-pr-build.yml +++ b/.github/workflows/desktop-pr-build.yml @@ -93,7 +93,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-latest, windows-latest, ubuntu-latest] + os: [macos-latest, windows-2025, ubuntu-latest] steps: - uses: actions/checkout@v4 with: @@ -143,9 +143,9 @@ jobs: APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} - # 非 macOS 平台构建处理 - - name: Build artifact on other platforms - if: runner.os != 'macOS' + # Windows 平台构建处理 + - name: Build artifact on Windows + if: runner.os == 'Windows' run: npm run desktop:build env: # 设置更新通道,PR构建为nightly,否则为stable @@ -155,7 +155,22 @@ jobs: KEY_VAULTS_SECRET: 'oLXWIiR/AKF+rWaqy9lHkrYgzpATbW3CtJp3UfkVgpE=' NEXT_PUBLIC_DESKTOP_PROJECT_ID: ${{ secrets.UMAMI_NIGHTLY_DESKTOP_PROJECT_ID }} NEXT_PUBLIC_DESKTOP_UMAMI_BASE_URL: ${{ secrets.UMAMI_NIGHTLY_DESKTOP_BASE_URL }} + # 将 TEMP 和 TMP 目录设置到 D 盘 + TEMP: D:\temp + TMP: D:\temp + # Linux 平台构建处理 + - name: Build artifact on Linux + if: runner.os == 'Linux' + run: npm run desktop:build + env: + # 设置更新通道,PR构建为nightly,否则为stable + UPDATE_CHANNEL: 'nightly' + APP_URL: http://localhost:3015 + DATABASE_URL: 'postgresql://postgres@localhost:5432/postgres' + KEY_VAULTS_SECRET: 'oLXWIiR/AKF+rWaqy9lHkrYgzpATbW3CtJp3UfkVgpE=' + NEXT_PUBLIC_DESKTOP_PROJECT_ID: ${{ secrets.UMAMI_NIGHTLY_DESKTOP_PROJECT_ID }} + NEXT_PUBLIC_DESKTOP_UMAMI_BASE_URL: ${{ secrets.UMAMI_NIGHTLY_DESKTOP_BASE_URL }} # 上传构建产物 - name: Upload artifact diff --git a/.github/workflows/release-desktop-beta.yml b/.github/workflows/release-desktop-beta.yml index 1bbfc0d793..51274aeaae 100644 --- a/.github/workflows/release-desktop-beta.yml +++ b/.github/workflows/release-desktop-beta.yml @@ -80,9 +80,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - # 暂时先支持 macOS - os: [macos-latest] - # os: [macos-latest, windows-latest, ubuntu-latest] + os: [macos-latest, windows-2025, ubuntu-latest] steps: - uses: actions/checkout@v4 with: @@ -130,16 +128,30 @@ jobs: NEXT_PUBLIC_DESKTOP_PROJECT_ID: ${{ secrets.UMAMI_BETA_DESKTOP_PROJECT_ID }} NEXT_PUBLIC_DESKTOP_UMAMI_BASE_URL: ${{ secrets.UMAMI_BETA_DESKTOP_BASE_URL }} - # 非 macOS 平台构建处理 - - name: Build artifact on other platforms - if: runner.os != 'macOS' + # Windows 平台构建处理 + - name: Build artifact on Windows + if: runner.os == 'Windows' run: npm run desktop:build env: APP_URL: http://localhost:3015 DATABASE_URL: 'postgresql://postgres@localhost:5432/postgres' KEY_VAULTS_SECRET: 'oLXWIiR/AKF+rWaqy9lHkrYgzpATbW3CtJp3UfkVgpE=' - NEXT_PUBLIC_DESKTOP_PROJECT_ID: ${{ secrets.UMAMI_BETA_DESKTOP_PROJECT_ID }} - NEXT_PUBLIC_DESKTOP_UMAMI_BASE_URL: ${{ secrets.UMAMI_BETA_DESKTOP_BASE_URL }} + NEXT_PUBLIC_DESKTOP_PROJECT_ID: ${{ secrets.UMAMI_NIGHTLY_DESKTOP_PROJECT_ID }} + NEXT_PUBLIC_DESKTOP_UMAMI_BASE_URL: ${{ secrets.UMAMI_NIGHTLY_DESKTOP_BASE_URL }} + # 将 TEMP 和 TMP 目录设置到 D 盘 + TEMP: D:\temp + TMP: D:\temp + + # Linux 平台构建处理 + - name: Build artifact on Linux + if: runner.os == 'Linux' + run: npm run desktop:build + env: + APP_URL: http://localhost:3015 + DATABASE_URL: 'postgresql://postgres@localhost:5432/postgres' + KEY_VAULTS_SECRET: 'oLXWIiR/AKF+rWaqy9lHkrYgzpATbW3CtJp3UfkVgpE=' + NEXT_PUBLIC_DESKTOP_PROJECT_ID: ${{ secrets.UMAMI_NIGHTLY_DESKTOP_PROJECT_ID }} + NEXT_PUBLIC_DESKTOP_UMAMI_BASE_URL: ${{ secrets.UMAMI_NIGHTLY_DESKTOP_BASE_URL }} # 上传构建产物,移除了 zip 相关部分 - name: Upload artifact diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 21fc2abc87..b66fe9a91c 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -47,7 +47,7 @@ "@types/set-cookie-parser": "^2.4.10", "consola": "^3.1.0", "cookie": "^1.0.2", - "electron": "^35.2.0", + "electron": "^36.2.0", "electron-builder": "^26.0.12", "electron-is": "^3.0.0", "electron-log": "^5.3.3", diff --git a/apps/desktop/src/main/core/BrowserManager.ts b/apps/desktop/src/main/core/BrowserManager.ts index fcb9f043a3..5a1dbffbc8 100644 --- a/apps/desktop/src/main/core/BrowserManager.ts +++ b/apps/desktop/src/main/core/BrowserManager.ts @@ -161,6 +161,11 @@ export default class BrowserManager { if (browser.webContents) this.webContentsMap.delete(browser.webContents); }); + browser.browserWindow.on('show', () => { + if (browser.webContents) + this.webContentsMap.set(browser.webContents, browser.identifier as AppBrowsersIdentifiers); + }); + return browser; } diff --git a/src/features/ElectronTitlebar/WinControl/index.tsx b/src/features/ElectronTitlebar/WinControl/index.tsx index c6de20f06c..168b3aeb32 100644 --- a/src/features/ElectronTitlebar/WinControl/index.tsx +++ b/src/features/ElectronTitlebar/WinControl/index.tsx @@ -12,7 +12,7 @@ const useStyles = createStyles(({ css, cx, token }) => { align-items: center; justify-content: center; - width: 64px; + width: 40px; min-height: ${TITLE_BAR_HEIGHT}px; color: ${token.colorTextSecondary};