2015-03-23 22:07:33 +00:00
|
|
|
/**
|
|
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
* This source code is licensed under the BSD-style license found in the
|
|
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
|
|
*/
|
2015-01-30 01:10:49 +00:00
|
|
|
|
|
|
|
#import "RCTStaticImageManager.h"
|
|
|
|
|
|
|
|
#import <UIKit/UIKit.h>
|
|
|
|
|
|
|
|
#import "RCTConvert.h"
|
2015-03-06 17:54:10 +00:00
|
|
|
#import "RCTGIFImage.h"
|
2015-03-11 02:11:28 +00:00
|
|
|
#import "RCTImageLoader.h"
|
2015-03-06 17:54:10 +00:00
|
|
|
#import "RCTStaticImage.h"
|
2015-01-30 01:10:49 +00:00
|
|
|
|
|
|
|
@implementation RCTStaticImageManager
|
|
|
|
|
2015-02-04 00:15:20 +00:00
|
|
|
- (UIView *)view
|
2015-01-30 01:10:49 +00:00
|
|
|
{
|
|
|
|
return [[RCTStaticImage alloc] init];
|
|
|
|
}
|
|
|
|
|
2015-03-26 13:32:01 +00:00
|
|
|
RCT_EXPORT_VIEW_PROPERTY(capInsets, UIEdgeInsets)
|
|
|
|
RCT_REMAP_VIEW_PROPERTY(resizeMode, contentMode, UIViewContentMode)
|
|
|
|
RCT_CUSTOM_VIEW_PROPERTY(src, NSURL, RCTStaticImage)
|
2015-02-04 00:15:20 +00:00
|
|
|
{
|
|
|
|
if (json) {
|
2015-02-06 23:43:59 +00:00
|
|
|
if ([[[json description] pathExtension] caseInsensitiveCompare:@"gif"] == NSOrderedSame) {
|
2015-03-06 17:54:10 +00:00
|
|
|
[view.layer addAnimation:RCTGIFImageWithFileURL([RCTConvert NSURL:json]) forKey:@"contents"];
|
2015-02-04 00:15:20 +00:00
|
|
|
} else {
|
|
|
|
view.image = [RCTConvert UIImage:json];
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
view.image = defaultView.image;
|
|
|
|
}
|
|
|
|
}
|
2015-03-26 13:32:01 +00:00
|
|
|
RCT_CUSTOM_VIEW_PROPERTY(tintColor, UIColor, RCTStaticImage)
|
2015-01-30 01:10:49 +00:00
|
|
|
{
|
|
|
|
if (json) {
|
|
|
|
view.renderingMode = UIImageRenderingModeAlwaysTemplate;
|
|
|
|
view.tintColor = [RCTConvert UIColor:json];
|
|
|
|
} else {
|
|
|
|
view.renderingMode = defaultView.renderingMode;
|
|
|
|
view.tintColor = defaultView.tintColor;
|
|
|
|
}
|
|
|
|
}
|
2015-03-26 13:32:01 +00:00
|
|
|
RCT_CUSTOM_VIEW_PROPERTY(imageTag, NSString, RCTStaticImage)
|
2015-03-11 02:11:28 +00:00
|
|
|
{
|
|
|
|
if (json) {
|
|
|
|
[RCTImageLoader loadImageWithTag:[RCTConvert NSString:json] callback:^(NSError *error, UIImage *image) {
|
|
|
|
if (error) {
|
|
|
|
RCTLogWarn(@"%@", error.localizedDescription);
|
|
|
|
}
|
2015-03-26 13:32:01 +00:00
|
|
|
view.image = image;
|
2015-03-11 02:11:28 +00:00
|
|
|
}];
|
|
|
|
} else {
|
|
|
|
view.image = defaultView.image;
|
|
|
|
}
|
|
|
|
}
|
2015-01-30 01:10:49 +00:00
|
|
|
|
|
|
|
@end
|