1 // Copyright 2015-present 650 Industries. All rights reserved. 2 3 @objc(DevMenuModule) 4 open class DevMenuModule: NSObject { 5 deinit { 6 // cleanup registered callbacks when the bridge is deallocated to prevent these leaking into other (potentially unrelated) bridges 7 DevMenuManager.shared.registeredCallbacks = [] 8 } 9 10 // MARK: JavaScript API 11 12 @objc 13 func openMenu() { 14 DevMenuManager.shared.openMenu() 15 } 16 17 @objc 18 func openSettings() { 19 DevMenuManager.shared.openMenu("Settings") 20 } 21 22 @objc 23 func openProfile() { 24 DevMenuManager.shared.openMenu("Profile") 25 } 26 27 @objc 28 func isLoggedInAsync(_ resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) { 29 resolve(DevMenuManager.shared.expoApiClient.isLoggedIn()) 30 } 31 32 @objc 33 func addDevMenuCallbacks(_ names: [String], resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) { 34 DevMenuManager.shared.registeredCallbacks = names 35 return resolve(nil) 36 } 37 } 38