fix: menu await

This commit is contained in:
JellyBrick
2023-11-28 12:32:07 +09:00
parent da70a4ce7e
commit 1d26d10e57
3 changed files with 12 additions and 12 deletions

View File

@ -600,8 +600,8 @@ app.whenReady().then(async () => {
}
mainWindow = await createMainWindow();
setApplicationMenu(mainWindow);
refreshMenu(mainWindow);
await setApplicationMenu(mainWindow);
await refreshMenu(mainWindow);
setUpTray(app, mainWindow);
setupProtocolHandler(mainWindow);

View File

@ -21,8 +21,8 @@ const createContext = (id: string, win: BrowserWindow): MenuContext<PluginConfig
config.setPartial(`plugins.${id}`, newConfig, allPlugins[id].config);
},
window: win,
refresh: () => {
setApplicationMenu(win);
refresh: async () => {
await setApplicationMenu(win);
if (config.plugins.isEnabled('in-app-menu')) {
win.webContents.send('refresh-in-app-menu');
@ -46,14 +46,14 @@ export const forceLoadMenuPlugin = async (id: string, win: BrowserWindow) => {
}
};
export const loadAllMenuPlugins = (win: BrowserWindow) => {
export const loadAllMenuPlugins = async (win: BrowserWindow) => {
const pluginConfigs = config.plugins.getPlugins();
for (const [pluginId, pluginDef] of Object.entries(allPlugins)) {
const config = deepmerge(pluginDef.config ?? { enabled: false }, pluginConfigs[pluginId] ?? {});
if (config.enabled) {
forceLoadMenuPlugin(pluginId, win);
await forceLoadMenuPlugin(pluginId, win);
}
}
};

View File

@ -46,17 +46,17 @@ const pluginEnabledMenu = (
},
});
export const refreshMenu = (win: BrowserWindow) => {
setApplicationMenu(win);
export const refreshMenu = async (win: BrowserWindow) => {
await setApplicationMenu(win);
if (inAppMenuActive) {
win.webContents.send('refresh-in-app-menu');
}
};
export const mainMenuTemplate = (win: BrowserWindow): MenuTemplate => {
export const mainMenuTemplate = async (win: BrowserWindow): Promise<MenuTemplate> => {
const innerRefreshMenu = () => refreshMenu(win);
loadAllMenuPlugins(win);
await loadAllMenuPlugins(win);
const menuResult = Object.entries(getAllMenuTemplate()).map(
([id, template]) => {
@ -452,8 +452,8 @@ export const mainMenuTemplate = (win: BrowserWindow): MenuTemplate => {
},
];
};
export const setApplicationMenu = (win: Electron.BrowserWindow) => {
const menuTemplate: MenuTemplate = [...mainMenuTemplate(win)];
export const setApplicationMenu = async (win: Electron.BrowserWindow) => {
const menuTemplate: MenuTemplate = [...await mainMenuTemplate(win)];
if (process.platform === 'darwin') {
const { name } = app;
menuTemplate.unshift({