@onekeyfe/react-native-skeleton 1.1.12 → 1.1.13

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.
Files changed (57) hide show
  1. package/android/src/main/java/com/margelo/nitro/skeleton/Skeleton.kt +62 -6
  2. package/ios/Skeleton.swift +56 -39
  3. package/lib/nitrogen/generated/android/c++/JHybridSkeletonSpec.cpp +1 -1
  4. package/lib/nitrogen/generated/android/c++/JHybridSkeletonSpec.hpp +1 -1
  5. package/lib/nitrogen/generated/android/c++/views/JHybridSkeletonStateUpdater.cpp +1 -1
  6. package/lib/nitrogen/generated/android/c++/views/JHybridSkeletonStateUpdater.hpp +1 -1
  7. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/skeleton/HybridSkeletonSpec.kt +1 -1
  8. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/skeleton/skeletonOnLoad.kt +1 -1
  9. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/skeleton/views/HybridSkeletonManager.kt +1 -1
  10. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/skeleton/views/HybridSkeletonStateUpdater.kt +1 -1
  11. package/lib/nitrogen/generated/android/skeleton+autolinking.cmake +1 -1
  12. package/lib/nitrogen/generated/android/skeleton+autolinking.gradle +1 -1
  13. package/lib/nitrogen/generated/android/skeletonOnLoad.cpp +1 -1
  14. package/lib/nitrogen/generated/android/skeletonOnLoad.hpp +1 -1
  15. package/lib/nitrogen/generated/ios/Skeleton+autolinking.rb +1 -1
  16. package/lib/nitrogen/generated/ios/Skeleton-Swift-Cxx-Bridge.cpp +1 -1
  17. package/lib/nitrogen/generated/ios/Skeleton-Swift-Cxx-Bridge.hpp +1 -1
  18. package/lib/nitrogen/generated/ios/Skeleton-Swift-Cxx-Umbrella.hpp +1 -1
  19. package/lib/nitrogen/generated/ios/SkeletonAutolinking.mm +1 -1
  20. package/lib/nitrogen/generated/ios/SkeletonAutolinking.swift +1 -1
  21. package/lib/nitrogen/generated/ios/c++/HybridSkeletonSpecSwift.cpp +1 -1
  22. package/lib/nitrogen/generated/ios/c++/HybridSkeletonSpecSwift.hpp +1 -1
  23. package/lib/nitrogen/generated/ios/c++/views/HybridSkeletonComponent.mm +1 -1
  24. package/lib/nitrogen/generated/ios/swift/HybridSkeletonSpec.swift +1 -1
  25. package/lib/nitrogen/generated/ios/swift/HybridSkeletonSpec_cxx.swift +1 -1
  26. package/lib/nitrogen/generated/shared/c++/HybridSkeletonSpec.cpp +1 -1
  27. package/lib/nitrogen/generated/shared/c++/HybridSkeletonSpec.hpp +1 -1
  28. package/lib/nitrogen/generated/shared/c++/views/HybridSkeletonComponent.cpp +1 -1
  29. package/lib/nitrogen/generated/shared/c++/views/HybridSkeletonComponent.hpp +1 -1
  30. package/nitrogen/generated/android/c++/JHybridSkeletonSpec.cpp +1 -1
  31. package/nitrogen/generated/android/c++/JHybridSkeletonSpec.hpp +1 -1
  32. package/nitrogen/generated/android/c++/views/JHybridSkeletonStateUpdater.cpp +1 -1
  33. package/nitrogen/generated/android/c++/views/JHybridSkeletonStateUpdater.hpp +1 -1
  34. package/nitrogen/generated/android/kotlin/com/margelo/nitro/skeleton/HybridSkeletonSpec.kt +1 -1
  35. package/nitrogen/generated/android/kotlin/com/margelo/nitro/skeleton/skeletonOnLoad.kt +1 -1
  36. package/nitrogen/generated/android/kotlin/com/margelo/nitro/skeleton/views/HybridSkeletonManager.kt +1 -1
  37. package/nitrogen/generated/android/kotlin/com/margelo/nitro/skeleton/views/HybridSkeletonStateUpdater.kt +1 -1
  38. package/nitrogen/generated/android/skeleton+autolinking.cmake +1 -1
  39. package/nitrogen/generated/android/skeleton+autolinking.gradle +1 -1
  40. package/nitrogen/generated/android/skeletonOnLoad.cpp +1 -1
  41. package/nitrogen/generated/android/skeletonOnLoad.hpp +1 -1
  42. package/nitrogen/generated/ios/Skeleton+autolinking.rb +1 -1
  43. package/nitrogen/generated/ios/Skeleton-Swift-Cxx-Bridge.cpp +1 -1
  44. package/nitrogen/generated/ios/Skeleton-Swift-Cxx-Bridge.hpp +1 -1
  45. package/nitrogen/generated/ios/Skeleton-Swift-Cxx-Umbrella.hpp +1 -1
  46. package/nitrogen/generated/ios/SkeletonAutolinking.mm +1 -1
  47. package/nitrogen/generated/ios/SkeletonAutolinking.swift +1 -1
  48. package/nitrogen/generated/ios/c++/HybridSkeletonSpecSwift.cpp +1 -1
  49. package/nitrogen/generated/ios/c++/HybridSkeletonSpecSwift.hpp +1 -1
  50. package/nitrogen/generated/ios/c++/views/HybridSkeletonComponent.mm +1 -1
  51. package/nitrogen/generated/ios/swift/HybridSkeletonSpec.swift +1 -1
  52. package/nitrogen/generated/ios/swift/HybridSkeletonSpec_cxx.swift +1 -1
  53. package/nitrogen/generated/shared/c++/HybridSkeletonSpec.cpp +1 -1
  54. package/nitrogen/generated/shared/c++/HybridSkeletonSpec.hpp +1 -1
  55. package/nitrogen/generated/shared/c++/views/HybridSkeletonComponent.cpp +1 -1
  56. package/nitrogen/generated/shared/c++/views/HybridSkeletonComponent.hpp +1 -1
  57. package/package.json +1 -1
@@ -30,6 +30,12 @@ class HybridSkeleton(val context: ThemedReactContext) : HybridSkeletonSpec() {
30
30
  private var customGradientColors: IntArray? = null
31
31
  private var animationSpeed: Long = 3000L
32
32
 
33
+ // Memory safety flags
34
+ private var isDisposed: Boolean = false
35
+ private var retryCount: Int = 0
36
+ private val maxRetryCount: Int = 10
37
+ private var pendingStartRunnable: Runnable? = null
38
+
33
39
  // View with shimmer effect
34
40
  override val view: View = object : View(context) {
35
41
  override fun onDraw(canvas: Canvas) {
@@ -59,6 +65,7 @@ class HybridSkeleton(val context: ThemedReactContext) : HybridSkeletonSpec() {
59
65
  override var shimmerSpeed: Double?
60
66
  get() = animationSpeed.toDouble() / 1000.0
61
67
  set(value) {
68
+ if (isDisposed) return
62
69
  animationSpeed = ((value ?: 3.0) * 1000).toLong()
63
70
  restartShimmer()
64
71
  }
@@ -66,6 +73,7 @@ class HybridSkeleton(val context: ThemedReactContext) : HybridSkeletonSpec() {
66
73
  override var shimmerGradientColors: Array<String>?
67
74
  get() = customGradientColors?.map { String.format("#%06X", 0xFFFFFF and it) }?.toTypedArray()
68
75
  set(value) {
76
+ if (isDisposed) return
69
77
  if (value != null) {
70
78
  customGradientColors = value.map { hexStringToColor(it) }.toIntArray()
71
79
  restartShimmer()
@@ -83,10 +91,35 @@ class HybridSkeleton(val context: ThemedReactContext) : HybridSkeletonSpec() {
83
91
  }
84
92
 
85
93
  private fun startShimmer() {
94
+ if (isDisposed) return
95
+
86
96
  stopShimmer()
97
+ retryCount = 0 // Reset retry count
98
+ startShimmerInternal()
99
+ }
100
+
101
+ private fun startShimmerInternal() {
102
+ if (isDisposed) return
87
103
 
88
104
  if (view.width == 0 || view.height == 0) {
89
- view.postDelayed({ startShimmer() }, 100)
105
+ // Check if we have exceeded max retry count
106
+ if (retryCount >= maxRetryCount) {
107
+ android.util.Log.w("HybridSkeleton", "Max retry count reached. View bounds are still empty.")
108
+ return
109
+ }
110
+
111
+ retryCount++
112
+ // Clean up previous pending runnable
113
+ pendingStartRunnable?.let { view.removeCallbacks(it) }
114
+
115
+ // Create new runnable and schedule
116
+ val runnable = Runnable {
117
+ if (!isDisposed) {
118
+ startShimmerInternal()
119
+ }
120
+ }
121
+ pendingStartRunnable = runnable
122
+ view.postDelayed(runnable, 100)
90
123
  return
91
124
  }
92
125
 
@@ -97,26 +130,42 @@ class HybridSkeleton(val context: ThemedReactContext) : HybridSkeletonSpec() {
97
130
  repeatCount = ValueAnimator.INFINITE
98
131
  interpolator = LinearInterpolator()
99
132
  addUpdateListener { animation ->
100
- translateX = animation.animatedValue as Float
101
- view.invalidate()
133
+ if (!isDisposed) {
134
+ translateX = animation.animatedValue as Float
135
+ view.invalidate()
136
+ }
102
137
  }
103
138
  start()
104
139
  }
105
140
  }
106
141
 
107
142
  private fun stopShimmer() {
108
- shimmerAnimator?.cancel()
143
+ // Clean up pending runnable
144
+ pendingStartRunnable?.let {
145
+ view.removeCallbacks(it)
146
+ pendingStartRunnable = null
147
+ }
148
+
149
+ // Clean up animator and its listeners
150
+ shimmerAnimator?.apply {
151
+ removeAllUpdateListeners()
152
+ cancel()
153
+ }
109
154
  shimmerAnimator = null
110
155
  }
111
156
 
112
157
  override fun afterUpdate() {
113
158
  super.afterUpdate()
114
- restartShimmer()
159
+ if (!isDisposed) {
160
+ restartShimmer()
161
+ }
115
162
  }
116
163
 
117
164
  private fun restartShimmer() {
165
+ if (isDisposed) return
118
166
  stopShimmer()
119
- startShimmer()
167
+ retryCount = 0 // Reset retry count on restart
168
+ startShimmerInternal()
120
169
  }
121
170
 
122
171
  private fun hexStringToColor(hexColor: String): Int {
@@ -134,6 +183,13 @@ class HybridSkeleton(val context: ThemedReactContext) : HybridSkeletonSpec() {
134
183
  }
135
184
 
136
185
  override fun dispose() {
186
+ // Mark as disposed to prevent any new operations
187
+ isDisposed = true
188
+
189
+ // Stop all animations and clean up
137
190
  stopShimmer()
191
+
192
+ // Clear view references to prevent memory leaks
193
+ view.invalidate()
138
194
  }
139
195
  }
@@ -5,7 +5,7 @@ import UIKit
5
5
  let DEFAULT_GRADIENT_COLORS: [UIColor] = [UIColor(red: 210.0/255.0, green: 210.0/255.0, blue: 210.0/255.0, alpha: 1.0), UIColor(red: 235.0/255.0, green: 235.0/255.0, blue: 235.0/255.0, alpha: 1.0)]
6
6
 
7
7
  class HybridSkeleton : HybridSkeletonSpec {
8
-
8
+
9
9
  // Shimmer layers
10
10
  private var shimmerLayer: CAGradientLayer?
11
11
  private var skeletonLayer: CALayer?
@@ -14,7 +14,7 @@ class HybridSkeleton : HybridSkeletonSpec {
14
14
  private var retryCount: Int = 0
15
15
  private let maxRetryCount: Int = 10
16
16
  private var viewObserver: NSKeyValueObservation?
17
-
17
+
18
18
  var shimmerGradientColors: [String]? {
19
19
  didSet {
20
20
  guard isActive else { return }
@@ -25,7 +25,7 @@ class HybridSkeleton : HybridSkeletonSpec {
25
25
  }
26
26
  }
27
27
  }
28
-
28
+
29
29
  // UIView
30
30
  var view: UIView = UIView()
31
31
 
@@ -38,38 +38,54 @@ class HybridSkeleton : HybridSkeletonSpec {
38
38
  }
39
39
  }
40
40
  }
41
-
41
+
42
42
  override init() {
43
43
  super.init()
44
44
  setupView()
45
45
  }
46
-
46
+
47
47
  deinit {
48
48
  // Mark as inactive to prevent any new operations
49
49
  isActive = false
50
-
50
+
51
51
  // Clean up observer
52
52
  viewObserver?.invalidate()
53
53
  viewObserver = nil
54
-
55
- // Ensure all cleanup happens on main thread synchronously
54
+
55
+ // Cleanup must happen on main thread, but avoid deadlock
56
+ // Use async if not on main thread to prevent blocking
56
57
  if Thread.isMainThread {
57
58
  stopShimmer()
59
+ // Clear view reference and ensure no dangling animations
60
+ view.layer.removeAllAnimations()
61
+ view.layer.sublayers?.removeAll()
62
+ view.layer.mask = nil
58
63
  } else {
59
- DispatchQueue.main.sync {
60
- self.stopShimmer()
64
+ // Use async to avoid potential deadlock with sync
65
+ // All CALayer operations must happen on main thread
66
+ let shimmer = self.shimmerLayer
67
+ let skeleton = self.skeletonLayer
68
+ DispatchQueue.main.async { [weak view = self.view] in
69
+ guard let view = view else { return }
70
+ // Stop shimmer animations
71
+ shimmer?.removeAllAnimations()
72
+ shimmer?.removeFromSuperlayer()
73
+
74
+ // Clear mask reference
75
+ if view.layer.mask === skeleton {
76
+ view.layer.mask = nil
77
+ }
78
+
79
+ // Clean up remaining animations and sublayers
80
+ view.layer.removeAllAnimations()
81
+ view.layer.sublayers?.removeAll()
61
82
  }
62
83
  }
63
-
64
- // Clear view reference and ensure no dangling animations
65
- view.layer.removeAllAnimations()
66
- view.layer.sublayers?.removeAll()
67
- view.layer.mask = nil
68
84
  }
69
-
85
+
70
86
  private func setupView() {
71
87
  view.clipsToBounds = true
72
-
88
+
73
89
  // Observe view hierarchy changes for cleanup
74
90
  viewObserver = view.observe(\.superview, options: [.new]) { [weak self] view, change in
75
91
  guard let self = self else { return }
@@ -80,31 +96,31 @@ class HybridSkeleton : HybridSkeletonSpec {
80
96
  }
81
97
  }
82
98
  }
83
-
99
+
84
100
  // Start animation when view is ready
85
101
  DispatchQueue.main.async { [weak self] in
86
102
  guard let self = self, self.isActive else { return }
87
103
  self.startShimmer()
88
104
  }
89
105
  }
90
-
106
+
91
107
  func startShimmer() {
92
108
  retryCount = 0 // Reset retry count when starting new shimmer
93
109
  startShimmerInternal()
94
110
  }
95
-
111
+
96
112
  private func startShimmerInternal() {
97
113
  guard isActive else { return }
98
-
114
+
99
115
  stopShimmer()
100
-
116
+
101
117
  guard !view.bounds.isEmpty else {
102
118
  // Check if we have exceeded max retry count
103
119
  guard retryCount < maxRetryCount else {
104
120
  print("⚠️ Skeleton shimmer: Max retry count reached. View bounds are still empty.")
105
121
  return
106
122
  }
107
-
123
+
108
124
  retryCount += 1
109
125
  // Retry after a short delay if bounds are not ready
110
126
  DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in
@@ -113,18 +129,18 @@ class HybridSkeleton : HybridSkeletonSpec {
113
129
  }
114
130
  return
115
131
  }
116
-
132
+
117
133
  let colors: [UIColor] = customGradientColors ?? DEFAULT_GRADIENT_COLORS
118
134
  let backgroundColor = colors[0].cgColor
119
135
  let highlightColor = colors[1].cgColor
120
-
136
+
121
137
  // Create skeleton layer for masking
122
138
  let newSkeletonLayer = CALayer()
123
139
  newSkeletonLayer.backgroundColor = backgroundColor
124
140
  newSkeletonLayer.name = "SkeletonLayer"
125
141
  newSkeletonLayer.anchorPoint = .zero
126
142
  newSkeletonLayer.frame = view.bounds
127
-
143
+
128
144
  // Create gradient layer for animation
129
145
  let gradientLayer = CAGradientLayer()
130
146
  gradientLayer.colors = [backgroundColor, highlightColor, backgroundColor]
@@ -132,16 +148,17 @@ class HybridSkeleton : HybridSkeletonSpec {
132
148
  gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.5)
133
149
  gradientLayer.frame = view.bounds
134
150
  gradientLayer.name = "ShimmerLayer"
135
-
151
+
136
152
  // Set mask and add gradient layer (don't add skeleton layer as sublayer)
137
153
  view.layer.mask = newSkeletonLayer
138
154
  view.layer.addSublayer(gradientLayer)
139
155
  view.clipsToBounds = true
140
-
156
+ view.backgroundColor = UIColor(cgColor: backgroundColor)
157
+
141
158
  // Store references
142
159
  skeletonLayer = newSkeletonLayer
143
160
  shimmerLayer = gradientLayer
144
-
161
+
145
162
  // Create animation
146
163
  let width = view.bounds.width
147
164
  let animation = CABasicAnimation(keyPath: "transform.translation.x")
@@ -152,21 +169,21 @@ class HybridSkeleton : HybridSkeletonSpec {
152
169
  animation.autoreverses = false
153
170
  animation.fillMode = CAMediaTimingFillMode.forwards
154
171
  animation.isRemovedOnCompletion = false // Keep animation when completed
155
-
172
+
156
173
  // Use weak self pattern for potential future animation delegates/completion handlers
157
174
  gradientLayer.add(animation, forKey: "shimmerAnimation")
158
175
  }
159
-
176
+
160
177
  func stopShimmer() {
161
178
  // Remove animation from shimmer layer
162
179
  shimmerLayer?.removeAllAnimations() // Remove all animations, more comprehensive
163
180
  shimmerLayer?.removeFromSuperlayer()
164
-
181
+
165
182
  // Clear mask reference before setting to nil
166
183
  if view.layer.mask === skeletonLayer {
167
184
  view.layer.mask = nil
168
185
  }
169
-
186
+
170
187
  // Clean up all sublayers that might be shimmer layers
171
188
  view.layer.sublayers?.forEach { layer in
172
189
  if layer.name == "ShimmerLayer" {
@@ -174,12 +191,12 @@ class HybridSkeleton : HybridSkeletonSpec {
174
191
  layer.removeFromSuperlayer()
175
192
  }
176
193
  }
177
-
194
+
178
195
  // Nil out references
179
196
  shimmerLayer = nil
180
197
  skeletonLayer = nil
181
198
  }
182
-
199
+
183
200
  func afterUpdate() {
184
201
  guard isActive else { return }
185
202
  DispatchQueue.main.async { [weak self] in
@@ -187,21 +204,21 @@ class HybridSkeleton : HybridSkeletonSpec {
187
204
  self.restartShimmer()
188
205
  }
189
206
  }
190
-
207
+
191
208
  func restartShimmer() {
192
209
  guard isActive else { return }
193
210
  stopShimmer()
194
211
  retryCount = 0 // Reset retry count on restart
195
212
  startShimmerInternal()
196
213
  }
197
-
214
+
198
215
  func hexStringToUIColor(hexColor: String) -> UIColor {
199
216
  var hexSanitized = hexColor.trimmingCharacters(in: .whitespacesAndNewlines)
200
-
217
+
201
218
  if hexSanitized.hasPrefix("#") {
202
219
  hexSanitized.remove(at: hexSanitized.startIndex)
203
220
  }
204
-
221
+
205
222
  var color: UInt32 = 0
206
223
  let stringScanner = Scanner(string: hexSanitized)
207
224
  stringScanner.scanHexInt32(&color)
@@ -2,7 +2,7 @@
2
2
  /// JHybridSkeletonSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "JHybridSkeletonSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JHybridSkeletonStateUpdater.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "JHybridSkeletonStateUpdater.hpp"
@@ -2,7 +2,7 @@
2
2
  /// JHybridSkeletonStateUpdater.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpec.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.skeleton
@@ -2,7 +2,7 @@
2
2
  /// skeletonOnLoad.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.skeleton
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonManager.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.skeleton.views
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonStateUpdater.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.skeleton.views
@@ -2,7 +2,7 @@
2
2
  # skeleton+autolinking.cmake
3
3
  # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  # https://github.com/mrousavy/nitro
5
- # Copyright © 2025 Marc Rousavy @ Margelo
5
+ # Copyright © 2026 Marc Rousavy @ Margelo
6
6
  #
7
7
 
8
8
  # This is a CMake file that adds all files generated by Nitrogen
@@ -2,7 +2,7 @@
2
2
  /// skeleton+autolinking.gradle
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  /// This is a Gradle file that adds all files generated by Nitrogen
@@ -2,7 +2,7 @@
2
2
  /// skeletonOnLoad.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #ifndef BUILDING_SKELETON_WITH_GENERATED_CMAKE_PROJECT
@@ -2,7 +2,7 @@
2
2
  /// skeletonOnLoad.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include <jni.h>
@@ -2,7 +2,7 @@
2
2
  # Skeleton+autolinking.rb
3
3
  # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  # https://github.com/mrousavy/nitro
5
- # Copyright © 2025 Marc Rousavy @ Margelo
5
+ # Copyright © 2026 Marc Rousavy @ Margelo
6
6
  #
7
7
 
8
8
  # This is a Ruby script that adds all files generated by Nitrogen
@@ -2,7 +2,7 @@
2
2
  /// Skeleton-Swift-Cxx-Bridge.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "Skeleton-Swift-Cxx-Bridge.hpp"
@@ -2,7 +2,7 @@
2
2
  /// Skeleton-Swift-Cxx-Bridge.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// Skeleton-Swift-Cxx-Umbrella.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// SkeletonAutolinking.mm
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #import <Foundation/Foundation.h>
@@ -2,7 +2,7 @@
2
2
  /// SkeletonAutolinking.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  public final class SkeletonAutolinking {
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpecSwift.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridSkeletonSpecSwift.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpecSwift.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonComponent.mm
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #import "HybridSkeletonComponent.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpec.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpec_cxx.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridSkeletonSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonComponent.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridSkeletonComponent.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonComponent.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JHybridSkeletonSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "JHybridSkeletonSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JHybridSkeletonStateUpdater.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "JHybridSkeletonStateUpdater.hpp"
@@ -2,7 +2,7 @@
2
2
  /// JHybridSkeletonStateUpdater.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpec.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.skeleton
@@ -2,7 +2,7 @@
2
2
  /// skeletonOnLoad.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.skeleton
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonManager.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.skeleton.views
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonStateUpdater.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.skeleton.views
@@ -2,7 +2,7 @@
2
2
  # skeleton+autolinking.cmake
3
3
  # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  # https://github.com/mrousavy/nitro
5
- # Copyright © 2025 Marc Rousavy @ Margelo
5
+ # Copyright © 2026 Marc Rousavy @ Margelo
6
6
  #
7
7
 
8
8
  # This is a CMake file that adds all files generated by Nitrogen
@@ -2,7 +2,7 @@
2
2
  /// skeleton+autolinking.gradle
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  /// This is a Gradle file that adds all files generated by Nitrogen
@@ -2,7 +2,7 @@
2
2
  /// skeletonOnLoad.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #ifndef BUILDING_SKELETON_WITH_GENERATED_CMAKE_PROJECT
@@ -2,7 +2,7 @@
2
2
  /// skeletonOnLoad.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include <jni.h>
@@ -2,7 +2,7 @@
2
2
  # Skeleton+autolinking.rb
3
3
  # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  # https://github.com/mrousavy/nitro
5
- # Copyright © 2025 Marc Rousavy @ Margelo
5
+ # Copyright © 2026 Marc Rousavy @ Margelo
6
6
  #
7
7
 
8
8
  # This is a Ruby script that adds all files generated by Nitrogen
@@ -2,7 +2,7 @@
2
2
  /// Skeleton-Swift-Cxx-Bridge.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "Skeleton-Swift-Cxx-Bridge.hpp"
@@ -2,7 +2,7 @@
2
2
  /// Skeleton-Swift-Cxx-Bridge.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// Skeleton-Swift-Cxx-Umbrella.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// SkeletonAutolinking.mm
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #import <Foundation/Foundation.h>
@@ -2,7 +2,7 @@
2
2
  /// SkeletonAutolinking.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  public final class SkeletonAutolinking {
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpecSwift.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridSkeletonSpecSwift.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpecSwift.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonComponent.mm
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #import "HybridSkeletonComponent.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpec.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpec_cxx.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import Foundation
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridSkeletonSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonComponent.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridSkeletonComponent.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridSkeletonComponent.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/react-native-skeleton",
3
- "version": "1.1.12",
3
+ "version": "1.1.13",
4
4
  "description": "react-native-skeleton",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",