// Copyright 2015-present 650 Industries. All rights reserved. @objc(DevMenuModule) open class DevMenuModule: NSObject, RCTBridgeModule { public static func moduleName() -> String! { return "ExpoDevMenu" } public static func requiresMainQueueSetup() -> Bool { return true } // MARK: JavaScript API @objc func openMenu() { DevMenuManager.shared.openMenu() } @objc func openSettings() { DevMenuManager.shared.openMenu("Settings") } @objc func openProfile() { DevMenuManager.shared.openMenu("Profile") } @objc func isLoggedInAsync(_ resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) { resolve(DevMenuManager.shared.expoApiClient.isLoggedIn()) } @objc func queryDevSessionsAsync(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { DevMenuManager.shared.expoApiClient.queryDevSessionsAsync({ (data, response, error) in guard error == nil else { reject("ERR_DEVMENU_CANNOT_GET_DEV_SESSIONS", error.debugDescription, error) return } guard let data = data else { resolve(nil) return } let response = String(decoding: data, as: UTF8.self) resolve(response) }) } }