mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Change TrayMenuRegistration not to leak or depend on Electron Menu API
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
This commit is contained in:
parent
bb4790e3d8
commit
85714422af
14
src/main/tray/tray-menu-registration.d.ts
vendored
14
src/main/tray/tray-menu-registration.d.ts
vendored
@ -19,8 +19,12 @@
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import type { MenuItemConstructorOptions } from "electron";
|
||||
|
||||
export type TrayMenuRegistration = Pick<MenuItemConstructorOptions,
|
||||
"label" | "type" | "submenu" | "click" |
|
||||
"toolTip" | "visible" | "enabled" | "id">;
|
||||
export interface TrayMenuRegistration {
|
||||
label?: string;
|
||||
click?: (menuItem: TrayMenuRegistration) => void;
|
||||
id?: string;
|
||||
type?: "normal" | "separator" | "submenu"
|
||||
toolTip?: string;
|
||||
enabled?: boolean;
|
||||
submenu?: TrayMenuRegistration[]
|
||||
}
|
||||
|
||||
@ -83,6 +83,16 @@ export function initTray(
|
||||
};
|
||||
}
|
||||
|
||||
function getMenuItemConstructorOptions(trayItem: TrayMenuRegistration): Electron.MenuItemConstructorOptions {
|
||||
return {
|
||||
...trayItem,
|
||||
submenu: trayItem.submenu ? trayItem.submenu.map(getMenuItemConstructorOptions) : undefined,
|
||||
click: trayItem.click ? () => {
|
||||
trayItem.click(trayItem);
|
||||
} : undefined,
|
||||
};
|
||||
}
|
||||
|
||||
function createTrayMenu(
|
||||
windowManager: WindowManager,
|
||||
extensionTrayItems: TrayMenuRegistration[],
|
||||
@ -116,7 +126,7 @@ function createTrayMenu(
|
||||
});
|
||||
}
|
||||
|
||||
template = template.concat(extensionTrayItems);
|
||||
template = template.concat(extensionTrayItems.map(getMenuItemConstructorOptions));
|
||||
|
||||
return Menu.buildFromTemplate(template.concat([
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user