Browse Source

refactored navigation options

yogevbd 6 years ago
parent
commit
0016d21df5

+ 0
- 6
lib/ios/RNNBottomTabOptions.m View File

34
 	[self resetOptions];
34
 	[self resetOptions];
35
 }
35
 }
36
 
36
 
37
--(void)mergeWith:(NSDictionary *)otherOptions {
38
-	for (id key in otherOptions) {
39
-		[self setValue:[otherOptions objectForKey:key] forKey:key];
40
-	}
41
-}
42
-
43
 -(void)resetOptions {
37
 -(void)resetOptions {
44
 	self.title = nil;
38
 	self.title = nil;
45
 	self.badge = nil;
39
 	self.badge = nil;

+ 0
- 5
lib/ios/RNNBottomTabsOptions.m View File

37
 	self.currentTabIndex = nil;
37
 	self.currentTabIndex = nil;
38
 }
38
 }
39
 
39
 
40
--(void)mergeWith:(NSDictionary *)otherOptions {
41
-	for (id key in otherOptions) {
42
-		[self setValue:[otherOptions objectForKey:key] forKey:key];
43
-	}
44
-}
45
 @end
40
 @end

+ 0
- 2
lib/ios/RNNControllerFactory.m View File

164
 
164
 
165
 - (UIViewController *)createOverlay:(NSDictionary*)layout {
165
 - (UIViewController *)createOverlay:(NSDictionary*)layout {
166
 	UIViewController *vc = [self fromTree:layout];
166
 	UIViewController *vc = [self fromTree:layout];
167
-	NSDictionary* options = layout[@"data"][@"options"];
168
 	RCTRootView* rootView = (RCTRootView*)vc.view;
167
 	RCTRootView* rootView = (RCTRootView*)vc.view;
169
-	rootView.passThroughTouches = ![options[@"interceptTouches"] boolValue];
170
 	rootView.backgroundColor = [UIColor clearColor];
168
 	rootView.backgroundColor = [UIColor clearColor];
171
 	CGSize availableSize = UIApplication.sharedApplication.delegate.window.bounds.size;
169
 	CGSize availableSize = UIApplication.sharedApplication.delegate.window.bounds.size;
172
 	rootView.frame = CGRectMake(0, 0, availableSize.width, availableSize.height);
170
 	rootView.frame = CGRectMake(0, 0, availableSize.width, availableSize.height);

+ 2
- 0
lib/ios/RNNNavigationOptions.h View File

5
 #import "RNNSideMenuOptions.h"
5
 #import "RNNSideMenuOptions.h"
6
 #import "RNNTopTabOptions.h"
6
 #import "RNNTopTabOptions.h"
7
 #import "RNNTopTabsOptions.h"
7
 #import "RNNTopTabsOptions.h"
8
+#import "RNNOverlayOptions.h"
8
 
9
 
9
 extern const NSInteger BLUR_STATUS_TAG;
10
 extern const NSInteger BLUR_STATUS_TAG;
10
 extern const NSInteger BLUR_TOPBAR_TAG;
11
 extern const NSInteger BLUR_TOPBAR_TAG;
18
 @property (nonatomic, strong) RNNTopTabsOptions* topTabs;
19
 @property (nonatomic, strong) RNNTopTabsOptions* topTabs;
19
 @property (nonatomic, strong) RNNTopTabOptions* topTab;
20
 @property (nonatomic, strong) RNNTopTabOptions* topTab;
20
 @property (nonatomic, strong) RNNSideMenuOptions* sideMenu;
21
 @property (nonatomic, strong) RNNSideMenuOptions* sideMenu;
22
+@property (nonatomic, strong) RNNOverlayOptions* overlay;
21
 
23
 
22
 @property (nonatomic, strong) RNNNavigationOptions* defaultOptions;
24
 @property (nonatomic, strong) RNNNavigationOptions* defaultOptions;
23
 
25
 

+ 3
- 1
lib/ios/RNNNavigationOptions.m View File

30
 	self.backgroundImage = [RCTConvert UIImage:[options objectForKey:@"backgroundImage"]];
30
 	self.backgroundImage = [RCTConvert UIImage:[options objectForKey:@"backgroundImage"]];
31
 	self.rootBackgroundImage = [RCTConvert UIImage:[options objectForKey:@"rootBackgroundImage"]];
31
 	self.rootBackgroundImage = [RCTConvert UIImage:[options objectForKey:@"rootBackgroundImage"]];
32
 	self.bottomTab = [[RNNBottomTabOptions alloc] initWithDict:[options objectForKey:@"bottomTab"]];
32
 	self.bottomTab = [[RNNBottomTabOptions alloc] initWithDict:[options objectForKey:@"bottomTab"]];
33
-    
33
+	self.overlay = [[RNNOverlayOptions alloc] initWithDict:[options objectForKey:@"overlay"]];
34
+	
34
 	return self;
35
 	return self;
35
 }
36
 }
36
 
37
 
53
 	[self.topTab applyOn:viewController];
54
 	[self.topTab applyOn:viewController];
54
 	[self.bottomTab applyOn:viewController];
55
 	[self.bottomTab applyOn:viewController];
55
 	[self.sideMenu applyOn:viewController];
56
 	[self.sideMenu applyOn:viewController];
57
+	[self.overlay applyOn:viewController];
56
 	[self applyOtherOptionsOn:viewController];
58
 	[self applyOtherOptionsOn:viewController];
57
 }
59
 }
58
 
60
 

+ 7
- 0
lib/ios/RNNOverlayOptions.h View File

1
+#import "RNNOptions.h"
2
+
3
+@interface RNNOverlayOptions : RNNOptions
4
+
5
+@property (nonatomic) BOOL interceptTouches;
6
+
7
+@end

+ 11
- 0
lib/ios/RNNOverlayOptions.m View File

1
+#import "RNNOverlayOptions.h"
2
+#import <React/RCTRootView.h>
3
+
4
+@implementation RNNOverlayOptions
5
+
6
+- (void)applyOn:(UIViewController *)viewController {
7
+	RCTRootView* rootView = (RCTRootView*)viewController.view;
8
+	rootView.passThroughTouches = !self.interceptTouches;
9
+}
10
+
11
+@end

+ 0
- 5
lib/ios/RNNTopTabOptions.m View File

9
 	}
9
 	}
10
 }
10
 }
11
 
11
 
12
--(void)mergeWith:(NSDictionary *)otherOptions {
13
-	for (id key in otherOptions) {
14
-		[self setValue:[otherOptions objectForKey:key] forKey:key];
15
-	}
16
-}
17
 @end
12
 @end
18
 
13
 

+ 8
- 0
lib/ios/ReactNativeNavigation.xcodeproj/project.pbxproj View File

76
 		507F43F81FF525B500D9425B /* RNNSegmentedControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 507F43F61FF525B500D9425B /* RNNSegmentedControl.h */; };
76
 		507F43F81FF525B500D9425B /* RNNSegmentedControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 507F43F61FF525B500D9425B /* RNNSegmentedControl.h */; };
77
 		507F43F91FF525B500D9425B /* RNNSegmentedControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 507F43F71FF525B500D9425B /* RNNSegmentedControl.m */; };
77
 		507F43F91FF525B500D9425B /* RNNSegmentedControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 507F43F71FF525B500D9425B /* RNNSegmentedControl.m */; };
78
 		507F44201FFA8A8800D9425B /* RNNRootViewProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 507F441F1FFA8A8800D9425B /* RNNRootViewProtocol.h */; };
78
 		507F44201FFA8A8800D9425B /* RNNRootViewProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 507F441F1FFA8A8800D9425B /* RNNRootViewProtocol.h */; };
79
+		50A00C37200F84D6000F01A6 /* RNNOverlayOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 50A00C35200F84D6000F01A6 /* RNNOverlayOptions.h */; };
80
+		50A00C38200F84D6000F01A6 /* RNNOverlayOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 50A00C36200F84D6000F01A6 /* RNNOverlayOptions.m */; };
79
 		50CB3B691FDE911400AA153B /* RNNSideMenuOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 50CB3B671FDE911400AA153B /* RNNSideMenuOptions.h */; };
81
 		50CB3B691FDE911400AA153B /* RNNSideMenuOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 50CB3B671FDE911400AA153B /* RNNSideMenuOptions.h */; };
80
 		50CB3B6A1FDE911400AA153B /* RNNSideMenuOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 50CB3B681FDE911400AA153B /* RNNSideMenuOptions.m */; };
82
 		50CB3B6A1FDE911400AA153B /* RNNSideMenuOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 50CB3B681FDE911400AA153B /* RNNSideMenuOptions.m */; };
81
 		50D031342005149000386B3D /* RNNOverlayManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 50D031322005149000386B3D /* RNNOverlayManager.h */; };
83
 		50D031342005149000386B3D /* RNNOverlayManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 50D031322005149000386B3D /* RNNOverlayManager.h */; };
243
 		507F43F61FF525B500D9425B /* RNNSegmentedControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNNSegmentedControl.h; sourceTree = "<group>"; };
245
 		507F43F61FF525B500D9425B /* RNNSegmentedControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNNSegmentedControl.h; sourceTree = "<group>"; };
244
 		507F43F71FF525B500D9425B /* RNNSegmentedControl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNNSegmentedControl.m; sourceTree = "<group>"; };
246
 		507F43F71FF525B500D9425B /* RNNSegmentedControl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNNSegmentedControl.m; sourceTree = "<group>"; };
245
 		507F441F1FFA8A8800D9425B /* RNNRootViewProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNNRootViewProtocol.h; sourceTree = "<group>"; };
247
 		507F441F1FFA8A8800D9425B /* RNNRootViewProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNNRootViewProtocol.h; sourceTree = "<group>"; };
248
+		50A00C35200F84D6000F01A6 /* RNNOverlayOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNNOverlayOptions.h; sourceTree = "<group>"; };
249
+		50A00C36200F84D6000F01A6 /* RNNOverlayOptions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNNOverlayOptions.m; sourceTree = "<group>"; };
246
 		50CB3B671FDE911400AA153B /* RNNSideMenuOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNNSideMenuOptions.h; sourceTree = "<group>"; };
250
 		50CB3B671FDE911400AA153B /* RNNSideMenuOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNNSideMenuOptions.h; sourceTree = "<group>"; };
247
 		50CB3B681FDE911400AA153B /* RNNSideMenuOptions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNNSideMenuOptions.m; sourceTree = "<group>"; };
251
 		50CB3B681FDE911400AA153B /* RNNSideMenuOptions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNNSideMenuOptions.m; sourceTree = "<group>"; };
248
 		50D031322005149000386B3D /* RNNOverlayManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNNOverlayManager.h; sourceTree = "<group>"; };
252
 		50D031322005149000386B3D /* RNNOverlayManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNNOverlayManager.h; sourceTree = "<group>"; };
455
 				504AFE731FFFF0540076E904 /* RNNTopTabsOptions.m */,
459
 				504AFE731FFFF0540076E904 /* RNNTopTabsOptions.m */,
456
 				50CB3B671FDE911400AA153B /* RNNSideMenuOptions.h */,
460
 				50CB3B671FDE911400AA153B /* RNNSideMenuOptions.h */,
457
 				50CB3B681FDE911400AA153B /* RNNSideMenuOptions.m */,
461
 				50CB3B681FDE911400AA153B /* RNNSideMenuOptions.m */,
462
+				50A00C35200F84D6000F01A6 /* RNNOverlayOptions.h */,
463
+				50A00C36200F84D6000F01A6 /* RNNOverlayOptions.m */,
458
 			);
464
 			);
459
 			name = Options;
465
 			name = Options;
460
 			sourceTree = "<group>";
466
 			sourceTree = "<group>";
663
 				263905BB1E4C6F440023D7D3 /* RCCDrawerHelper.h in Headers */,
669
 				263905BB1E4C6F440023D7D3 /* RCCDrawerHelper.h in Headers */,
664
 				263905CC1E4C6F440023D7D3 /* SidebarWunderlistAnimation.h in Headers */,
670
 				263905CC1E4C6F440023D7D3 /* SidebarWunderlistAnimation.h in Headers */,
665
 				507F43F41FF4FCFE00D9425B /* HMSegmentedControl.h in Headers */,
671
 				507F43F41FF4FCFE00D9425B /* HMSegmentedControl.h in Headers */,
672
+				50A00C37200F84D6000F01A6 /* RNNOverlayOptions.h in Headers */,
666
 				7B4928081E70415400555040 /* RNNCommandsHandler.h in Headers */,
673
 				7B4928081E70415400555040 /* RNNCommandsHandler.h in Headers */,
667
 				263905AE1E4C6F440023D7D3 /* MMDrawerBarButtonItem.h in Headers */,
674
 				263905AE1E4C6F440023D7D3 /* MMDrawerBarButtonItem.h in Headers */,
668
 				50F5DFC11F407A8C001A00BC /* RNNTabBarController.h in Headers */,
675
 				50F5DFC11F407A8C001A00BC /* RNNTabBarController.h in Headers */,
862
 				E8A430121F9CB87B00B61A20 /* RNNAnimatedView.m in Sources */,
869
 				E8A430121F9CB87B00B61A20 /* RNNAnimatedView.m in Sources */,
863
 				507F43F51FF4FCFE00D9425B /* HMSegmentedControl.m in Sources */,
870
 				507F43F51FF4FCFE00D9425B /* HMSegmentedControl.m in Sources */,
864
 				507F43C61FF4F17C00D9425B /* RNNTopTabsViewController.m in Sources */,
871
 				507F43C61FF4F17C00D9425B /* RNNTopTabsViewController.m in Sources */,
872
+				50A00C38200F84D6000F01A6 /* RNNOverlayOptions.m in Sources */,
865
 				50EB93421FE14A3E00BD8EEE /* RNNBottomTabOptions.m in Sources */,
873
 				50EB93421FE14A3E00BD8EEE /* RNNBottomTabOptions.m in Sources */,
866
 				E8367B811F7A8A4700675C05 /* VICMAImageView.m in Sources */,
874
 				E8367B811F7A8A4700675C05 /* VICMAImageView.m in Sources */,
867
 				A7626C011FC5796200492FB8 /* RNNBottomTabsOptions.m in Sources */,
875
 				A7626C011FC5796200492FB8 /* RNNBottomTabsOptions.m in Sources */,

+ 5
- 1
playground/src/screens/OptionsScreen.js View File

198
     Navigation.showOverlay({
198
     Navigation.showOverlay({
199
       component: {
199
       component: {
200
         name: 'navigation.playground.CustomDialog',
200
         name: 'navigation.playground.CustomDialog',
201
-        options: { interceptTouches }
201
+        options: {
202
+          overlay: {
203
+            interceptTouches
204
+          }
205
+        }
202
       }
206
       }
203
     });
207
     });
204
   }
208
   }