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