2021-04-07 19:42:06 +02:00
|
|
|
import { ipcRenderer } from 'electron';
|
|
|
|
|
|
|
|
export type RendererMenuItem = {label?: string, type?: ('normal' | 'separator' | 'submenu' | 'checkbox' | 'radio'), click?: () => any};
|
|
|
|
|
|
|
|
export function invokeMenu(menu: RendererMenuItem[]) {
|
|
|
|
const menuWithoutClick = menu.map(m => {
|
|
|
|
return { label: m.label, type: m.type };
|
|
|
|
});
|
|
|
|
ipcRenderer.invoke('openContextMenu', { menu: menuWithoutClick }).then((i: number) => {
|
|
|
|
if (i !== -1) {
|
|
|
|
menu[i].click();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2018-04-24 22:00:20 +02:00
|
|
|
export function isDev() {
|
|
|
|
// ref: https://github.com/sindresorhus/electron-is-dev
|
|
|
|
if ('ELECTRON_IS_DEV' in process.env) {
|
|
|
|
return parseInt(process.env.ELECTRON_IS_DEV, 10) === 1;
|
|
|
|
}
|
|
|
|
return (process.defaultApp || /node_modules[\\/]electron[\\/]/.test(process.execPath));
|
|
|
|
}
|
|
|
|
|
|
|
|
export function isAppImage() {
|
|
|
|
return process.platform === 'linux' && 'APPIMAGE' in process.env;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function isMacAppStore() {
|
|
|
|
return process.platform === 'darwin' && process.mas && process.mas === true;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function isWindowsStore() {
|
2019-09-21 05:58:24 +02:00
|
|
|
const isWindows = process.platform === 'win32';
|
2021-01-26 22:49:47 +01:00
|
|
|
let windowsStore = process.windowsStore;
|
|
|
|
if (isWindows && !windowsStore &&
|
2019-09-21 05:58:24 +02:00
|
|
|
process.resourcesPath.indexOf('8bitSolutionsLLC.bitwardendesktop_') > -1) {
|
2021-01-26 22:49:47 +01:00
|
|
|
windowsStore = true;
|
2019-09-21 05:58:24 +02:00
|
|
|
}
|
2021-01-26 22:49:47 +01:00
|
|
|
return isWindows && windowsStore === true;
|
2018-04-24 22:00:20 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
export function isSnapStore() {
|
|
|
|
return process.platform === 'linux' && process.env.SNAP_USER_DATA != null;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function isWindowsPortable() {
|
|
|
|
return process.platform === 'win32' && process.env.PORTABLE_EXECUTABLE_DIR != null;
|
|
|
|
}
|