From be2944da944e8d3f744cb6ed849b43688606de0c Mon Sep 17 00:00:00 2001 From: caorushizi <84996057@qq.com> Date: Thu, 26 Sep 2024 02:47:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E7=AA=97=E5=8F=A3=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/main/src/main.d.ts | 2 ++ packages/main/src/vendor/ElectronStore.ts | 1 + packages/main/src/windows/MainWindow.ts | 8 ++++++++ packages/renderer/src/i18n/index.ts | 10 ++++++++++ packages/renderer/src/pages/SettingPage/index.tsx | 13 ++++++++++--- 5 files changed, 31 insertions(+), 3 deletions(-) diff --git a/packages/main/src/main.d.ts b/packages/main/src/main.d.ts index 36f23f7a..7e4f7917 100644 --- a/packages/main/src/main.d.ts +++ b/packages/main/src/main.d.ts @@ -60,6 +60,8 @@ declare interface AppStore { autoUpgrade: boolean; // 允许使用beta版本 allowBeta: boolean; + // 关闭主窗口 + closeMainWindow: boolean; } declare interface BrowserStore { diff --git a/packages/main/src/vendor/ElectronStore.ts b/packages/main/src/vendor/ElectronStore.ts index 8400614d..2d566e1c 100644 --- a/packages/main/src/vendor/ElectronStore.ts +++ b/packages/main/src/vendor/ElectronStore.ts @@ -32,6 +32,7 @@ export default class StoreService extends Store implements Vendor { downloadProxySwitch: false, autoUpgrade: true, allowBeta: false, + closeMainWindow: false, }, }); } diff --git a/packages/main/src/windows/MainWindow.ts b/packages/main/src/windows/MainWindow.ts index 3a9c984b..3441c1f8 100644 --- a/packages/main/src/windows/MainWindow.ts +++ b/packages/main/src/windows/MainWindow.ts @@ -49,6 +49,13 @@ export default class MainWindow extends Window { app.on("second-instance", this.secondInstance); } + closeMainWindow = () => { + const { closeMainWindow } = this.store.store; + if (closeMainWindow) { + app.quit(); + } + }; + onDownloadReadyStart = async ({ id, isLive }: DownloadProgress) => { if (isLive) { await this.videoRepository.changeVideoIsLive(id); @@ -74,6 +81,7 @@ export default class MainWindow extends Window { // 处理当前窗口改变大小 this.window.on("resized", this.handleResize); + this.window.on("close", this.closeMainWindow); } handleResize = () => { diff --git a/packages/renderer/src/i18n/index.ts b/packages/renderer/src/i18n/index.ts index d9acdb4b..966f465b 100644 --- a/packages/renderer/src/i18n/index.ts +++ b/packages/renderer/src/i18n/index.ts @@ -163,6 +163,11 @@ Referer: http://www.example.com`, updateModal: "Update", update: "Update", install: "Install", + checkingForUpdates: "Checking for updates", + updateAvailable: "Update available", + updateNotAvailable: "Update not available", + closeMainWindow: "Close Main Window", + minimizeToTray: "Minimize to tray", }, }, zh: { @@ -312,6 +317,11 @@ Referer: http://www.example.com`, updateModal: "更新", update: "更新", install: "安装", + checkingForUpdates: "正在检查更新", + updateAvailable: "发现新版本", + updateNotAvailable: "当前已是最新版本", + closeMainWindow: "关闭主窗口", + minimizeToTray: "最小化到托盘", }, }, }, diff --git a/packages/renderer/src/pages/SettingPage/index.tsx b/packages/renderer/src/pages/SettingPage/index.tsx index 95dedfdf..cf88bf68 100644 --- a/packages/renderer/src/pages/SettingPage/index.tsx +++ b/packages/renderer/src/pages/SettingPage/index.tsx @@ -12,6 +12,7 @@ import { message, Modal, Progress, + Radio, Select, Space, Switch, @@ -265,6 +266,12 @@ const SettingPage: React.FC = () => { > + + + {t("close")} + {t("minimizeToTray")} + + @@ -423,10 +430,10 @@ const SettingPage: React.FC = () => { >
{updateChecking - ? "正在检查更新" + ? t("checkingForUpdates") : updateAvailable - ? "有新版本" - : "当前已是最新版本"} + ? t("updateAvailable") + : t("updateNotAvailable")} {!updateChecking && updateAvailable && ( )}