Skip to content

Commit adbaae6

Browse files
committed
fix: addListener returns remover function
1 parent 90abc54 commit adbaae6

10 files changed

Lines changed: 36 additions & 20 deletions

android/src/main/java/com/margelo/nitro/rive/HybridViewModelListProperty.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,9 @@ class HybridViewModelListProperty(private val listProperty: ViewModelListPropert
5656
return true
5757
}
5858

59-
override fun addListener(onChanged: () -> Unit) {
60-
listeners.add { _: Unit -> onChanged() }
59+
override fun addListener(onChanged: () -> Unit): () -> Unit {
60+
val remover = addListenerInternal { _ -> onChanged() }
6161
ensureValueListenerJob(listProperty.valueFlow.map { })
62+
return remover
6263
}
6364
}

ios/HybridViewModelListProperty.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class HybridViewModelListProperty: HybridViewModelListPropertySpec, ValuedProper
5656
return true
5757
}
5858

59-
func addListener(onChanged: @escaping () -> Void) throws {
60-
try addListener(onChanged: { _ in onChanged() })
59+
func addListener(onChanged: @escaping () -> Void) throws -> () -> Void {
60+
helper.addListener({ _ in onChanged() })
6161
}
6262
}

nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.cpp

Lines changed: 12 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.hpp

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelListPropertySpec.kt

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nitrogen/generated/ios/c++/HybridViewModelListPropertySpecSwift.hpp

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nitrogen/generated/ios/swift/HybridViewModelListPropertySpec.swift

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nitrogen/generated/ios/swift/HybridViewModelListPropertySpec_cxx.swift

Lines changed: 8 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.hpp

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/specs/ViewModel.nitro.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,6 @@ export interface ViewModelListProperty
149149
removeInstanceAt(index: number): void;
150150
/** Swap the instances at the given indices, returns true if successful */
151151
swap(index1: number, index2: number): boolean;
152-
/** Add a listener to be notified when the list changes */
153-
addListener(onChanged: () => void): void;
152+
/** Add a listener to be notified when the list changes. Returns a function to remove the listener. */
153+
addListener(onChanged: () => void): () => void;
154154
}

0 commit comments

Comments
 (0)