mirror of
https://github.com/bitwarden/desktop
synced 2025-12-24 04:04:30 +00:00
* [refactor] Remove references to deprecated services * [feature] Implement account switching * [bug] Fix state handling for authentication dependent system menu items * [bug] Enable the account switcher to fucntion properly when switching to a locked accounts * [feature] Enable locking any account from the menu * [bug] Ensure the avatar instance used in the account switcher updates on account change * [style] Fix lint complaints * [bug] Ensure the logout command callback can handle any user in state * [style] Fix lint complaints * rollup * [style] Fix lint complaints * [bug] Don't clean up state until everything else is done on logout * [bug] Navigate to vault on a succesful account switch * [bug] Init the state service on start * [feature] Limit account switching to 5 account maximum * [bug] Resolve app lock state with 5 logged out accounts * [chore] Update account refrences to match recent jslib restructuring * [bug] Add missing awaits * [bug] Update app menu on logout * [bug] Hide the switcher if there are no authed accounts * [bug] Move authenticationStatus display information out of jslib * [bug] Remove unused active style from scss * [refactor] Rewrite the menu bar * [style] Fix lint complaints * [bug] Clean state of loggout out user after redirect * [bug] Redirect on logout if not explicity provided a userId that isn't active * [bug] Relocated several settings items to persistant storage * [bug] Correct account switcher styles on all themes * [chore] Include state migration service in services * [bug] Swap to next account on logout * [bug] Correct DI service * [bug] fix loginGuard deps in services.module * [chore] update jslib * [bug] Remove badly merged scss * [chore] update jslib * [review] Code review cleanup * [review] Code review cleanup Co-authored-by: Hinton <oscar@oscarhinton.com>
55 lines
1.4 KiB
TypeScript
55 lines
1.4 KiB
TypeScript
import {
|
|
app,
|
|
Menu,
|
|
} from 'electron';
|
|
|
|
import { Main } from '../main';
|
|
|
|
import { BaseMenu } from 'jslib-electron/baseMenu';
|
|
|
|
import { MenuUpdateRequest } from './menu.updater';
|
|
import { Menubar } from './menubar';
|
|
|
|
const cloudWebVaultUrl: string = 'https://vault.bitwarden.com';
|
|
|
|
export class MenuMain extends BaseMenu {
|
|
constructor(private main: Main) {
|
|
super(main.i18nService, main.windowMain);
|
|
}
|
|
|
|
async init() {
|
|
this.initContextMenu();
|
|
await this.setMenu();
|
|
}
|
|
|
|
async updateApplicationMenuState(updateRequest: MenuUpdateRequest) {
|
|
await this.setMenu(updateRequest);
|
|
}
|
|
|
|
private async setMenu(updateRequest?: MenuUpdateRequest) {
|
|
Menu.setApplicationMenu(new Menubar(
|
|
this.main.i18nService,
|
|
this.main.messagingService,
|
|
this.main.updaterMain,
|
|
this.windowMain,
|
|
await this.getWebVaultUrl(),
|
|
app.getVersion(),
|
|
updateRequest,
|
|
).menu);
|
|
}
|
|
|
|
private async getWebVaultUrl() {
|
|
let webVaultUrl = cloudWebVaultUrl;
|
|
const urlsObj: any = await this.main.stateService.getEnvironmentUrls();
|
|
if (urlsObj != null) {
|
|
if (urlsObj.base != null) {
|
|
webVaultUrl = urlsObj.base;
|
|
} else if (urlsObj.webVault != null) {
|
|
webVaultUrl = urlsObj.webVault;
|
|
}
|
|
}
|
|
return webVaultUrl;
|
|
}
|
|
|
|
}
|