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