@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.
Files changed (86) hide show
  1. package/LICENSE +20 -0
  2. package/NitroBlur.podspec +29 -0
  3. package/README.md +200 -0
  4. package/android/CMakeLists.txt +24 -0
  5. package/android/build.gradle +120 -0
  6. package/android/src/main/AndroidManifest.xml +2 -0
  7. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  8. package/android/src/main/java/com/margelo/nitro/nitroblur/NitroBlur.kt +229 -0
  9. package/android/src/main/java/com/margelo/nitro/nitroblur/NitroBlurPackage.kt +31 -0
  10. package/android/src/main/java/com/margelo/nitro/nitroblur/NitroBlurTarget.kt +149 -0
  11. package/android/src/main/java/com/margelo/nitro/nitroblur/NitroBlurTargetViewGroupManager.kt +47 -0
  12. package/android/src/main/java/com/margelo/nitro/nitroblur/TintStyle.kt +85 -0
  13. package/ios/NitroBlur.swift +173 -0
  14. package/ios/NitroBlurTarget.swift +5 -0
  15. package/lib/module/NitroBlur.nitro.js +4 -0
  16. package/lib/module/NitroBlur.nitro.js.map +1 -0
  17. package/lib/module/NitroBlurTarget.nitro.js +4 -0
  18. package/lib/module/NitroBlurTarget.nitro.js.map +1 -0
  19. package/lib/module/index.js +114 -0
  20. package/lib/module/index.js.map +1 -0
  21. package/lib/module/package.json +1 -0
  22. package/lib/typescript/package.json +1 -0
  23. package/lib/typescript/src/NitroBlur.nitro.d.ts +25 -0
  24. package/lib/typescript/src/NitroBlur.nitro.d.ts.map +1 -0
  25. package/lib/typescript/src/NitroBlurTarget.nitro.d.ts +7 -0
  26. package/lib/typescript/src/NitroBlurTarget.nitro.d.ts.map +1 -0
  27. package/lib/typescript/src/index.d.ts +201 -0
  28. package/lib/typescript/src/index.d.ts.map +1 -0
  29. package/nitro.json +33 -0
  30. package/nitrogen/generated/android/c++/JBlurMethod.hpp +61 -0
  31. package/nitrogen/generated/android/c++/JBlurTint.hpp +115 -0
  32. package/nitrogen/generated/android/c++/JHybridNitroBlurSpec.cpp +99 -0
  33. package/nitrogen/generated/android/c++/JHybridNitroBlurSpec.hpp +72 -0
  34. package/nitrogen/generated/android/c++/JHybridNitroBlurTargetSpec.cpp +49 -0
  35. package/nitrogen/generated/android/c++/JHybridNitroBlurTargetSpec.hpp +63 -0
  36. package/nitrogen/generated/android/c++/views/JHybridNitroBlurStateUpdater.cpp +72 -0
  37. package/nitrogen/generated/android/c++/views/JHybridNitroBlurStateUpdater.hpp +49 -0
  38. package/nitrogen/generated/android/c++/views/JHybridNitroBlurTargetStateUpdater.cpp +53 -0
  39. package/nitrogen/generated/android/c++/views/JHybridNitroBlurTargetStateUpdater.hpp +49 -0
  40. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/BlurMethod.kt +24 -0
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/BlurTint.kt +42 -0
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/HybridNitroBlurSpec.kt +81 -0
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/HybridNitroBlurTargetSpec.kt +53 -0
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/nitroblurOnLoad.kt +35 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/views/HybridNitroBlurManager.kt +80 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/views/HybridNitroBlurStateUpdater.kt +23 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/views/HybridNitroBlurTargetManager.kt +80 -0
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroblur/views/HybridNitroBlurTargetStateUpdater.kt +23 -0
  49. package/nitrogen/generated/android/nitroblur+autolinking.cmake +87 -0
  50. package/nitrogen/generated/android/nitroblur+autolinking.gradle +27 -0
  51. package/nitrogen/generated/android/nitroblurOnLoad.cpp +74 -0
  52. package/nitrogen/generated/android/nitroblurOnLoad.hpp +34 -0
  53. package/nitrogen/generated/ios/NitroBlur+autolinking.rb +60 -0
  54. package/nitrogen/generated/ios/NitroBlur-Swift-Cxx-Bridge.cpp +50 -0
  55. package/nitrogen/generated/ios/NitroBlur-Swift-Cxx-Bridge.hpp +57 -0
  56. package/nitrogen/generated/ios/NitroBlur-Swift-Cxx-Umbrella.hpp +52 -0
  57. package/nitrogen/generated/ios/NitroBlurAutolinking.mm +41 -0
  58. package/nitrogen/generated/ios/NitroBlurAutolinking.swift +38 -0
  59. package/nitrogen/generated/ios/c++/HybridNitroBlurSpecSwift.cpp +11 -0
  60. package/nitrogen/generated/ios/c++/HybridNitroBlurSpecSwift.hpp +110 -0
  61. package/nitrogen/generated/ios/c++/HybridNitroBlurTargetSpecSwift.cpp +11 -0
  62. package/nitrogen/generated/ios/c++/HybridNitroBlurTargetSpecSwift.hpp +75 -0
  63. package/nitrogen/generated/ios/c++/views/HybridNitroBlurComponent.mm +142 -0
  64. package/nitrogen/generated/ios/c++/views/HybridNitroBlurTargetComponent.mm +118 -0
  65. package/nitrogen/generated/ios/swift/BlurMethod.swift +44 -0
  66. package/nitrogen/generated/ios/swift/BlurTint.swift +116 -0
  67. package/nitrogen/generated/ios/swift/HybridNitroBlurSpec.swift +59 -0
  68. package/nitrogen/generated/ios/swift/HybridNitroBlurSpec_cxx.swift +200 -0
  69. package/nitrogen/generated/ios/swift/HybridNitroBlurTargetSpec.swift +55 -0
  70. package/nitrogen/generated/ios/swift/HybridNitroBlurTargetSpec_cxx.swift +147 -0
  71. package/nitrogen/generated/shared/c++/BlurMethod.hpp +80 -0
  72. package/nitrogen/generated/shared/c++/BlurTint.hpp +152 -0
  73. package/nitrogen/generated/shared/c++/HybridNitroBlurSpec.cpp +30 -0
  74. package/nitrogen/generated/shared/c++/HybridNitroBlurSpec.hpp +75 -0
  75. package/nitrogen/generated/shared/c++/HybridNitroBlurTargetSpec.cpp +21 -0
  76. package/nitrogen/generated/shared/c++/HybridNitroBlurTargetSpec.hpp +62 -0
  77. package/nitrogen/generated/shared/c++/views/HybridNitroBlurComponent.cpp +127 -0
  78. package/nitrogen/generated/shared/c++/views/HybridNitroBlurComponent.hpp +116 -0
  79. package/nitrogen/generated/shared/c++/views/HybridNitroBlurTargetComponent.cpp +72 -0
  80. package/nitrogen/generated/shared/c++/views/HybridNitroBlurTargetComponent.hpp +109 -0
  81. package/nitrogen/generated/shared/json/NitroBlurConfig.json +14 -0
  82. package/nitrogen/generated/shared/json/NitroBlurTargetConfig.json +9 -0
  83. package/package.json +174 -0
  84. package/src/NitroBlur.nitro.ts +56 -0
  85. package/src/NitroBlurTarget.nitro.ts +13 -0
  86. 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