feat(electron): app menu item and hotkey for creating new page (#2267)

Co-authored-by: Peng Xiao <pengxiao@outlook.com>
This commit is contained in:
Doma
2023-05-13 23:45:12 +08:00
committed by GitHub
parent b240a70e51
commit 05d88215d1
6 changed files with 164 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
import { Subject } from 'rxjs';
import type { MainEventListener } from './type';
export const applicationMenuSubjects = {
newPageAction: new Subject<void>(),
};
/**
* Events triggered by application menu
*/
export const applicationMenuEvents = {
/**
* File -> New Page
*/
onNewPageAction: (fn: () => void) => {
const sub = applicationMenuSubjects.newPageAction.subscribe(fn);
return () => {
sub.unsubscribe();
};
},
} satisfies Record<string, MainEventListener>;

View File

@@ -1,7 +1,9 @@
export * from './register';
import { applicationMenuSubjects } from './application-menu';
import { dbSubjects } from './db';
export const subjects = {
db: dbSubjects,
applicationMenu: applicationMenuSubjects,
};

View File

@@ -1,12 +1,14 @@
import { app, BrowserWindow } from 'electron';
import { logger } from '../logger';
import { applicationMenuEvents } from './application-menu';
import { dbEvents } from './db';
import { updaterEvents } from './updater';
export const allEvents = {
db: dbEvents,
updater: updaterEvents,
applicationMenu: applicationMenuEvents,
};
function getActiveWindows() {