1 // Copyright 2015-present 650 Industries. All rights reserved. 2 3 #import "EXScopedEventEmitter.h" 4 5 @class EXHomeModule; 6 7 @protocol EXHomeModuleDelegate <NSObject> 8 9 /** 10 * Whether the kernel JS should show any devtools UI or respond to devtools commands. 11 */ 12 - (BOOL)homeModuleShouldEnableDevtools:(EXHomeModule *)module; 13 14 /** 15 * Dictionary of `key` => `user facing label` items to show in the kernel JS dev menu. 16 */ 17 - (NSDictionary <NSString *, NSString *> *)devMenuItemsForHomeModule:(EXHomeModule *)module; 18 19 - (BOOL)homeModuleShouldFinishNux:(EXHomeModule *)homeModule; 20 - (void)homeModule:(EXHomeModule *)homeModule didFinishNux:(BOOL)isNuxFinished; 21 22 - (void)homeModule:(EXHomeModule *)module didSelectDevMenuItemWithKey:(NSString *)key; 23 - (void)homeModule:(EXHomeModule *)module didOpenUrl:(NSString *)url; 24 - (void)homeModuleDidSelectRefresh:(EXHomeModule *)module; 25 - (void)homeModuleDidSelectCloseMenu:(EXHomeModule *)module; 26 - (void)homeModuleDidSelectGoToHome:(EXHomeModule *)module; 27 - (void)homeModuleDidSelectQRReader:(EXHomeModule *)module; 28 29 @end 30 31 @interface EXHomeModule : EXScopedEventEmitter 32 33 - (void)dispatchJSEvent: (NSString *)eventName 34 body: (NSDictionary *)eventBody 35 onSuccess: (void (^)(NSDictionary *))success 36 onFailure: (void (^)(NSString *))failure; 37 38 - (void)requestToCloseDevMenu; 39 40 @end 41