@rive-app/react-native 0.1.5 → 0.2.1
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 +1 -1
- package/lib/module/core/RiveFile.js +1 -1
- package/lib/module/core/RiveFile.js.map +1 -1
- package/lib/module/hooks/useViewModelInstance.js +97 -12
- package/lib/module/hooks/useViewModelInstance.js.map +1 -1
- package/lib/typescript/src/hooks/useViewModelInstance.d.ts +82 -13
- package/lib/typescript/src/hooks/useViewModelInstance.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JAlignment.hpp +10 -11
- package/nitrogen/generated/android/c++/JArtboardBy.hpp +1 -1
- package/nitrogen/generated/android/c++/JArtboardByTypes.hpp +3 -4
- package/nitrogen/generated/android/c++/JDataBindByName.hpp +1 -1
- package/nitrogen/generated/android/c++/JDataBindMode.hpp +3 -4
- package/nitrogen/generated/android/c++/JEventPropertiesOutput.cpp +1 -1
- package/nitrogen/generated/android/c++/JEventPropertiesOutput.hpp +4 -4
- package/nitrogen/generated/android/c++/JFit.hpp +9 -10
- package/nitrogen/generated/android/c++/JFunc_void.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_RiveError.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_UnifiedRiveEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_double.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridBindableArtboardSpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridBindableArtboardSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridRiveFileFactorySpec.cpp +8 -2
- package/nitrogen/generated/android/c++/JHybridRiveFileFactorySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridRiveFileSpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridRiveFileSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridRiveImageFactorySpec.cpp +8 -2
- package/nitrogen/generated/android/c++/JHybridRiveImageFactorySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridRiveImageSpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridRiveImageSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridRiveSpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridRiveSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridRiveViewSpec.cpp +9 -1
- package/nitrogen/generated/android/c++/JHybridRiveViewSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridViewModelArtboardPropertySpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridViewModelArtboardPropertySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridViewModelPropertySpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridViewModelPropertySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridViewModelSpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridViewModelSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridViewModelTriggerPropertySpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridViewModelTriggerPropertySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JReferencedAssetsType.hpp +1 -1
- package/nitrogen/generated/android/c++/JResolvedReferencedAsset.hpp +1 -1
- package/nitrogen/generated/android/c++/JRiveError.hpp +1 -1
- package/nitrogen/generated/android/c++/JRiveErrorType.hpp +8 -9
- package/nitrogen/generated/android/c++/JRiveEventType.hpp +3 -4
- package/nitrogen/generated/android/c++/JUnifiedRiveEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.hpp +4 -4
- package/nitrogen/generated/android/c++/views/JHybridRiveViewStateUpdater.cpp +1 -1
- package/nitrogen/generated/android/c++/views/JHybridRiveViewStateUpdater.hpp +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Alignment.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ArtboardBy.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ArtboardByTypes.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/DataBindByName.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/DataBindMode.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/EventPropertiesOutput.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Fit.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_RiveError.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_UnifiedRiveEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_bool.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_double.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_std__string.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridBindableArtboardSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileFactorySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveImageFactorySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveImageSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveViewSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelArtboardPropertySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelBooleanPropertySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelColorPropertySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelEnumPropertySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelImagePropertySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelInstanceSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelListPropertySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelNumberPropertySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelPropertySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelStringPropertySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelTriggerPropertySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ReferencedAssetsType.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ResolvedReferencedAsset.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveError.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveErrorType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveEventType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/UnifiedRiveEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Variant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/riveOnLoad.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/views/HybridRiveViewManager.kt +29 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/views/HybridRiveViewStateUpdater.kt +1 -1
- package/nitrogen/generated/android/rive+autolinking.cmake +1 -1
- package/nitrogen/generated/android/rive+autolinking.gradle +1 -1
- package/nitrogen/generated/android/riveOnLoad.cpp +1 -1
- package/nitrogen/generated/android/riveOnLoad.hpp +1 -1
- package/nitrogen/generated/ios/RNRive+autolinking.rb +2 -2
- package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.cpp +1 -1
- package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.hpp +3 -3
- package/nitrogen/generated/ios/RNRive-Swift-Cxx-Umbrella.hpp +1 -1
- package/nitrogen/generated/ios/RNRiveAutolinking.mm +1 -1
- package/nitrogen/generated/ios/RNRiveAutolinking.swift +25 -36
- package/nitrogen/generated/ios/c++/HybridBindableArtboardSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridBindableArtboardSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridRiveFileFactorySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridRiveFileFactorySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridRiveImageFactorySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridRiveImageFactorySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridRiveImageSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridRiveImageSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridRiveSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridRiveSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridRiveViewSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridRiveViewSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridViewModelArtboardPropertySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridViewModelArtboardPropertySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridViewModelImagePropertySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridViewModelImagePropertySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridViewModelListPropertySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridViewModelListPropertySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridViewModelPropertySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridViewModelPropertySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridViewModelTriggerPropertySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridViewModelTriggerPropertySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/views/HybridRiveViewComponent.mm +12 -1
- package/nitrogen/generated/ios/swift/Alignment.swift +1 -1
- package/nitrogen/generated/ios/swift/ArtboardBy.swift +14 -44
- package/nitrogen/generated/ios/swift/ArtboardByTypes.swift +1 -1
- package/nitrogen/generated/ios/swift/DataBindByName.swift +3 -9
- package/nitrogen/generated/ios/swift/DataBindMode.swift +1 -1
- package/nitrogen/generated/ios/swift/EventPropertiesOutput.swift +1 -1
- package/nitrogen/generated/ios/swift/Fit.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_RiveError.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_UnifiedRiveEvent.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_double.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridRiveFileSpec_.swift +2 -2
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridRiveImageSpec_.swift +2 -2
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridBindableArtboardSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridBindableArtboardSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridRiveFileFactorySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridRiveFileFactorySpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridRiveFileSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridRiveFileSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridRiveImageFactorySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridRiveImageFactorySpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridRiveImageSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridRiveImageSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridRiveSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridRiveSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridRiveViewSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridRiveViewSpec_cxx.swift +17 -4
- package/nitrogen/generated/ios/swift/HybridViewModelArtboardPropertySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridViewModelArtboardPropertySpec_cxx.swift +10 -2
- package/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridViewModelImagePropertySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridViewModelImagePropertySpec_cxx.swift +10 -2
- package/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec_cxx.swift +10 -2
- package/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec_cxx.swift +12 -4
- package/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridViewModelPropertySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridViewModelPropertySpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridViewModelSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridViewModelSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridViewModelTriggerPropertySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridViewModelTriggerPropertySpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/ReferencedAssetsType.swift +18 -36
- package/nitrogen/generated/ios/swift/ResolvedReferencedAsset.swift +50 -113
- package/nitrogen/generated/ios/swift/RiveError.swift +5 -17
- package/nitrogen/generated/ios/swift/RiveErrorType.swift +1 -1
- package/nitrogen/generated/ios/swift/RiveEventType.swift +1 -1
- package/nitrogen/generated/ios/swift/UnifiedRiveEvent.swift +57 -132
- package/nitrogen/generated/ios/swift/Variant__any_HybridViewModelInstanceSpec__DataBindMode_DataBindByName.swift +1 -1
- package/nitrogen/generated/shared/c++/Alignment.hpp +1 -1
- package/nitrogen/generated/shared/c++/ArtboardBy.hpp +19 -11
- package/nitrogen/generated/shared/c++/ArtboardByTypes.hpp +1 -1
- package/nitrogen/generated/shared/c++/DataBindByName.hpp +13 -5
- package/nitrogen/generated/shared/c++/DataBindMode.hpp +1 -1
- package/nitrogen/generated/shared/c++/Fit.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridBindableArtboardSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridBindableArtboardSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRiveFileFactorySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRiveFileFactorySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRiveFileSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRiveFileSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRiveImageFactorySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRiveImageFactorySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRiveImageSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRiveImageSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRiveSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRiveSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRiveViewSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRiveViewSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelArtboardPropertySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelArtboardPropertySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelImagePropertySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelImagePropertySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelPropertySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelPropertySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelTriggerPropertySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridViewModelTriggerPropertySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/ReferencedAssetsType.hpp +13 -5
- package/nitrogen/generated/shared/c++/ResolvedReferencedAsset.hpp +25 -17
- package/nitrogen/generated/shared/c++/RiveError.hpp +16 -8
- package/nitrogen/generated/shared/c++/RiveErrorType.hpp +1 -1
- package/nitrogen/generated/shared/c++/RiveEventType.hpp +1 -1
- package/nitrogen/generated/shared/c++/UnifiedRiveEvent.hpp +28 -20
- package/nitrogen/generated/shared/c++/views/HybridRiveViewComponent.cpp +4 -3
- package/nitrogen/generated/shared/c++/views/HybridRiveViewComponent.hpp +1 -1
- package/package.json +4 -4
- package/src/core/RiveFile.ts +1 -1
- package/src/hooks/useViewModelInstance.ts +198 -35
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// UnifiedRiveEvent.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -22,6 +22,11 @@
|
|
|
22
22
|
#else
|
|
23
23
|
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
24
|
#endif
|
|
25
|
+
#if __has_include(<NitroModules/PropNameIDCache.hpp>)
|
|
26
|
+
#include <NitroModules/PropNameIDCache.hpp>
|
|
27
|
+
#else
|
|
28
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
29
|
+
#endif
|
|
25
30
|
|
|
26
31
|
// Forward declaration of `RiveEventType` to properly resolve imports.
|
|
27
32
|
namespace margelo::nitro::rive { enum class RiveEventType; }
|
|
@@ -37,7 +42,7 @@ namespace margelo::nitro::rive {
|
|
|
37
42
|
/**
|
|
38
43
|
* A struct which can be represented as a JavaScript object (UnifiedRiveEvent).
|
|
39
44
|
*/
|
|
40
|
-
struct UnifiedRiveEvent {
|
|
45
|
+
struct UnifiedRiveEvent final {
|
|
41
46
|
public:
|
|
42
47
|
std::string name SWIFT_PRIVATE;
|
|
43
48
|
RiveEventType type SWIFT_PRIVATE;
|
|
@@ -49,6 +54,9 @@ namespace margelo::nitro::rive {
|
|
|
49
54
|
public:
|
|
50
55
|
UnifiedRiveEvent() = default;
|
|
51
56
|
explicit UnifiedRiveEvent(std::string name, RiveEventType type, std::optional<double> delay, std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>> properties, std::optional<std::string> url, std::optional<std::string> target): name(name), type(type), delay(delay), properties(properties), url(url), target(target) {}
|
|
57
|
+
|
|
58
|
+
public:
|
|
59
|
+
friend bool operator==(const UnifiedRiveEvent& lhs, const UnifiedRiveEvent& rhs) = default;
|
|
52
60
|
};
|
|
53
61
|
|
|
54
62
|
} // namespace margelo::nitro::rive
|
|
@@ -61,22 +69,22 @@ namespace margelo::nitro {
|
|
|
61
69
|
static inline margelo::nitro::rive::UnifiedRiveEvent fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
62
70
|
jsi::Object obj = arg.asObject(runtime);
|
|
63
71
|
return margelo::nitro::rive::UnifiedRiveEvent(
|
|
64
|
-
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "name")),
|
|
65
|
-
JSIConverter<margelo::nitro::rive::RiveEventType>::fromJSI(runtime, obj.getProperty(runtime, "type")),
|
|
66
|
-
JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "delay")),
|
|
67
|
-
JSIConverter<std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>>>::fromJSI(runtime, obj.getProperty(runtime, "properties")),
|
|
68
|
-
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "url")),
|
|
69
|
-
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "target"))
|
|
72
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "name"))),
|
|
73
|
+
JSIConverter<margelo::nitro::rive::RiveEventType>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "type"))),
|
|
74
|
+
JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "delay"))),
|
|
75
|
+
JSIConverter<std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "properties"))),
|
|
76
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "url"))),
|
|
77
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "target")))
|
|
70
78
|
);
|
|
71
79
|
}
|
|
72
80
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::rive::UnifiedRiveEvent& arg) {
|
|
73
81
|
jsi::Object obj(runtime);
|
|
74
|
-
obj.setProperty(runtime, "name", JSIConverter<std::string>::toJSI(runtime, arg.name));
|
|
75
|
-
obj.setProperty(runtime, "type", JSIConverter<margelo::nitro::rive::RiveEventType>::toJSI(runtime, arg.type));
|
|
76
|
-
obj.setProperty(runtime, "delay", JSIConverter<std::optional<double>>::toJSI(runtime, arg.delay));
|
|
77
|
-
obj.setProperty(runtime, "properties", JSIConverter<std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>>>::toJSI(runtime, arg.properties));
|
|
78
|
-
obj.setProperty(runtime, "url", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.url));
|
|
79
|
-
obj.setProperty(runtime, "target", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.target));
|
|
82
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "name"), JSIConverter<std::string>::toJSI(runtime, arg.name));
|
|
83
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "type"), JSIConverter<margelo::nitro::rive::RiveEventType>::toJSI(runtime, arg.type));
|
|
84
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "delay"), JSIConverter<std::optional<double>>::toJSI(runtime, arg.delay));
|
|
85
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "properties"), JSIConverter<std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>>>::toJSI(runtime, arg.properties));
|
|
86
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "url"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.url));
|
|
87
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "target"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.target));
|
|
80
88
|
return obj;
|
|
81
89
|
}
|
|
82
90
|
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
@@ -87,12 +95,12 @@ namespace margelo::nitro {
|
|
|
87
95
|
if (!nitro::isPlainObject(runtime, obj)) {
|
|
88
96
|
return false;
|
|
89
97
|
}
|
|
90
|
-
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "name"))) return false;
|
|
91
|
-
if (!JSIConverter<margelo::nitro::rive::RiveEventType>::canConvert(runtime, obj.getProperty(runtime, "type"))) return false;
|
|
92
|
-
if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "delay"))) return false;
|
|
93
|
-
if (!JSIConverter<std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>>>::canConvert(runtime, obj.getProperty(runtime, "properties"))) return false;
|
|
94
|
-
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "url"))) return false;
|
|
95
|
-
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "target"))) return false;
|
|
98
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "name")))) return false;
|
|
99
|
+
if (!JSIConverter<margelo::nitro::rive::RiveEventType>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "type")))) return false;
|
|
100
|
+
if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "delay")))) return false;
|
|
101
|
+
if (!JSIConverter<std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "properties")))) return false;
|
|
102
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "url")))) return false;
|
|
103
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "target")))) return false;
|
|
96
104
|
return true;
|
|
97
105
|
}
|
|
98
106
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// HybridRiveViewComponent.cpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#include "HybridRiveViewComponent.hpp"
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
#include <utility>
|
|
13
13
|
#include <NitroModules/NitroDefines.hpp>
|
|
14
14
|
#include <NitroModules/JSIConverter.hpp>
|
|
15
|
+
#include <NitroModules/PropNameIDCache.hpp>
|
|
15
16
|
#include <react/renderer/core/RawValue.h>
|
|
16
17
|
#include <react/renderer/core/ShadowNode.h>
|
|
17
18
|
#include <react/renderer/core/ComponentDescriptor.h>
|
|
@@ -110,7 +111,7 @@ namespace margelo::nitro::rive::views {
|
|
|
110
111
|
const react::RawValue* rawValue = rawProps.at("onError", nullptr, nullptr);
|
|
111
112
|
if (rawValue == nullptr) return sourceProps.onError;
|
|
112
113
|
const auto& [runtime, value] = (std::pair<jsi::Runtime*, jsi::Value>)*rawValue;
|
|
113
|
-
return CachedProp<std::function<void(const RiveError& /* error */)>>::fromRawValue(*runtime, value.asObject(*runtime).getProperty(*runtime, "f"), sourceProps.onError);
|
|
114
|
+
return CachedProp<std::function<void(const RiveError& /* error */)>>::fromRawValue(*runtime, value.asObject(*runtime).getProperty(*runtime, PropNameIDCache::get(*runtime, "f")), sourceProps.onError);
|
|
114
115
|
} catch (const std::exception& exc) {
|
|
115
116
|
throw std::runtime_error(std::string("RiveView.onError: ") + exc.what());
|
|
116
117
|
}
|
|
@@ -120,7 +121,7 @@ namespace margelo::nitro::rive::views {
|
|
|
120
121
|
const react::RawValue* rawValue = rawProps.at("hybridRef", nullptr, nullptr);
|
|
121
122
|
if (rawValue == nullptr) return sourceProps.hybridRef;
|
|
122
123
|
const auto& [runtime, value] = (std::pair<jsi::Runtime*, jsi::Value>)*rawValue;
|
|
123
|
-
return CachedProp<std::optional<std::function<void(const std::shared_ptr<HybridRiveViewSpec>& /* ref */)>>>::fromRawValue(*runtime, value.asObject(*runtime).getProperty(*runtime, "f"), sourceProps.hybridRef);
|
|
124
|
+
return CachedProp<std::optional<std::function<void(const std::shared_ptr<HybridRiveViewSpec>& /* ref */)>>>::fromRawValue(*runtime, value.asObject(*runtime).getProperty(*runtime, PropNameIDCache::get(*runtime, "f")), sourceProps.hybridRef);
|
|
124
125
|
} catch (const std::exception& exc) {
|
|
125
126
|
throw std::runtime_error(std::string("RiveView.hybridRef: ") + exc.what());
|
|
126
127
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rive-app/react-native",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Rive React Native",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -91,12 +91,12 @@
|
|
|
91
91
|
"eslint-plugin-jest": "^29.1.0",
|
|
92
92
|
"eslint-plugin-prettier": "^5.2.3",
|
|
93
93
|
"jest": "^29.7.0",
|
|
94
|
-
"nitrogen": "0.
|
|
94
|
+
"nitrogen": "0.33.2",
|
|
95
95
|
"prettier": "^3.0.3",
|
|
96
96
|
"react": "19.0.0",
|
|
97
97
|
"react-native": "0.79.2",
|
|
98
98
|
"react-native-builder-bob": "^0.40.10",
|
|
99
|
-
"react-native-nitro-modules": "0.
|
|
99
|
+
"react-native-nitro-modules": "0.33.2",
|
|
100
100
|
"react-test-renderer": "19.0.0",
|
|
101
101
|
"release-it": "^17.10.0",
|
|
102
102
|
"turbo": "^1.10.7",
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
"peerDependencies": {
|
|
106
106
|
"react": "*",
|
|
107
107
|
"react-native": "*",
|
|
108
|
-
"react-native-nitro-modules": ">=0.
|
|
108
|
+
"react-native-nitro-modules": ">=0.33.2"
|
|
109
109
|
},
|
|
110
110
|
"workspaces": [
|
|
111
111
|
"example",
|
package/src/core/RiveFile.ts
CHANGED
|
@@ -123,7 +123,7 @@ export namespace RiveFileFactory {
|
|
|
123
123
|
|
|
124
124
|
if (!assetURI) {
|
|
125
125
|
throw new Error(
|
|
126
|
-
`Invalid source
|
|
126
|
+
`Invalid source: could not resolve asset ${source}. Ensure 'riv' is in metro.config.js assetExts.`
|
|
127
127
|
);
|
|
128
128
|
}
|
|
129
129
|
|
|
@@ -3,16 +3,9 @@ import type { ViewModel, ViewModelInstance } from '../specs/ViewModel.nitro';
|
|
|
3
3
|
import type { RiveFile } from '../specs/RiveFile.nitro';
|
|
4
4
|
import type { RiveViewRef } from '../index';
|
|
5
5
|
import { callDispose } from '../core/callDispose';
|
|
6
|
+
import { ArtboardByName } from '../specs/ArtboardBy';
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Get a specifically named instance from the ViewModel.
|
|
10
|
-
*/
|
|
11
|
-
name?: string;
|
|
12
|
-
/**
|
|
13
|
-
* Create a new (blank) instance from the ViewModel.
|
|
14
|
-
*/
|
|
15
|
-
useNew?: boolean;
|
|
8
|
+
interface UseViewModelInstanceBaseParams {
|
|
16
9
|
/**
|
|
17
10
|
* If true, throws an error when the instance cannot be obtained.
|
|
18
11
|
* This is useful with Error Boundaries and ensures TypeScript knows
|
|
@@ -27,27 +20,93 @@ export interface UseViewModelInstanceParams {
|
|
|
27
20
|
onInit?: (instance: ViewModelInstance) => void;
|
|
28
21
|
}
|
|
29
22
|
|
|
23
|
+
interface UseViewModelInstanceFileBaseParams
|
|
24
|
+
extends UseViewModelInstanceBaseParams {
|
|
25
|
+
/**
|
|
26
|
+
* The ViewModel instance name (uses `createInstanceByName()`).
|
|
27
|
+
* If not provided, creates the default instance.
|
|
28
|
+
*/
|
|
29
|
+
instanceName?: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Use the ViewModel assigned to the default artboard.
|
|
34
|
+
*/
|
|
35
|
+
interface UseViewModelInstanceFileDefault
|
|
36
|
+
extends UseViewModelInstanceFileBaseParams {
|
|
37
|
+
artboardName?: never;
|
|
38
|
+
viewModelName?: never;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Use the ViewModel assigned to a specific artboard.
|
|
43
|
+
*/
|
|
44
|
+
interface UseViewModelInstanceFileByArtboard
|
|
45
|
+
extends UseViewModelInstanceFileBaseParams {
|
|
46
|
+
/**
|
|
47
|
+
* Get the ViewModel assigned to this artboard.
|
|
48
|
+
*/
|
|
49
|
+
artboardName: string;
|
|
50
|
+
viewModelName?: never;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Use a ViewModel by name (file-wide lookup).
|
|
55
|
+
* ViewModels are defined at the file level, not per-artboard.
|
|
56
|
+
*/
|
|
57
|
+
interface UseViewModelInstanceFileByViewModelName
|
|
58
|
+
extends UseViewModelInstanceFileBaseParams {
|
|
59
|
+
artboardName?: never;
|
|
60
|
+
/**
|
|
61
|
+
* The name of the ViewModel to use (uses `viewModelByName()`).
|
|
62
|
+
* ViewModels are defined at the file level and looked up by name across the entire file.
|
|
63
|
+
*/
|
|
64
|
+
viewModelName: string;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export type UseViewModelInstanceFileParams =
|
|
68
|
+
| UseViewModelInstanceFileDefault
|
|
69
|
+
| UseViewModelInstanceFileByArtboard
|
|
70
|
+
| UseViewModelInstanceFileByViewModelName;
|
|
71
|
+
|
|
72
|
+
export interface UseViewModelInstanceViewModelParams
|
|
73
|
+
extends UseViewModelInstanceBaseParams {
|
|
74
|
+
/**
|
|
75
|
+
* The ViewModel instance name (uses `createInstanceByName()`).
|
|
76
|
+
* If not provided, creates the default instance.
|
|
77
|
+
*/
|
|
78
|
+
name?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Create a new (blank) instance from the ViewModel.
|
|
81
|
+
*/
|
|
82
|
+
useNew?: boolean;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export type UseViewModelInstanceRefParams = UseViewModelInstanceBaseParams;
|
|
86
|
+
|
|
30
87
|
type ViewModelSource = ViewModel | RiveFile | RiveViewRef;
|
|
31
88
|
|
|
32
89
|
function isRiveViewRef(source: ViewModelSource | null): source is RiveViewRef {
|
|
33
|
-
return
|
|
34
|
-
source !== null && source !== undefined && 'getViewModelInstance' in source
|
|
35
|
-
);
|
|
90
|
+
return source !== null && 'getViewModelInstance' in source;
|
|
36
91
|
}
|
|
37
92
|
|
|
38
93
|
function isRiveFile(source: ViewModelSource | null): source is RiveFile {
|
|
39
|
-
return
|
|
40
|
-
source !== null &&
|
|
41
|
-
source !== undefined &&
|
|
42
|
-
'defaultArtboardViewModel' in source
|
|
43
|
-
);
|
|
94
|
+
return source !== null && 'defaultArtboardViewModel' in source;
|
|
44
95
|
}
|
|
45
96
|
|
|
97
|
+
type CreateInstanceResult = {
|
|
98
|
+
instance: ViewModelInstance | null;
|
|
99
|
+
needsDispose: boolean;
|
|
100
|
+
error?: string;
|
|
101
|
+
};
|
|
102
|
+
|
|
46
103
|
function createInstance(
|
|
47
104
|
source: ViewModelSource | null,
|
|
48
|
-
|
|
105
|
+
instanceName: string | undefined,
|
|
106
|
+
artboardName: string | undefined,
|
|
107
|
+
viewModelName: string | undefined,
|
|
49
108
|
useNew: boolean
|
|
50
|
-
):
|
|
109
|
+
): CreateInstanceResult {
|
|
51
110
|
if (!source) {
|
|
52
111
|
return { instance: null, needsDispose: false };
|
|
53
112
|
}
|
|
@@ -58,15 +117,55 @@ function createInstance(
|
|
|
58
117
|
}
|
|
59
118
|
|
|
60
119
|
if (isRiveFile(source)) {
|
|
61
|
-
|
|
62
|
-
|
|
120
|
+
let viewModel: ViewModel | undefined;
|
|
121
|
+
if (viewModelName) {
|
|
122
|
+
viewModel = source.viewModelByName(viewModelName);
|
|
123
|
+
if (!viewModel) {
|
|
124
|
+
return {
|
|
125
|
+
instance: null,
|
|
126
|
+
needsDispose: false,
|
|
127
|
+
error: `ViewModel '${viewModelName}' not found`,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
} else {
|
|
131
|
+
viewModel = source.defaultArtboardViewModel(
|
|
132
|
+
artboardName ? ArtboardByName(artboardName) : undefined
|
|
133
|
+
);
|
|
134
|
+
if (!viewModel) {
|
|
135
|
+
if (artboardName) {
|
|
136
|
+
return {
|
|
137
|
+
instance: null,
|
|
138
|
+
needsDispose: false,
|
|
139
|
+
error: `Artboard '${artboardName}' not found or has no ViewModel`,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
return { instance: null, needsDispose: false };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const vmi = instanceName
|
|
146
|
+
? viewModel.createInstanceByName(instanceName)
|
|
147
|
+
: viewModel.createDefaultInstance();
|
|
148
|
+
if (!vmi && instanceName) {
|
|
149
|
+
return {
|
|
150
|
+
instance: null,
|
|
151
|
+
needsDispose: false,
|
|
152
|
+
error: `ViewModel instance '${instanceName}' not found`,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
63
155
|
return { instance: vmi ?? null, needsDispose: true };
|
|
64
156
|
}
|
|
65
157
|
|
|
66
158
|
// ViewModel source
|
|
67
159
|
let vmi: ViewModelInstance | undefined;
|
|
68
|
-
if (
|
|
69
|
-
vmi = source.createInstanceByName(
|
|
160
|
+
if (instanceName) {
|
|
161
|
+
vmi = source.createInstanceByName(instanceName);
|
|
162
|
+
if (!vmi) {
|
|
163
|
+
return {
|
|
164
|
+
instance: null,
|
|
165
|
+
needsDispose: false,
|
|
166
|
+
error: `ViewModel instance '${instanceName}' not found`,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
70
169
|
} else if (useNew) {
|
|
71
170
|
vmi = source.createInstance();
|
|
72
171
|
} else {
|
|
@@ -79,7 +178,7 @@ function createInstance(
|
|
|
79
178
|
* Hook for getting a ViewModelInstance from a RiveFile, ViewModel, or RiveViewRef.
|
|
80
179
|
*
|
|
81
180
|
* @param source - The RiveFile, ViewModel, or RiveViewRef to get an instance from
|
|
82
|
-
* @param params - Configuration for which instance to retrieve
|
|
181
|
+
* @param params - Configuration for which instance to retrieve
|
|
83
182
|
* @returns The ViewModelInstance or null if not found
|
|
84
183
|
*
|
|
85
184
|
* @example
|
|
@@ -91,6 +190,27 @@ function createInstance(
|
|
|
91
190
|
*
|
|
92
191
|
* @example
|
|
93
192
|
* ```tsx
|
|
193
|
+
* // From RiveFile with specific instance name
|
|
194
|
+
* const { riveFile } = useRiveFile(require('./animation.riv'));
|
|
195
|
+
* const instance = useViewModelInstance(riveFile, { instanceName: 'PersonInstance' });
|
|
196
|
+
* ```
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```tsx
|
|
200
|
+
* // From RiveFile with specific ViewModel name
|
|
201
|
+
* const { riveFile } = useRiveFile(require('./animation.riv'));
|
|
202
|
+
* const instance = useViewModelInstance(riveFile, { viewModelName: 'Settings' });
|
|
203
|
+
* ```
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```tsx
|
|
207
|
+
* // From RiveFile with specific artboard
|
|
208
|
+
* const { riveFile } = useRiveFile(require('./animation.riv'));
|
|
209
|
+
* const instance = useViewModelInstance(riveFile, { artboardName: 'MainArtboard' });
|
|
210
|
+
* ```
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```tsx
|
|
94
214
|
* // From RiveViewRef (get auto-bound instance)
|
|
95
215
|
* const { riveViewRef, setHybridRef } = useRive();
|
|
96
216
|
* const instance = useViewModelInstance(riveViewRef);
|
|
@@ -129,20 +249,55 @@ function createInstance(
|
|
|
129
249
|
* // Values are already set here
|
|
130
250
|
* ```
|
|
131
251
|
*/
|
|
252
|
+
// RiveFile overloads
|
|
132
253
|
export function useViewModelInstance(
|
|
133
|
-
source:
|
|
134
|
-
params:
|
|
254
|
+
source: RiveFile,
|
|
255
|
+
params: UseViewModelInstanceFileParams & { required: true }
|
|
135
256
|
): ViewModelInstance;
|
|
136
257
|
export function useViewModelInstance(
|
|
137
|
-
source:
|
|
138
|
-
params?:
|
|
258
|
+
source: RiveFile | null,
|
|
259
|
+
params?: UseViewModelInstanceFileParams
|
|
260
|
+
): ViewModelInstance | null;
|
|
261
|
+
|
|
262
|
+
// ViewModel overloads
|
|
263
|
+
export function useViewModelInstance(
|
|
264
|
+
source: ViewModel,
|
|
265
|
+
params: UseViewModelInstanceViewModelParams & { required: true }
|
|
266
|
+
): ViewModelInstance;
|
|
267
|
+
export function useViewModelInstance(
|
|
268
|
+
source: ViewModel | null,
|
|
269
|
+
params?: UseViewModelInstanceViewModelParams
|
|
139
270
|
): ViewModelInstance | null;
|
|
271
|
+
|
|
272
|
+
// RiveViewRef overloads
|
|
273
|
+
export function useViewModelInstance(
|
|
274
|
+
source: RiveViewRef,
|
|
275
|
+
params: UseViewModelInstanceRefParams & { required: true }
|
|
276
|
+
): ViewModelInstance;
|
|
277
|
+
export function useViewModelInstance(
|
|
278
|
+
source: RiveViewRef | null,
|
|
279
|
+
params?: UseViewModelInstanceRefParams
|
|
280
|
+
): ViewModelInstance | null;
|
|
281
|
+
|
|
282
|
+
// Implementation
|
|
140
283
|
export function useViewModelInstance(
|
|
141
284
|
source: ViewModelSource | null,
|
|
142
|
-
params?:
|
|
285
|
+
params?:
|
|
286
|
+
| UseViewModelInstanceFileParams
|
|
287
|
+
| UseViewModelInstanceViewModelParams
|
|
288
|
+
| UseViewModelInstanceRefParams
|
|
143
289
|
): ViewModelInstance | null {
|
|
144
|
-
const
|
|
145
|
-
|
|
290
|
+
const fileInstanceName = (params as { instanceName?: string } | undefined)
|
|
291
|
+
?.instanceName;
|
|
292
|
+
const viewModelInstanceName = (params as { name?: string } | undefined)?.name;
|
|
293
|
+
const instanceName = fileInstanceName ?? viewModelInstanceName;
|
|
294
|
+
const artboardName = (params as UseViewModelInstanceFileParams | undefined)
|
|
295
|
+
?.artboardName;
|
|
296
|
+
const viewModelName = (params as UseViewModelInstanceFileParams | undefined)
|
|
297
|
+
?.viewModelName;
|
|
298
|
+
const useNew =
|
|
299
|
+
(params as UseViewModelInstanceViewModelParams | undefined)?.useNew ??
|
|
300
|
+
false;
|
|
146
301
|
const required = params?.required ?? false;
|
|
147
302
|
const onInit = params?.onInit;
|
|
148
303
|
|
|
@@ -152,13 +307,19 @@ export function useViewModelInstance(
|
|
|
152
307
|
} | null>(null);
|
|
153
308
|
|
|
154
309
|
const result = useMemo(() => {
|
|
155
|
-
const created = createInstance(
|
|
310
|
+
const created = createInstance(
|
|
311
|
+
source,
|
|
312
|
+
instanceName,
|
|
313
|
+
artboardName,
|
|
314
|
+
viewModelName,
|
|
315
|
+
useNew
|
|
316
|
+
);
|
|
156
317
|
if (created.instance && onInit) {
|
|
157
318
|
onInit(created.instance);
|
|
158
319
|
}
|
|
159
320
|
return created;
|
|
160
321
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- onInit excluded intentionally
|
|
161
|
-
}, [source,
|
|
322
|
+
}, [source, instanceName, artboardName, viewModelName, useNew]);
|
|
162
323
|
|
|
163
324
|
// Dispose previous instance if it changed and needed disposal
|
|
164
325
|
if (
|
|
@@ -186,8 +347,10 @@ export function useViewModelInstance(
|
|
|
186
347
|
|
|
187
348
|
if (required && result.instance === null) {
|
|
188
349
|
throw new Error(
|
|
189
|
-
|
|
190
|
-
|
|
350
|
+
result.error
|
|
351
|
+
? `useViewModelInstance: ${result.error}`
|
|
352
|
+
: 'useViewModelInstance: Failed to get ViewModelInstance. ' +
|
|
353
|
+
'Ensure the source has a valid ViewModel and instance available.'
|
|
191
354
|
);
|
|
192
355
|
}
|
|
193
356
|
|