mirror of
https://github.com/bitwarden/desktop.git
synced 2024-09-28 03:57:47 +02:00
c1ba54f646
* [bug] Patch the windows menu bar regressions * [chore] Update jslib
116 lines
3.0 KiB
TypeScript
116 lines
3.0 KiB
TypeScript
import { BrowserWindow, MenuItemConstructorOptions } from "electron";
|
|
|
|
import { I18nService } from "jslib-common/abstractions/i18n.service";
|
|
import { MessagingService } from "jslib-common/abstractions/messaging.service";
|
|
|
|
import { UpdaterMain } from "jslib-electron/updater.main";
|
|
import { isMac } from "jslib-electron/utils";
|
|
|
|
import { IMenubarMenu } from "./menubar";
|
|
|
|
import { FirstMenu } from "./menu.first";
|
|
import { MenuAccount } from "./menu.updater";
|
|
|
|
// AKA: "FirstMenu" or "MacMenu" - the first menu that shows on all macOs apps
|
|
export class BitwardenMenu extends FirstMenu implements IMenubarMenu {
|
|
readonly id: string = "bitwarden";
|
|
readonly label: string = "Bitwarden";
|
|
|
|
get items(): MenuItemConstructorOptions[] {
|
|
const items = [this.aboutBitwarden, this.checkForUpdates];
|
|
if (this.aboutBitwarden.visible === true || this.checkForUpdates.visible === true) {
|
|
items.push(this.separator);
|
|
}
|
|
items.push(this.settings);
|
|
items.push(this.lock);
|
|
items.push(this.lockAll);
|
|
items.push(this.logOut);
|
|
items.push(this.separator);
|
|
items.push(this.services);
|
|
|
|
if (
|
|
this.hideBitwarden.visible === true ||
|
|
this.hideOthers.visible === true ||
|
|
this.showAll.visible === true
|
|
) {
|
|
items.push(this.separator);
|
|
}
|
|
|
|
items.push(this.hideBitwarden);
|
|
items.push(this.hideOthers);
|
|
items.push(this.showAll);
|
|
|
|
if (this.quitBitwarden.visible === true) {
|
|
items.push(this.separator);
|
|
}
|
|
items.push(this.quitBitwarden);
|
|
return items;
|
|
}
|
|
|
|
constructor(
|
|
i18nService: I18nService,
|
|
messagingService: MessagingService,
|
|
updater: UpdaterMain,
|
|
window: BrowserWindow,
|
|
accounts: { [userId: string]: MenuAccount },
|
|
isLocked: boolean
|
|
) {
|
|
super(i18nService, messagingService, updater, window, accounts, isLocked);
|
|
}
|
|
|
|
private get aboutBitwarden(): MenuItemConstructorOptions {
|
|
return {
|
|
id: "aboutBitwarden",
|
|
label: this.localize("aboutBitwarden"),
|
|
role: "about",
|
|
visible: isMac(),
|
|
};
|
|
}
|
|
|
|
private get services(): MenuItemConstructorOptions {
|
|
return {
|
|
id: "services",
|
|
label: this.localize("services"),
|
|
role: "services",
|
|
submenu: [],
|
|
visible: isMac(),
|
|
};
|
|
}
|
|
|
|
private get hideBitwarden(): MenuItemConstructorOptions {
|
|
return {
|
|
id: "hideBitwarden",
|
|
label: this.localize("hideBitwarden"),
|
|
role: "hide",
|
|
visible: isMac(),
|
|
};
|
|
}
|
|
|
|
private get hideOthers(): MenuItemConstructorOptions {
|
|
return {
|
|
id: "hideOthers",
|
|
label: this.localize("hideOthers"),
|
|
role: "hideOthers",
|
|
visible: isMac(),
|
|
};
|
|
}
|
|
|
|
private get showAll(): MenuItemConstructorOptions {
|
|
return {
|
|
id: "showAll",
|
|
label: this.localize("showAll"),
|
|
role: "unhide",
|
|
visible: isMac(),
|
|
};
|
|
}
|
|
|
|
private get quitBitwarden(): MenuItemConstructorOptions {
|
|
return {
|
|
id: "quitBitwarden",
|
|
label: this.localize("quitBitwarden"),
|
|
role: "quit",
|
|
visible: isMac(),
|
|
};
|
|
}
|
|
}
|