Fix menubar types

Reviewed By: danielbuechele

Differential Revision: D17166332

fbshipit-source-id: d87dfd802c39863a275e5911ebebddb2676e190e
This commit is contained in:
John Knox
2019-09-11 03:49:24 -07:00
committed by Facebook Github Bot
parent 9aef4f55cf
commit 1b382d59c0

View File

@@ -10,6 +10,7 @@ import {showOpenDialog} from './utils/exportData';
import {setSelectPluginsToExportActiveSheet} from './reducers/application'; import {setSelectPluginsToExportActiveSheet} from './reducers/application';
import {Store} from './reducers/'; import {Store} from './reducers/';
import electron, {MenuItemConstructorOptions} from 'electron'; import electron, {MenuItemConstructorOptions} from 'electron';
import {notNull} from './utils/typeUtils';
import constants from './fb-stubs/constants'; import constants from './fb-stubs/constants';
import os from 'os'; import os from 'os';
import path from 'path'; import path from 'path';
@@ -48,7 +49,7 @@ export type KeyboardActions = Array<DefaultKeyboardAction | KeyboardAction>;
const menuItems: Map<string, electron.MenuItem> = new Map(); const menuItems: Map<string, electron.MenuItem> = new Map();
let pluginActionHandler; let pluginActionHandler: ((action: string) => void) | null;
function actionHandler(action: string) { function actionHandler(action: string) {
if (pluginActionHandler) { if (pluginActionHandler) {
pluginActionHandler(action); pluginActionHandler(action);
@@ -75,7 +76,8 @@ export function setupMenuBar(
typeof action === 'string' typeof action === 'string'
? defaultKeyboardActions.find(a => a.action === action) ? defaultKeyboardActions.find(a => a.action === action)
: action, : action,
), )
.filter(notNull),
); );
// add keyboard actions to // add keyboard actions to
@@ -100,7 +102,7 @@ export function setupMenuBar(
const menuItem = menu.submenu.items.find( const menuItem = menu.submenu.items.find(
menuItem => menuItem.label === label, menuItem => menuItem.label === label,
); );
menuItems.set(action, menuItem); menuItem && menuItems.set(action, menuItem);
} }
} }
}); });
@@ -177,12 +179,13 @@ function getTemplate(
accelerator: 'CommandOrControl+E', accelerator: 'CommandOrControl+E',
click: function() { click: function() {
electron.remote.dialog.showSaveDialog( electron.remote.dialog.showSaveDialog(
// @ts-ignore This appears to work but isn't allowed by the types
null, null,
{ {
title: 'FlipperExport', title: 'FlipperExport',
defaultPath: path.join(os.homedir(), 'FlipperExport.flipper'), defaultPath: path.join(os.homedir(), 'FlipperExport.flipper'),
}, },
async file => { async (file: string) => {
if (!file) { if (!file) {
return; return;
} }