feat: open about page in setting modal when click about menu (#6245)

Co-authored-by: EYHN <cneyhn@gmail.com>
This commit is contained in:
BABA
2024-03-23 21:27:05 +08:00
committed by GitHub
parent 6c9db367e2
commit 6a02d0bc96
5 changed files with 45 additions and 3 deletions

View File

@@ -2,7 +2,7 @@ import { app, Menu } from 'electron';
import { isMacOS } from '../../shared/utils';
import { revealLogFile } from '../logger';
import { initAndShowMainWindow } from '../main-window';
import { initAndShowMainWindow, showMainWindow } from '../main-window';
import { checkForUpdates } from '../updater';
import { applicationMenuSubjects } from './subject';
@@ -22,7 +22,13 @@ export function createApplicationMenu() {
{
label: app.name,
submenu: [
{ role: 'about' },
{
label: `About ${app.getName()}`,
click: async () => {
await showMainWindow();
applicationMenuSubjects.openAboutPageInSettingModal.next();
},
},
{ type: 'separator' },
{ role: 'services' },
{ type: 'separator' },

View File

@@ -17,4 +17,11 @@ export const applicationMenuEvents = {
sub.unsubscribe();
};
},
openAboutPageInSettingModal: (fn: () => void) => {
const sub =
applicationMenuSubjects.openAboutPageInSettingModal.subscribe(fn);
return () => {
sub.unsubscribe();
};
},
} satisfies Record<string, MainEventRegister>;

View File

@@ -2,4 +2,5 @@ import { Subject } from 'rxjs';
export const applicationMenuSubjects = {
newPageAction: new Subject<void>(),
openAboutPageInSettingModal: new Subject<void>(),
};

View File

@@ -215,6 +215,15 @@ export async function getMainWindow() {
return window;
}
export async function showMainWindow() {
const window = await getMainWindow();
if (!window) return;
if (window.isMinimized()) {
window.restore();
}
window.focus();
}
export async function handleOpenUrlInHiddenWindow(url: string) {
const win = new BrowserWindow({
width: 1200,