1*55a0565eSEric Samelson// Copyright 2018-present 650 Industries. All rights reserved.
2*55a0565eSEric Samelson
3*55a0565eSEric Samelson#import <EXDevLauncher/EXDevLauncherDeferredRCTRootView.h>
4*55a0565eSEric Samelson
5*55a0565eSEric Samelson@interface EXDevLauncherNoopUIView : UIView
6*55a0565eSEric Samelson
7*55a0565eSEric Samelson@end
8*55a0565eSEric Samelson
9*55a0565eSEric Samelson@implementation EXDevLauncherNoopUIView
10*55a0565eSEric Samelson
11*55a0565eSEric Samelson- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
12*55a0565eSEric Samelson{
13*55a0565eSEric Samelson  NSMethodSignature *signature = [super methodSignatureForSelector:aSelector];
14*55a0565eSEric Samelson  if (!signature) {
15*55a0565eSEric Samelson    signature = [NSMethodSignature signatureWithObjCTypes:"@@:"];
16*55a0565eSEric Samelson  }
17*55a0565eSEric Samelson  return signature;
18*55a0565eSEric Samelson}
19*55a0565eSEric Samelson
20*55a0565eSEric Samelson- (void)forwardInvocation:(NSInvocation *)anInvocation
21*55a0565eSEric Samelson{
22*55a0565eSEric Samelson  id nilPtr = nil;
23*55a0565eSEric Samelson  [anInvocation setReturnValue:&nilPtr];
24*55a0565eSEric Samelson}
25*55a0565eSEric Samelson
26*55a0565eSEric Samelson@end
27*55a0565eSEric Samelson
28*55a0565eSEric Samelson@implementation EXDevLauncherDeferredRCTRootView
29*55a0565eSEric Samelson
30*55a0565eSEric Samelson#pragma clang diagnostic push
31*55a0565eSEric Samelson#pragma clang diagnostic ignored "-Wobjc-designated-initializers"
32*55a0565eSEric Samelson
33*55a0565eSEric Samelson- (instancetype)initWithBridge:(RCTBridge *)bridge
34*55a0565eSEric Samelson                    moduleName:(NSString *)moduleName
35*55a0565eSEric Samelson             initialProperties:(NSDictionary *)initialProperties
36*55a0565eSEric Samelson{
37*55a0565eSEric Samelson  // RCTRootView throws an exception for default initializers
38*55a0565eSEric Samelson  // and other designated initializers requires a real bridge.
39*55a0565eSEric Samelson  // We use a trick here to initialize a NoopUIView and cast back to EXDevLauncherDeferredRCTRootView.
40*55a0565eSEric Samelson  self = (EXDevLauncherDeferredRCTRootView *)[[EXDevLauncherNoopUIView alloc] initWithFrame:CGRectZero];
41*55a0565eSEric Samelson  return self;
42*55a0565eSEric Samelson}
43*55a0565eSEric Samelson
44*55a0565eSEric Samelson#pragma clang diagnostic pop
45*55a0565eSEric Samelson
46*55a0565eSEric Samelson@end
47*55a0565eSEric Samelson
48