@abeman/react-native-nitro-blur 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -0
- package/NitroBlur.podspec +29 -0
- package/README.md +200 -0
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +120 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/nitroblur/NitroBlur.kt +229 -0
- package/android/src/main/java/com/margelo/nitro/nitroblur/NitroBlurPackage.kt +31 -0
- package/android/src/main/java/com/margelo/nitro/nitroblur/NitroBlurTarget.kt +149 -0
- package/android/src/main/java/com/margelo/nitro/nitroblur/NitroBlurTargetViewGroupManager.kt +47 -0
- package/android/src/main/java/com/margelo/nitro/nitroblur/TintStyle.kt +85 -0
- package/ios/NitroBlur.swift +173 -0
- package/ios/NitroBlurTarget.swift +5 -0
- package/lib/module/NitroBlur.nitro.js +4 -0
- package/lib/module/NitroBlur.nitro.js.map +1 -0
- package/lib/module/NitroBlurTarget.nitro.js +4 -0
- package/lib/module/NitroBlurTarget.nitro.js.map +1 -0
- package/lib/module/index.js +114 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/NitroBlur.nitro.d.ts +25 -0
- package/lib/typescript/src/NitroBlur.nitro.d.ts.map +1 -0
- package/lib/typescript/src/NitroBlurTarget.nitro.d.ts +7 -0
- package/lib/typescript/src/NitroBlurTarget.nitro.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +201 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/nitro.json +33 -0
- package/nitrogen/generated/android/c++/JBlurMethod.hpp +61 -0
- package/nitrogen/generated/android/c++/JBlurTint.hpp +115 -0
- package/nitrogen/generated/android/c++/JHybridNitroBlurSpec.cpp +99 -0
- package/nitrogen/generated/android/c++/JHybridNitroBlurSpec.hpp +72 -0
- package/nitrogen/generated/android/c++/JHybridNitroBlurTargetSpec.cpp +49 -0
- package/nitrogen/generated/android/c++/JHybridNitroBlurTargetSpec.hpp +63 -0
- package/nitrogen/generated/android/c++/views/JHybridNitroBlurStateUpdater.cpp +72 -0
- package/nitrogen/generated/android/c++/views/JHybridNitroBlurStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/c++/views/JHybridNitroBlurTargetStateUpdater.cpp +53 -0
- package/nitrogen/generated/android/c++/views/JHybridNitroBlurTargetStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/BlurMethod.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/BlurTint.kt +42 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/HybridNitroBlurSpec.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/HybridNitroBlurTargetSpec.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/nitroblurOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/views/HybridNitroBlurManager.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/views/HybridNitroBlurStateUpdater.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/views/HybridNitroBlurTargetManager.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/views/HybridNitroBlurTargetStateUpdater.kt +23 -0
- package/nitrogen/generated/android/nitroblur+autolinking.cmake +87 -0
- package/nitrogen/generated/android/nitroblur+autolinking.gradle +27 -0
- package/nitrogen/generated/android/nitroblurOnLoad.cpp +74 -0
- package/nitrogen/generated/android/nitroblurOnLoad.hpp +34 -0
- package/nitrogen/generated/ios/NitroBlur+autolinking.rb +60 -0
- package/nitrogen/generated/ios/NitroBlur-Swift-Cxx-Bridge.cpp +50 -0
- package/nitrogen/generated/ios/NitroBlur-Swift-Cxx-Bridge.hpp +57 -0
- package/nitrogen/generated/ios/NitroBlur-Swift-Cxx-Umbrella.hpp +52 -0
- package/nitrogen/generated/ios/NitroBlurAutolinking.mm +41 -0
- package/nitrogen/generated/ios/NitroBlurAutolinking.swift +38 -0
- package/nitrogen/generated/ios/c++/HybridNitroBlurSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNitroBlurSpecSwift.hpp +110 -0
- package/nitrogen/generated/ios/c++/HybridNitroBlurTargetSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNitroBlurTargetSpecSwift.hpp +75 -0
- package/nitrogen/generated/ios/c++/views/HybridNitroBlurComponent.mm +142 -0
- package/nitrogen/generated/ios/c++/views/HybridNitroBlurTargetComponent.mm +118 -0
- package/nitrogen/generated/ios/swift/BlurMethod.swift +44 -0
- package/nitrogen/generated/ios/swift/BlurTint.swift +116 -0
- package/nitrogen/generated/ios/swift/HybridNitroBlurSpec.swift +59 -0
- package/nitrogen/generated/ios/swift/HybridNitroBlurSpec_cxx.swift +200 -0
- package/nitrogen/generated/ios/swift/HybridNitroBlurTargetSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridNitroBlurTargetSpec_cxx.swift +147 -0
- package/nitrogen/generated/shared/c++/BlurMethod.hpp +80 -0
- package/nitrogen/generated/shared/c++/BlurTint.hpp +152 -0
- package/nitrogen/generated/shared/c++/HybridNitroBlurSpec.cpp +30 -0
- package/nitrogen/generated/shared/c++/HybridNitroBlurSpec.hpp +75 -0
- package/nitrogen/generated/shared/c++/HybridNitroBlurTargetSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridNitroBlurTargetSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/views/HybridNitroBlurComponent.cpp +127 -0
- package/nitrogen/generated/shared/c++/views/HybridNitroBlurComponent.hpp +116 -0
- package/nitrogen/generated/shared/c++/views/HybridNitroBlurTargetComponent.cpp +72 -0
- package/nitrogen/generated/shared/c++/views/HybridNitroBlurTargetComponent.hpp +109 -0
- package/nitrogen/generated/shared/json/NitroBlurConfig.json +14 -0
- package/nitrogen/generated/shared/json/NitroBlurTargetConfig.json +9 -0
- package/package.json +174 -0
- package/src/NitroBlur.nitro.ts +56 -0
- package/src/NitroBlurTarget.nitro.ts +13 -0
- package/src/index.tsx +215 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNitroBlurSpecSwift.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "HybridNitroBlurSpec.hpp"
|
|
11
|
+
|
|
12
|
+
// Forward declaration of `HybridNitroBlurSpec_cxx` to properly resolve imports.
|
|
13
|
+
namespace NitroBlur { class HybridNitroBlurSpec_cxx; }
|
|
14
|
+
|
|
15
|
+
// Forward declaration of `BlurTint` to properly resolve imports.
|
|
16
|
+
namespace margelo::nitro::nitroblur { enum class BlurTint; }
|
|
17
|
+
// Forward declaration of `BlurMethod` to properly resolve imports.
|
|
18
|
+
namespace margelo::nitro::nitroblur { enum class BlurMethod; }
|
|
19
|
+
|
|
20
|
+
#include "BlurTint.hpp"
|
|
21
|
+
#include "BlurMethod.hpp"
|
|
22
|
+
|
|
23
|
+
#include "NitroBlur-Swift-Cxx-Umbrella.hpp"
|
|
24
|
+
|
|
25
|
+
namespace margelo::nitro::nitroblur {
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The C++ part of HybridNitroBlurSpec_cxx.swift.
|
|
29
|
+
*
|
|
30
|
+
* HybridNitroBlurSpecSwift (C++) accesses HybridNitroBlurSpec_cxx (Swift), and might
|
|
31
|
+
* contain some additional bridging code for C++ <> Swift interop.
|
|
32
|
+
*
|
|
33
|
+
* Since this obviously introduces an overhead, I hope at some point in
|
|
34
|
+
* the future, HybridNitroBlurSpec_cxx can directly inherit from the C++ class HybridNitroBlurSpec
|
|
35
|
+
* to simplify the whole structure and memory management.
|
|
36
|
+
*/
|
|
37
|
+
class HybridNitroBlurSpecSwift: public virtual HybridNitroBlurSpec {
|
|
38
|
+
public:
|
|
39
|
+
// Constructor from a Swift instance
|
|
40
|
+
explicit HybridNitroBlurSpecSwift(const NitroBlur::HybridNitroBlurSpec_cxx& swiftPart):
|
|
41
|
+
HybridObject(HybridNitroBlurSpec::TAG),
|
|
42
|
+
_swiftPart(swiftPart) { }
|
|
43
|
+
|
|
44
|
+
public:
|
|
45
|
+
// Get the Swift part
|
|
46
|
+
inline NitroBlur::HybridNitroBlurSpec_cxx& getSwiftPart() noexcept {
|
|
47
|
+
return _swiftPart;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public:
|
|
51
|
+
inline size_t getExternalMemorySize() noexcept override {
|
|
52
|
+
return _swiftPart.getMemorySize();
|
|
53
|
+
}
|
|
54
|
+
bool equals(const std::shared_ptr<HybridObject>& other) override {
|
|
55
|
+
if (auto otherCast = std::dynamic_pointer_cast<HybridNitroBlurSpecSwift>(other)) {
|
|
56
|
+
return _swiftPart.equals(otherCast->_swiftPart);
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
void dispose() noexcept override {
|
|
61
|
+
_swiftPart.dispose();
|
|
62
|
+
}
|
|
63
|
+
std::string toString() override {
|
|
64
|
+
return _swiftPart.toString();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public:
|
|
68
|
+
// Properties
|
|
69
|
+
inline BlurTint getTint() noexcept override {
|
|
70
|
+
auto __result = _swiftPart.getTint();
|
|
71
|
+
return static_cast<BlurTint>(__result);
|
|
72
|
+
}
|
|
73
|
+
inline void setTint(BlurTint tint) noexcept override {
|
|
74
|
+
_swiftPart.setTint(static_cast<int>(tint));
|
|
75
|
+
}
|
|
76
|
+
inline double getIntensity() noexcept override {
|
|
77
|
+
return _swiftPart.getIntensity();
|
|
78
|
+
}
|
|
79
|
+
inline void setIntensity(double intensity) noexcept override {
|
|
80
|
+
_swiftPart.setIntensity(std::forward<decltype(intensity)>(intensity));
|
|
81
|
+
}
|
|
82
|
+
inline double getBlurReductionFactor() noexcept override {
|
|
83
|
+
return _swiftPart.getBlurReductionFactor();
|
|
84
|
+
}
|
|
85
|
+
inline void setBlurReductionFactor(double blurReductionFactor) noexcept override {
|
|
86
|
+
_swiftPart.setBlurReductionFactor(std::forward<decltype(blurReductionFactor)>(blurReductionFactor));
|
|
87
|
+
}
|
|
88
|
+
inline double getBlurTargetId() noexcept override {
|
|
89
|
+
return _swiftPart.getBlurTargetId();
|
|
90
|
+
}
|
|
91
|
+
inline void setBlurTargetId(double blurTargetId) noexcept override {
|
|
92
|
+
_swiftPart.setBlurTargetId(std::forward<decltype(blurTargetId)>(blurTargetId));
|
|
93
|
+
}
|
|
94
|
+
inline BlurMethod getBlurMethod() noexcept override {
|
|
95
|
+
auto __result = _swiftPart.getBlurMethod();
|
|
96
|
+
return static_cast<BlurMethod>(__result);
|
|
97
|
+
}
|
|
98
|
+
inline void setBlurMethod(BlurMethod blurMethod) noexcept override {
|
|
99
|
+
_swiftPart.setBlurMethod(static_cast<int>(blurMethod));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
public:
|
|
103
|
+
// Methods
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
private:
|
|
107
|
+
NitroBlur::HybridNitroBlurSpec_cxx _swiftPart;
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
} // namespace margelo::nitro::nitroblur
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNitroBlurTargetSpecSwift.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "HybridNitroBlurTargetSpecSwift.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::nitroblur {
|
|
11
|
+
} // namespace margelo::nitro::nitroblur
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNitroBlurTargetSpecSwift.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "HybridNitroBlurTargetSpec.hpp"
|
|
11
|
+
|
|
12
|
+
// Forward declaration of `HybridNitroBlurTargetSpec_cxx` to properly resolve imports.
|
|
13
|
+
namespace NitroBlur { class HybridNitroBlurTargetSpec_cxx; }
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
#include "NitroBlur-Swift-Cxx-Umbrella.hpp"
|
|
20
|
+
|
|
21
|
+
namespace margelo::nitro::nitroblur {
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The C++ part of HybridNitroBlurTargetSpec_cxx.swift.
|
|
25
|
+
*
|
|
26
|
+
* HybridNitroBlurTargetSpecSwift (C++) accesses HybridNitroBlurTargetSpec_cxx (Swift), and might
|
|
27
|
+
* contain some additional bridging code for C++ <> Swift interop.
|
|
28
|
+
*
|
|
29
|
+
* Since this obviously introduces an overhead, I hope at some point in
|
|
30
|
+
* the future, HybridNitroBlurTargetSpec_cxx can directly inherit from the C++ class HybridNitroBlurTargetSpec
|
|
31
|
+
* to simplify the whole structure and memory management.
|
|
32
|
+
*/
|
|
33
|
+
class HybridNitroBlurTargetSpecSwift: public virtual HybridNitroBlurTargetSpec {
|
|
34
|
+
public:
|
|
35
|
+
// Constructor from a Swift instance
|
|
36
|
+
explicit HybridNitroBlurTargetSpecSwift(const NitroBlur::HybridNitroBlurTargetSpec_cxx& swiftPart):
|
|
37
|
+
HybridObject(HybridNitroBlurTargetSpec::TAG),
|
|
38
|
+
_swiftPart(swiftPart) { }
|
|
39
|
+
|
|
40
|
+
public:
|
|
41
|
+
// Get the Swift part
|
|
42
|
+
inline NitroBlur::HybridNitroBlurTargetSpec_cxx& getSwiftPart() noexcept {
|
|
43
|
+
return _swiftPart;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline size_t getExternalMemorySize() noexcept override {
|
|
48
|
+
return _swiftPart.getMemorySize();
|
|
49
|
+
}
|
|
50
|
+
bool equals(const std::shared_ptr<HybridObject>& other) override {
|
|
51
|
+
if (auto otherCast = std::dynamic_pointer_cast<HybridNitroBlurTargetSpecSwift>(other)) {
|
|
52
|
+
return _swiftPart.equals(otherCast->_swiftPart);
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
void dispose() noexcept override {
|
|
57
|
+
_swiftPart.dispose();
|
|
58
|
+
}
|
|
59
|
+
std::string toString() override {
|
|
60
|
+
return _swiftPart.toString();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public:
|
|
64
|
+
// Properties
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
public:
|
|
68
|
+
// Methods
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
private:
|
|
72
|
+
NitroBlur::HybridNitroBlurTargetSpec_cxx _swiftPart;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
} // namespace margelo::nitro::nitroblur
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNitroBlurComponent.mm
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#import "HybridNitroBlurComponent.hpp"
|
|
9
|
+
#import <memory>
|
|
10
|
+
#import <react/renderer/componentregistry/ComponentDescriptorProvider.h>
|
|
11
|
+
#import <React/RCTViewComponentView.h>
|
|
12
|
+
#import <React/RCTComponentViewFactory.h>
|
|
13
|
+
#import <React/UIView+ComponentViewProtocol.h>
|
|
14
|
+
#import <NitroModules/NitroDefines.hpp>
|
|
15
|
+
#import <UIKit/UIKit.h>
|
|
16
|
+
|
|
17
|
+
#import "HybridNitroBlurSpecSwift.hpp"
|
|
18
|
+
#import "NitroBlur-Swift-Cxx-Umbrella.hpp"
|
|
19
|
+
|
|
20
|
+
#if __has_include(<cxxreact/ReactNativeVersion.h>)
|
|
21
|
+
#include <cxxreact/ReactNativeVersion.h>
|
|
22
|
+
#if REACT_NATIVE_VERSION_MINOR >= 82
|
|
23
|
+
#define ENABLE_RCT_COMPONENT_VIEW_INVALIDATE
|
|
24
|
+
#endif
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
using namespace facebook;
|
|
28
|
+
using namespace margelo::nitro::nitroblur;
|
|
29
|
+
using namespace margelo::nitro::nitroblur::views;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Represents the React Native View holder for the Nitro "NitroBlur" HybridView.
|
|
33
|
+
*/
|
|
34
|
+
@interface HybridNitroBlurComponent: RCTViewComponentView
|
|
35
|
+
+ (BOOL)shouldBeRecycled;
|
|
36
|
+
@end
|
|
37
|
+
|
|
38
|
+
@implementation HybridNitroBlurComponent {
|
|
39
|
+
std::shared_ptr<HybridNitroBlurSpecSwift> _hybridView;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
+ (void) load {
|
|
43
|
+
[super load];
|
|
44
|
+
[RCTComponentViewFactory.currentComponentViewFactory registerComponentViewClass:[HybridNitroBlurComponent class]];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
+ (react::ComponentDescriptorProvider) componentDescriptorProvider {
|
|
48
|
+
return react::concreteComponentDescriptorProvider<HybridNitroBlurComponentDescriptor>();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
- (instancetype) init {
|
|
52
|
+
if (self = [super init]) {
|
|
53
|
+
std::shared_ptr<HybridNitroBlurSpec> hybridView = NitroBlur::NitroBlurAutolinking::createNitroBlur();
|
|
54
|
+
_hybridView = std::dynamic_pointer_cast<HybridNitroBlurSpecSwift>(hybridView);
|
|
55
|
+
[self updateView];
|
|
56
|
+
}
|
|
57
|
+
return self;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
- (void) updateView {
|
|
61
|
+
// 1. Get Swift part
|
|
62
|
+
NitroBlur::HybridNitroBlurSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
63
|
+
|
|
64
|
+
// 2. Get UIView*
|
|
65
|
+
void* viewUnsafe = swiftPart.getView();
|
|
66
|
+
UIView* view = (__bridge_transfer UIView*) viewUnsafe;
|
|
67
|
+
|
|
68
|
+
// 3. Update RCTViewComponentView's [contentView]
|
|
69
|
+
[self setContentView:view];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
- (void) updateProps:(const std::shared_ptr<const react::Props>&)props
|
|
73
|
+
oldProps:(const std::shared_ptr<const react::Props>&)oldProps {
|
|
74
|
+
// 1. Downcast props
|
|
75
|
+
const auto& newViewPropsConst = *std::static_pointer_cast<HybridNitroBlurProps const>(props);
|
|
76
|
+
auto& newViewProps = const_cast<HybridNitroBlurProps&>(newViewPropsConst);
|
|
77
|
+
NitroBlur::HybridNitroBlurSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
78
|
+
|
|
79
|
+
// 2. Update each prop individually
|
|
80
|
+
swiftPart.beforeUpdate();
|
|
81
|
+
|
|
82
|
+
// tint: enum
|
|
83
|
+
if (newViewProps.tint.isDirty) {
|
|
84
|
+
swiftPart.setTint(static_cast<int>(newViewProps.tint.value));
|
|
85
|
+
newViewProps.tint.isDirty = false;
|
|
86
|
+
}
|
|
87
|
+
// intensity: number
|
|
88
|
+
if (newViewProps.intensity.isDirty) {
|
|
89
|
+
swiftPart.setIntensity(newViewProps.intensity.value);
|
|
90
|
+
newViewProps.intensity.isDirty = false;
|
|
91
|
+
}
|
|
92
|
+
// blurReductionFactor: number
|
|
93
|
+
if (newViewProps.blurReductionFactor.isDirty) {
|
|
94
|
+
swiftPart.setBlurReductionFactor(newViewProps.blurReductionFactor.value);
|
|
95
|
+
newViewProps.blurReductionFactor.isDirty = false;
|
|
96
|
+
}
|
|
97
|
+
// blurTargetId: number
|
|
98
|
+
if (newViewProps.blurTargetId.isDirty) {
|
|
99
|
+
swiftPart.setBlurTargetId(newViewProps.blurTargetId.value);
|
|
100
|
+
newViewProps.blurTargetId.isDirty = false;
|
|
101
|
+
}
|
|
102
|
+
// blurMethod: enum
|
|
103
|
+
if (newViewProps.blurMethod.isDirty) {
|
|
104
|
+
swiftPart.setBlurMethod(static_cast<int>(newViewProps.blurMethod.value));
|
|
105
|
+
newViewProps.blurMethod.isDirty = false;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
swiftPart.afterUpdate();
|
|
109
|
+
|
|
110
|
+
// 3. Update hybridRef if it changed
|
|
111
|
+
if (newViewProps.hybridRef.isDirty) {
|
|
112
|
+
// hybridRef changed - call it with new this
|
|
113
|
+
const auto& maybeFunc = newViewProps.hybridRef.value;
|
|
114
|
+
if (maybeFunc.has_value()) {
|
|
115
|
+
maybeFunc.value()(_hybridView);
|
|
116
|
+
}
|
|
117
|
+
newViewProps.hybridRef.isDirty = false;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// 4. Continue in base class
|
|
121
|
+
[super updateProps:props oldProps:oldProps];
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
+ (BOOL)shouldBeRecycled {
|
|
125
|
+
return NitroBlur::NitroBlurAutolinking::isNitroBlurRecyclable();
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
- (void)prepareForRecycle {
|
|
129
|
+
[super prepareForRecycle];
|
|
130
|
+
NitroBlur::HybridNitroBlurSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
131
|
+
swiftPart.maybePrepareForRecycle();
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
#ifdef ENABLE_RCT_COMPONENT_VIEW_INVALIDATE
|
|
135
|
+
- (void)invalidate {
|
|
136
|
+
NitroBlur::HybridNitroBlurSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
137
|
+
swiftPart.onDropView();
|
|
138
|
+
[super invalidate];
|
|
139
|
+
}
|
|
140
|
+
#endif
|
|
141
|
+
|
|
142
|
+
@end
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNitroBlurTargetComponent.mm
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#import "HybridNitroBlurTargetComponent.hpp"
|
|
9
|
+
#import <memory>
|
|
10
|
+
#import <react/renderer/componentregistry/ComponentDescriptorProvider.h>
|
|
11
|
+
#import <React/RCTViewComponentView.h>
|
|
12
|
+
#import <React/RCTComponentViewFactory.h>
|
|
13
|
+
#import <React/UIView+ComponentViewProtocol.h>
|
|
14
|
+
#import <NitroModules/NitroDefines.hpp>
|
|
15
|
+
#import <UIKit/UIKit.h>
|
|
16
|
+
|
|
17
|
+
#import "HybridNitroBlurTargetSpecSwift.hpp"
|
|
18
|
+
#import "NitroBlur-Swift-Cxx-Umbrella.hpp"
|
|
19
|
+
|
|
20
|
+
#if __has_include(<cxxreact/ReactNativeVersion.h>)
|
|
21
|
+
#include <cxxreact/ReactNativeVersion.h>
|
|
22
|
+
#if REACT_NATIVE_VERSION_MINOR >= 82
|
|
23
|
+
#define ENABLE_RCT_COMPONENT_VIEW_INVALIDATE
|
|
24
|
+
#endif
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
using namespace facebook;
|
|
28
|
+
using namespace margelo::nitro::nitroblur;
|
|
29
|
+
using namespace margelo::nitro::nitroblur::views;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Represents the React Native View holder for the Nitro "NitroBlurTarget" HybridView.
|
|
33
|
+
*/
|
|
34
|
+
@interface HybridNitroBlurTargetComponent: RCTViewComponentView
|
|
35
|
+
+ (BOOL)shouldBeRecycled;
|
|
36
|
+
@end
|
|
37
|
+
|
|
38
|
+
@implementation HybridNitroBlurTargetComponent {
|
|
39
|
+
std::shared_ptr<HybridNitroBlurTargetSpecSwift> _hybridView;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
+ (void) load {
|
|
43
|
+
[super load];
|
|
44
|
+
[RCTComponentViewFactory.currentComponentViewFactory registerComponentViewClass:[HybridNitroBlurTargetComponent class]];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
+ (react::ComponentDescriptorProvider) componentDescriptorProvider {
|
|
48
|
+
return react::concreteComponentDescriptorProvider<HybridNitroBlurTargetComponentDescriptor>();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
- (instancetype) init {
|
|
52
|
+
if (self = [super init]) {
|
|
53
|
+
std::shared_ptr<HybridNitroBlurTargetSpec> hybridView = NitroBlur::NitroBlurAutolinking::createNitroBlurTarget();
|
|
54
|
+
_hybridView = std::dynamic_pointer_cast<HybridNitroBlurTargetSpecSwift>(hybridView);
|
|
55
|
+
[self updateView];
|
|
56
|
+
}
|
|
57
|
+
return self;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
- (void) updateView {
|
|
61
|
+
// 1. Get Swift part
|
|
62
|
+
NitroBlur::HybridNitroBlurTargetSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
63
|
+
|
|
64
|
+
// 2. Get UIView*
|
|
65
|
+
void* viewUnsafe = swiftPart.getView();
|
|
66
|
+
UIView* view = (__bridge_transfer UIView*) viewUnsafe;
|
|
67
|
+
|
|
68
|
+
// 3. Update RCTViewComponentView's [contentView]
|
|
69
|
+
[self setContentView:view];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
- (void) updateProps:(const std::shared_ptr<const react::Props>&)props
|
|
73
|
+
oldProps:(const std::shared_ptr<const react::Props>&)oldProps {
|
|
74
|
+
// 1. Downcast props
|
|
75
|
+
const auto& newViewPropsConst = *std::static_pointer_cast<HybridNitroBlurTargetProps const>(props);
|
|
76
|
+
auto& newViewProps = const_cast<HybridNitroBlurTargetProps&>(newViewPropsConst);
|
|
77
|
+
NitroBlur::HybridNitroBlurTargetSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
78
|
+
|
|
79
|
+
// 2. Update each prop individually
|
|
80
|
+
swiftPart.beforeUpdate();
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
swiftPart.afterUpdate();
|
|
85
|
+
|
|
86
|
+
// 3. Update hybridRef if it changed
|
|
87
|
+
if (newViewProps.hybridRef.isDirty) {
|
|
88
|
+
// hybridRef changed - call it with new this
|
|
89
|
+
const auto& maybeFunc = newViewProps.hybridRef.value;
|
|
90
|
+
if (maybeFunc.has_value()) {
|
|
91
|
+
maybeFunc.value()(_hybridView);
|
|
92
|
+
}
|
|
93
|
+
newViewProps.hybridRef.isDirty = false;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// 4. Continue in base class
|
|
97
|
+
[super updateProps:props oldProps:oldProps];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
+ (BOOL)shouldBeRecycled {
|
|
101
|
+
return NitroBlur::NitroBlurAutolinking::isNitroBlurTargetRecyclable();
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
- (void)prepareForRecycle {
|
|
105
|
+
[super prepareForRecycle];
|
|
106
|
+
NitroBlur::HybridNitroBlurTargetSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
107
|
+
swiftPart.maybePrepareForRecycle();
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
#ifdef ENABLE_RCT_COMPONENT_VIEW_INVALIDATE
|
|
111
|
+
- (void)invalidate {
|
|
112
|
+
NitroBlur::HybridNitroBlurTargetSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
113
|
+
swiftPart.onDropView();
|
|
114
|
+
[super invalidate];
|
|
115
|
+
}
|
|
116
|
+
#endif
|
|
117
|
+
|
|
118
|
+
@end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// BlurMethod.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Represents the JS union `BlurMethod`, backed by a C++ enum.
|
|
10
|
+
*/
|
|
11
|
+
public typealias BlurMethod = margelo.nitro.nitroblur.BlurMethod
|
|
12
|
+
|
|
13
|
+
public extension BlurMethod {
|
|
14
|
+
/**
|
|
15
|
+
* Get a BlurMethod for the given String value, or
|
|
16
|
+
* return `nil` if the given value was invalid/unknown.
|
|
17
|
+
*/
|
|
18
|
+
init?(fromString string: String) {
|
|
19
|
+
switch string {
|
|
20
|
+
case "none":
|
|
21
|
+
self = .none
|
|
22
|
+
case "dimezisBlurView":
|
|
23
|
+
self = .dimezisblurview
|
|
24
|
+
case "dimezisBlurViewSdk31Plus":
|
|
25
|
+
self = .dimezisblurviewsdk31plus
|
|
26
|
+
default:
|
|
27
|
+
return nil
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Get the String value this BlurMethod represents.
|
|
33
|
+
*/
|
|
34
|
+
var stringValue: String {
|
|
35
|
+
switch self {
|
|
36
|
+
case .none:
|
|
37
|
+
return "none"
|
|
38
|
+
case .dimezisblurview:
|
|
39
|
+
return "dimezisBlurView"
|
|
40
|
+
case .dimezisblurviewsdk31plus:
|
|
41
|
+
return "dimezisBlurViewSdk31Plus"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// BlurTint.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Represents the JS union `BlurTint`, backed by a C++ enum.
|
|
10
|
+
*/
|
|
11
|
+
public typealias BlurTint = margelo.nitro.nitroblur.BlurTint
|
|
12
|
+
|
|
13
|
+
public extension BlurTint {
|
|
14
|
+
/**
|
|
15
|
+
* Get a BlurTint for the given String value, or
|
|
16
|
+
* return `nil` if the given value was invalid/unknown.
|
|
17
|
+
*/
|
|
18
|
+
init?(fromString string: String) {
|
|
19
|
+
switch string {
|
|
20
|
+
case "light":
|
|
21
|
+
self = .light
|
|
22
|
+
case "dark":
|
|
23
|
+
self = .dark
|
|
24
|
+
case "default":
|
|
25
|
+
self = .default
|
|
26
|
+
case "extraLight":
|
|
27
|
+
self = .extralight
|
|
28
|
+
case "regular":
|
|
29
|
+
self = .regular
|
|
30
|
+
case "prominent":
|
|
31
|
+
self = .prominent
|
|
32
|
+
case "systemUltraThinMaterial":
|
|
33
|
+
self = .systemultrathinmaterial
|
|
34
|
+
case "systemThinMaterial":
|
|
35
|
+
self = .systemthinmaterial
|
|
36
|
+
case "systemMaterial":
|
|
37
|
+
self = .systemmaterial
|
|
38
|
+
case "systemThickMaterial":
|
|
39
|
+
self = .systemthickmaterial
|
|
40
|
+
case "systemChromeMaterial":
|
|
41
|
+
self = .systemchromematerial
|
|
42
|
+
case "systemUltraThinMaterialLight":
|
|
43
|
+
self = .systemultrathinmateriallight
|
|
44
|
+
case "systemThinMaterialLight":
|
|
45
|
+
self = .systemthinmateriallight
|
|
46
|
+
case "systemMaterialLight":
|
|
47
|
+
self = .systemmateriallight
|
|
48
|
+
case "systemThickMaterialLight":
|
|
49
|
+
self = .systemthickmateriallight
|
|
50
|
+
case "systemChromeMaterialLight":
|
|
51
|
+
self = .systemchromemateriallight
|
|
52
|
+
case "systemUltraThinMaterialDark":
|
|
53
|
+
self = .systemultrathinmaterialdark
|
|
54
|
+
case "systemThinMaterialDark":
|
|
55
|
+
self = .systemthinmaterialdark
|
|
56
|
+
case "systemMaterialDark":
|
|
57
|
+
self = .systemmaterialdark
|
|
58
|
+
case "systemThickMaterialDark":
|
|
59
|
+
self = .systemthickmaterialdark
|
|
60
|
+
case "systemChromeMaterialDark":
|
|
61
|
+
self = .systemchromematerialdark
|
|
62
|
+
default:
|
|
63
|
+
return nil
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Get the String value this BlurTint represents.
|
|
69
|
+
*/
|
|
70
|
+
var stringValue: String {
|
|
71
|
+
switch self {
|
|
72
|
+
case .light:
|
|
73
|
+
return "light"
|
|
74
|
+
case .dark:
|
|
75
|
+
return "dark"
|
|
76
|
+
case .default:
|
|
77
|
+
return "default"
|
|
78
|
+
case .extralight:
|
|
79
|
+
return "extraLight"
|
|
80
|
+
case .regular:
|
|
81
|
+
return "regular"
|
|
82
|
+
case .prominent:
|
|
83
|
+
return "prominent"
|
|
84
|
+
case .systemultrathinmaterial:
|
|
85
|
+
return "systemUltraThinMaterial"
|
|
86
|
+
case .systemthinmaterial:
|
|
87
|
+
return "systemThinMaterial"
|
|
88
|
+
case .systemmaterial:
|
|
89
|
+
return "systemMaterial"
|
|
90
|
+
case .systemthickmaterial:
|
|
91
|
+
return "systemThickMaterial"
|
|
92
|
+
case .systemchromematerial:
|
|
93
|
+
return "systemChromeMaterial"
|
|
94
|
+
case .systemultrathinmateriallight:
|
|
95
|
+
return "systemUltraThinMaterialLight"
|
|
96
|
+
case .systemthinmateriallight:
|
|
97
|
+
return "systemThinMaterialLight"
|
|
98
|
+
case .systemmateriallight:
|
|
99
|
+
return "systemMaterialLight"
|
|
100
|
+
case .systemthickmateriallight:
|
|
101
|
+
return "systemThickMaterialLight"
|
|
102
|
+
case .systemchromemateriallight:
|
|
103
|
+
return "systemChromeMaterialLight"
|
|
104
|
+
case .systemultrathinmaterialdark:
|
|
105
|
+
return "systemUltraThinMaterialDark"
|
|
106
|
+
case .systemthinmaterialdark:
|
|
107
|
+
return "systemThinMaterialDark"
|
|
108
|
+
case .systemmaterialdark:
|
|
109
|
+
return "systemMaterialDark"
|
|
110
|
+
case .systemthickmaterialdark:
|
|
111
|
+
return "systemThickMaterialDark"
|
|
112
|
+
case .systemchromematerialdark:
|
|
113
|
+
return "systemChromeMaterialDark"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNitroBlurSpec.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
/// See ``HybridNitroBlurSpec``
|
|
11
|
+
public protocol HybridNitroBlurSpec_protocol: HybridObject, HybridView {
|
|
12
|
+
// Properties
|
|
13
|
+
var tint: BlurTint { get set }
|
|
14
|
+
var intensity: Double { get set }
|
|
15
|
+
var blurReductionFactor: Double { get set }
|
|
16
|
+
var blurTargetId: Double { get set }
|
|
17
|
+
var blurMethod: BlurMethod { get set }
|
|
18
|
+
|
|
19
|
+
// Methods
|
|
20
|
+
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public extension HybridNitroBlurSpec_protocol {
|
|
24
|
+
/// Default implementation of ``HybridObject.toString``
|
|
25
|
+
func toString() -> String {
|
|
26
|
+
return "[HybridObject NitroBlur]"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/// See ``HybridNitroBlurSpec``
|
|
31
|
+
open class HybridNitroBlurSpec_base {
|
|
32
|
+
private weak var cxxWrapper: HybridNitroBlurSpec_cxx? = nil
|
|
33
|
+
public init() { }
|
|
34
|
+
public func getCxxWrapper() -> HybridNitroBlurSpec_cxx {
|
|
35
|
+
#if DEBUG
|
|
36
|
+
guard self is any HybridNitroBlurSpec else {
|
|
37
|
+
fatalError("`self` is not a `HybridNitroBlurSpec`! Did you accidentally inherit from `HybridNitroBlurSpec_base` instead of `HybridNitroBlurSpec`?")
|
|
38
|
+
}
|
|
39
|
+
#endif
|
|
40
|
+
if let cxxWrapper = self.cxxWrapper {
|
|
41
|
+
return cxxWrapper
|
|
42
|
+
} else {
|
|
43
|
+
let cxxWrapper = HybridNitroBlurSpec_cxx(self as! any HybridNitroBlurSpec)
|
|
44
|
+
self.cxxWrapper = cxxWrapper
|
|
45
|
+
return cxxWrapper
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* A Swift base-protocol representing the NitroBlur HybridObject.
|
|
52
|
+
* Implement this protocol to create Swift-based instances of NitroBlur.
|
|
53
|
+
* ```swift
|
|
54
|
+
* class HybridNitroBlur : HybridNitroBlurSpec {
|
|
55
|
+
* // ...
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
public typealias HybridNitroBlurSpec = HybridNitroBlurSpec_protocol & HybridNitroBlurSpec_base
|