@rive-app/react-native 0.2.2 → 0.2.4
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/android/build.gradle +4 -1
- package/android/src/main/AndroidManifest.xml +2 -12
- package/android/src/main/java/com/margelo/nitro/rive/HybridRiveRuntime.kt +26 -0
- package/android/src/main/java/com/rive/RiveInitializer.kt +64 -0
- package/android/src/main/java/com/rive/RivePackage.kt +17 -10
- package/android/src/main/java/com/rive/RiveReactNativeView.kt +70 -52
- package/ios/HybridRiveRuntime.swift +11 -0
- package/ios/RiveReactNativeView.swift +17 -19
- package/lib/module/core/RiveRuntime.js +22 -0
- package/lib/module/core/RiveRuntime.js.map +1 -0
- package/lib/module/hooks/useRiveProperty.js +3 -3
- package/lib/module/hooks/useRiveProperty.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/specs/RiveRuntime.nitro.js +4 -0
- package/lib/module/specs/RiveRuntime.nitro.js.map +1 -0
- package/lib/typescript/src/core/RiveRuntime.d.ts +8 -0
- package/lib/typescript/src/core/RiveRuntime.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveProperty.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/RiveRuntime.nitro.d.ts +10 -0
- package/lib/typescript/src/specs/RiveRuntime.nitro.d.ts.map +1 -0
- package/nitrogen/generated/android/c++/JHybridRiveRuntimeSpec.cpp +82 -0
- package/nitrogen/generated/android/c++/JHybridRiveRuntimeSpec.hpp +67 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveRuntimeSpec.kt +64 -0
- package/nitrogen/generated/android/rive+autolinking.cmake +2 -0
- package/nitrogen/generated/android/riveOnLoad.cpp +10 -0
- package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.cpp +25 -8
- package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.hpp +60 -43
- package/nitrogen/generated/ios/RNRive-Swift-Cxx-Umbrella.hpp +5 -0
- package/nitrogen/generated/ios/RNRiveAutolinking.mm +8 -0
- package/nitrogen/generated/ios/RNRiveAutolinking.swift +12 -0
- package/nitrogen/generated/ios/c++/HybridRiveRuntimeSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveRuntimeSpecSwift.hpp +90 -0
- package/nitrogen/generated/ios/swift/HybridRiveRuntimeSpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridRiveRuntimeSpec_cxx.swift +164 -0
- package/nitrogen/generated/shared/c++/HybridRiveRuntimeSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridRiveRuntimeSpec.hpp +65 -0
- package/package.json +1 -1
- package/src/core/RiveRuntime.ts +23 -0
- package/src/hooks/useRiveProperty.ts +3 -7
- package/src/index.tsx +1 -0
- package/src/specs/RiveRuntime.nitro.ts +8 -0
package/android/build.gradle
CHANGED
|
@@ -40,9 +40,13 @@ android {
|
|
|
40
40
|
|
|
41
41
|
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
42
42
|
|
|
43
|
+
def skipSetup = project.hasProperty('Rive_RiveRuntimeAndroidSkipSetup') ?
|
|
44
|
+
project.property('Rive_RiveRuntimeAndroidSkipSetup').toBoolean() : false
|
|
45
|
+
|
|
43
46
|
defaultConfig {
|
|
44
47
|
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
45
48
|
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
49
|
+
buildConfigField "boolean", "RIVE_SKIP_SETUP", "$skipSetup"
|
|
46
50
|
|
|
47
51
|
externalNativeBuild {
|
|
48
52
|
cmake {
|
|
@@ -149,7 +153,6 @@ dependencies {
|
|
|
149
153
|
implementation "com.facebook.react:react-android"
|
|
150
154
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
151
155
|
implementation "app.rive:rive-android:${riveAndroidVersion}"
|
|
152
|
-
implementation "androidx.startup:startup-runtime:1.2.0"
|
|
153
156
|
implementation project(":react-native-nitro-modules")
|
|
154
157
|
}
|
|
155
158
|
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
2
|
-
|
|
3
|
-
<application>
|
|
4
|
-
<provider
|
|
5
|
-
android:name="androidx.startup.InitializationProvider"
|
|
6
|
-
android:authorities="${applicationId}.androidx-startup"
|
|
7
|
-
android:exported="false"
|
|
8
|
-
tools:node="merge">
|
|
9
|
-
<meta-data android:name="app.rive.runtime.kotlin.RiveInitializer"
|
|
10
|
-
android:value="androidx.startup" />
|
|
11
|
-
</provider>
|
|
12
|
-
</application>
|
|
1
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
2
|
+
<application />
|
|
13
3
|
</manifest>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
package com.margelo.nitro.rive
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.Keep
|
|
4
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
5
|
+
import com.margelo.nitro.core.Promise
|
|
6
|
+
import com.rive.RiveInitializer
|
|
7
|
+
import kotlinx.coroutines.Dispatchers
|
|
8
|
+
import kotlinx.coroutines.withContext
|
|
9
|
+
|
|
10
|
+
@Keep
|
|
11
|
+
@DoNotStrip
|
|
12
|
+
class HybridRiveRuntime : HybridRiveRuntimeSpec() {
|
|
13
|
+
override fun initialize(): Promise<Unit> {
|
|
14
|
+
return Promise.async {
|
|
15
|
+
withContext(Dispatchers.Main) {
|
|
16
|
+
RiveInitializer.manualInitialize()
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
override val isInitialized: Boolean
|
|
22
|
+
get() = RiveInitializer.isInitialized
|
|
23
|
+
|
|
24
|
+
override val initError: String?
|
|
25
|
+
get() = RiveInitializer.error
|
|
26
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
package com.rive
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.util.Log
|
|
5
|
+
import app.rive.runtime.kotlin.core.Rive
|
|
6
|
+
|
|
7
|
+
object RiveInitializer {
|
|
8
|
+
private const val TAG = "RiveInitializer"
|
|
9
|
+
|
|
10
|
+
@Volatile
|
|
11
|
+
var isInitialized = false
|
|
12
|
+
private set
|
|
13
|
+
|
|
14
|
+
@Volatile
|
|
15
|
+
var error: String? = null
|
|
16
|
+
private set
|
|
17
|
+
|
|
18
|
+
private var context: Context? = null
|
|
19
|
+
|
|
20
|
+
fun storeContext(ctx: Context) {
|
|
21
|
+
context = ctx.applicationContext
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@Synchronized
|
|
25
|
+
fun autoInitialize(ctx: Context): Boolean {
|
|
26
|
+
storeContext(ctx)
|
|
27
|
+
if (isInitialized) return true
|
|
28
|
+
return try {
|
|
29
|
+
Rive.init(ctx)
|
|
30
|
+
isInitialized = true
|
|
31
|
+
error = null
|
|
32
|
+
true
|
|
33
|
+
} catch (e: Throwable) {
|
|
34
|
+
error = formatError(e)
|
|
35
|
+
Log.e(TAG, "Auto-init failed: $error", e)
|
|
36
|
+
false
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@Synchronized
|
|
41
|
+
fun manualInitialize() {
|
|
42
|
+
val ctx = context
|
|
43
|
+
if (ctx == null) {
|
|
44
|
+
error = "Context not available. Ensure RivePackage is registered."
|
|
45
|
+
Log.e(TAG, "Manual init failed: $error")
|
|
46
|
+
return
|
|
47
|
+
}
|
|
48
|
+
if (isInitialized) return
|
|
49
|
+
try {
|
|
50
|
+
Rive.init(ctx)
|
|
51
|
+
isInitialized = true
|
|
52
|
+
error = null
|
|
53
|
+
} catch (e: Throwable) {
|
|
54
|
+
error = formatError(e)
|
|
55
|
+
Log.e(TAG, "Manual init failed: $error", e)
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
private fun formatError(e: Throwable): String {
|
|
60
|
+
val name = e::class.simpleName ?: "Unknown"
|
|
61
|
+
val msg = e.message ?: e.toString()
|
|
62
|
+
return "$name: $msg"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -9,21 +9,28 @@ import com.margelo.nitro.rive.riveOnLoad
|
|
|
9
9
|
|
|
10
10
|
class RivePackage : BaseReactPackage() {
|
|
11
11
|
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<in Nothing, in Nothing>> {
|
|
12
|
+
if (BuildConfig.RIVE_SKIP_SETUP) {
|
|
13
|
+
RiveInitializer.storeContext(reactContext)
|
|
14
|
+
} else {
|
|
15
|
+
RiveInitializer.autoInitialize(reactContext)
|
|
16
|
+
}
|
|
17
|
+
|
|
12
18
|
val viewManagers: MutableList<ViewManager<*, *>> = ArrayList()
|
|
13
19
|
viewManagers.add(RiveViewManager())
|
|
14
20
|
return viewManagers
|
|
15
21
|
}
|
|
16
|
-
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
17
|
-
return null
|
|
18
|
-
}
|
|
19
22
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
24
|
+
return null
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
28
|
+
return ReactModuleInfoProvider { HashMap() }
|
|
29
|
+
}
|
|
23
30
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
31
|
+
companion object {
|
|
32
|
+
init {
|
|
33
|
+
riveOnLoad.initializeNative()
|
|
28
34
|
}
|
|
35
|
+
}
|
|
29
36
|
}
|
|
@@ -77,6 +77,7 @@ class RiveReactNativeView(context: ThemedReactContext) : FrameLayout(context) {
|
|
|
77
77
|
private var eventListeners: MutableList<RiveFileController.RiveEventListener> = mutableListOf()
|
|
78
78
|
private val viewReadyDeferred = CompletableDeferred<Boolean>()
|
|
79
79
|
private var _activeStateMachineName: String? = null
|
|
80
|
+
private var _pendingBindData: BindData? = null
|
|
80
81
|
private var willDispose = false
|
|
81
82
|
|
|
82
83
|
init {
|
|
@@ -119,8 +120,8 @@ class RiveReactNativeView(context: ThemedReactContext) : FrameLayout(context) {
|
|
|
119
120
|
riveAnimationView?.layoutScaleFactor = config.layoutScaleFactor
|
|
120
121
|
}
|
|
121
122
|
|
|
122
|
-
if (dataBindingChanged || initialUpdate) {
|
|
123
|
-
applyDataBinding(config.bindData)
|
|
123
|
+
if (dataBindingChanged || initialUpdate || reload) {
|
|
124
|
+
applyDataBinding(config.bindData, config.autoPlay)
|
|
124
125
|
}
|
|
125
126
|
|
|
126
127
|
viewReadyDeferred.complete(true)
|
|
@@ -142,50 +143,36 @@ class RiveReactNativeView(context: ThemedReactContext) : FrameLayout(context) {
|
|
|
142
143
|
}
|
|
143
144
|
}
|
|
144
145
|
|
|
145
|
-
fun applyDataBinding(bindData: BindData) {
|
|
146
|
+
fun applyDataBinding(bindData: BindData, autoPlay: Boolean) {
|
|
146
147
|
val stateMachines = riveAnimationView?.controller?.stateMachines
|
|
147
|
-
if (stateMachines.isNullOrEmpty())
|
|
148
|
+
if (stateMachines.isNullOrEmpty()) {
|
|
149
|
+
_pendingBindData = bindData
|
|
150
|
+
return
|
|
151
|
+
}
|
|
148
152
|
|
|
149
|
-
|
|
153
|
+
bindToStateMachine(bindData)
|
|
150
154
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
is BindData.Auto -> {
|
|
156
|
-
val artboard = riveAnimationView?.controller?.activeArtboard
|
|
157
|
-
val file = riveAnimationView?.controller?.file
|
|
158
|
-
if (artboard != null && file != null) {
|
|
159
|
-
try {
|
|
160
|
-
file.defaultViewModelForArtboard(artboard)
|
|
161
|
-
} catch (e: ViewModelException) {
|
|
162
|
-
null
|
|
163
|
-
}?.let {
|
|
164
|
-
val instance = it.createDefaultInstance()
|
|
165
|
-
stateMachine.viewModelInstance = instance
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
is BindData.Instance -> {
|
|
170
|
-
stateMachine.viewModelInstance = bindData.instance
|
|
171
|
-
}
|
|
172
|
-
is BindData.ByName -> {
|
|
173
|
-
val artboard = riveAnimationView?.controller?.activeArtboard
|
|
174
|
-
val file = riveAnimationView?.controller?.file
|
|
175
|
-
if (artboard != null && file != null) {
|
|
176
|
-
val viewModel = file.defaultViewModelForArtboard(artboard)
|
|
177
|
-
val instance = viewModel.createInstanceFromName(bindData.name)
|
|
178
|
-
stateMachine.viewModelInstance = instance
|
|
179
|
-
}
|
|
155
|
+
if (autoPlay) {
|
|
156
|
+
stateMachines.first().name.let { smName ->
|
|
157
|
+
riveAnimationView?.play(smName, isStateMachine = true)
|
|
180
158
|
}
|
|
181
159
|
}
|
|
160
|
+
}
|
|
182
161
|
|
|
183
|
-
|
|
184
|
-
|
|
162
|
+
fun play() {
|
|
163
|
+
if (_activeStateMachineName == null) {
|
|
164
|
+
_activeStateMachineName = getSafeStateMachineName()
|
|
185
165
|
}
|
|
166
|
+
riveAnimationView?.play()
|
|
167
|
+
applyPendingBindData()
|
|
186
168
|
}
|
|
187
169
|
|
|
188
|
-
fun
|
|
170
|
+
private fun applyPendingBindData() {
|
|
171
|
+
_pendingBindData?.let { bindData ->
|
|
172
|
+
_pendingBindData = null
|
|
173
|
+
bindToStateMachine(bindData)
|
|
174
|
+
}
|
|
175
|
+
}
|
|
189
176
|
|
|
190
177
|
fun pause() = riveAnimationView?.pause()
|
|
191
178
|
|
|
@@ -324,6 +311,44 @@ class RiveReactNativeView(context: ThemedReactContext) : FrameLayout(context) {
|
|
|
324
311
|
|
|
325
312
|
//region Internal
|
|
326
313
|
|
|
314
|
+
private fun bindToStateMachine(bindData: BindData) {
|
|
315
|
+
val stateMachines = riveAnimationView?.controller?.stateMachines
|
|
316
|
+
if (stateMachines.isNullOrEmpty()) return
|
|
317
|
+
val stateMachine = stateMachines.first()
|
|
318
|
+
|
|
319
|
+
when (bindData) {
|
|
320
|
+
is BindData.None -> {
|
|
321
|
+
stateMachine.viewModelInstance = null
|
|
322
|
+
}
|
|
323
|
+
is BindData.Auto -> {
|
|
324
|
+
val artboard = riveAnimationView?.controller?.activeArtboard
|
|
325
|
+
val file = riveAnimationView?.controller?.file
|
|
326
|
+
if (artboard != null && file != null) {
|
|
327
|
+
try {
|
|
328
|
+
file.defaultViewModelForArtboard(artboard)
|
|
329
|
+
} catch (e: ViewModelException) {
|
|
330
|
+
null
|
|
331
|
+
}?.let {
|
|
332
|
+
val instance = it.createDefaultInstance()
|
|
333
|
+
stateMachine.viewModelInstance = instance
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
is BindData.Instance -> {
|
|
338
|
+
stateMachine.viewModelInstance = bindData.instance
|
|
339
|
+
}
|
|
340
|
+
is BindData.ByName -> {
|
|
341
|
+
val artboard = riveAnimationView?.controller?.activeArtboard
|
|
342
|
+
val file = riveAnimationView?.controller?.file
|
|
343
|
+
if (artboard != null && file != null) {
|
|
344
|
+
val viewModel = file.defaultViewModelForArtboard(artboard)
|
|
345
|
+
val instance = viewModel.createInstanceFromName(bindData.name)
|
|
346
|
+
stateMachine.viewModelInstance = instance
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
327
352
|
private fun convertEventProperties(properties: Map<String, Any>?): Map<String, EventPropertiesOutput>? {
|
|
328
353
|
if (properties == null) return null
|
|
329
354
|
|
|
@@ -363,24 +388,17 @@ class RiveReactNativeView(context: ThemedReactContext) : FrameLayout(context) {
|
|
|
363
388
|
}
|
|
364
389
|
}
|
|
365
390
|
|
|
366
|
-
//
|
|
367
|
-
// TODO: This is a temporary solution to get the state machine name as Android supports
|
|
391
|
+
// This is a temporary solution to get the state machine name as Android supports
|
|
368
392
|
// playing multiple state machines, but in React Native we only allow playing one.
|
|
369
393
|
/**
|
|
370
|
-
* Gets the name of the active state machine
|
|
371
|
-
*
|
|
372
|
-
* @return The name of the state machine
|
|
394
|
+
* Gets the name of the active state machine, or null if no state machines are loaded yet
|
|
395
|
+
* (e.g. when autoPlay is false and the state machine hasn't been started).
|
|
396
|
+
* @return The name of the state machine, or null
|
|
373
397
|
*/
|
|
374
|
-
private fun getSafeStateMachineName(): String {
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
throw Exception("No state machines found in the Rive file")
|
|
379
|
-
}
|
|
380
|
-
return stateMachines.first().name
|
|
381
|
-
} catch (e: Exception) {
|
|
382
|
-
throw Error(e.message)
|
|
383
|
-
}
|
|
398
|
+
private fun getSafeStateMachineName(): String? {
|
|
399
|
+
val stateMachines = riveAnimationView?.controller?.stateMachines
|
|
400
|
+
if (stateMachines.isNullOrEmpty()) return null
|
|
401
|
+
return stateMachines.first().name
|
|
384
402
|
}
|
|
385
403
|
|
|
386
404
|
/**
|
|
@@ -81,8 +81,8 @@ class RiveReactNativeView: UIView, RiveStateMachineDelegate {
|
|
|
81
81
|
viewReadyContinuation = nil
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
if dataBindingChanged || initialUpdate {
|
|
85
|
-
try applyDataBinding(config.bindData)
|
|
84
|
+
if dataBindingChanged || initialUpdate || reload {
|
|
85
|
+
try applyDataBinding(config.bindData, autoPlay: config.autoPlay)
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
|
|
@@ -94,19 +94,28 @@ class RiveReactNativeView: UIView, RiveStateMachineDelegate {
|
|
|
94
94
|
return baseViewModel?.riveModel?.stateMachine?.viewModelInstance
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
func applyDataBinding(_ bindData: BindData) throws {
|
|
97
|
+
func applyDataBinding(_ bindData: BindData, autoPlay: Bool) throws {
|
|
98
|
+
try bindToStateMachine(bindData)
|
|
99
|
+
|
|
100
|
+
if autoPlay {
|
|
101
|
+
play()
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@MainActor
|
|
106
|
+
func play() {
|
|
107
|
+
baseViewModel?.play()
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
private func bindToStateMachine(_ bindData: BindData) throws {
|
|
98
111
|
let stateMachine = baseViewModel?.riveModel?.stateMachine
|
|
99
112
|
let artboard = baseViewModel?.riveModel?.artboard
|
|
100
113
|
|
|
101
114
|
switch bindData {
|
|
102
115
|
case .none:
|
|
103
116
|
baseViewModel?.riveModel?.disableAutoBind()
|
|
104
|
-
|
|
105
117
|
case .auto:
|
|
106
|
-
baseViewModel?.riveModel?.enableAutoBind { _ in
|
|
107
|
-
// Auto-bind callback
|
|
108
|
-
}
|
|
109
|
-
|
|
118
|
+
baseViewModel?.riveModel?.enableAutoBind { _ in }
|
|
110
119
|
case .byName(let name):
|
|
111
120
|
guard let artboard = artboard,
|
|
112
121
|
let riveFile = baseViewModel?.riveModel?.riveFile,
|
|
@@ -116,20 +125,9 @@ class RiveReactNativeView: UIView, RiveStateMachineDelegate {
|
|
|
116
125
|
throw NitroRiveError.instanceNotFound(message: "\(name) instance not found")
|
|
117
126
|
}
|
|
118
127
|
stateMachine?.bind(viewModelInstance: instance)
|
|
119
|
-
// this should be added if we support only playing artboards on their own - https://github.com/rive-app/rive-nitro-react-native/pull/23#discussion_r2534698281
|
|
120
|
-
// artboard.bind(viewModelInstance: instance)
|
|
121
|
-
|
|
122
128
|
case .instance(let instance):
|
|
123
129
|
stateMachine?.bind(viewModelInstance: instance)
|
|
124
|
-
// this should be added if we support only playing artboards on their own - https://github.com/rive-app/rive-nitro-react-native/pull/23#discussion_r2534698281
|
|
125
|
-
// artboard?.bind(viewModelInstance: instance)
|
|
126
130
|
}
|
|
127
|
-
play()
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
@MainActor
|
|
131
|
-
func play() {
|
|
132
|
-
baseViewModel?.play()
|
|
133
131
|
}
|
|
134
132
|
|
|
135
133
|
@MainActor
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NitroModules } from 'react-native-nitro-modules';
|
|
4
|
+
const RiveRuntimeInternal = NitroModules.createHybridObject('RiveRuntime');
|
|
5
|
+
export let RiveRuntime;
|
|
6
|
+
(function (_RiveRuntime) {
|
|
7
|
+
async function initialize() {
|
|
8
|
+
await RiveRuntimeInternal.initialize();
|
|
9
|
+
if (!RiveRuntimeInternal.isInitialized) {
|
|
10
|
+
throw new Error(`Rive initialization failed: ${RiveRuntimeInternal.initError ?? 'Unknown error'}`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
_RiveRuntime.initialize = initialize;
|
|
14
|
+
function getStatus() {
|
|
15
|
+
return {
|
|
16
|
+
isInitialized: RiveRuntimeInternal.isInitialized,
|
|
17
|
+
error: RiveRuntimeInternal.initError ?? undefined
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
_RiveRuntime.getStatus = getStatus;
|
|
21
|
+
})(RiveRuntime || (RiveRuntime = {}));
|
|
22
|
+
//# sourceMappingURL=RiveRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NitroModules","RiveRuntimeInternal","createHybridObject","RiveRuntime","_RiveRuntime","initialize","isInitialized","Error","initError","getStatus","error","undefined"],"sourceRoot":"../../../src","sources":["core/RiveRuntime.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD,MAAMC,mBAAmB,GACvBD,YAAY,CAACE,kBAAkB,CAAkB,aAAa,CAAC;AAAC,WAEjDC,WAAW;AAAA,WAAAC,YAAA;EACnB,eAAeC,UAAUA,CAAA,EAAkB;IAChD,MAAMJ,mBAAmB,CAACI,UAAU,CAAC,CAAC;IACtC,IAAI,CAACJ,mBAAmB,CAACK,aAAa,EAAE;MACtC,MAAM,IAAIC,KAAK,CACb,+BAA+BN,mBAAmB,CAACO,SAAS,IAAI,eAAe,EACjF,CAAC;IACH;EACF;EAACJ,YAAA,CAAAC,UAAA,GAAAA,UAAA;EAEM,SAASI,SAASA,CAAA,EAA+C;IACtE,OAAO;MACLH,aAAa,EAAEL,mBAAmB,CAACK,aAAa;MAChDI,KAAK,EAAET,mBAAmB,CAACO,SAAS,IAAIG;IAC1C,CAAC;EACH;EAACP,YAAA,CAAAK,SAAA,GAAAA,SAAA;AAAA,GAfcN,WAAW,KAAXA,WAAW","ignoreList":[]}
|
|
@@ -60,15 +60,15 @@ export function useRiveProperty(viewModelInstance, path, options) {
|
|
|
60
60
|
};
|
|
61
61
|
}, [options, property]);
|
|
62
62
|
|
|
63
|
-
// Set the value of the property
|
|
63
|
+
// Set the value of the property (no-op if property isn't available yet)
|
|
64
64
|
const setPropertyValue = useCallback(valueOrUpdater => {
|
|
65
65
|
if (!property) {
|
|
66
|
-
|
|
66
|
+
return;
|
|
67
67
|
} else {
|
|
68
68
|
const newValue_0 = typeof valueOrUpdater === 'function' ? valueOrUpdater(property.value) : valueOrUpdater;
|
|
69
69
|
property.value = newValue_0;
|
|
70
70
|
}
|
|
71
|
-
}, [property
|
|
71
|
+
}, [property]);
|
|
72
72
|
return [value, setPropertyValue, error, property];
|
|
73
73
|
}
|
|
74
74
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useState","useMemo","useRiveProperty","viewModelInstance","path","options","property","getProperty","value","setValue","error","setError","Error","removeListener","onPropertyEventOverride","addListener","newValue","dispose","setPropertyValue","valueOrUpdater"],"sourceRoot":"../../../src","sources":["hooks/useRiveProperty.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,OAAO;AAOjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAC7BC,iBAAuD,EACvDC,IAAY,EACZC,OAKC,EAMD;EACA;EACA,MAAMC,QAAQ,GAAGL,OAAO,CAAC,MAAM;IAC7B,IAAI,CAACE,iBAAiB,EAAE;IACxB,OAAOE,OAAO,CAACE,WAAW,CACxBJ,iBAAiB,EACjBC,IACF,CAAC;EACH,CAAC,EAAE,CAACC,OAAO,EAAEF,iBAAiB,EAAEC,IAAI,CAAC,CAAC;;EAEtC;EACA,MAAM,CAACI,KAAK,EAAEC,QAAQ,CAAC,GAAGT,QAAQ,CAAgB,MAAMM,QAAQ,EAAEE,KAAK,CAAC;EACxE,MAAM,CAACE,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAAe,IAAI,CAAC;;EAEtD;EACAD,SAAS,CAAC,MAAM;IACd,IAAIO,QAAQ,EAAE;MACZG,QAAQ,CAACH,QAAQ,CAACE,KAAK,CAAC;IAC1B;EACF,CAAC,EAAE,CAACF,QAAQ,CAAC,CAAC;;EAEd;EACAP,SAAS,CAAC,MAAM;IACdY,QAAQ,CAAC,IAAI,CAAC;EAChB,CAAC,EAAE,CAACP,IAAI,EAAED,iBAAiB,CAAC,CAAC;;EAE7B;EACAJ,SAAS,CAAC,MAAM;IACd,IAAII,iBAAiB,IAAI,CAACG,QAAQ,EAAE;MAClCK,QAAQ,CACN,IAAIC,KAAK,CAAC,aAAaR,IAAI,uCAAuC,CACpE,CAAC;IACH;EACF,CAAC,EAAE,CAACD,iBAAiB,EAAEG,QAAQ,EAAEF,IAAI,CAAC,CAAC;;EAEvC;EACAL,SAAS,CAAC,MAAM;IACd,IAAI,CAACO,QAAQ,EAAE;;IAEf;IACA;IACA,MAAMO,cAAc,GAAGR,OAAO,CAACS,uBAAuB,GAClDR,QAAQ,CAACS,WAAW,CAACV,OAAO,CAACS,uBAAuB,CAAC,GACrDR,QAAQ,CAACS,WAAW,CAAEC,QAAQ,IAAK;MACjCP,QAAQ,CAACO,QAAQ,CAAC;IACpB,CAAC,CAAC;IAEN,OAAO,MAAM;MACXH,cAAc,CAAC,CAAC;MAChBP,QAAQ,CAACW,OAAO,CAAC,CAAC;IACpB,CAAC;EACH,CAAC,EAAE,CAACZ,OAAO,EAAEC,QAAQ,CAAC,CAAC;;EAEvB;EACA,MAAMY,gBAAgB,GAAGpB,WAAW,CACjCqB,cAAqD,IAAK;IACzD,IAAI,CAACb,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useState","useMemo","useRiveProperty","viewModelInstance","path","options","property","getProperty","value","setValue","error","setError","Error","removeListener","onPropertyEventOverride","addListener","newValue","dispose","setPropertyValue","valueOrUpdater"],"sourceRoot":"../../../src","sources":["hooks/useRiveProperty.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,OAAO;AAOjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAC7BC,iBAAuD,EACvDC,IAAY,EACZC,OAKC,EAMD;EACA;EACA,MAAMC,QAAQ,GAAGL,OAAO,CAAC,MAAM;IAC7B,IAAI,CAACE,iBAAiB,EAAE;IACxB,OAAOE,OAAO,CAACE,WAAW,CACxBJ,iBAAiB,EACjBC,IACF,CAAC;EACH,CAAC,EAAE,CAACC,OAAO,EAAEF,iBAAiB,EAAEC,IAAI,CAAC,CAAC;;EAEtC;EACA,MAAM,CAACI,KAAK,EAAEC,QAAQ,CAAC,GAAGT,QAAQ,CAAgB,MAAMM,QAAQ,EAAEE,KAAK,CAAC;EACxE,MAAM,CAACE,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAAe,IAAI,CAAC;;EAEtD;EACAD,SAAS,CAAC,MAAM;IACd,IAAIO,QAAQ,EAAE;MACZG,QAAQ,CAACH,QAAQ,CAACE,KAAK,CAAC;IAC1B;EACF,CAAC,EAAE,CAACF,QAAQ,CAAC,CAAC;;EAEd;EACAP,SAAS,CAAC,MAAM;IACdY,QAAQ,CAAC,IAAI,CAAC;EAChB,CAAC,EAAE,CAACP,IAAI,EAAED,iBAAiB,CAAC,CAAC;;EAE7B;EACAJ,SAAS,CAAC,MAAM;IACd,IAAII,iBAAiB,IAAI,CAACG,QAAQ,EAAE;MAClCK,QAAQ,CACN,IAAIC,KAAK,CAAC,aAAaR,IAAI,uCAAuC,CACpE,CAAC;IACH;EACF,CAAC,EAAE,CAACD,iBAAiB,EAAEG,QAAQ,EAAEF,IAAI,CAAC,CAAC;;EAEvC;EACAL,SAAS,CAAC,MAAM;IACd,IAAI,CAACO,QAAQ,EAAE;;IAEf;IACA;IACA,MAAMO,cAAc,GAAGR,OAAO,CAACS,uBAAuB,GAClDR,QAAQ,CAACS,WAAW,CAACV,OAAO,CAACS,uBAAuB,CAAC,GACrDR,QAAQ,CAACS,WAAW,CAAEC,QAAQ,IAAK;MACjCP,QAAQ,CAACO,QAAQ,CAAC;IACpB,CAAC,CAAC;IAEN,OAAO,MAAM;MACXH,cAAc,CAAC,CAAC;MAChBP,QAAQ,CAACW,OAAO,CAAC,CAAC;IACpB,CAAC;EACH,CAAC,EAAE,CAACZ,OAAO,EAAEC,QAAQ,CAAC,CAAC;;EAEvB;EACA,MAAMY,gBAAgB,GAAGpB,WAAW,CACjCqB,cAAqD,IAAK;IACzD,IAAI,CAACb,QAAQ,EAAE;MACb;IACF,CAAC,MAAM;MACL,MAAMU,UAAQ,GACZ,OAAOG,cAAc,KAAK,UAAU,GAC/BA,cAAc,CACbb,QAAQ,CAACE,KACX,CAAC,GACDW,cAAc;MACpBb,QAAQ,CAACE,KAAK,GAAGQ,UAAQ;IAC3B;EACF,CAAC,EACD,CAACV,QAAQ,CACX,CAAC;EAED,OAAO,CAACE,KAAK,EAAEU,gBAAgB,EAAER,KAAK,EAAEJ,QAAQ,CAAiB;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -26,5 +26,6 @@ export { useRiveTrigger } from "./hooks/useRiveTrigger.js";
|
|
|
26
26
|
export { useRiveList } from "./hooks/useRiveList.js";
|
|
27
27
|
export { useViewModelInstance } from "./hooks/useViewModelInstance.js";
|
|
28
28
|
export { useRiveFile } from "./hooks/useRiveFile.js";
|
|
29
|
+
export { RiveRuntime } from "./core/RiveRuntime.js";
|
|
29
30
|
export { DataBindMode };
|
|
30
31
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DataBindMode","DataBindByName","constructor","name","byName","NitroRiveView","RiveView","Fit","Alignment","RiveFileFactory","RiveImages","RiveColor","RiveEventType","RiveErrorType","ArtboardByIndex","ArtboardByName","useRive","useRiveNumber","useRiveString","useRiveBoolean","useRiveEnum","useRiveColor","useRiveTrigger","useRiveList","useViewModelInstance","useRiveFile"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AACA,SAIEA,YAAY,QAEP,2BAAwB;AAE/B,OAAO,MAAMC,cAAc,CAAoC;EAE7DC,WAAWA,CAACC,IAAY,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,IAAI;EACpB;AACF;AAEA,SAASE,aAAa,QAAQ,kCAA+B;AAE7D,SAASC,QAAQ,QAA4B,oBAAiB;AAkB9D,SAASC,GAAG,QAAQ,eAAY;AAChC,SAASC,SAAS,QAAQ,qBAAkB;AAC5C,SAASC,eAAe,QAAQ,oBAAiB;AACjD,SAASC,UAAU,QAAQ,sBAAmB;AAE9C,SAASC,SAAS,QAAQ,qBAAkB;AAC5C,SAAyBC,aAAa,QAAQ,kBAAe;AAC7D,SAAyBC,aAAa,QAAQ,kBAAe;AAC7D,SAASC,eAAe,EAAEC,cAAc,QAAQ,uBAAoB;AACpE,SAASC,OAAO,QAAQ,oBAAiB;AACzC,SAASC,aAAa,QAAQ,0BAAuB;AACrD,SAASC,aAAa,QAAQ,0BAAuB;AACrD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,WAAW,QAAQ,wBAAqB;AACjD,SAASC,YAAY,QAAQ,yBAAsB;AACnD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,WAAW,QAAQ,wBAAqB;AACjD,SAASC,oBAAoB,QAAQ,iCAA8B;AACnE,SAASC,WAAW,QAAQ,wBAAqB;AAGjD,
|
|
1
|
+
{"version":3,"names":["DataBindMode","DataBindByName","constructor","name","byName","NitroRiveView","RiveView","Fit","Alignment","RiveFileFactory","RiveImages","RiveColor","RiveEventType","RiveErrorType","ArtboardByIndex","ArtboardByName","useRive","useRiveNumber","useRiveString","useRiveBoolean","useRiveEnum","useRiveColor","useRiveTrigger","useRiveList","useViewModelInstance","useRiveFile","RiveRuntime"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AACA,SAIEA,YAAY,QAEP,2BAAwB;AAE/B,OAAO,MAAMC,cAAc,CAAoC;EAE7DC,WAAWA,CAACC,IAAY,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,IAAI;EACpB;AACF;AAEA,SAASE,aAAa,QAAQ,kCAA+B;AAE7D,SAASC,QAAQ,QAA4B,oBAAiB;AAkB9D,SAASC,GAAG,QAAQ,eAAY;AAChC,SAASC,SAAS,QAAQ,qBAAkB;AAC5C,SAASC,eAAe,QAAQ,oBAAiB;AACjD,SAASC,UAAU,QAAQ,sBAAmB;AAE9C,SAASC,SAAS,QAAQ,qBAAkB;AAC5C,SAAyBC,aAAa,QAAQ,kBAAe;AAC7D,SAAyBC,aAAa,QAAQ,kBAAe;AAC7D,SAASC,eAAe,EAAEC,cAAc,QAAQ,uBAAoB;AACpE,SAASC,OAAO,QAAQ,oBAAiB;AACzC,SAASC,aAAa,QAAQ,0BAAuB;AACrD,SAASC,aAAa,QAAQ,0BAAuB;AACrD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,WAAW,QAAQ,wBAAqB;AACjD,SAASC,YAAY,QAAQ,yBAAsB;AACnD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,WAAW,QAAQ,wBAAqB;AACjD,SAASC,oBAAoB,QAAQ,iCAA8B;AACnE,SAASC,WAAW,QAAQ,wBAAqB;AAGjD,SAASC,WAAW,QAAQ,uBAAoB;AAChD,SAAS1B,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/RiveRuntime.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RiveRuntime.d.ts","sourceRoot":"","sources":["../../../../src/core/RiveRuntime.ts"],"names":[],"mappings":"AAMA,yBAAiB,WAAW,CAAC;IAC3B,SAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAOhD;IAED,SAAgB,SAAS,IAAI;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAKtE;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRiveProperty.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useRiveProperty.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,EAC5D,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACvD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACP,4DAA4D;IAC5D,WAAW,EAAE,CAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC;IACpE,+EAA+E;IAC/E,uBAAuB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CACpD,GACA;IACD,CAAC,GAAG,SAAS;IACb,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,CAAC,KAAK,IAAI;IACtD,KAAK,GAAG,IAAI;IACZ,CAAC,GAAG,SAAS;CACd,
|
|
1
|
+
{"version":3,"file":"useRiveProperty.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useRiveProperty.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,EAC5D,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACvD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACP,4DAA4D;IAC5D,WAAW,EAAE,CAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC;IACpE,+EAA+E;IAC/E,uBAAuB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CACpD,GACA;IACD,CAAC,GAAG,SAAS;IACb,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,CAAC,KAAK,IAAI;IACtD,KAAK,GAAG,IAAI;IACZ,CAAC,GAAG,SAAS;CACd,CAwEA"}
|
|
@@ -32,5 +32,6 @@ export { useViewModelInstance } from './hooks/useViewModelInstance';
|
|
|
32
32
|
export { useRiveFile } from './hooks/useRiveFile';
|
|
33
33
|
export { type RiveFileInput } from './hooks/useRiveFile';
|
|
34
34
|
export { type SetValueAction } from './types';
|
|
35
|
+
export { RiveRuntime } from './core/RiveRuntime';
|
|
35
36
|
export { DataBindMode };
|
|
36
37
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,aAAa,IAAI,mBAAmB,EACzC,YAAY,EACZ,KAAK,cAAc,IAAI,uBAAuB,EAC/C,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,cAAe,YAAW,uBAAuB;IAC5D,MAAM,EAAE,MAAM,CAAC;gBACH,IAAI,EAAE,MAAM;CAGzB;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,CAAC;AAChC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAC7E,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,aAAa,IAAI,mBAAmB,EACzC,YAAY,EACZ,KAAK,cAAc,IAAI,uBAAuB,EAC/C,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,cAAe,YAAW,uBAAuB;IAC5D,MAAM,EAAE,MAAM,CAAC;gBACH,IAAI,EAAE,MAAM;CAGzB;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,CAAC;AAChC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAC7E,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { HybridObject } from 'react-native-nitro-modules';
|
|
2
|
+
export interface RiveRuntime extends HybridObject<{
|
|
3
|
+
ios: 'swift';
|
|
4
|
+
android: 'kotlin';
|
|
5
|
+
}> {
|
|
6
|
+
initialize(): Promise<void>;
|
|
7
|
+
readonly isInitialized: boolean;
|
|
8
|
+
readonly initError: string | undefined;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=RiveRuntime.nitro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RiveRuntime.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/RiveRuntime.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,WACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;IACzD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridRiveRuntimeSpec.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "JHybridRiveRuntimeSpec.hpp"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
#include <string>
|
|
13
|
+
#include <optional>
|
|
14
|
+
#include <NitroModules/Promise.hpp>
|
|
15
|
+
#include <NitroModules/JPromise.hpp>
|
|
16
|
+
#include <NitroModules/JUnit.hpp>
|
|
17
|
+
|
|
18
|
+
namespace margelo::nitro::rive {
|
|
19
|
+
|
|
20
|
+
jni::local_ref<JHybridRiveRuntimeSpec::jhybriddata> JHybridRiveRuntimeSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
21
|
+
return makeCxxInstance(jThis);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
void JHybridRiveRuntimeSpec::registerNatives() {
|
|
25
|
+
registerHybrid({
|
|
26
|
+
makeNativeMethod("initHybrid", JHybridRiveRuntimeSpec::initHybrid),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
size_t JHybridRiveRuntimeSpec::getExternalMemorySize() noexcept {
|
|
31
|
+
static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
|
|
32
|
+
return method(_javaPart);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
bool JHybridRiveRuntimeSpec::equals(const std::shared_ptr<HybridObject>& other) {
|
|
36
|
+
if (auto otherCast = std::dynamic_pointer_cast<JHybridRiveRuntimeSpec>(other)) {
|
|
37
|
+
return _javaPart == otherCast->_javaPart;
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
void JHybridRiveRuntimeSpec::dispose() noexcept {
|
|
43
|
+
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
44
|
+
method(_javaPart);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
std::string JHybridRiveRuntimeSpec::toString() {
|
|
48
|
+
static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
|
|
49
|
+
auto javaString = method(_javaPart);
|
|
50
|
+
return javaString->toStdString();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Properties
|
|
54
|
+
bool JHybridRiveRuntimeSpec::getIsInitialized() {
|
|
55
|
+
static const auto method = javaClassStatic()->getMethod<jboolean()>("isInitialized");
|
|
56
|
+
auto __result = method(_javaPart);
|
|
57
|
+
return static_cast<bool>(__result);
|
|
58
|
+
}
|
|
59
|
+
std::optional<std::string> JHybridRiveRuntimeSpec::getInitError() {
|
|
60
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getInitError");
|
|
61
|
+
auto __result = method(_javaPart);
|
|
62
|
+
return __result != nullptr ? std::make_optional(__result->toStdString()) : std::nullopt;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Methods
|
|
66
|
+
std::shared_ptr<Promise<void>> JHybridRiveRuntimeSpec::initialize() {
|
|
67
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("initialize");
|
|
68
|
+
auto __result = method(_javaPart);
|
|
69
|
+
return [&]() {
|
|
70
|
+
auto __promise = Promise<void>::create();
|
|
71
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
72
|
+
__promise->resolve();
|
|
73
|
+
});
|
|
74
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
75
|
+
jni::JniException __jniError(__throwable);
|
|
76
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
77
|
+
});
|
|
78
|
+
return __promise;
|
|
79
|
+
}();
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
} // namespace margelo::nitro::rive
|