1 // Copyright 2015-present 650 Industries. All rights reserved. 2 3 @objc(DevMenuModule) 4 open class DevMenuModule: NSObject { 5 // MARK: JavaScript API 6 7 @objc 8 func openMenu() { 9 DevMenuManager.shared.openMenu() 10 } 11 12 @objc 13 func openSettings() { 14 DevMenuManager.shared.openMenu("Settings") 15 } 16 17 @objc 18 func openProfile() { 19 DevMenuManager.shared.openMenu("Profile") 20 } 21 22 @objc 23 func isLoggedInAsync(_ resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) { 24 resolve(DevMenuManager.shared.expoApiClient.isLoggedIn()) 25 } 26 27 @objc 28 func queryDevSessionsAsync(_ installationID: String?, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { 29 DevMenuManager.shared.expoApiClient.queryDevSessionsAsync(installationID, completionHandler: { data, response, error in 30 guard error == nil else { 31 reject("ERR_DEVMENU_CANNOT_GET_DEV_SESSIONS", error.debugDescription, error) 32 return 33 } 34 35 guard let data = data else { 36 resolve(nil) 37 return 38 } 39 40 let response = String(decoding: data, as: UTF8.self) 41 resolve(response) 42 }) 43 } 44 } 45