30 lines
582 B
JavaScript
30 lines
582 B
JavaScript
|
'use strict';
|
||
|
|
||
|
type MenuItems = Array<{
|
||
|
text?: string,
|
||
|
onPress?: ?Function,
|
||
|
}>;
|
||
|
|
||
|
const NativeModules = require('react-native').NativeModules;
|
||
|
|
||
|
class DesktopMenu {
|
||
|
|
||
|
static show(
|
||
|
menuItems?: MenuItems
|
||
|
): void {
|
||
|
var itemNames = menuItems.map(i => i.text);
|
||
|
var itemMap = new Map();
|
||
|
for (let i = 0; i < menuItems.length; ++i) {
|
||
|
itemMap.set(menuItems[i].text, menuItems[i].onPress);
|
||
|
}
|
||
|
NativeModules.DesktopMenuManager.show(
|
||
|
itemNames,
|
||
|
(name) => {
|
||
|
(itemMap.get(name))();
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = DesktopMenu;
|