Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 3 additions & 12 deletions example/src/exercisers/OutOfBandAssets.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,26 +22,17 @@ export default function OutOfBandAssetsExample() {
referencedAssets: {
'Inter-594377': {
source: require('../../assets/fonts/Inter-594377.ttf'),
// source: {
// fileName: 'Inter-594377.ttf',
// path: 'fonts', // only needed for Android assets
// },
type: 'font',
},
'referenced-image-2929282': {
source: {
uri: uri,
},
// source: {
// fileName: 'referenced-image-2929282.png',
// path: 'images', // only needed for Android assets
// },
type: 'image',
},
'referenced_audio-2929340': {
source: require('../../assets/audio/referenced_audio-2929340.wav'),
// source: {
// fileName: 'referenced_audio-2929340.wav',
// path: 'audio', // only needed for Android assets
// },
type: 'audio',
},
},
}
Expand Down
6 changes: 6 additions & 0 deletions expo-example/app.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ module.exports = {
assets: ['../example/assets/rive/rewards.riv'],
},
],
[
'expo-font',
{
fonts: ['./assets/kanit_regular.ttf'],
},
],
],
experiments: {
typedRoutes: true,
Expand Down
6 changes: 6 additions & 0 deletions expo55-example/app.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ module.exports = {
assets: ['../example/assets/rive/rewards.riv'],
},
],
[
'expo-font',
{
fonts: ['./assets/kanit_regular.ttf'],
},
],
],
experiments: {
typedRoutes: true,
Expand Down
2 changes: 1 addition & 1 deletion ios/new/ExperimentalAssetLoader.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@_spi(RiveExperimental) import RiveRuntime
import RiveRuntime
import NitroModules

enum AssetType {
Expand Down
11 changes: 2 additions & 9 deletions ios/new/HybridRiveFile.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@_spi(RiveExperimental) import RiveRuntime
import RiveRuntime
import NitroModules

class HybridRiveFile: HybridRiveFileSpec {
Expand Down Expand Up @@ -149,14 +149,7 @@ class HybridRiveFile: HybridRiveFileSpec {
}

func updateReferencedAssets(referencedAssets: ReferencedAssetsType) {
guard let worker = worker else {
RCTLogWarn("HybridRiveFile.updateReferencedAssets: No worker available")
return
}
RCTLogInfo("HybridRiveFile.updateReferencedAssets: Updating \(referencedAssets.data?.count ?? 0) assets (note: existing artboards won't refresh)")
Task { @MainActor in
await ExperimentalAssetLoader.registerAssets(referencedAssets, on: worker)
}
RCTLogWarn("[Rive] updateReferencedAssets is not supported with the experimental backend — already-rendered artboards cannot be updated. Use the legacy backend for runtime asset swapping.")
}

func getEnums() throws -> Promise<[RiveEnumDefinition]> {
Expand Down
2 changes: 1 addition & 1 deletion ios/new/HybridRiveFileFactory.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@_spi(RiveExperimental) import RiveRuntime
import RiveRuntime
import NitroModules

final class HybridRiveFileFactory: HybridRiveFileFactorySpec, @unchecked Sendable {
Expand Down
2 changes: 1 addition & 1 deletion ios/new/HybridRiveView.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@_spi(RiveExperimental) import RiveRuntime
import RiveRuntime
import Foundation
import NitroModules
import UIKit
Expand Down
21 changes: 2 additions & 19 deletions ios/new/RiveReactNativeView.swift
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import RiveRuntime
import NitroModules
import UIKit
import MetalKit

enum ExperimentalBindData {
case none
Expand All @@ -28,23 +27,8 @@
private var isViewReady = false
private var configTask: Task<Void, Never>?
private var isPaused = false
private var pendingFit: RiveRuntime.Fit?

var autoPlay: Bool = true

override func layoutSubviews() {
super.layoutSubviews()
applyPendingFitIfMTKViewReady()
}

// https://github.com/rive-app/rive-nitro-react-native/pull/231
private func applyPendingFitIfMTKViewReady() {
guard let fit = pendingFit, let rive = riveInstance,
riveUIView?.subviews.contains(where: { $0 is MTKView }) == true else { return }
rive.fit = fit
pendingFit = nil
}

func awaitViewReady() async -> Bool {
if !isViewReady {
await withCheckedContinuation { continuation in
Expand Down Expand Up @@ -81,7 +65,7 @@
// Probe for a default ViewModel first. If the artboard has none,
// the SDK would fire an error event — skip auto-binding silently instead.
do {
let _ = try await config.file.getDefaultViewModelInfo(for: artboard)

Check warning on line 68 in ios/new/RiveReactNativeView.swift

View workflow job for this annotation

GitHub Actions / lint-swift

Prefer `_ = foo()` over `let _ = foo()` when discarding a result from a function (redundant_discardable_let)
dataBind = .auto
} catch {
dataBind = .none
Expand All @@ -101,7 +85,8 @@
file: config.file,
artboard: artboard,
stateMachine: stateMachine,
dataBind: dataBind
dataBind: dataBind,
fit: config.fit
)

guard !Task.isCancelled else { return }
Expand All @@ -110,8 +95,6 @@
self.riveInstance = rive
self.setupRiveUIView(with: rive)

self.pendingFit = config.fit

if config.autoPlay {
self.isPaused = false
}
Expand Down
Loading