mirror of
https://github.com/tiddly-gittly/TidGi-Desktop.git
synced 2026-01-24 05:21:02 -08:00
fix: try prevent empty menuitem passedin
I got
```json
[
{
"id": "TiddlyGit",
"submenu": [
{},
{ "type": "separator" },
{},
{ "accelerator": "CmdOrCtrl+," },
{ "type": "separator" },
{ "accelerator": "CmdOrCtrl+Shift+N" },
{ "type": "separator" },
{ "role": "services", "submenu": [] },
{ "type": "separator" },
{ "role": "hide" },
{ "role": "hideOthers" },
{ "role": "unhide" },
{ "label": null, "role": "quit" }
]
},
{ "id": "Edit", "role": "editMenu" },
{
"id": "View",
"submenu": [
{ "accelerator": "CmdOrCtrl+F", "enabled": true },
{ "accelerator": "CmdOrCtrl+G", "enabled": true },
{ "accelerator": "Shift+CmdOrCtrl+G", "enabled": true },
{ "label": "undefined (undefined)", "checked": false },
{ "type": "separator" },
{ "role": "reload" },
{ "role": "forceReload" },
{ "role": "zoom" },
{ "role": "resetZoom" },
{ "role": "togglefullscreen" },
{ "role": "close" }
]
},
{ "id": "Language" },
{
"id": "History",
"submenu": [
{ "accelerator": "Shift+CmdOrCtrl+H", "enabled": true },
{ "accelerator": "CmdOrCtrl+[", "enabled": true },
{ "accelerator": "CmdOrCtrl+]", "enabled": true },
{ "type": "separator" },
{ "accelerator": "CmdOrCtrl+L", "enabled": true }
]
},
{
"id": "Workspaces",
"submenu": [
{ "accelerator": "CmdOrCtrl+Shift+]", "enabled": false },
{ "accelerator": "CmdOrCtrl+Shift+[", "enabled": false },
{ "type": "separator" },
{ "enabled": true },
{ "enabled": true },
{ "enabled": true },
{ "type": "separator" },
{},
{ "accelerator": "CmdOrCtrl+Option+I", "enabled": true }
]
},
{ "id": "Workspaces", "submenu": [] },
{ "role": "windowMenu", "id": "Window" },
{ "role": "help", "id": "help", "submenu": [{}, {}, {}, {}] },
{ "label": "Wiki", "submenu": [{ "enabled": true }, { "accelerator": "CmdOrCtrl+Alt+Shift+P" }] }
]
```
This commit is contained in:
parent
c97466a1c7
commit
992b2d9918
1 changed files with 10 additions and 8 deletions
|
|
@ -93,14 +93,16 @@ export class MenuService implements IMenuService {
|
|||
): Promise<MenuItemConstructorOptions[] | undefined> {
|
||||
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)),
|
||||
})),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue