diff --git a/src/services/menu/index.ts b/src/services/menu/index.ts index 2a535b96..d11c7b53 100644 --- a/src/services/menu/index.ts +++ b/src/services/menu/index.ts @@ -93,14 +93,16 @@ export class MenuService implements IMenuService { ): Promise { if (submenu === undefined) return; return await Promise.all( - submenu.map(async (item) => ({ - ...item, - /** label sometimes is null, causing */ - label: typeof item.label === 'function' ? item.label() ?? undefined : item.label, - checked: typeof item.checked === 'function' ? await item.checked() : item.checked, - enabled: typeof item.enabled === 'function' ? await item.enabled() : item.enabled, - submenu: !Array.isArray(item.submenu) ? item.submenu : await this.getCurrentMenuItemConstructorOptions(compact(item.submenu)), - })), + submenu + .filter((item) => Object.keys(item).length > 0) + .map(async (item) => ({ + ...item, + /** label sometimes is null, causing */ + label: typeof item.label === 'function' ? item.label() ?? undefined : item.label, + checked: typeof item.checked === 'function' ? await item.checked() : item.checked, + enabled: typeof item.enabled === 'function' ? await item.enabled() : item.enabled, + submenu: !Array.isArray(item.submenu) ? item.submenu : await this.getCurrentMenuItemConstructorOptions(compact(item.submenu)), + })), ); }