Skip to content

Instantly share code, notes, and snippets.

@rawnly
Last active March 16, 2018 10:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rawnly/1c94924e17d7e8becf627e4b80bde51d to your computer and use it in GitHub Desktop.
Save rawnly/1c94924e17d7e8becf627e4b80bde51d to your computer and use it in GitHub Desktop.
Get item from an electron menu or trayMenu
// Thanks to @Tazaf
module.exports = function getItem(label, menu) {
for ( i in menu.items ) {
if ( menu.items[i].submenu && menu.items[i].submenu.items ) {
var subItem = menu.items[i].submenu.items.find((item) => {
return item.label === label
})
if (subItem) {
return subItem
} else {
var menuItem = menu.items.find((item) => {
return item.label.toString().toLowerCase() === label.toString().toLowerCase()
})
if (menuItem) {
return menuItem
}
}
} else {
var menuItem = menu.items.find((item) => {
return item.label.toString().toLowerCase() === label.toString().toLowerCase()
})
if ( menuItem ) {
return menuItem
}
}
}
return false
}
@Tazaf
Copy link

Tazaf commented Apr 15, 2017

Hello !
Thanks for this function. That's what I was looking for.
But I've spotted two bugs in it:

  1. You never loop in your loop, since you return false in the line 18
  2. The function raises an error if the first item in the menu doesn't have any submenu

I've fixed both these issues in the fork I made from your Gist 😉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment