123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
-
-
-
-
-
- @implementation RCTHelpers
-
- + (NSMutableDictionary *)textAttributesFromDictionary:(NSDictionary *)dictionary withPrefix:(NSString *)prefix baseFont:(UIFont *)baseFont
- {
- NSMutableDictionary *textAttributes = [NSMutableDictionary new]
-
- NSString *colorKey = @"color"
- NSString *familyKey = @"fontFamily"
- NSString *weightKey = @"fontWeight"
- NSString *sizeKey = @"fontSize"
- NSString *styleKey = @"fontStyle"
- NSString *shadowColourKey = @"shadowColor"
- NSString *shadowOffsetKey = @"shadowOffset"
- NSString *shadowBlurRadiusKey = @"shadowBlurRadius"
- NSString *showShadowKey = @"showShadow"
-
- if (prefix) {
-
- colorKey = [colorKey stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[colorKey substringToIndex:1].capitalizedString];
- colorKey = [NSString stringWithFormat:@"%@%@", prefix, colorKey]
-
- familyKey = [familyKey stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[familyKey substringToIndex:1].capitalizedString];
- familyKey = [NSString stringWithFormat:@"%@%@", prefix, familyKey]
-
- weightKey = [weightKey stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[weightKey substringToIndex:1].capitalizedString];
- weightKey = [NSString stringWithFormat:@"%@%@", prefix, weightKey]
-
- sizeKey = [sizeKey stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[sizeKey substringToIndex:1].capitalizedString];
- sizeKey = [NSString stringWithFormat:@"%@%@", prefix, sizeKey]
-
- styleKey = [styleKey stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[styleKey substringToIndex:1].capitalizedString];
- styleKey = [NSString stringWithFormat:@"%@%@", prefix, styleKey]
-
- shadowColourKey = [shadowColourKey stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[shadowColourKey substringToIndex:1].capitalizedString];
- shadowColourKey = [NSString stringWithFormat:@"%@%@", prefix, shadowColourKey];
-
- shadowOffsetKey = [shadowOffsetKey stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[shadowOffsetKey substringToIndex:1].capitalizedString];
- shadowOffsetKey = [NSString stringWithFormat:@"%@%@", prefix, shadowOffsetKey];
-
- shadowBlurRadiusKey = [shadowBlurRadiusKey stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[shadowBlurRadiusKey substringToIndex:1].capitalizedString];
- shadowBlurRadiusKey = [NSString stringWithFormat:@"%@%@", prefix, shadowBlurRadiusKey];
-
- showShadowKey = [showShadowKey stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[showShadowKey substringToIndex:1].capitalizedString];
- showShadowKey = [NSString stringWithFormat:@"%@%@", prefix, showShadowKey];
- }
-
- NSShadow *shadow;
-
- NSNumber *shadowColor = dictionary[shadowColourKey];
- if (shadowColor && [shadowColor isKindOfClass:[NSNumber class]]) {
- if (!shadow) {
- shadow = [NSShadow new]
- }
- shadow.shadowColor = [RCTConvert UIColor:shadowColor];
- }
-
- NSDictionary *shadowOffsetDict = dictionary[shadowOffsetKey];
- if (shadowOffsetDict && [shadowOffsetDict isKindOfClass:[NSDictionary class]]) {
- CGSize shadowOffset = [RCTConvert CGSize:shadowOffsetDict];
- if (!shadow) {
- shadow = [NSShadow new]
- }
- shadow.shadowOffset = shadowOffset;
- }
-
- NSNumber *shadowRadius = dictionary[shadowBlurRadiusKey];
- if (shadowRadius) {
- CGFloat radius = [RCTConvert CGFloat:shadowRadius];
- if (!shadow) {
- shadow = [NSShadow new]
- }
- shadow.shadowBlurRadius = radius
- }
-
- NSNumber *showShadow = dictionary[showShadowKey];
- if (showShadow) {
- BOOL show = [RCTConvert BOOL:showShadow];
- if (!show) {
- shadow = nil
- }
- }
-
- if (shadow) {
- [textAttributes setObject:shadow forKey:NSShadowAttributeName]
- }
-
- NSNumber *textColor = dictionary[colorKey];
- if (textColor && [textColor isKindOfClass:[NSNumber class]])
- {
- UIColor *color = [RCTConvert UIColor:textColor]
- [textAttributes setObject:color forKey:NSForegroundColorAttributeName]
- }
-
- NSString *fontFamily = dictionary[familyKey];
- if (![fontFamily isKindOfClass:[NSString class]]) {
- fontFamily = nil
- }
-
- NSString *fontWeight = dictionary[weightKey];
- if (![fontWeight isKindOfClass:[NSString class]]) {
- fontWeight = nil
- }
-
- NSNumber *fontSize = dictionary[sizeKey];
- if (![fontSize isKindOfClass:[NSNumber class]]) {
- fontSize = nil
- }
-
- NSString *fontStyle = dictionary[styleKey];
- if (![fontStyle isKindOfClass:[NSString class]]) {
- fontStyle = nil
- }
-
- UIFont *font = [RCTFont updateFont:baseFont withFamily:fontFamily size:fontSize weight:fontWeight style:fontStyle variant:nil scaleMultiplier:1];
-
- if (font && (fontStyle || fontWeight || fontSize || fontFamily)) {
- [textAttributes setObject:font forKey:NSFontAttributeName]
- }
-
- return textAttributes
- }
-
- + (NSMutableDictionary *)textAttributesFromDictionary:(NSDictionary *)dictionary withPrefix:(NSString *)prefix
- {
- return [self textAttributesFromDictionary:dictionary withPrefix:prefix baseFont:[UIFont systemFontOfSize:[UIFont systemFontSize]]]
- }
-
- + (NSString *)getTimestampString {
- long long milliseconds = (long long)([[NSDate date] timeIntervalSince1970] * 1000.0)
- return [NSString stringWithFormat:@"%lld", milliseconds]
- }
-
- @end
|