UNPKG

1.87 kBPlain TextView Raw
1// Copyright 2016-present 650 Industries. All rights reserved.
2
3#import <EXBlur/EXBlurView.h>
4#import <EXBlur/EXBlurViewManager.h>
5#import <UMCore/UMUIManager.h>
6
7@interface EXBlurViewManager ()
8
9@property (weak, nonatomic) UMModuleRegistry *moduleRegistry;
10
11@end
12
13@implementation EXBlurViewManager
14
15UM_EXPORT_MODULE(ExpoBlurViewManager);
16
17- (void)setModuleRegistry:(UMModuleRegistry *)moduleRegistry {
18 _moduleRegistry = moduleRegistry;
19}
20
21- (UIView *)view
22{
23 return [[EXBlurView alloc] init];
24}
25
26- (NSString *)viewName
27{
28 return @"ExpoBlurView";
29}
30
31UM_VIEW_PROPERTY(tint, NSString *, EXBlurView)
32{
33 [view setTint:value];
34 [view didSetProps:@[@"tint"]];
35}
36
37UM_VIEW_PROPERTY(intensity, NSNumber *, EXBlurView)
38{
39 [view setIntensity:value];
40 [view didSetProps:@[@"intensity"]];
41}
42
43UM_EXPORT_METHOD_AS(updateProps,
44 updateProps:(NSDictionary *)props
45 onViewOfId:(id)viewId
46 resolve:(UMPromiseResolveBlock)resolver
47 reject:(UMPromiseRejectBlock)rejecter)
48{
49 [[_moduleRegistry getModuleImplementingProtocol:@protocol(UMUIManager)] executeUIBlock:^(id view) {
50 if ([view isKindOfClass:[EXBlurView class]]) {
51 EXBlurView *blurView = view;
52 NSMutableArray *changedProps = [NSMutableArray new];
53 if (props[@"intensity"] && ![props[@"intensity"] isEqual:blurView.intensity]) {
54 [blurView setIntensity:props[@"intensity"]];
55 [changedProps addObject:@"intensity"];
56 }
57 if (props[@"tint"] && ![props[@"tint"] isEqual:blurView.tint]) {
58 [blurView setTint:props[@"tint"]];
59 [changedProps addObject:@"tint"];
60 }
61 [blurView didSetProps:changedProps];
62 resolver([NSNull null]);
63 } else {
64 rejecter(@"E_INVALID_VIEW", @"Invalid view found for requested tag", nil);
65 }
66 } forView:viewId ofClass:[EXBlurView class]];
67}
68
69@end