1import { DeviceEventEmitter } from 'react-native'; 2import ExpoDevMenu from './ExpoDevMenu'; 3export function openMenu() { 4 ExpoDevMenu.openMenu(); 5} 6export function hideMenu() { 7 ExpoDevMenu.hideMenu(); 8} 9export function closeMenu() { 10 ExpoDevMenu.closeMenu(); 11} 12let hasRegisteredCallbackListener = false; 13function registerCallbackListener() { 14 if (!hasRegisteredCallbackListener) { 15 DeviceEventEmitter.addListener('registeredCallbackFired', (name) => { 16 hasRegisteredCallbackListener = true; 17 const handler = handlers.get(name); 18 if (handler != null) { 19 handler(); 20 } 21 }); 22 } 23} 24registerCallbackListener(); 25let handlers = new Map(); 26export async function registerDevMenuItems(items) { 27 if (!__DEV__) { 28 // resolve undefined 29 return; 30 } 31 handlers = new Map(); 32 const callbackNames = []; 33 items.forEach((item) => { 34 handlers.set(item.name, item.callback); 35 callbackNames.push({ name: item.name, shouldCollapse: item.shouldCollapse }); 36 }); 37 return await ExpoDevMenu.addDevMenuCallbacks(callbackNames); 38} 39//# sourceMappingURL=DevMenu.js.map