react-native-list 1.0.1 → 2.0.0-alpha.2
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/README.md +186 -32
- package/ReactNativeList.podspec +39 -0
- package/android/CMakeLists.txt +48 -0
- package/android/build.gradle +151 -0
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/JHybridUiListModule.cpp +192 -0
- package/android/src/main/cpp/JHybridUiListModule.h +50 -0
- package/android/src/main/cpp/cpp-adapter.cpp +12 -0
- package/android/src/main/java/com/hannojg/reactnativelist/ReactNativeListPackage.kt +27 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridNativeListDataSource.kt +146 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridNativeListLayout.kt +86 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridUiListModule.kt +116 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridUiListView.kt +410 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridViewHolder.kt +9 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/NativeListAdapter.kt +217 -0
- package/ios/DataSource/HybridNativeListDataSource.swift +213 -0
- package/ios/HybridObjects/HybridUiListModule.swift +49 -0
- package/ios/HybridObjects/HybridViewHolder.swift +16 -0
- package/ios/Layout/HybridNativeListLayout.swift +128 -0
- package/ios/Utils/ErrorUtils.h +26 -0
- package/ios/Utils/HybridIOSWorkletsModuleProxyHolder.swift +10 -0
- package/ios/Utils/SurfaceHelper.h +20 -0
- package/ios/Utils/SurfaceHelper.mm +144 -0
- package/ios/Utils/SurfacePresenterRegistry.h +17 -0
- package/ios/Utils/SurfacePresenterRegistry.m +31 -0
- package/ios/Utils/TurboModuleInstaller.h +18 -0
- package/ios/Utils/TurboModuleInstaller.mm +267 -0
- package/ios/Views/HostCell.swift +216 -0
- package/ios/Views/HybridUiListView.swift +695 -0
- package/lib/ReactFabricMirror.d.ts +4 -0
- package/lib/ReactFabricMirror.js +515 -0
- package/lib/UiListModule.d.ts +2 -0
- package/lib/UiListModule.js +2 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.js +21 -0
- package/lib/privateGlobals.d.ts +14 -0
- package/lib/privateGlobals.js +2 -0
- package/lib/renderer/RenderHelper.d.ts +2 -0
- package/lib/renderer/RenderHelper.js +11 -0
- package/lib/renderer/UiManagerHelper.d.ts +2 -0
- package/lib/renderer/UiManagerHelper.js +2 -0
- package/lib/renderer/fabric/RenderHelper.d.ts +2 -0
- package/lib/renderer/fabric/RenderHelper.js +11 -0
- package/lib/renderer/fabric/UiManagerHelper.d.ts +2 -0
- package/lib/renderer/fabric/UiManagerHelper.js +2 -0
- package/lib/renderer/react/ReactFabricMirror.d.ts +4 -0
- package/lib/renderer/react/ReactFabricMirror.js +515 -0
- package/lib/renderer/react/ReactFabricRenderer.d.ts +3 -0
- package/lib/renderer/react/ReactFabricRenderer.js +9 -0
- package/lib/specs/IOSWorkletsModuleProxyHolder.nitro.d.ts +6 -0
- package/lib/specs/IOSWorkletsModuleProxyHolder.nitro.js +1 -0
- package/lib/specs/UIListModule.nitro.d.ts +9 -0
- package/lib/specs/UIListModule.nitro.js +1 -0
- package/lib/specs/UIManagerHelper.nitro.d.ts +13 -0
- package/lib/specs/UIManagerHelper.nitro.js +1 -0
- package/lib/specs/UiListView.nitro.d.ts +20 -0
- package/lib/specs/UiListView.nitro.js +1 -0
- package/lib/specs/ViewHolder.nitro.d.ts +6 -0
- package/lib/specs/ViewHolder.nitro.js +1 -0
- package/lib/views/List.d.ts +35 -0
- package/lib/views/List.js +225 -0
- package/lib/views/UiListHostComponent.d.ts +2 -0
- package/lib/views/UiListHostComponent.js +3 -0
- package/metro/RendererProxyThreadSwitch.js +66 -0
- package/metro-config.d.ts +1 -0
- package/metro-config.js +124 -0
- package/nitro.json +47 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/ReactNativeList+autolinking.cmake +99 -0
- package/nitrogen/generated/android/ReactNativeList+autolinking.gradle +27 -0
- package/nitrogen/generated/android/ReactNativeListOnLoad.cpp +156 -0
- package/nitrogen/generated/android/ReactNativeListOnLoad.hpp +34 -0
- package/nitrogen/generated/android/c++/JFunc_bool_NativeListItem_NativeListItem.hpp +83 -0
- package/nitrogen/generated/android/c++/JFunc_bool_double_NativeListItem_double.hpp +83 -0
- package/nitrogen/generated/android/c++/JFunc_double_std__string.hpp +78 -0
- package/nitrogen/generated/android/c++/JHybridIOSWorkletsModuleProxyHolderSpec.cpp +49 -0
- package/nitrogen/generated/android/c++/JHybridIOSWorkletsModuleProxyHolderSpec.hpp +63 -0
- package/nitrogen/generated/android/c++/JHybridNativeLinearListLayoutSpec.cpp +63 -0
- package/nitrogen/generated/android/c++/JHybridNativeLinearListLayoutSpec.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridNativeListDataSourceSpec.cpp +101 -0
- package/nitrogen/generated/android/c++/JHybridNativeListDataSourceSpec.hpp +70 -0
- package/nitrogen/generated/android/c++/JHybridNativeListLayoutSpec.cpp +49 -0
- package/nitrogen/generated/android/c++/JHybridNativeListLayoutSpec.hpp +63 -0
- package/nitrogen/generated/android/c++/JHybridUiListModuleSpec.cpp +65 -0
- package/nitrogen/generated/android/c++/JHybridUiListModuleSpec.hpp +64 -0
- package/nitrogen/generated/android/c++/JHybridUiListViewSpec.cpp +92 -0
- package/nitrogen/generated/android/c++/JHybridUiListViewSpec.hpp +67 -0
- package/nitrogen/generated/android/c++/JHybridViewHolderSpec.cpp +49 -0
- package/nitrogen/generated/android/c++/JHybridViewHolderSpec.hpp +63 -0
- package/nitrogen/generated/android/c++/JNativeItemSizeEstimate.hpp +61 -0
- package/nitrogen/generated/android/c++/JNativeLinearListLayoutConfig.hpp +81 -0
- package/nitrogen/generated/android/c++/JNativeLinearListLayoutIOSConfig.hpp +59 -0
- package/nitrogen/generated/android/c++/JNativeListItem.hpp +76 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.hpp +72 -0
- package/nitrogen/generated/android/c++/views/JHybridUiListViewStateUpdater.cpp +53 -0
- package/nitrogen/generated/android/c++/views/JHybridUiListViewStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/c++/views/JHybridViewHolderStateUpdater.cpp +53 -0
- package/nitrogen/generated/android/c++/views/JHybridViewHolderStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/Func_bool_NativeListItem_NativeListItem.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/Func_bool_double_NativeListItem_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/Func_double_std__string.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridIOSWorkletsModuleProxyHolderSpec.kt +52 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridNativeLinearListLayoutSpec.kt +54 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridNativeListDataSourceSpec.kt +87 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridNativeListLayoutSpec.kt +52 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridUiListModuleSpec.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridUiListViewSpec.kt +76 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridViewHolderSpec.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/NativeItemSizeEstimate.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/NativeLinearListLayoutConfig.kt +76 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/NativeLinearListLayoutIOSConfig.kt +51 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/NativeListItem.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/ReactNativeListOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/Variant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/views/HybridUiListViewManager.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/views/HybridUiListViewStateUpdater.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/views/HybridViewHolderManager.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/views/HybridViewHolderStateUpdater.kt +23 -0
- package/nitrogen/generated/ios/ReactNativeList+autolinking.rb +62 -0
- package/nitrogen/generated/ios/ReactNativeList-Swift-Cxx-Bridge.cpp +162 -0
- package/nitrogen/generated/ios/ReactNativeList-Swift-Cxx-Bridge.hpp +368 -0
- package/nitrogen/generated/ios/ReactNativeList-Swift-Cxx-Umbrella.hpp +92 -0
- package/nitrogen/generated/ios/ReactNativeListAutolinking.mm +83 -0
- package/nitrogen/generated/ios/ReactNativeListAutolinking.swift +86 -0
- package/nitrogen/generated/ios/c++/HybridIOSWorkletsModuleProxyHolderSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridIOSWorkletsModuleProxyHolderSpecSwift.hpp +75 -0
- package/nitrogen/generated/ios/c++/HybridNativeLinearListLayoutSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNativeLinearListLayoutSpecSwift.hpp +92 -0
- package/nitrogen/generated/ios/c++/HybridNativeListDataSourceSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNativeListDataSourceSpecSwift.hpp +132 -0
- package/nitrogen/generated/ios/c++/HybridNativeListLayoutSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNativeListLayoutSpecSwift.hpp +75 -0
- package/nitrogen/generated/ios/c++/HybridUiListModuleSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridUiListModuleSpecSwift.hpp +93 -0
- package/nitrogen/generated/ios/c++/HybridUiListViewSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridUiListViewSpecSwift.hpp +121 -0
- package/nitrogen/generated/ios/c++/HybridViewHolderSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewHolderSpecSwift.hpp +75 -0
- package/nitrogen/generated/ios/c++/views/HybridUiListViewComponent.mm +118 -0
- package/nitrogen/generated/ios/c++/views/HybridViewHolderComponent.mm +118 -0
- package/nitrogen/generated/ios/swift/Func_bool_NativeListItem_NativeListItem.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_bool_double_NativeListItem_double.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_double_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridIOSWorkletsModuleProxyHolderSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridIOSWorkletsModuleProxyHolderSpec_cxx.swift +128 -0
- package/nitrogen/generated/ios/swift/HybridNativeLinearListLayoutSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridNativeLinearListLayoutSpec_cxx.swift +140 -0
- package/nitrogen/generated/ios/swift/HybridNativeListDataSourceSpec.swift +62 -0
- package/nitrogen/generated/ios/swift/HybridNativeListDataSourceSpec_cxx.swift +222 -0
- package/nitrogen/generated/ios/swift/HybridNativeListLayoutSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridNativeListLayoutSpec_cxx.swift +128 -0
- package/nitrogen/generated/ios/swift/HybridUiListModuleSpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridUiListModuleSpec_cxx.swift +175 -0
- package/nitrogen/generated/ios/swift/HybridUiListViewSpec.swift +59 -0
- package/nitrogen/generated/ios/swift/HybridUiListViewSpec_cxx.swift +227 -0
- package/nitrogen/generated/ios/swift/HybridViewHolderSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridViewHolderSpec_cxx.swift +147 -0
- package/nitrogen/generated/ios/swift/NativeItemSizeEstimate.swift +60 -0
- package/nitrogen/generated/ios/swift/NativeLinearListLayoutConfig.swift +60 -0
- package/nitrogen/generated/ios/swift/NativeLinearListLayoutIOSConfig.swift +35 -0
- package/nitrogen/generated/ios/swift/NativeListItem.swift +75 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__any_HybridIOSWorkletsModuleProxyHolderSpec_.swift +30 -0
- package/nitrogen/generated/shared/c++/HybridIOSWorkletsModuleProxyHolderSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridIOSWorkletsModuleProxyHolderSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridNativeLinearListLayoutSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridNativeLinearListLayoutSpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridNativeListDataSourceSpec.cpp +28 -0
- package/nitrogen/generated/shared/c++/HybridNativeListDataSourceSpec.hpp +72 -0
- package/nitrogen/generated/shared/c++/HybridNativeListLayoutSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridNativeListLayoutSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridUiListModuleSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridUiListModuleSpec.hpp +68 -0
- package/nitrogen/generated/shared/c++/HybridUiListViewSpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridUiListViewSpec.hpp +79 -0
- package/nitrogen/generated/shared/c++/HybridUiManagerHelperSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridUiManagerHelperSpec.hpp +65 -0
- package/nitrogen/generated/shared/c++/HybridViewHolderSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridViewHolderSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/NativeItemSizeEstimate.hpp +87 -0
- package/nitrogen/generated/shared/c++/NativeLinearListLayoutConfig.hpp +105 -0
- package/nitrogen/generated/shared/c++/NativeLinearListLayoutIOSConfig.hpp +85 -0
- package/nitrogen/generated/shared/c++/NativeListItem.hpp +101 -0
- package/nitrogen/generated/shared/c++/views/HybridUiListViewComponent.cpp +72 -0
- package/nitrogen/generated/shared/c++/views/HybridUiListViewComponent.hpp +109 -0
- package/nitrogen/generated/shared/c++/views/HybridViewHolderComponent.cpp +72 -0
- package/nitrogen/generated/shared/c++/views/HybridViewHolderComponent.hpp +109 -0
- package/nitrogen/generated/shared/json/UiListViewConfig.json +9 -0
- package/nitrogen/generated/shared/json/ViewHolderConfig.json +9 -0
- package/package.json +152 -5
- package/react-native.config.js +16 -0
- package/src/ListDataSource.ts +232 -0
- package/src/ListLayout.ts +95 -0
- package/src/UiListModule.ts +5 -0
- package/src/hooks/useChangeEffect.ts +50 -0
- package/src/index.tsx +49 -0
- package/src/privateGlobals.ts +20 -0
- package/src/renderer/fabric/RenderHelper.ts +29 -0
- package/src/renderer/fabric/UiManagerHelper.ts +5 -0
- package/src/renderer/react/ReactFabricMirror.bundle.js +1984 -0
- package/src/renderer/react/ReactFabricMirror.ts +766 -0
- package/src/renderer/react/ReactFabricRenderer.ts +11 -0
- package/src/specs/IOSWorkletsModuleProxyHolder.nitro.ts +6 -0
- package/src/specs/NativeLinearListLayout.nitro.ts +23 -0
- package/src/specs/NativeListDataSource.nitro.ts +28 -0
- package/src/specs/NativeListLayout.nitro.ts +6 -0
- package/src/specs/UIListModule.nitro.ts +13 -0
- package/src/specs/UIManagerHelper.nitro.ts +34 -0
- package/src/specs/UiListView.nitro.ts +31 -0
- package/src/specs/ViewHolder.nitro.ts +11 -0
- package/src/views/List.tsx +525 -0
- package/src/views/UiListHostComponent.ts +8 -0
- package/FillRateHelper.js +0 -179
- package/FlatList.js +0 -494
- package/LICENSE.md +0 -31
- package/MetroListView.js +0 -166
- package/SectionList.js +0 -291
- package/ViewabilityHelper.js +0 -260
- package/VirtualizeUtils.js +0 -163
- package/VirtualizedList.js +0 -861
- package/VirtualizedSectionList.js +0 -397
- package/index.js +0 -5
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridViewHolderSpec.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 "JHybridViewHolderSpec.hpp"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
namespace margelo::nitro::reactnativelist {
|
|
15
|
+
|
|
16
|
+
std::shared_ptr<JHybridViewHolderSpec> JHybridViewHolderSpec::JavaPart::getJHybridViewHolderSpec() {
|
|
17
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
18
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridViewHolderSpec>(hybridObject);
|
|
19
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
20
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridViewHolderSpec!");
|
|
21
|
+
}
|
|
22
|
+
return castHybridObject;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
jni::local_ref<JHybridViewHolderSpec::CxxPart::jhybriddata> JHybridViewHolderSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
26
|
+
return makeCxxInstance(jThis);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
std::shared_ptr<JHybridObject> JHybridViewHolderSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
30
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridViewHolderSpec::JavaPart>(javaPart);
|
|
31
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
32
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridViewHolderSpec::JavaPart!");
|
|
33
|
+
}
|
|
34
|
+
return std::make_shared<JHybridViewHolderSpec>(castJavaPart);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
void JHybridViewHolderSpec::CxxPart::registerNatives() {
|
|
38
|
+
registerHybrid({
|
|
39
|
+
makeNativeMethod("initHybrid", JHybridViewHolderSpec::CxxPart::initHybrid),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Properties
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
// Methods
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridViewHolderSpec.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 <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridViewHolderSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::reactnativelist {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridViewHolderSpec: public virtual HybridViewHolderSpec, public virtual JHybridObject {
|
|
22
|
+
public:
|
|
23
|
+
struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/HybridViewHolderSpec;";
|
|
25
|
+
std::shared_ptr<JHybridViewHolderSpec> getJHybridViewHolderSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/HybridViewHolderSpec$CxxPart;";
|
|
29
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
30
|
+
static void registerNatives();
|
|
31
|
+
using HybridBase::HybridBase;
|
|
32
|
+
protected:
|
|
33
|
+
std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
public:
|
|
37
|
+
explicit JHybridViewHolderSpec(const jni::local_ref<JHybridViewHolderSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridViewHolderSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
41
|
+
~JHybridViewHolderSpec() override {
|
|
42
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
43
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline const jni::global_ref<JHybridViewHolderSpec::JavaPart>& getJavaPart() const noexcept {
|
|
48
|
+
return _javaPart;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
// Properties
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
public:
|
|
56
|
+
// Methods
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
private:
|
|
60
|
+
jni::global_ref<JHybridViewHolderSpec::JavaPart> _javaPart;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JNativeItemSizeEstimate.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 <fbjni/fbjni.h>
|
|
11
|
+
#include "NativeItemSizeEstimate.hpp"
|
|
12
|
+
|
|
13
|
+
#include <optional>
|
|
14
|
+
|
|
15
|
+
namespace margelo::nitro::reactnativelist {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The C++ JNI bridge between the C++ struct "NativeItemSizeEstimate" and the the Kotlin data class "NativeItemSizeEstimate".
|
|
21
|
+
*/
|
|
22
|
+
struct JNativeItemSizeEstimate final: public jni::JavaClass<JNativeItemSizeEstimate> {
|
|
23
|
+
public:
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/NativeItemSizeEstimate;";
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* Convert this Java/Kotlin-based struct to the C++ struct NativeItemSizeEstimate by copying all values to C++.
|
|
29
|
+
*/
|
|
30
|
+
[[maybe_unused]]
|
|
31
|
+
[[nodiscard]]
|
|
32
|
+
NativeItemSizeEstimate toCpp() const {
|
|
33
|
+
static const auto clazz = javaClassStatic();
|
|
34
|
+
static const auto fieldWidth = clazz->getField<jni::JDouble>("width");
|
|
35
|
+
jni::local_ref<jni::JDouble> width = this->getFieldValue(fieldWidth);
|
|
36
|
+
static const auto fieldHeight = clazz->getField<jni::JDouble>("height");
|
|
37
|
+
jni::local_ref<jni::JDouble> height = this->getFieldValue(fieldHeight);
|
|
38
|
+
return NativeItemSizeEstimate(
|
|
39
|
+
width != nullptr ? std::make_optional(width->value()) : std::nullopt,
|
|
40
|
+
height != nullptr ? std::make_optional(height->value()) : std::nullopt
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public:
|
|
45
|
+
/**
|
|
46
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
47
|
+
*/
|
|
48
|
+
[[maybe_unused]]
|
|
49
|
+
static jni::local_ref<JNativeItemSizeEstimate::javaobject> fromCpp(const NativeItemSizeEstimate& value) {
|
|
50
|
+
using JSignature = JNativeItemSizeEstimate(jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>);
|
|
51
|
+
static const auto clazz = javaClassStatic();
|
|
52
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
53
|
+
return create(
|
|
54
|
+
clazz,
|
|
55
|
+
value.width.has_value() ? jni::JDouble::valueOf(value.width.value()) : nullptr,
|
|
56
|
+
value.height.has_value() ? jni::JDouble::valueOf(value.height.value()) : nullptr
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JNativeLinearListLayoutConfig.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 <fbjni/fbjni.h>
|
|
11
|
+
#include "NativeLinearListLayoutConfig.hpp"
|
|
12
|
+
|
|
13
|
+
#include "JNativeItemSizeEstimate.hpp"
|
|
14
|
+
#include "JNativeLinearListLayoutIOSConfig.hpp"
|
|
15
|
+
#include "NativeItemSizeEstimate.hpp"
|
|
16
|
+
#include "NativeLinearListLayoutIOSConfig.hpp"
|
|
17
|
+
#include <optional>
|
|
18
|
+
|
|
19
|
+
namespace margelo::nitro::reactnativelist {
|
|
20
|
+
|
|
21
|
+
using namespace facebook;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The C++ JNI bridge between the C++ struct "NativeLinearListLayoutConfig" and the the Kotlin data class "NativeLinearListLayoutConfig".
|
|
25
|
+
*/
|
|
26
|
+
struct JNativeLinearListLayoutConfig final: public jni::JavaClass<JNativeLinearListLayoutConfig> {
|
|
27
|
+
public:
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/NativeLinearListLayoutConfig;";
|
|
29
|
+
|
|
30
|
+
public:
|
|
31
|
+
/**
|
|
32
|
+
* Convert this Java/Kotlin-based struct to the C++ struct NativeLinearListLayoutConfig by copying all values to C++.
|
|
33
|
+
*/
|
|
34
|
+
[[maybe_unused]]
|
|
35
|
+
[[nodiscard]]
|
|
36
|
+
NativeLinearListLayoutConfig toCpp() const {
|
|
37
|
+
static const auto clazz = javaClassStatic();
|
|
38
|
+
static const auto fieldTopInset = clazz->getField<double>("topInset");
|
|
39
|
+
double topInset = this->getFieldValue(fieldTopInset);
|
|
40
|
+
static const auto fieldBottomInset = clazz->getField<double>("bottomInset");
|
|
41
|
+
double bottomInset = this->getFieldValue(fieldBottomInset);
|
|
42
|
+
static const auto fieldItemSpacing = clazz->getField<double>("itemSpacing");
|
|
43
|
+
double itemSpacing = this->getFieldValue(fieldItemSpacing);
|
|
44
|
+
static const auto fieldItemHorizontalInset = clazz->getField<double>("itemHorizontalInset");
|
|
45
|
+
double itemHorizontalInset = this->getFieldValue(fieldItemHorizontalInset);
|
|
46
|
+
static const auto fieldItemVerticalInset = clazz->getField<double>("itemVerticalInset");
|
|
47
|
+
double itemVerticalInset = this->getFieldValue(fieldItemVerticalInset);
|
|
48
|
+
static const auto fieldIosConfig = clazz->getField<JNativeLinearListLayoutIOSConfig>("iosConfig");
|
|
49
|
+
jni::local_ref<JNativeLinearListLayoutIOSConfig> iosConfig = this->getFieldValue(fieldIosConfig);
|
|
50
|
+
return NativeLinearListLayoutConfig(
|
|
51
|
+
topInset,
|
|
52
|
+
bottomInset,
|
|
53
|
+
itemSpacing,
|
|
54
|
+
itemHorizontalInset,
|
|
55
|
+
itemVerticalInset,
|
|
56
|
+
iosConfig != nullptr ? std::make_optional(iosConfig->toCpp()) : std::nullopt
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
public:
|
|
61
|
+
/**
|
|
62
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
63
|
+
*/
|
|
64
|
+
[[maybe_unused]]
|
|
65
|
+
static jni::local_ref<JNativeLinearListLayoutConfig::javaobject> fromCpp(const NativeLinearListLayoutConfig& value) {
|
|
66
|
+
using JSignature = JNativeLinearListLayoutConfig(double, double, double, double, double, jni::alias_ref<JNativeLinearListLayoutIOSConfig>);
|
|
67
|
+
static const auto clazz = javaClassStatic();
|
|
68
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
69
|
+
return create(
|
|
70
|
+
clazz,
|
|
71
|
+
value.topInset,
|
|
72
|
+
value.bottomInset,
|
|
73
|
+
value.itemSpacing,
|
|
74
|
+
value.itemHorizontalInset,
|
|
75
|
+
value.itemVerticalInset,
|
|
76
|
+
value.iosConfig.has_value() ? JNativeLinearListLayoutIOSConfig::fromCpp(value.iosConfig.value()) : nullptr
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JNativeLinearListLayoutIOSConfig.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 <fbjni/fbjni.h>
|
|
11
|
+
#include "NativeLinearListLayoutIOSConfig.hpp"
|
|
12
|
+
|
|
13
|
+
#include "JNativeItemSizeEstimate.hpp"
|
|
14
|
+
#include "NativeItemSizeEstimate.hpp"
|
|
15
|
+
#include <optional>
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::reactnativelist {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The C++ JNI bridge between the C++ struct "NativeLinearListLayoutIOSConfig" and the the Kotlin data class "NativeLinearListLayoutIOSConfig".
|
|
23
|
+
*/
|
|
24
|
+
struct JNativeLinearListLayoutIOSConfig final: public jni::JavaClass<JNativeLinearListLayoutIOSConfig> {
|
|
25
|
+
public:
|
|
26
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/NativeLinearListLayoutIOSConfig;";
|
|
27
|
+
|
|
28
|
+
public:
|
|
29
|
+
/**
|
|
30
|
+
* Convert this Java/Kotlin-based struct to the C++ struct NativeLinearListLayoutIOSConfig by copying all values to C++.
|
|
31
|
+
*/
|
|
32
|
+
[[maybe_unused]]
|
|
33
|
+
[[nodiscard]]
|
|
34
|
+
NativeLinearListLayoutIOSConfig toCpp() const {
|
|
35
|
+
static const auto clazz = javaClassStatic();
|
|
36
|
+
static const auto fieldEstimatedItemSize = clazz->getField<JNativeItemSizeEstimate>("estimatedItemSize");
|
|
37
|
+
jni::local_ref<JNativeItemSizeEstimate> estimatedItemSize = this->getFieldValue(fieldEstimatedItemSize);
|
|
38
|
+
return NativeLinearListLayoutIOSConfig(
|
|
39
|
+
estimatedItemSize != nullptr ? std::make_optional(estimatedItemSize->toCpp()) : std::nullopt
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public:
|
|
44
|
+
/**
|
|
45
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
46
|
+
*/
|
|
47
|
+
[[maybe_unused]]
|
|
48
|
+
static jni::local_ref<JNativeLinearListLayoutIOSConfig::javaobject> fromCpp(const NativeLinearListLayoutIOSConfig& value) {
|
|
49
|
+
using JSignature = JNativeLinearListLayoutIOSConfig(jni::alias_ref<JNativeItemSizeEstimate>);
|
|
50
|
+
static const auto clazz = javaClassStatic();
|
|
51
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
52
|
+
return create(
|
|
53
|
+
clazz,
|
|
54
|
+
value.estimatedItemSize.has_value() ? JNativeItemSizeEstimate::fromCpp(value.estimatedItemSize.value()) : nullptr
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JNativeListItem.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 <fbjni/fbjni.h>
|
|
11
|
+
#include "NativeListItem.hpp"
|
|
12
|
+
|
|
13
|
+
#include <NitroModules/AnyMap.hpp>
|
|
14
|
+
#include <NitroModules/JAnyMap.hpp>
|
|
15
|
+
#include <optional>
|
|
16
|
+
#include <string>
|
|
17
|
+
|
|
18
|
+
namespace margelo::nitro::reactnativelist {
|
|
19
|
+
|
|
20
|
+
using namespace facebook;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The C++ JNI bridge between the C++ struct "NativeListItem" and the the Kotlin data class "NativeListItem".
|
|
24
|
+
*/
|
|
25
|
+
struct JNativeListItem final: public jni::JavaClass<JNativeListItem> {
|
|
26
|
+
public:
|
|
27
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/NativeListItem;";
|
|
28
|
+
|
|
29
|
+
public:
|
|
30
|
+
/**
|
|
31
|
+
* Convert this Java/Kotlin-based struct to the C++ struct NativeListItem by copying all values to C++.
|
|
32
|
+
*/
|
|
33
|
+
[[maybe_unused]]
|
|
34
|
+
[[nodiscard]]
|
|
35
|
+
NativeListItem toCpp() const {
|
|
36
|
+
static const auto clazz = javaClassStatic();
|
|
37
|
+
static const auto fieldKey = clazz->getField<jni::JString>("key");
|
|
38
|
+
jni::local_ref<jni::JString> key = this->getFieldValue(fieldKey);
|
|
39
|
+
static const auto fieldType = clazz->getField<jni::JString>("type");
|
|
40
|
+
jni::local_ref<jni::JString> type = this->getFieldValue(fieldType);
|
|
41
|
+
static const auto fieldWidth = clazz->getField<jni::JDouble>("width");
|
|
42
|
+
jni::local_ref<jni::JDouble> width = this->getFieldValue(fieldWidth);
|
|
43
|
+
static const auto fieldHeight = clazz->getField<jni::JDouble>("height");
|
|
44
|
+
jni::local_ref<jni::JDouble> height = this->getFieldValue(fieldHeight);
|
|
45
|
+
static const auto fieldData = clazz->getField<JAnyMap::javaobject>("data");
|
|
46
|
+
jni::local_ref<JAnyMap::javaobject> data = this->getFieldValue(fieldData);
|
|
47
|
+
return NativeListItem(
|
|
48
|
+
key->toStdString(),
|
|
49
|
+
type->toStdString(),
|
|
50
|
+
width != nullptr ? std::make_optional(width->value()) : std::nullopt,
|
|
51
|
+
height != nullptr ? std::make_optional(height->value()) : std::nullopt,
|
|
52
|
+
data->cthis()->getMap()
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public:
|
|
57
|
+
/**
|
|
58
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
59
|
+
*/
|
|
60
|
+
[[maybe_unused]]
|
|
61
|
+
static jni::local_ref<JNativeListItem::javaobject> fromCpp(const NativeListItem& value) {
|
|
62
|
+
using JSignature = JNativeListItem(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JAnyMap::javaobject>);
|
|
63
|
+
static const auto clazz = javaClassStatic();
|
|
64
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
65
|
+
return create(
|
|
66
|
+
clazz,
|
|
67
|
+
jni::make_jstring(value.key),
|
|
68
|
+
jni::make_jstring(value.type),
|
|
69
|
+
value.width.has_value() ? jni::JDouble::valueOf(value.width.value()) : nullptr,
|
|
70
|
+
value.height.has_value() ? jni::JDouble::valueOf(value.height.value()) : nullptr,
|
|
71
|
+
JAnyMap::create(value.data)
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
} // namespace margelo::nitro::reactnativelist
|
package/nitrogen/generated/android/c++/JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.cpp
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.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 "JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::reactnativelist {
|
|
11
|
+
/**
|
|
12
|
+
* Converts JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec to std::variant<nitro::NullType, std::shared_ptr<HybridIOSWorkletsModuleProxyHolderSpec>>
|
|
13
|
+
*/
|
|
14
|
+
std::variant<nitro::NullType, std::shared_ptr<HybridIOSWorkletsModuleProxyHolderSpec>> JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec::toCpp() const {
|
|
15
|
+
if (isInstanceOf(JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec_impl::First::javaClassStatic())) {
|
|
16
|
+
// It's a `nitro::NullType`
|
|
17
|
+
auto jniValue = static_cast<const JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec_impl::First*>(this)->getValue();
|
|
18
|
+
return nitro::null;
|
|
19
|
+
} else if (isInstanceOf(JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec_impl::Second::javaClassStatic())) {
|
|
20
|
+
// It's a `std::shared_ptr<HybridIOSWorkletsModuleProxyHolderSpec>`
|
|
21
|
+
auto jniValue = static_cast<const JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec_impl::Second*>(this)->getValue();
|
|
22
|
+
return jniValue->getJHybridIOSWorkletsModuleProxyHolderSpec();
|
|
23
|
+
}
|
|
24
|
+
throw std::invalid_argument("Variant is unknown Kotlin instance!");
|
|
25
|
+
}
|
|
26
|
+
} // namespace margelo::nitro::reactnativelist
|
package/nitrogen/generated/android/c++/JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.hpp
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.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 <fbjni/fbjni.h>
|
|
11
|
+
#include <variant>
|
|
12
|
+
|
|
13
|
+
#include <NitroModules/Null.hpp>
|
|
14
|
+
#include <memory>
|
|
15
|
+
#include "HybridIOSWorkletsModuleProxyHolderSpec.hpp"
|
|
16
|
+
#include <variant>
|
|
17
|
+
#include <NitroModules/JNull.hpp>
|
|
18
|
+
#include "JHybridIOSWorkletsModuleProxyHolderSpec.hpp"
|
|
19
|
+
|
|
20
|
+
namespace margelo::nitro::reactnativelist {
|
|
21
|
+
|
|
22
|
+
using namespace facebook;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The C++ JNI bridge between the C++ std::variant and the Java class "Variant_NullType_HybridIOSWorkletsModuleProxyHolderSpec".
|
|
26
|
+
*/
|
|
27
|
+
class JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec: public jni::JavaClass<JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec> {
|
|
28
|
+
public:
|
|
29
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/Variant_NullType_HybridIOSWorkletsModuleProxyHolderSpec;";
|
|
30
|
+
|
|
31
|
+
static jni::local_ref<JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec> create_0(jni::alias_ref<JNull> value) {
|
|
32
|
+
static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec(jni::alias_ref<JNull>)>("create");
|
|
33
|
+
return method(javaClassStatic(), value);
|
|
34
|
+
}
|
|
35
|
+
static jni::local_ref<JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec> create_1(jni::alias_ref<JHybridIOSWorkletsModuleProxyHolderSpec::JavaPart> value) {
|
|
36
|
+
static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec(jni::alias_ref<JHybridIOSWorkletsModuleProxyHolderSpec::JavaPart>)>("create");
|
|
37
|
+
return method(javaClassStatic(), value);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static jni::local_ref<JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec> fromCpp(const std::variant<nitro::NullType, std::shared_ptr<HybridIOSWorkletsModuleProxyHolderSpec>>& variant) {
|
|
41
|
+
switch (variant.index()) {
|
|
42
|
+
case 0: return create_0(JNull::null());
|
|
43
|
+
case 1: return create_1(std::dynamic_pointer_cast<JHybridIOSWorkletsModuleProxyHolderSpec>(std::get<1>(variant))->getJavaPart());
|
|
44
|
+
default: throw std::invalid_argument("Variant holds unknown index! (" + std::to_string(variant.index()) + ")");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
[[nodiscard]] std::variant<nitro::NullType, std::shared_ptr<HybridIOSWorkletsModuleProxyHolderSpec>> toCpp() const;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
namespace JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec_impl {
|
|
52
|
+
class First final: public jni::JavaClass<First, JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec> {
|
|
53
|
+
public:
|
|
54
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/Variant_NullType_HybridIOSWorkletsModuleProxyHolderSpec$First;";
|
|
55
|
+
|
|
56
|
+
[[nodiscard]] jni::local_ref<JNull> getValue() const {
|
|
57
|
+
static const auto field = javaClassStatic()->getField<JNull>("value");
|
|
58
|
+
return getFieldValue(field);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
class Second final: public jni::JavaClass<Second, JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec> {
|
|
63
|
+
public:
|
|
64
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/Variant_NullType_HybridIOSWorkletsModuleProxyHolderSpec$Second;";
|
|
65
|
+
|
|
66
|
+
[[nodiscard]] jni::local_ref<JHybridIOSWorkletsModuleProxyHolderSpec::JavaPart> getValue() const {
|
|
67
|
+
static const auto field = javaClassStatic()->getField<JHybridIOSWorkletsModuleProxyHolderSpec::JavaPart>("value");
|
|
68
|
+
return getFieldValue(field);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
} // namespace JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec_impl
|
|
72
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridUiListViewStateUpdater.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 "JHybridUiListViewStateUpdater.hpp"
|
|
9
|
+
#include "views/HybridUiListViewComponent.hpp"
|
|
10
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
11
|
+
#include <react/fabric/StateWrapperImpl.h>
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::reactnativelist::views {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
using ConcreteStateData = react::ConcreteState<HybridUiListViewState>;
|
|
17
|
+
|
|
18
|
+
void JHybridUiListViewStateUpdater::updateViewProps(jni::alias_ref<jni::JClass> /* class */,
|
|
19
|
+
jni::alias_ref<JHybridUiListViewSpec::JavaPart> javaView,
|
|
20
|
+
jni::alias_ref<JStateWrapper::javaobject> stateWrapperInterface) {
|
|
21
|
+
std::shared_ptr<JHybridUiListViewSpec> hybridView = javaView->getJHybridUiListViewSpec();
|
|
22
|
+
|
|
23
|
+
// Get concrete StateWrapperImpl from passed StateWrapper interface object
|
|
24
|
+
jobject rawStateWrapper = stateWrapperInterface.get();
|
|
25
|
+
if (!stateWrapperInterface->isInstanceOf(react::StateWrapperImpl::javaClassStatic())) [[unlikely]] {
|
|
26
|
+
throw std::runtime_error("StateWrapper is not a StateWrapperImpl");
|
|
27
|
+
}
|
|
28
|
+
auto stateWrapper = jni::alias_ref<react::StateWrapperImpl::javaobject>{
|
|
29
|
+
static_cast<react::StateWrapperImpl::javaobject>(rawStateWrapper)};
|
|
30
|
+
std::shared_ptr<const react::State> state = stateWrapper->cthis()->getState();
|
|
31
|
+
auto concreteState = std::static_pointer_cast<const ConcreteStateData>(state);
|
|
32
|
+
const HybridUiListViewState& data = concreteState->getData();
|
|
33
|
+
const std::shared_ptr<HybridUiListViewProps>& props = data.getProps();
|
|
34
|
+
if (props == nullptr) [[unlikely]] {
|
|
35
|
+
// Props aren't set yet!
|
|
36
|
+
throw std::runtime_error("HybridUiListViewState's data doesn't contain any props!");
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Update all props if they are dirty
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
// Update hybridRef if it changed
|
|
43
|
+
if (props->hybridRef.isDirty) {
|
|
44
|
+
// hybridRef changed - call it with new this
|
|
45
|
+
const auto& maybeFunc = props->hybridRef.value;
|
|
46
|
+
if (maybeFunc.has_value()) {
|
|
47
|
+
maybeFunc.value()(hybridView);
|
|
48
|
+
}
|
|
49
|
+
props->hybridRef.isDirty = false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
} // namespace margelo::nitro::reactnativelist::views
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridUiListViewStateUpdater.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
|
+
#ifndef RN_SERIALIZABLE_STATE
|
|
11
|
+
#error ReactNativeList was compiled without the 'RN_SERIALIZABLE_STATE' flag. This flag is required for Nitro Views - set it in your CMakeLists!
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#include <fbjni/fbjni.h>
|
|
15
|
+
#include <react/fabric/CoreComponentsRegistry.h>
|
|
16
|
+
#include <react/fabric/StateWrapperImpl.h>
|
|
17
|
+
#include <react/renderer/core/ConcreteComponentDescriptor.h>
|
|
18
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
19
|
+
#include <NitroModules/JStateWrapper.hpp>
|
|
20
|
+
#include "JHybridUiListViewSpec.hpp"
|
|
21
|
+
#include "views/HybridUiListViewComponent.hpp"
|
|
22
|
+
|
|
23
|
+
namespace margelo::nitro::reactnativelist::views {
|
|
24
|
+
|
|
25
|
+
using namespace facebook;
|
|
26
|
+
|
|
27
|
+
class JHybridUiListViewStateUpdater final: public jni::JavaClass<JHybridUiListViewStateUpdater> {
|
|
28
|
+
public:
|
|
29
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/views/HybridUiListViewStateUpdater;";
|
|
30
|
+
|
|
31
|
+
public:
|
|
32
|
+
static void updateViewProps(jni::alias_ref<jni::JClass> /* class */,
|
|
33
|
+
jni::alias_ref<JHybridUiListViewSpec::JavaPart> view,
|
|
34
|
+
jni::alias_ref<JStateWrapper::javaobject> stateWrapperInterface);
|
|
35
|
+
|
|
36
|
+
public:
|
|
37
|
+
static void registerNatives() {
|
|
38
|
+
// Register JNI calls
|
|
39
|
+
javaClassStatic()->registerNatives({
|
|
40
|
+
makeNativeMethod("updateViewProps", JHybridUiListViewStateUpdater::updateViewProps),
|
|
41
|
+
});
|
|
42
|
+
// Register React Native view component descriptor
|
|
43
|
+
auto provider = react::concreteComponentDescriptorProvider<HybridUiListViewComponentDescriptor>();
|
|
44
|
+
auto providerRegistry = react::CoreComponentsRegistry::sharedProviderRegistry();
|
|
45
|
+
providerRegistry->add(provider);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
} // namespace margelo::nitro::reactnativelist::views
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridViewHolderStateUpdater.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 "JHybridViewHolderStateUpdater.hpp"
|
|
9
|
+
#include "views/HybridViewHolderComponent.hpp"
|
|
10
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
11
|
+
#include <react/fabric/StateWrapperImpl.h>
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::reactnativelist::views {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
using ConcreteStateData = react::ConcreteState<HybridViewHolderState>;
|
|
17
|
+
|
|
18
|
+
void JHybridViewHolderStateUpdater::updateViewProps(jni::alias_ref<jni::JClass> /* class */,
|
|
19
|
+
jni::alias_ref<JHybridViewHolderSpec::JavaPart> javaView,
|
|
20
|
+
jni::alias_ref<JStateWrapper::javaobject> stateWrapperInterface) {
|
|
21
|
+
std::shared_ptr<JHybridViewHolderSpec> hybridView = javaView->getJHybridViewHolderSpec();
|
|
22
|
+
|
|
23
|
+
// Get concrete StateWrapperImpl from passed StateWrapper interface object
|
|
24
|
+
jobject rawStateWrapper = stateWrapperInterface.get();
|
|
25
|
+
if (!stateWrapperInterface->isInstanceOf(react::StateWrapperImpl::javaClassStatic())) [[unlikely]] {
|
|
26
|
+
throw std::runtime_error("StateWrapper is not a StateWrapperImpl");
|
|
27
|
+
}
|
|
28
|
+
auto stateWrapper = jni::alias_ref<react::StateWrapperImpl::javaobject>{
|
|
29
|
+
static_cast<react::StateWrapperImpl::javaobject>(rawStateWrapper)};
|
|
30
|
+
std::shared_ptr<const react::State> state = stateWrapper->cthis()->getState();
|
|
31
|
+
auto concreteState = std::static_pointer_cast<const ConcreteStateData>(state);
|
|
32
|
+
const HybridViewHolderState& data = concreteState->getData();
|
|
33
|
+
const std::shared_ptr<HybridViewHolderProps>& props = data.getProps();
|
|
34
|
+
if (props == nullptr) [[unlikely]] {
|
|
35
|
+
// Props aren't set yet!
|
|
36
|
+
throw std::runtime_error("HybridViewHolderState's data doesn't contain any props!");
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Update all props if they are dirty
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
// Update hybridRef if it changed
|
|
43
|
+
if (props->hybridRef.isDirty) {
|
|
44
|
+
// hybridRef changed - call it with new this
|
|
45
|
+
const auto& maybeFunc = props->hybridRef.value;
|
|
46
|
+
if (maybeFunc.has_value()) {
|
|
47
|
+
maybeFunc.value()(hybridView);
|
|
48
|
+
}
|
|
49
|
+
props->hybridRef.isDirty = false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
} // namespace margelo::nitro::reactnativelist::views
|