@rive-app/react-native 0.1.1-beta.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/README.md +257 -0
- package/RNRive.podspec +53 -0
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +155 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +13 -0
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/rive/BaseHybridViewModelProperty.kt +20 -0
- package/android/src/main/java/com/margelo/nitro/rive/BaseHybridViewModelPropertyImpl.kt +50 -0
- package/android/src/main/java/com/margelo/nitro/rive/BytesDataLoader.kt +9 -0
- package/android/src/main/java/com/margelo/nitro/rive/DataLoader.kt +15 -0
- package/android/src/main/java/com/margelo/nitro/rive/DataSource.kt +38 -0
- package/android/src/main/java/com/margelo/nitro/rive/DataSourceResolver.kt +36 -0
- package/android/src/main/java/com/margelo/nitro/rive/EventPropertiesOutputExtensions.kt +12 -0
- package/android/src/main/java/com/margelo/nitro/rive/FileDataLoader.kt +21 -0
- package/android/src/main/java/com/margelo/nitro/rive/HTTPDataLoader.kt +37 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt +98 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridRiveFileFactory.kt +123 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridRiveImage.kt +15 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridRiveImageFactory.kt +23 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridRiveView.kt +279 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModel.kt +53 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelBooleanProperty.kt +22 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelColorProperty.kt +22 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelEnumProperty.kt +22 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelImageProperty.kt +21 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelInstance.kt +76 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelNumberProperty.kt +23 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelStringProperty.kt +22 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelTriggerProperty.kt +21 -0
- package/android/src/main/java/com/margelo/nitro/rive/ReferencedAssetLoader.kt +108 -0
- package/android/src/main/java/com/margelo/nitro/rive/ResourceDataLoader.kt +44 -0
- package/android/src/main/java/com/margelo/nitro/rive/Rive.kt +12 -0
- package/android/src/main/java/com/rive/RivePackage.kt +29 -0
- package/android/src/main/java/com/rive/RiveReactNativeView.kt +433 -0
- package/android/src/main/java/com/rive/RiveViewManager.kt +11 -0
- package/ios/BaseHybridViewModelProperty.swift +118 -0
- package/ios/BundleDataLoader.swift +25 -0
- package/ios/BytesDataLoader.swift +10 -0
- package/ios/DataLoader.swift +28 -0
- package/ios/DataSource.swift +43 -0
- package/ios/DataSourceResolver.swift +55 -0
- package/ios/EventPropertiesOutputExtensions.swift +15 -0
- package/ios/FileDataLoader.swift +24 -0
- package/ios/HTTPDataLoader.swift +31 -0
- package/ios/HybridRiveFile.swift +113 -0
- package/ios/HybridRiveFileFactory.swift +163 -0
- package/ios/HybridRiveImage.swift +17 -0
- package/ios/HybridRiveImageFactory.swift +26 -0
- package/ios/HybridRiveView.swift +284 -0
- package/ios/HybridViewModel.swift +46 -0
- package/ios/HybridViewModelBooleanProperty.swift +29 -0
- package/ios/HybridViewModelColorProperty.swift +63 -0
- package/ios/HybridViewModelEnumProperty.swift +29 -0
- package/ios/HybridViewModelImageProperty.swift +31 -0
- package/ios/HybridViewModelInstance.swift +51 -0
- package/ios/HybridViewModelNumberProperty.swift +35 -0
- package/ios/HybridViewModelStringProperty.swift +29 -0
- package/ios/HybridViewModelTriggerProperty.swift +30 -0
- package/ios/RCTLog.swift +29 -0
- package/ios/RCTSwiftLog.h +11 -0
- package/ios/RCTSwiftLog.m +38 -0
- package/ios/ReferencedAssetLoader.swift +145 -0
- package/ios/Rive.swift +5 -0
- package/ios/RiveReactNativeView.swift +325 -0
- package/ios/Utils.swift +15 -0
- package/lib/module/core/Alignment.js +42 -0
- package/lib/module/core/Alignment.js.map +1 -0
- package/lib/module/core/Errors.js +13 -0
- package/lib/module/core/Errors.js.map +1 -0
- package/lib/module/core/Events.js +8 -0
- package/lib/module/core/Events.js.map +1 -0
- package/lib/module/core/Fit.js +51 -0
- package/lib/module/core/Fit.js.map +1 -0
- package/lib/module/core/NitroRiveViewComponent.js +6 -0
- package/lib/module/core/NitroRiveViewComponent.js.map +1 -0
- package/lib/module/core/ReferencedAssets.js +4 -0
- package/lib/module/core/ReferencedAssets.js.map +1 -0
- package/lib/module/core/RiveColor.js +90 -0
- package/lib/module/core/RiveColor.js.map +1 -0
- package/lib/module/core/RiveFile.js +64 -0
- package/lib/module/core/RiveFile.js.map +1 -0
- package/lib/module/core/RiveImages.js +5 -0
- package/lib/module/core/RiveImages.js.map +1 -0
- package/lib/module/core/RiveView.js +51 -0
- package/lib/module/core/RiveView.js.map +1 -0
- package/lib/module/core/callDispose.js +15 -0
- package/lib/module/core/callDispose.js.map +1 -0
- package/lib/module/hooks/useRive.js +51 -0
- package/lib/module/hooks/useRive.js.map +1 -0
- package/lib/module/hooks/useRiveBoolean.js +23 -0
- package/lib/module/hooks/useRiveBoolean.js.map +1 -0
- package/lib/module/hooks/useRiveColor.js +30 -0
- package/lib/module/hooks/useRiveColor.js.map +1 -0
- package/lib/module/hooks/useRiveEnum.js +23 -0
- package/lib/module/hooks/useRiveEnum.js.map +1 -0
- package/lib/module/hooks/useRiveFile.js +128 -0
- package/lib/module/hooks/useRiveFile.js.map +1 -0
- package/lib/module/hooks/useRiveNumber.js +23 -0
- package/lib/module/hooks/useRiveNumber.js.map +1 -0
- package/lib/module/hooks/useRiveProperty.js +79 -0
- package/lib/module/hooks/useRiveProperty.js.map +1 -0
- package/lib/module/hooks/useRiveString.js +23 -0
- package/lib/module/hooks/useRiveString.js.map +1 -0
- package/lib/module/hooks/useRiveTrigger.js +33 -0
- package/lib/module/hooks/useRiveTrigger.js.map +1 -0
- package/lib/module/index.js +28 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/specs/ArtboardBy.js +27 -0
- package/lib/module/specs/ArtboardBy.js.map +1 -0
- package/lib/module/specs/Rive.nitro.js +4 -0
- package/lib/module/specs/Rive.nitro.js.map +1 -0
- package/lib/module/specs/RiveFile.nitro.js +4 -0
- package/lib/module/specs/RiveFile.nitro.js.map +1 -0
- package/lib/module/specs/RiveImage.nitro.js +4 -0
- package/lib/module/specs/RiveImage.nitro.js.map +1 -0
- package/lib/module/specs/RiveView.nitro.js +23 -0
- package/lib/module/specs/RiveView.nitro.js.map +1 -0
- package/lib/module/specs/ViewModel.nitro.js +4 -0
- package/lib/module/specs/ViewModel.nitro.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/nitrogen/generated/shared/json/RiveViewConfig.json +18 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/core/Alignment.d.ts +39 -0
- package/lib/typescript/src/core/Alignment.d.ts.map +1 -0
- package/lib/typescript/src/core/Errors.d.ts +14 -0
- package/lib/typescript/src/core/Errors.d.ts.map +1 -0
- package/lib/typescript/src/core/Events.d.ts +26 -0
- package/lib/typescript/src/core/Events.d.ts.map +1 -0
- package/lib/typescript/src/core/Fit.d.ts +48 -0
- package/lib/typescript/src/core/Fit.d.ts.map +1 -0
- package/lib/typescript/src/core/NitroRiveViewComponent.d.ts +4 -0
- package/lib/typescript/src/core/NitroRiveViewComponent.d.ts.map +1 -0
- package/lib/typescript/src/core/ReferencedAssets.d.ts +15 -0
- package/lib/typescript/src/core/ReferencedAssets.d.ts.map +1 -0
- package/lib/typescript/src/core/RiveColor.d.ts +53 -0
- package/lib/typescript/src/core/RiveColor.d.ts.map +1 -0
- package/lib/typescript/src/core/RiveFile.d.ts +62 -0
- package/lib/typescript/src/core/RiveFile.d.ts.map +1 -0
- package/lib/typescript/src/core/RiveImages.d.ts +3 -0
- package/lib/typescript/src/core/RiveImages.d.ts.map +1 -0
- package/lib/typescript/src/core/RiveView.d.ts +38 -0
- package/lib/typescript/src/core/RiveView.d.ts.map +1 -0
- package/lib/typescript/src/core/callDispose.d.ts +7 -0
- package/lib/typescript/src/core/callDispose.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRive.d.ts +9 -0
- package/lib/typescript/src/hooks/useRive.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveBoolean.d.ts +11 -0
- package/lib/typescript/src/hooks/useRiveBoolean.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveColor.d.ts +14 -0
- package/lib/typescript/src/hooks/useRiveColor.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveEnum.d.ts +11 -0
- package/lib/typescript/src/hooks/useRiveEnum.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveFile.d.ts +24 -0
- package/lib/typescript/src/hooks/useRiveFile.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveNumber.d.ts +11 -0
- package/lib/typescript/src/hooks/useRiveNumber.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveProperty.d.ts +22 -0
- package/lib/typescript/src/hooks/useRiveProperty.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveString.d.ts +11 -0
- package/lib/typescript/src/hooks/useRiveString.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveTrigger.d.ts +11 -0
- package/lib/typescript/src/hooks/useRiveTrigger.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +32 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/specs/ArtboardBy.d.ts +20 -0
- package/lib/typescript/src/specs/ArtboardBy.d.ts.map +1 -0
- package/lib/typescript/src/specs/Rive.nitro.d.ts +8 -0
- package/lib/typescript/src/specs/Rive.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/RiveFile.nitro.d.ts +42 -0
- package/lib/typescript/src/specs/RiveFile.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/RiveImage.nitro.d.ts +43 -0
- package/lib/typescript/src/specs/RiveImage.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/RiveView.nitro.d.ts +139 -0
- package/lib/typescript/src/specs/RiveView.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/ViewModel.nitro.d.ts +103 -0
- package/lib/typescript/src/specs/ViewModel.nitro.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +33 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/nitrogen/generated/android/c++/JAlignment.hpp +80 -0
- package/nitrogen/generated/android/c++/JArtboardBy.hpp +68 -0
- package/nitrogen/generated/android/c++/JArtboardByTypes.hpp +59 -0
- package/nitrogen/generated/android/c++/JDataBindByName.hpp +57 -0
- package/nitrogen/generated/android/c++/JDataBindMode.hpp +59 -0
- package/nitrogen/generated/android/c++/JEventPropertiesOutput.cpp +30 -0
- package/nitrogen/generated/android/c++/JEventPropertiesOutput.hpp +83 -0
- package/nitrogen/generated/android/c++/JFit.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_RiveError.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_UnifiedRiveEvent.hpp +84 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_double.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +76 -0
- package/nitrogen/generated/android/c++/JHybridRiveFileFactorySpec.cpp +134 -0
- package/nitrogen/generated/android/c++/JHybridRiveFileFactorySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridRiveFileSpec.cpp +96 -0
- package/nitrogen/generated/android/c++/JHybridRiveFileSpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridRiveImageFactorySpec.cpp +104 -0
- package/nitrogen/generated/android/c++/JHybridRiveImageFactorySpec.hpp +67 -0
- package/nitrogen/generated/android/c++/JHybridRiveImageSpec.cpp +52 -0
- package/nitrogen/generated/android/c++/JHybridRiveImageSpec.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridRiveSpec.cpp +52 -0
- package/nitrogen/generated/android/c++/JHybridRiveSpec.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridRiveViewSpec.cpp +299 -0
- package/nitrogen/generated/android/c++/JHybridRiveViewSpec.hpp +97 -0
- package/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.cpp +65 -0
- package/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.cpp +65 -0
- package/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.cpp +66 -0
- package/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.cpp +66 -0
- package/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.cpp +115 -0
- package/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.hpp +71 -0
- package/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.cpp +65 -0
- package/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridViewModelPropertySpec.cpp +48 -0
- package/nitrogen/generated/android/c++/JHybridViewModelPropertySpec.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridViewModelSpec.cpp +86 -0
- package/nitrogen/generated/android/c++/JHybridViewModelSpec.hpp +70 -0
- package/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.cpp +66 -0
- package/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridViewModelTriggerPropertySpec.cpp +61 -0
- package/nitrogen/generated/android/c++/JHybridViewModelTriggerPropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JReferencedAssetsType.hpp +77 -0
- package/nitrogen/generated/android/c++/JResolvedReferencedAsset.hpp +77 -0
- package/nitrogen/generated/android/c++/JRiveError.hpp +63 -0
- package/nitrogen/generated/android/c++/JRiveErrorType.hpp +74 -0
- package/nitrogen/generated/android/c++/JRiveEventType.hpp +59 -0
- package/nitrogen/generated/android/c++/JUnifiedRiveEvent.hpp +96 -0
- package/nitrogen/generated/android/c++/JVariant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.cpp +30 -0
- package/nitrogen/generated/android/c++/JVariant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.hpp +90 -0
- package/nitrogen/generated/android/c++/views/JHybridRiveViewStateUpdater.cpp +88 -0
- package/nitrogen/generated/android/c++/views/JHybridRiveViewStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Alignment.kt +28 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ArtboardBy.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ArtboardByTypes.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/DataBindByName.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/DataBindMode.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/EventPropertiesOutput.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Fit.kt +27 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_RiveError.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_UnifiedRiveEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_bool.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_std__string.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileFactorySpec.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileSpec.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveImageFactorySpec.kt +67 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveImageSpec.kt +57 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveSpec.kt +57 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveViewSpec.kt +183 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelBooleanPropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelColorPropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelEnumPropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelImagePropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelInstanceSpec.kt +83 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelNumberPropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelPropertySpec.kt +55 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelSpec.kt +79 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelStringPropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelTriggerPropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ReferencedAssetsType.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ResolvedReferencedAsset.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveError.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveErrorType.kt +26 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveEventType.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/UnifiedRiveEvent.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Variant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/riveOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/views/HybridRiveViewManager.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/views/HybridRiveViewStateUpdater.kt +23 -0
- package/nitrogen/generated/android/rive+autolinking.cmake +115 -0
- package/nitrogen/generated/android/rive+autolinking.gradle +27 -0
- package/nitrogen/generated/android/riveOnLoad.cpp +192 -0
- package/nitrogen/generated/android/riveOnLoad.hpp +25 -0
- package/nitrogen/generated/ios/RNRive+autolinking.rb +60 -0
- package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.cpp +360 -0
- package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.hpp +1180 -0
- package/nitrogen/generated/ios/RNRive-Swift-Cxx-Umbrella.hpp +161 -0
- package/nitrogen/generated/ios/RNRiveAutolinking.mm +137 -0
- package/nitrogen/generated/ios/RNRiveAutolinking.swift +220 -0
- package/nitrogen/generated/ios/c++/HybridRiveFileFactorySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveFileFactorySpecSwift.hpp +119 -0
- package/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.hpp +121 -0
- package/nitrogen/generated/ios/c++/HybridRiveImageFactorySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveImageFactorySpecSwift.hpp +100 -0
- package/nitrogen/generated/ios/c++/HybridRiveImageSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveImageSpecSwift.hpp +71 -0
- package/nitrogen/generated/ios/c++/HybridRiveSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveSpecSwift.hpp +76 -0
- package/nitrogen/generated/ios/c++/HybridRiveViewSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveViewSpecSwift.hpp +277 -0
- package/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.hpp +88 -0
- package/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.hpp +88 -0
- package/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.hpp +90 -0
- package/nitrogen/generated/ios/c++/HybridViewModelImagePropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelImagePropertySpecSwift.hpp +94 -0
- package/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.hpp +149 -0
- package/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.hpp +88 -0
- package/nitrogen/generated/ios/c++/HybridViewModelPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelPropertySpecSwift.hpp +69 -0
- package/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.hpp +113 -0
- package/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.hpp +90 -0
- package/nitrogen/generated/ios/c++/HybridViewModelTriggerPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelTriggerPropertySpecSwift.hpp +89 -0
- package/nitrogen/generated/ios/c++/views/HybridRiveViewComponent.mm +136 -0
- package/nitrogen/generated/ios/swift/Alignment.swift +68 -0
- package/nitrogen/generated/ios/swift/ArtboardBy.swift +89 -0
- package/nitrogen/generated/ios/swift/ArtboardByTypes.swift +40 -0
- package/nitrogen/generated/ios/swift/DataBindByName.swift +36 -0
- package/nitrogen/generated/ios/swift/DataBindMode.swift +40 -0
- package/nitrogen/generated/ios/swift/EventPropertiesOutput.swift +19 -0
- package/nitrogen/generated/ios/swift/Fit.swift +64 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_RiveError.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_UnifiedRiveEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_double.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridRiveFileSpec_.swift +51 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridRiveImageSpec_.swift +51 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridRiveFileFactorySpec.swift +59 -0
- package/nitrogen/generated/ios/swift/HybridRiveFileFactorySpec_cxx.swift +207 -0
- package/nitrogen/generated/ios/swift/HybridRiveFileSpec.swift +59 -0
- package/nitrogen/generated/ios/swift/HybridRiveFileSpec_cxx.swift +204 -0
- package/nitrogen/generated/ios/swift/HybridRiveImageFactorySpec.swift +58 -0
- package/nitrogen/generated/ios/swift/HybridRiveImageFactorySpec_cxx.swift +185 -0
- package/nitrogen/generated/ios/swift/HybridRiveImageSpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridRiveImageSpec_cxx.swift +126 -0
- package/nitrogen/generated/ios/swift/HybridRiveSpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridRiveSpec_cxx.swift +131 -0
- package/nitrogen/generated/ios/swift/HybridRiveViewSpec.swift +79 -0
- package/nitrogen/generated/ios/swift/HybridRiveViewSpec_cxx.swift +623 -0
- package/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec_cxx.swift +158 -0
- package/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec_cxx.swift +158 -0
- package/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec_cxx.swift +158 -0
- package/nitrogen/generated/ios/swift/HybridViewModelImagePropertySpec.swift +58 -0
- package/nitrogen/generated/ios/swift/HybridViewModelImagePropertySpec_cxx.swift +171 -0
- package/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec.swift +62 -0
- package/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec_cxx.swift +271 -0
- package/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec_cxx.swift +158 -0
- package/nitrogen/generated/ios/swift/HybridViewModelPropertySpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridViewModelPropertySpec_cxx.swift +121 -0
- package/nitrogen/generated/ios/swift/HybridViewModelSpec.swift +61 -0
- package/nitrogen/generated/ios/swift/HybridViewModelSpec_cxx.swift +222 -0
- package/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec_cxx.swift +158 -0
- package/nitrogen/generated/ios/swift/HybridViewModelTriggerPropertySpec.swift +58 -0
- package/nitrogen/generated/ios/swift/HybridViewModelTriggerPropertySpec_cxx.swift +160 -0
- package/nitrogen/generated/ios/swift/ReferencedAssetsType.swift +75 -0
- package/nitrogen/generated/ios/swift/ResolvedReferencedAsset.swift +185 -0
- package/nitrogen/generated/ios/swift/RiveError.swift +47 -0
- package/nitrogen/generated/ios/swift/RiveErrorType.swift +60 -0
- package/nitrogen/generated/ios/swift/RiveEventType.swift +40 -0
- package/nitrogen/generated/ios/swift/UnifiedRiveEvent.swift +213 -0
- package/nitrogen/generated/ios/swift/Variant__any_HybridViewModelInstanceSpec__DataBindMode_DataBindByName.swift +19 -0
- package/nitrogen/generated/shared/c++/Alignment.hpp +104 -0
- package/nitrogen/generated/shared/c++/ArtboardBy.hpp +86 -0
- package/nitrogen/generated/shared/c++/ArtboardByTypes.hpp +76 -0
- package/nitrogen/generated/shared/c++/DataBindByName.hpp +75 -0
- package/nitrogen/generated/shared/c++/DataBindMode.hpp +62 -0
- package/nitrogen/generated/shared/c++/Fit.hpp +68 -0
- package/nitrogen/generated/shared/c++/HybridRiveFileFactorySpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridRiveFileFactorySpec.hpp +74 -0
- package/nitrogen/generated/shared/c++/HybridRiveFileSpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridRiveFileSpec.hpp +75 -0
- package/nitrogen/generated/shared/c++/HybridRiveImageFactorySpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridRiveImageFactorySpec.hpp +69 -0
- package/nitrogen/generated/shared/c++/HybridRiveImageSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridRiveImageSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridRiveSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridRiveSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridRiveViewSpec.cpp +54 -0
- package/nitrogen/generated/shared/c++/HybridRiveViewSpec.hpp +122 -0
- package/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.hpp +68 -0
- package/nitrogen/generated/shared/c++/HybridViewModelImagePropertySpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridViewModelImagePropertySpec.hpp +71 -0
- package/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.cpp +28 -0
- package/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.hpp +90 -0
- package/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridViewModelPropertySpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridViewModelPropertySpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridViewModelSpec.cpp +27 -0
- package/nitrogen/generated/shared/c++/HybridViewModelSpec.hpp +71 -0
- package/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.hpp +68 -0
- package/nitrogen/generated/shared/c++/HybridViewModelTriggerPropertySpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridViewModelTriggerPropertySpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/ReferencedAssetsType.hpp +79 -0
- package/nitrogen/generated/shared/c++/ResolvedReferencedAsset.hpp +95 -0
- package/nitrogen/generated/shared/c++/RiveError.hpp +81 -0
- package/nitrogen/generated/shared/c++/RiveErrorType.hpp +75 -0
- package/nitrogen/generated/shared/c++/RiveEventType.hpp +62 -0
- package/nitrogen/generated/shared/c++/UnifiedRiveEvent.hpp +100 -0
- package/nitrogen/generated/shared/c++/views/HybridRiveViewComponent.cpp +183 -0
- package/nitrogen/generated/shared/c++/views/HybridRiveViewComponent.hpp +124 -0
- package/nitrogen/generated/shared/json/RiveViewConfig.json +18 -0
- package/package.json +193 -0
- package/src/core/Alignment.ts +46 -0
- package/src/core/Errors.ts +14 -0
- package/src/core/Events.ts +31 -0
- package/src/core/Fit.ts +54 -0
- package/src/core/NitroRiveViewComponent.ts +18 -0
- package/src/core/ReferencedAssets.ts +14 -0
- package/src/core/RiveColor.ts +100 -0
- package/src/core/RiveFile.ts +149 -0
- package/src/core/RiveImages.ts +5 -0
- package/src/core/RiveView.tsx +48 -0
- package/src/core/callDispose.ts +18 -0
- package/src/hooks/useRive.ts +56 -0
- package/src/hooks/useRiveBoolean.ts +28 -0
- package/src/hooks/useRiveColor.ts +47 -0
- package/src/hooks/useRiveEnum.ts +27 -0
- package/src/hooks/useRiveFile.ts +184 -0
- package/src/hooks/useRiveNumber.ts +28 -0
- package/src/hooks/useRiveProperty.ts +110 -0
- package/src/hooks/useRiveString.ts +28 -0
- package/src/hooks/useRiveTrigger.ts +49 -0
- package/src/index.tsx +52 -0
- package/src/specs/ArtboardBy.ts +31 -0
- package/src/specs/Rive.nitro.ts +6 -0
- package/src/specs/RiveFile.nitro.ts +57 -0
- package/src/specs/RiveImage.nitro.ts +42 -0
- package/src/specs/RiveView.nitro.ts +149 -0
- package/src/specs/ViewModel.nitro.ts +126 -0
- package/src/types.tsx +34 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import Foundation
|
|
2
|
+
import NitroModules
|
|
3
|
+
import RiveRuntime
|
|
4
|
+
import UIKit
|
|
5
|
+
|
|
6
|
+
private struct DefaultConfiguration {
|
|
7
|
+
static let autoPlay = true
|
|
8
|
+
static let alignment = RiveAlignment.center
|
|
9
|
+
static let fit = RiveFit.contain
|
|
10
|
+
static let layoutScaleFactor = RiveRuntime.RiveViewModel.layoutScaleFactorAutomatic
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
typealias HybridDataBindMode = Variant__any_HybridViewModelInstanceSpec__DataBindMode_DataBindByName
|
|
14
|
+
|
|
15
|
+
extension Optional
|
|
16
|
+
where Wrapped == HybridDataBindMode {
|
|
17
|
+
func toDataBingMode() throws -> BindData {
|
|
18
|
+
guard let value = self else {
|
|
19
|
+
return .auto
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
switch value {
|
|
23
|
+
case .first(let viewModelInstance):
|
|
24
|
+
if let instance = (viewModelInstance as? HybridViewModelInstance)?.viewModelInstance {
|
|
25
|
+
return .instance(instance)
|
|
26
|
+
} else {
|
|
27
|
+
throw RuntimeError.error(withMessage: "Invalid ViewModelInstance")
|
|
28
|
+
}
|
|
29
|
+
case .second(let mode):
|
|
30
|
+
switch mode {
|
|
31
|
+
case .auto:
|
|
32
|
+
return .auto
|
|
33
|
+
case .none:
|
|
34
|
+
return .none
|
|
35
|
+
}
|
|
36
|
+
case .third(let dataBindByName):
|
|
37
|
+
return .byName(dataBindByName.byName)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/// Check if two HybridDataBindMode values are semantically equal
|
|
42
|
+
func isEqual(to other: HybridDataBindMode?) -> Bool {
|
|
43
|
+
guard let lhs = self, let rhs = other else {
|
|
44
|
+
return self == nil && other == nil
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
switch (lhs, rhs) {
|
|
48
|
+
case (.first(let lhsInstance), .first(let rhsInstance)):
|
|
49
|
+
// Compare ViewModelInstance references
|
|
50
|
+
let lhsVMI = (lhsInstance as? HybridViewModelInstance)?.viewModelInstance
|
|
51
|
+
let rhsVMI = (rhsInstance as? HybridViewModelInstance)?.viewModelInstance
|
|
52
|
+
return lhsVMI === rhsVMI
|
|
53
|
+
|
|
54
|
+
case (.second(let lhsMode), .second(let rhsMode)):
|
|
55
|
+
// Compare DataBindMode enums
|
|
56
|
+
return lhsMode == rhsMode
|
|
57
|
+
|
|
58
|
+
case (.third(let lhsByName), .third(let rhsByName)):
|
|
59
|
+
// Compare byName strings
|
|
60
|
+
return lhsByName.byName == rhsByName.byName
|
|
61
|
+
|
|
62
|
+
default:
|
|
63
|
+
return false
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
class HybridRiveView: HybridRiveViewSpec {
|
|
69
|
+
func play() throws -> NitroModules.Promise<Void> {
|
|
70
|
+
return Promise.async {
|
|
71
|
+
try await self.getRiveView().play()
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
func pause() throws -> NitroModules.Promise<Void> {
|
|
76
|
+
return Promise.async {
|
|
77
|
+
try await self.getRiveView().pause()
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
func reset() throws -> NitroModules.Promise<Void> {
|
|
82
|
+
return Promise.async {
|
|
83
|
+
try await self.getRiveView().reset()
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
func playIfNeeded() {
|
|
88
|
+
try? self.getRiveView().playIfNeeded()
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// MARK: View Props
|
|
92
|
+
var dataBind: HybridDataBindMode? {
|
|
93
|
+
didSet {
|
|
94
|
+
if !dataBind.isEqual(to: oldValue) {
|
|
95
|
+
dataBindingChanged = true
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
var artboardName: String? { didSet { needsReload = true } }
|
|
101
|
+
var stateMachineName: String? { didSet { needsReload = true } }
|
|
102
|
+
var autoPlay: Bool? { didSet { needsReload = true } }
|
|
103
|
+
var file: (any HybridRiveFileSpec) = HybridRiveFile() {
|
|
104
|
+
didSet { needsReload = true }
|
|
105
|
+
}
|
|
106
|
+
var alignment: Alignment?
|
|
107
|
+
var fit: Fit?
|
|
108
|
+
var layoutScaleFactor: Double?
|
|
109
|
+
var onError: (RiveError) -> Void = { _ in }
|
|
110
|
+
|
|
111
|
+
func awaitViewReady() throws -> Promise<Bool> {
|
|
112
|
+
return Promise.async { [self] in
|
|
113
|
+
return try await getRiveView().awaitViewReady()
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
func bindViewModelInstance(viewModelInstance: (any HybridViewModelInstanceSpec)) throws {
|
|
118
|
+
guard let viewModelInstance = (viewModelInstance as? HybridViewModelInstance)?.viewModelInstance
|
|
119
|
+
else { return }
|
|
120
|
+
try getRiveView().bindViewModelInstance(viewModelInstance: viewModelInstance)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
func getViewModelInstance() throws -> (any HybridViewModelInstanceSpec)? {
|
|
124
|
+
guard let viewModelInstance = try getRiveView().getViewModelInstance() else { return nil }
|
|
125
|
+
return HybridViewModelInstance(viewModelInstance: viewModelInstance)
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
func onEventListener(onEvent: @escaping (UnifiedRiveEvent) -> Void) throws {
|
|
129
|
+
try getRiveView().addEventListener(onEvent)
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
func removeEventListeners() throws { try getRiveView().removeEventListeners() }
|
|
133
|
+
|
|
134
|
+
func setNumberInputValue(name: String, value: Double, path: String?) throws {
|
|
135
|
+
try getRiveView().setNumberInputValue(name: name, value: Float(value), path: path)
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
func getNumberInputValue(name: String, path: String?) throws -> Double {
|
|
139
|
+
return try Double(getRiveView().getNumberInputValue(name: name, path: path))
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
func setBooleanInputValue(name: String, value: Bool, path: String?) throws {
|
|
143
|
+
try getRiveView().setBooleanInputValue(name: name, value: value, path: path)
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
func getBooleanInputValue(name: String, path: String?) throws -> Bool {
|
|
147
|
+
return try getRiveView().getBooleanInputValue(name: name, path: path)
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
func triggerInput(name: String, path: String?) throws {
|
|
151
|
+
try getRiveView().triggerInput(name: name, path: path)
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
func setTextRunValue(name: String, value: String, path: String?) throws {
|
|
155
|
+
try getRiveView().setTextRunValue(name: name, value: value, path: path)
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
func getTextRunValue(name: String, path: String?) throws -> String {
|
|
159
|
+
return try getRiveView().getTextRunValue(name: name, path: path)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// MARK: Views
|
|
163
|
+
var view: UIView = RiveReactNativeView()
|
|
164
|
+
func getRiveView() throws -> RiveReactNativeView {
|
|
165
|
+
guard let riveView = view as? RiveReactNativeView else {
|
|
166
|
+
throw RuntimeError.error(withMessage: "RiveReactNativeView is null or not configured")
|
|
167
|
+
}
|
|
168
|
+
return riveView
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// MARK: Update
|
|
172
|
+
func afterUpdate() {
|
|
173
|
+
logged(tag: "HybridRiveView", note: "afterUpdate") {
|
|
174
|
+
guard let hybridFile = file as? HybridRiveFile,
|
|
175
|
+
let file = hybridFile.riveFile
|
|
176
|
+
else { return }
|
|
177
|
+
|
|
178
|
+
let config = ViewConfiguration(
|
|
179
|
+
artboardName: artboardName,
|
|
180
|
+
stateMachineName: stateMachineName,
|
|
181
|
+
autoPlay: autoPlay ?? DefaultConfiguration.autoPlay,
|
|
182
|
+
riveFile: file,
|
|
183
|
+
viewSource: hybridFile,
|
|
184
|
+
alignment: convertAlignment(alignment) ?? DefaultConfiguration.alignment,
|
|
185
|
+
fit: convertFit(fit) ?? DefaultConfiguration.fit,
|
|
186
|
+
layoutScaleFactor: layoutScaleFactor ?? DefaultConfiguration.layoutScaleFactor,
|
|
187
|
+
bindData: try dataBind.toDataBingMode()
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
let riveView = try getRiveView()
|
|
191
|
+
try riveView.configure(
|
|
192
|
+
config, dataBindingChanged: dataBindingChanged, reload: needsReload,
|
|
193
|
+
initialUpdate: initialUpdate)
|
|
194
|
+
needsReload = false
|
|
195
|
+
dataBindingChanged = false
|
|
196
|
+
initialUpdate = false
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// MARK: Internal State
|
|
201
|
+
private var needsReload = false
|
|
202
|
+
private var dataBindingChanged = false
|
|
203
|
+
private var initialUpdate = true
|
|
204
|
+
|
|
205
|
+
// MARK: Helpers
|
|
206
|
+
private func convertAlignment(_ alignment: Alignment?) -> RiveAlignment? {
|
|
207
|
+
guard let alignment = alignment else { return nil }
|
|
208
|
+
|
|
209
|
+
switch alignment {
|
|
210
|
+
case .topleft: return .topLeft
|
|
211
|
+
case .topcenter: return .topCenter
|
|
212
|
+
case .topright: return .topRight
|
|
213
|
+
case .centerleft: return .centerLeft
|
|
214
|
+
case .center: return .center
|
|
215
|
+
case .centerright: return .centerRight
|
|
216
|
+
case .bottomleft: return .bottomLeft
|
|
217
|
+
case .bottomcenter: return .bottomCenter
|
|
218
|
+
case .bottomright: return .bottomRight
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
private func convertFit(_ fit: Fit?) -> RiveFit? {
|
|
223
|
+
guard let fit = fit else { return nil }
|
|
224
|
+
|
|
225
|
+
switch fit {
|
|
226
|
+
case .fill: return .fill
|
|
227
|
+
case .contain: return .contain
|
|
228
|
+
case .cover: return .cover
|
|
229
|
+
case .fitwidth: return .fitWidth
|
|
230
|
+
case .fitheight: return .fitHeight
|
|
231
|
+
case .none: return .noFit
|
|
232
|
+
case .scaledown: return .scaleDown
|
|
233
|
+
case .layout: return .layout
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
extension HybridRiveView {
|
|
239
|
+
func logged(tag: String, note: String? = nil, _ fn: () throws -> Void) {
|
|
240
|
+
do {
|
|
241
|
+
return try fn()
|
|
242
|
+
} catch let e {
|
|
243
|
+
let (errorType, errorDescription) = detectErrorType(e)
|
|
244
|
+
let noteString = note.map { " \($0)" } ?? ""
|
|
245
|
+
let errorMessage = "[RIVE] \(tag)\(noteString) \(errorDescription)"
|
|
246
|
+
|
|
247
|
+
let riveError = RiveError(
|
|
248
|
+
message: errorMessage,
|
|
249
|
+
type: errorType
|
|
250
|
+
)
|
|
251
|
+
onError(riveError)
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
private func detectErrorType(_ error: Error) -> (RiveErrorType, String) {
|
|
256
|
+
switch error {
|
|
257
|
+
case NitroRiveError.instanceNotFound(let message):
|
|
258
|
+
return (.viewmodelinstancenotfound, message)
|
|
259
|
+
case NitroRiveError.fileNotFound(let message):
|
|
260
|
+
return (.filenotfound, message)
|
|
261
|
+
default:
|
|
262
|
+
break
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
let nsError = error as NSError
|
|
266
|
+
let message = nsError.localizedDescription
|
|
267
|
+
|
|
268
|
+
// RiveErrorCode from RiveRuntime
|
|
269
|
+
switch nsError.code {
|
|
270
|
+
case RiveErrorCode.noArtboardFound.rawValue:
|
|
271
|
+
return (.incorrectartboardname, message)
|
|
272
|
+
case RiveErrorCode.noStateMachineFound.rawValue:
|
|
273
|
+
return (.incorrectstatemachinename, message)
|
|
274
|
+
case RiveErrorCode.noAnimationFound.rawValue:
|
|
275
|
+
return (.unknown, message)
|
|
276
|
+
case RiveErrorCode.malformedFile.rawValue:
|
|
277
|
+
return (.malformedfile, message)
|
|
278
|
+
case RiveErrorCode.noStateMachineInputFound.rawValue:
|
|
279
|
+
return (.incorrectstatemachineinputname, message)
|
|
280
|
+
default:
|
|
281
|
+
return (.unknown, message)
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import RiveRuntime
|
|
2
|
+
|
|
3
|
+
class HybridViewModel: HybridViewModelSpec {
|
|
4
|
+
let viewModel: RiveDataBindingViewModel?
|
|
5
|
+
|
|
6
|
+
init(viewModel: RiveDataBindingViewModel) {
|
|
7
|
+
self.viewModel = viewModel
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
override init() {
|
|
11
|
+
self.viewModel = nil
|
|
12
|
+
super.init()
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
var propertyCount: Double { Double(viewModel?.propertyCount ?? 0) }
|
|
16
|
+
|
|
17
|
+
var instanceCount: Double { Double(viewModel?.instanceCount ?? 0) }
|
|
18
|
+
|
|
19
|
+
var modelName: String { viewModel?.name ?? "" }
|
|
20
|
+
|
|
21
|
+
func createInstanceByIndex(index: Double) throws -> (any HybridViewModelInstanceSpec)? {
|
|
22
|
+
guard let viewModel = viewModel,
|
|
23
|
+
let vmi = viewModel.createInstance(fromIndex: UInt(index)) else { return nil }
|
|
24
|
+
return HybridViewModelInstance(viewModelInstance: vmi)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
func createInstanceByName(name: String) throws -> (any HybridViewModelInstanceSpec)? {
|
|
28
|
+
guard let viewModel = viewModel,
|
|
29
|
+
let vmi = viewModel.createInstance(fromName: name) else { return nil }
|
|
30
|
+
return HybridViewModelInstance(viewModelInstance: vmi)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
func createDefaultInstance() throws -> (any HybridViewModelInstanceSpec)? {
|
|
34
|
+
guard let viewModel = viewModel,
|
|
35
|
+
let vmi = viewModel.createDefaultInstance() else {
|
|
36
|
+
return nil
|
|
37
|
+
}
|
|
38
|
+
return HybridViewModelInstance(viewModelInstance: vmi)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
func createInstance() throws -> (any HybridViewModelInstanceSpec)? {
|
|
42
|
+
guard let viewModel = viewModel,
|
|
43
|
+
let vmi = viewModel.createInstance() else { return nil }
|
|
44
|
+
return HybridViewModelInstance(viewModelInstance: vmi)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import NitroModules
|
|
2
|
+
import RiveRuntime
|
|
3
|
+
|
|
4
|
+
class HybridViewModelBooleanProperty: HybridViewModelBooleanPropertySpec, ValuedPropertyProtocol {
|
|
5
|
+
var property: BooleanPropertyType!
|
|
6
|
+
lazy var helper = PropertyListenerHelper(property: property!)
|
|
7
|
+
|
|
8
|
+
init(property: BooleanPropertyType) {
|
|
9
|
+
self.property = property
|
|
10
|
+
super.init()
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/// ⚠️ DO NOT REMOVE
|
|
14
|
+
/// Nitro requires a parameterless initializer for JS bridging.
|
|
15
|
+
/// This is invoked automatically during hybrid module construction.
|
|
16
|
+
/// Internally we always use `init(property:)`
|
|
17
|
+
override init() {
|
|
18
|
+
super.init()
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
var value: Bool {
|
|
22
|
+
get {
|
|
23
|
+
return property.value
|
|
24
|
+
}
|
|
25
|
+
set {
|
|
26
|
+
property.value = newValue
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import NitroModules
|
|
2
|
+
import RiveRuntime
|
|
3
|
+
|
|
4
|
+
class HybridViewModelColorProperty: HybridViewModelColorPropertySpec, ValuedPropertyProtocol {
|
|
5
|
+
var property: ColorPropertyType!
|
|
6
|
+
lazy var helper = PropertyListenerHelper(property: property!)
|
|
7
|
+
|
|
8
|
+
init(property: ColorPropertyType) {
|
|
9
|
+
self.property = property
|
|
10
|
+
super.init()
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/// ⚠️ DO NOT REMOVE
|
|
14
|
+
/// Nitro requires a parameterless initializer for JS bridging.
|
|
15
|
+
/// This is invoked automatically during hybrid module construction.
|
|
16
|
+
/// Internally we always use `init(property:)`
|
|
17
|
+
override init() {
|
|
18
|
+
super.init()
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
var value: Double {
|
|
22
|
+
get {
|
|
23
|
+
return property.value.toHexDouble()
|
|
24
|
+
}
|
|
25
|
+
set {
|
|
26
|
+
property.value = UIColor(argb: Int(newValue))
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Custom addListener because we need to convert UIColor → Double
|
|
31
|
+
func addListener(onChanged: @escaping (Double) -> Void) throws {
|
|
32
|
+
helper.addListener { (color: UIColor) in
|
|
33
|
+
onChanged(color.toHexDouble())
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
extension UIColor {
|
|
39
|
+
convenience init(argb: Int) {
|
|
40
|
+
let alpha = CGFloat((argb >> 24) & 0xFF) / 255.0
|
|
41
|
+
let red = CGFloat((argb >> 16) & 0xFF) / 255.0
|
|
42
|
+
let green = CGFloat((argb >> 8) & 0xFF) / 255.0
|
|
43
|
+
let blue = CGFloat(argb & 0xFF) / 255.0
|
|
44
|
+
|
|
45
|
+
self.init(red: red, green: green, blue: blue, alpha: alpha)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
func toHexDouble() -> Double {
|
|
49
|
+
var red: CGFloat = 0
|
|
50
|
+
var green: CGFloat = 0
|
|
51
|
+
var blue: CGFloat = 0
|
|
52
|
+
var alpha: CGFloat = 0
|
|
53
|
+
|
|
54
|
+
self.getRed(&red, green: &green, blue: &blue, alpha: &alpha)
|
|
55
|
+
|
|
56
|
+
let r = UInt32(red * 255)
|
|
57
|
+
let g = UInt32(green * 255)
|
|
58
|
+
let b = UInt32(blue * 255)
|
|
59
|
+
let a = UInt32(alpha * 255)
|
|
60
|
+
|
|
61
|
+
return Double((a << 24) | (r << 16) | (g << 8) | b)
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import NitroModules
|
|
2
|
+
import RiveRuntime
|
|
3
|
+
|
|
4
|
+
class HybridViewModelEnumProperty: HybridViewModelEnumPropertySpec, ValuedPropertyProtocol {
|
|
5
|
+
var property: EnumPropertyType!
|
|
6
|
+
lazy var helper = PropertyListenerHelper(property: property!)
|
|
7
|
+
|
|
8
|
+
init(property: EnumPropertyType) {
|
|
9
|
+
self.property = property
|
|
10
|
+
super.init()
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/// ⚠️ DO NOT REMOVE
|
|
14
|
+
/// Nitro requires a parameterless initializer for JS bridging.
|
|
15
|
+
/// This is invoked automatically during hybrid module construction.
|
|
16
|
+
/// Internally we always use `init(property:)`
|
|
17
|
+
override init() {
|
|
18
|
+
super.init()
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
var value: String {
|
|
22
|
+
get {
|
|
23
|
+
return property.value
|
|
24
|
+
}
|
|
25
|
+
set {
|
|
26
|
+
property.value = newValue
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import RiveRuntime
|
|
2
|
+
|
|
3
|
+
class HybridViewModelImageProperty: HybridViewModelImagePropertySpec, ValuedPropertyProtocol {
|
|
4
|
+
func addListener(onChanged: @escaping () -> Void) throws {
|
|
5
|
+
try addListener(onChanged: { _ in onChanged() })
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
var property: ImagePropertyType!
|
|
9
|
+
lazy var helper = PropertyListenerHelper(property: property!)
|
|
10
|
+
|
|
11
|
+
init(property: ImagePropertyType) {
|
|
12
|
+
self.property = property
|
|
13
|
+
super.init()
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/// ⚠️ DO NOT REMOVE
|
|
17
|
+
/// Nitro requires a parameterless initializer for JS bridging.
|
|
18
|
+
/// This is invoked automatically during hybrid module construction.
|
|
19
|
+
/// Internally we always use `init(property:)`
|
|
20
|
+
override init() {
|
|
21
|
+
super.init()
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
func set(image: HybridRiveImageSpec?) throws {
|
|
25
|
+
if let hybridImage = image as? HybridRiveImage {
|
|
26
|
+
property.setValue(hybridImage.renderImage)
|
|
27
|
+
} else {
|
|
28
|
+
property.setValue(nil)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import RiveRuntime
|
|
2
|
+
|
|
3
|
+
class HybridViewModelInstance: HybridViewModelInstanceSpec {
|
|
4
|
+
let viewModelInstance: RiveDataBindingViewModel.Instance?
|
|
5
|
+
|
|
6
|
+
init(viewModelInstance: RiveDataBindingViewModel.Instance) {
|
|
7
|
+
self.viewModelInstance = viewModelInstance
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
override init() {
|
|
11
|
+
self.viewModelInstance = nil
|
|
12
|
+
super.init()
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
var instanceName: String { viewModelInstance?.name ?? "" }
|
|
16
|
+
|
|
17
|
+
func numberProperty(path: String) throws -> (any HybridViewModelNumberPropertySpec)? {
|
|
18
|
+
guard let property = viewModelInstance?.numberProperty(fromPath: path) else { return nil }
|
|
19
|
+
return HybridViewModelNumberProperty(property: property)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
func stringProperty(path: String) throws -> (any HybridViewModelStringPropertySpec)? {
|
|
23
|
+
guard let property = viewModelInstance?.stringProperty(fromPath: path) else { return nil }
|
|
24
|
+
return HybridViewModelStringProperty(property: property)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
func booleanProperty(path: String) throws -> (any HybridViewModelBooleanPropertySpec)? {
|
|
28
|
+
guard let property = viewModelInstance?.booleanProperty(fromPath: path) else { return nil }
|
|
29
|
+
return HybridViewModelBooleanProperty(property: property)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
func colorProperty(path: String) throws -> (any HybridViewModelColorPropertySpec)? {
|
|
33
|
+
guard let property = viewModelInstance?.colorProperty(fromPath: path) else { return nil }
|
|
34
|
+
return HybridViewModelColorProperty(property: property)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
func enumProperty(path: String) throws -> (any HybridViewModelEnumPropertySpec)? {
|
|
38
|
+
guard let property = viewModelInstance?.enumProperty(fromPath: path) else { return nil }
|
|
39
|
+
return HybridViewModelEnumProperty(property: property)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
func triggerProperty(path: String) throws -> (any HybridViewModelTriggerPropertySpec)? {
|
|
43
|
+
guard let property = viewModelInstance?.triggerProperty(fromPath: path) else { return nil }
|
|
44
|
+
return HybridViewModelTriggerProperty(property: property)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
func imageProperty(path: String) throws -> (any HybridViewModelImagePropertySpec)? {
|
|
48
|
+
guard let property = viewModelInstance?.imageProperty(fromPath: path) else { return nil }
|
|
49
|
+
return HybridViewModelImageProperty(property: property)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import RiveRuntime
|
|
2
|
+
|
|
3
|
+
class HybridViewModelNumberProperty: HybridViewModelNumberPropertySpec, ValuedPropertyProtocol {
|
|
4
|
+
var property: NumberPropertyType!
|
|
5
|
+
lazy var helper = PropertyListenerHelper(property: property!)
|
|
6
|
+
|
|
7
|
+
init(property: NumberPropertyType) {
|
|
8
|
+
self.property = property
|
|
9
|
+
super.init()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/// ⚠️ DO NOT REMOVE
|
|
13
|
+
/// Nitro requires a parameterless initializer for JS bridging.
|
|
14
|
+
/// This is invoked automatically during hybrid module construction.
|
|
15
|
+
/// Internally we always use `init(property:)`
|
|
16
|
+
override init() {
|
|
17
|
+
super.init()
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
var value: Double {
|
|
21
|
+
get {
|
|
22
|
+
return Double(property.value)
|
|
23
|
+
}
|
|
24
|
+
set {
|
|
25
|
+
property.value = Float(newValue)
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Custom addListener needed because ListenerValueType (Float) != ValueType (Double)
|
|
30
|
+
func addListener(onChanged: @escaping (Double) -> Void) throws {
|
|
31
|
+
helper.addListener { (value: Float) in
|
|
32
|
+
onChanged(Double(value))
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import NitroModules
|
|
2
|
+
import RiveRuntime
|
|
3
|
+
|
|
4
|
+
class HybridViewModelStringProperty: HybridViewModelStringPropertySpec, ValuedPropertyProtocol {
|
|
5
|
+
var property: StringPropertyType!
|
|
6
|
+
lazy var helper = PropertyListenerHelper(property: property!)
|
|
7
|
+
|
|
8
|
+
init(property: StringPropertyType) {
|
|
9
|
+
self.property = property
|
|
10
|
+
super.init()
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/// ⚠️ DO NOT REMOVE
|
|
14
|
+
/// Nitro requires a parameterless initializer for JS bridging.
|
|
15
|
+
/// This is invoked automatically during hybrid module construction.
|
|
16
|
+
/// Internally we always use `init(property:)`
|
|
17
|
+
override init() {
|
|
18
|
+
super.init()
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
var value: String {
|
|
22
|
+
get {
|
|
23
|
+
return property.value
|
|
24
|
+
}
|
|
25
|
+
set {
|
|
26
|
+
property.value = newValue
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import NitroModules
|
|
2
|
+
import RiveRuntime
|
|
3
|
+
|
|
4
|
+
class HybridViewModelTriggerProperty: HybridViewModelTriggerPropertySpec, ValuedPropertyProtocol {
|
|
5
|
+
internal var property: TriggerPropertyType!
|
|
6
|
+
lazy var helper = PropertyListenerHelper(property: property!)
|
|
7
|
+
|
|
8
|
+
private var listenerIds: [UUID] = []
|
|
9
|
+
|
|
10
|
+
func addListener(onChanged: @escaping () -> Void) throws {
|
|
11
|
+
try addListener(onChanged: { _ in onChanged() })
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
init(property: TriggerPropertyType) {
|
|
15
|
+
self.property = property
|
|
16
|
+
super.init()
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/// ⚠️ DO NOT REMOVE
|
|
20
|
+
/// Nitro requires a parameterless initializer for JS bridging.
|
|
21
|
+
/// This is invoked automatically during hybrid module construction.
|
|
22
|
+
/// Internally we always use `init(property:)`
|
|
23
|
+
override init() {
|
|
24
|
+
super.init()
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
func trigger() {
|
|
28
|
+
property.trigger()
|
|
29
|
+
}
|
|
30
|
+
}
|
package/ios/RCTLog.swift
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
func RCTLogError(_ message: String, _ file: String=#file, _ line: UInt=#line) {
|
|
2
|
+
DispatchQueue.main.async {
|
|
3
|
+
RCTSwiftLog.error(message, file: file, line: line)
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
func RCTLogWarn(_ message: String, _ file: String=#file, _ line: UInt=#line) {
|
|
8
|
+
DispatchQueue.main.async {
|
|
9
|
+
RCTSwiftLog.warn(message, file: file, line: line)
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
func RCTLogInfo(_ message: String, _ file: String=#file, _ line: UInt=#line) {
|
|
14
|
+
DispatchQueue.main.async {
|
|
15
|
+
RCTSwiftLog.info(message, file: file, line: line)
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
func RCTLog(_ message: String, _ file: String=#file, _ line: UInt=#line) {
|
|
20
|
+
DispatchQueue.main.async {
|
|
21
|
+
RCTSwiftLog.log(message, file: file, line: line)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
func RCTLogTrace(_ message: String, _ file: String=#file, _ line: UInt=#line) {
|
|
26
|
+
DispatchQueue.main.async {
|
|
27
|
+
RCTSwiftLog.trace(message, file: file, line: line)
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
2
|
+
|
|
3
|
+
@interface RCTSwiftLog : NSObject
|
|
4
|
+
|
|
5
|
+
+ (void)error:(NSString * _Nonnull)message file:(NSString * _Nonnull)file line:(NSUInteger)line;
|
|
6
|
+
+ (void)warn:(NSString * _Nonnull)message file:(NSString * _Nonnull)file line:(NSUInteger)line;
|
|
7
|
+
+ (void)info:(NSString * _Nonnull)message file:(NSString * _Nonnull)file line:(NSUInteger)line;
|
|
8
|
+
+ (void)log:(NSString * _Nonnull)message file:(NSString * _Nonnull)file line:(NSUInteger)line;
|
|
9
|
+
+ (void)trace:(NSString * _Nonnull)message file:(NSString * _Nonnull)file line:(NSUInteger)line;
|
|
10
|
+
|
|
11
|
+
@end
|