forked from wix/react-native-navigation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRNNBridgeModule.m
110 lines (89 loc) · 4.4 KB
/
RNNBridgeModule.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#import "RNNBridgeModule.h"
#import "Constants.h"
@implementation RNNBridgeModule {
RNNCommandsHandler* _commandsHandler;
}
@synthesize bridge = _bridge;
RCT_EXPORT_MODULE();
- (dispatch_queue_t)methodQueue {
return dispatch_get_main_queue();
}
-(instancetype)initWithCommandsHandler:(RNNCommandsHandler *)commandsHandler {
self = [super init];
_commandsHandler = commandsHandler;
return self;
}
#pragma mark - JS interface
RCT_EXPORT_METHOD(setRoot:(NSString*)commandId layout:(NSDictionary*)layout resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler setRoot:layout completion:^{
resolve(layout);
}];
}
RCT_EXPORT_METHOD(mergeOptions:(NSString*)componentId options:(NSDictionary*)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler mergeOptions:componentId options:options completion:^{
resolve(componentId);
}];
}
RCT_EXPORT_METHOD(setDefaultOptions:(NSDictionary*)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler setDefaultOptions:options completion:^{
resolve(nil);
}];
}
RCT_EXPORT_METHOD(push:(NSString*)commandId componentId:(NSString*)componentId layout:(NSDictionary*)layout resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler push:componentId layout:layout completion:^{
resolve(componentId);
} rejection:reject];
}
RCT_EXPORT_METHOD(pop:(NSString*)commandId componentId:(NSString*)componentId mergeOptions:(NSDictionary*)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler pop:componentId mergeOptions:(NSDictionary*)options completion:^{
resolve(componentId);
} rejection:reject];
}
RCT_EXPORT_METHOD(setStackRoot:(NSString*)commandId componentId:(NSString*)componentId children:(NSArray*)children resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler setStackRoot:componentId children:children completion:^{
resolve(componentId);
} rejection:reject];
}
RCT_EXPORT_METHOD(popTo:(NSString*)commandId componentId:(NSString*)componentId mergeOptions:(NSDictionary*)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler popTo:componentId mergeOptions:options completion:^{
resolve(componentId);
} rejection:reject];
}
RCT_EXPORT_METHOD(popToRoot:(NSString*)commandId componentId:(NSString*)componentId mergeOptions:(NSDictionary*)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler popToRoot:componentId mergeOptions:options completion:^{
resolve(componentId);
} rejection:reject];
}
RCT_EXPORT_METHOD(showModal:(NSString*)commandId layout:(NSDictionary*)layout resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler showModal:layout completion:^(NSString *componentId) {
resolve(componentId);
}];
}
RCT_EXPORT_METHOD(dismissModal:(NSString*)commandId componentId:(NSString*)componentId mergeOptions:(NSDictionary*)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler dismissModal:componentId mergeOptions:options completion:^{
resolve(componentId);
} rejection:reject];
}
RCT_EXPORT_METHOD(dismissAllModals:(NSString*)commandId mergeOptions:(NSDictionary*)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler dismissAllModals:options completion:^{
resolve(nil);
}];
}
RCT_EXPORT_METHOD(showOverlay:(NSString*)commandId layout:(NSDictionary*)layout resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler showOverlay:layout completion:^{
resolve(layout[@"id"]);
}];
}
RCT_EXPORT_METHOD(dismissOverlay:(NSString*)commandId componentId:(NSString*)componentId resolve:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
[_commandsHandler dismissOverlay:componentId completion:^{
resolve(@(1));
} rejection:reject];
}
RCT_EXPORT_METHOD(getLaunchArgs:(NSString*)commandId :(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
NSArray* args = [[NSProcessInfo processInfo] arguments];
resolve(args);
}
RCT_EXPORT_METHOD(getConstants:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
resolve([Constants getConstants]);
}
@end