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     if ExpoDevMenuReactDelegateHandler.enableAutoSetup == true {
8       DevMenuManager.shared.registeredCallbacks = []
9     }
10   }
11 
12   // MARK: JavaScript API
13 
14   @objc
15   func openMenu() {
16     DevMenuManager.shared.openMenu()
17   }
18 
19   @objc
20   func addDevMenuCallbacks(_ names: [String], resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
21     DevMenuManager.shared.registeredCallbacks = names
22     return resolve(nil)
23   }
24 }
25