| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | #import "RNNLargeTitleOptions.h"
#import "RNNTitleViewHelper.h"
@implementation RNNLargeTitleOptions
- (void)applyOn:(UIViewController *)viewController {
	if (@available(iOS 11.0, *)) {
		
		viewController.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever;
	
		if ([self.visible boolValue]){
			viewController.navigationController.navigationBar.prefersLargeTitles = YES;
			viewController.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeAlways;
		} else {
			viewController.navigationController.navigationBar.prefersLargeTitles = NO;
		}
		
		NSDictionary* fontAttributes = [self fontAttributes];
		viewController.navigationController.navigationBar.largeTitleTextAttributes = fontAttributes;
	}
}
- (NSDictionary *)fontAttributes {
	NSMutableDictionary* navigationBarTitleTextAttributes = [NSMutableDictionary new];
	if (self.fontFamily || self.fontSize || self.color) {
		if (self.color) {
			navigationBarTitleTextAttributes[NSForegroundColorAttributeName] = [RCTConvert UIColor:self.color];
		}
		if (self.fontFamily){
			if (self.fontSize) {
				navigationBarTitleTextAttributes[NSFontAttributeName] = [UIFont fontWithName:self.fontFamily size:[self.fontSize floatValue]];
			} else {
				navigationBarTitleTextAttributes[NSFontAttributeName] = [UIFont fontWithName:self.fontFamily size:20];
			}
		} else if (self.fontSize) {
			navigationBarTitleTextAttributes[NSFontAttributeName] = [UIFont systemFontOfSize:[self.fontSize floatValue]];
		}
	}
	
	return navigationBarTitleTextAttributes;
}
- (NSNumber *)fontSize {
	return _fontSize ? _fontSize : nil;
}
@end
 |