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 |
|
15 | UM_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 |
|
31 | UM_VIEW_PROPERTY(tint, NSString *, EXBlurView)
|
32 | {
|
33 | [view setTint:value];
|
34 | [view didSetProps:@[@"tint"]];
|
35 | }
|
36 |
|
37 | UM_VIEW_PROPERTY(intensity, NSNumber *, EXBlurView)
|
38 | {
|
39 | [view setIntensity:value];
|
40 | [view didSetProps:@[@"intensity"]];
|
41 | }
|
42 |
|
43 | UM_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
|