react-native-unistyles 3.0.0-alpha.37 → 3.0.0-alpha.39
Sign up to get free protection for your applications and to get access to all the features.
- package/android/build.gradle +4 -4
- package/android/src/main/java/com/unistyles/NativePlatform+android.kt +13 -30
- package/android/src/main/java/com/unistyles/NativePlatform+insets.kt +22 -18
- package/android/src/main/java/com/unistyles/NativePlatform+listener.kt +10 -5
- package/cxx/core/UnistyleWrapper.h +27 -10
- package/cxx/core/UnistylesRegistry.cpp +34 -10
- package/cxx/core/UnistylesRegistry.h +2 -2
- package/cxx/hybridObjects/HybridNavigationBar.cpp +0 -4
- package/cxx/hybridObjects/HybridNavigationBar.h +0 -1
- package/cxx/hybridObjects/HybridShadowRegistry.cpp +7 -3
- package/cxx/hybridObjects/HybridStatusBar.cpp +0 -4
- package/cxx/hybridObjects/HybridStatusBar.h +0 -1
- package/cxx/hybridObjects/HybridStyleSheet.cpp +59 -28
- package/cxx/hybridObjects/HybridStyleSheet.h +7 -3
- package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +37 -6
- package/cxx/hybridObjects/HybridUnistylesRuntime.h +7 -3
- package/cxx/parser/Parser.cpp +7 -7
- package/cxx/parser/Parser.h +2 -2
- package/ios/NativePlatform+ios.swift +2 -4
- package/ios/NativePlatform+keyboard.swift +1 -1
- package/ios/NativePlatformListener+ios.swift +6 -6
- package/ios/UnistylesModuleOnLoad.h +1 -6
- package/lib/commonjs/core/createUnistylesComponent.js +27 -20
- package/lib/commonjs/core/createUnistylesComponent.js.map +1 -1
- package/lib/commonjs/core/createUnistylesComponent.native.js +15 -18
- package/lib/commonjs/core/createUnistylesComponent.native.js.map +1 -1
- package/lib/commonjs/specs/NavigtionBar/index.js +0 -15
- package/lib/commonjs/specs/NavigtionBar/index.js.map +1 -1
- package/lib/commonjs/specs/ShadowRegistry/index.js +5 -7
- package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/commonjs/specs/StatusBar/index.js +0 -5
- package/lib/commonjs/specs/StatusBar/index.js.map +1 -1
- package/lib/commonjs/specs/UnistylesRuntime/index.js +0 -2
- package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
- package/lib/commonjs/utils.js +26 -0
- package/lib/commonjs/utils.js.map +1 -0
- package/lib/commonjs/web/convert/index.js +1 -1
- package/lib/commonjs/web/convert/object/boxShadow.js +2 -1
- package/lib/commonjs/web/convert/object/boxShadow.js.map +1 -1
- package/lib/commonjs/web/convert/object/objectStyle.js +3 -2
- package/lib/commonjs/web/convert/object/objectStyle.js.map +1 -1
- package/lib/commonjs/web/convert/shadow/boxShadow.js +1 -1
- package/lib/commonjs/web/convert/shadow/textShadow.js +1 -1
- package/lib/commonjs/web/create.js +2 -1
- package/lib/commonjs/web/create.js.map +1 -1
- package/lib/commonjs/web/index.js +1 -1
- package/lib/commonjs/web/listener.js +18 -2
- package/lib/commonjs/web/listener.js.map +1 -1
- package/lib/commonjs/web/mock.js +1 -2
- package/lib/commonjs/web/mock.js.map +1 -1
- package/lib/commonjs/web/runtime.js +5 -2
- package/lib/commonjs/web/runtime.js.map +1 -1
- package/lib/commonjs/web/shadowRegistry.js +53 -73
- package/lib/commonjs/web/shadowRegistry.js.map +1 -1
- package/lib/commonjs/web/utils/common.js +1 -24
- package/lib/commonjs/web/utils/common.js.map +1 -1
- package/lib/commonjs/web/utils/unistyle.js.map +1 -1
- package/lib/commonjs/web/variants/getVariants.js +1 -1
- package/lib/module/core/createUnistylesComponent.js +28 -21
- package/lib/module/core/createUnistylesComponent.js.map +1 -1
- package/lib/module/core/createUnistylesComponent.native.js +16 -19
- package/lib/module/core/createUnistylesComponent.native.js.map +1 -1
- package/lib/module/specs/NavigtionBar/index.js +0 -10
- package/lib/module/specs/NavigtionBar/index.js.map +1 -1
- package/lib/module/specs/ShadowRegistry/index.js +5 -7
- package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/module/specs/StatusBar/index.js +1 -6
- package/lib/module/specs/StatusBar/index.js.map +1 -1
- package/lib/module/specs/UnistylesRuntime/index.js +0 -2
- package/lib/module/specs/UnistylesRuntime/index.js.map +1 -1
- package/lib/module/utils.js +21 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/module/web/convert/index.js +1 -1
- package/lib/module/web/convert/index.js.map +1 -1
- package/lib/module/web/convert/object/boxShadow.js +2 -1
- package/lib/module/web/convert/object/boxShadow.js.map +1 -1
- package/lib/module/web/convert/object/objectStyle.js +2 -1
- package/lib/module/web/convert/object/objectStyle.js.map +1 -1
- package/lib/module/web/convert/shadow/boxShadow.js +1 -1
- package/lib/module/web/convert/shadow/boxShadow.js.map +1 -1
- package/lib/module/web/convert/shadow/textShadow.js +1 -1
- package/lib/module/web/convert/shadow/textShadow.js.map +1 -1
- package/lib/module/web/create.js +2 -1
- package/lib/module/web/create.js.map +1 -1
- package/lib/module/web/index.js +1 -1
- package/lib/module/web/index.js.map +1 -1
- package/lib/module/web/listener.js +18 -2
- package/lib/module/web/listener.js.map +1 -1
- package/lib/module/web/mock.js +1 -2
- package/lib/module/web/mock.js.map +1 -1
- package/lib/module/web/runtime.js +6 -3
- package/lib/module/web/runtime.js.map +1 -1
- package/lib/module/web/shadowRegistry.js +51 -71
- package/lib/module/web/shadowRegistry.js.map +1 -1
- package/lib/module/web/utils/common.js +0 -22
- package/lib/module/web/utils/common.js.map +1 -1
- package/lib/module/web/utils/unistyle.js.map +1 -1
- package/lib/module/web/variants/getVariants.js +1 -1
- package/lib/module/web/variants/getVariants.js.map +1 -1
- package/lib/typescript/src/core/createUnistylesComponent.d.ts +1 -1
- package/lib/typescript/src/core/createUnistylesComponent.d.ts.map +1 -1
- package/lib/typescript/src/core/createUnistylesComponent.native.d.ts +1 -1
- package/lib/typescript/src/core/createUnistylesComponent.native.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts +2 -4
- package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts +0 -1
- package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/NavigtionBar/index.d.ts +1 -15
- package/lib/typescript/src/specs/NavigtionBar/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +3 -3
- package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts +0 -1
- package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/StatusBar/index.d.ts +2 -9
- package/lib/typescript/src/specs/StatusBar/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts.map +1 -1
- package/lib/typescript/src/utils.d.ts +2 -0
- package/lib/typescript/src/utils.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/boxShadow.d.ts.map +1 -1
- package/lib/typescript/src/web/convert/object/objectStyle.d.ts.map +1 -1
- package/lib/typescript/src/web/create.d.ts.map +1 -1
- package/lib/typescript/src/web/listener.d.ts.map +1 -1
- package/lib/typescript/src/web/mock.d.ts.map +1 -1
- package/lib/typescript/src/web/runtime.d.ts +1 -1
- package/lib/typescript/src/web/runtime.d.ts.map +1 -1
- package/lib/typescript/src/web/shadowRegistry.d.ts +1 -3
- package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -1
- package/lib/typescript/src/web/utils/common.d.ts +0 -4
- package/lib/typescript/src/web/utils/common.d.ts.map +1 -1
- package/lib/typescript/src/web/utils/unistyle.d.ts +1 -1
- package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_UnistylesNativeMiniRuntime.hpp +57 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp +69 -0
- package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +8 -16
- package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +2 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/{Func_void_std__vector_UnistyleDependency_.kt → Func_void_UnistylesNativeMiniRuntime.kt} +5 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/{Func_void.kt → Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.kt} +5 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +4 -12
- package/nitrogen/generated/android/unistylesOnLoad.cpp +4 -4
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.hpp +43 -30
- package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.hpp +2 -8
- package/nitrogen/generated/ios/swift/HybridNativePlatformSpec.swift +2 -4
- package/nitrogen/generated/ios/swift/HybridNativePlatformSpecCxx.swift +10 -32
- package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.cpp +0 -2
- package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.hpp +2 -4
- package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.cpp +0 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.hpp +0 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.cpp +0 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.hpp +0 -1
- package/package.json +4 -2
- package/plugin/common.js +19 -2
- package/plugin/index.js +12 -10
- package/plugin/ref.js +80 -15
- package/plugin/style.js +113 -18
- package/src/core/createUnistylesComponent.native.tsx +16 -23
- package/src/core/createUnistylesComponent.tsx +29 -23
- package/src/specs/NativePlatform/NativePlatform.nitro.ts +2 -4
- package/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.ts +0 -1
- package/src/specs/NavigtionBar/index.ts +1 -30
- package/src/specs/ShadowRegistry/index.ts +8 -11
- package/src/specs/StatusBar/UnistylesStatusBar.nitro.ts +0 -1
- package/src/specs/StatusBar/index.ts +2 -17
- package/src/specs/UnistylesRuntime/index.ts +1 -2
- package/src/utils.ts +22 -0
- package/src/web/convert/index.ts +1 -1
- package/src/web/convert/object/boxShadow.ts +2 -1
- package/src/web/convert/object/objectStyle.ts +2 -1
- package/src/web/convert/shadow/boxShadow.ts +1 -1
- package/src/web/convert/shadow/textShadow.ts +1 -1
- package/src/web/create.ts +2 -1
- package/src/web/index.ts +1 -1
- package/src/web/listener.ts +22 -2
- package/src/web/mock.ts +1 -2
- package/src/web/runtime.ts +7 -3
- package/src/web/shadowRegistry.ts +55 -70
- package/src/web/utils/common.ts +0 -26
- package/src/web/utils/unistyle.ts +1 -1
- package/src/web/variants/getVariants.ts +1 -1
- package/nitrogen/generated/android/c++/JFunc_void.hpp +0 -48
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency_.hpp +0 -60
package/android/build.gradle
CHANGED
@@ -7,8 +7,8 @@ buildscript {
|
|
7
7
|
gradlePluginPortal()
|
8
8
|
}
|
9
9
|
dependencies {
|
10
|
-
classpath("com.android.tools.build:gradle:
|
11
|
-
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.
|
10
|
+
classpath("com.android.tools.build:gradle:8.2.1")
|
11
|
+
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.10")
|
12
12
|
}
|
13
13
|
}
|
14
14
|
|
@@ -32,12 +32,12 @@ if (isNewArchitectureEnabled()) {
|
|
32
32
|
}
|
33
33
|
|
34
34
|
android {
|
35
|
-
compileSdkVersion safeExtGet('compileSdkVersion',
|
35
|
+
compileSdkVersion safeExtGet('compileSdkVersion', 35)
|
36
36
|
namespace "com.unistyles"
|
37
37
|
|
38
38
|
defaultConfig {
|
39
39
|
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
|
40
|
-
minSdkVersion safeExtGet('minSdkVersion',
|
40
|
+
minSdkVersion safeExtGet('minSdkVersion', 24)
|
41
41
|
externalNativeBuild {
|
42
42
|
cmake {
|
43
43
|
arguments "-DANDROID_STL=c++_shared"
|
@@ -8,7 +8,6 @@ import android.view.View
|
|
8
8
|
import android.view.WindowManager
|
9
9
|
import androidx.core.text.TextUtilsCompat
|
10
10
|
import androidx.core.view.ViewCompat
|
11
|
-
import androidx.core.view.WindowCompat
|
12
11
|
import androidx.core.view.WindowInsetsCompat
|
13
12
|
import androidx.core.view.WindowInsetsControllerCompat
|
14
13
|
import com.facebook.react.bridge.LifecycleEventListener
|
@@ -23,11 +22,12 @@ import com.margelo.nitro.unistyles.UnistylesNativeMiniRuntime
|
|
23
22
|
import java.util.Locale
|
24
23
|
|
25
24
|
class NativePlatformAndroid(private val reactContext: ReactApplicationContext): HybridNativePlatformSpec(), LifecycleEventListener {
|
26
|
-
private val _insets = NativePlatformInsets(reactContext) { this.diffMiniRuntime() }
|
25
|
+
private val _insets = NativePlatformInsets(reactContext, this::getMiniRuntime) { this.diffMiniRuntime() }
|
27
26
|
private var _miniRuntime: UnistylesNativeMiniRuntime = buildMiniRuntime()
|
28
|
-
private val _listener = NativePlatformListener(reactContext) { this.diffMiniRuntime() }
|
27
|
+
private val _listener = NativePlatformListener(reactContext, this::getMiniRuntime) { this.diffMiniRuntime() }
|
29
28
|
|
30
29
|
init {
|
30
|
+
checkEdgeToEdge()
|
31
31
|
reactContext.addLifecycleEventListener(this)
|
32
32
|
}
|
33
33
|
|
@@ -37,7 +37,6 @@ class NativePlatformAndroid(private val reactContext: ReactApplicationContext):
|
|
37
37
|
}
|
38
38
|
|
39
39
|
override fun onHostResume() {
|
40
|
-
enableEdgeToEdge()
|
41
40
|
_insets.startInsetsListener()
|
42
41
|
}
|
43
42
|
|
@@ -168,15 +167,6 @@ class NativePlatformAndroid(private val reactContext: ReactApplicationContext):
|
|
168
167
|
}
|
169
168
|
}
|
170
169
|
|
171
|
-
@Suppress("DEPRECATION")
|
172
|
-
override fun setNavigationBarBackgroundColor(color: Double) {
|
173
|
-
reactContext.currentActivity?.let { activity ->
|
174
|
-
activity.runOnUiThread {
|
175
|
-
activity.window.navigationBarColor = color.toInt()
|
176
|
-
}
|
177
|
-
}
|
178
|
-
}
|
179
|
-
|
180
170
|
override fun setNavigationBarHidden(isHidden: Boolean) {
|
181
171
|
reactContext.currentActivity?.let { activity ->
|
182
172
|
WindowInsetsControllerCompat(activity.window, activity.window.decorView).apply {
|
@@ -231,16 +221,6 @@ class NativePlatformAndroid(private val reactContext: ReactApplicationContext):
|
|
231
221
|
}
|
232
222
|
}
|
233
223
|
|
234
|
-
@Suppress("DEPRECATION")
|
235
|
-
override fun setStatusBarBackgroundColor(color: Double) {
|
236
|
-
reactContext.currentActivity?.let { activity ->
|
237
|
-
activity.runOnUiThread {
|
238
|
-
activity.window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
|
239
|
-
activity.window.statusBarColor = color.toInt()
|
240
|
-
}
|
241
|
-
}
|
242
|
-
}
|
243
|
-
|
244
224
|
override fun setImmersiveMode(isEnabled: Boolean) {
|
245
225
|
this.setStatusBarHidden(isEnabled)
|
246
226
|
this.setNavigationBarHidden(isEnabled)
|
@@ -279,11 +259,11 @@ class NativePlatformAndroid(private val reactContext: ReactApplicationContext):
|
|
279
259
|
return changedDependencies
|
280
260
|
}
|
281
261
|
|
282
|
-
override fun registerPlatformListener(callback: (dependencies: Array<UnistyleDependency
|
262
|
+
override fun registerPlatformListener(callback: (dependencies: Array<UnistyleDependency>, miniRuntime: UnistylesNativeMiniRuntime) -> Unit) {
|
283
263
|
this._listener.addPlatformListener(callback)
|
284
264
|
}
|
285
265
|
|
286
|
-
override fun registerImeListener(callback: () -> Unit) {
|
266
|
+
override fun registerImeListener(callback: (miniRuntime: UnistylesNativeMiniRuntime) -> Unit) {
|
287
267
|
this._insets.addImeListener(callback)
|
288
268
|
}
|
289
269
|
|
@@ -292,11 +272,14 @@ class NativePlatformAndroid(private val reactContext: ReactApplicationContext):
|
|
292
272
|
this._insets.removeImeListeners()
|
293
273
|
}
|
294
274
|
|
295
|
-
private fun
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
275
|
+
private fun checkEdgeToEdge() {
|
276
|
+
// react-native-edge-to-edge will set setDecorFitsSystemWindows automatically
|
277
|
+
// if it's present we assume that edge-to-edge is enabled
|
278
|
+
|
279
|
+
try {
|
280
|
+
Class.forName("com.zoontek.rnedgetoedge.EdgeToEdgePackage")
|
281
|
+
} catch (exception: ClassNotFoundException) {
|
282
|
+
throw IllegalStateException("Unistyles: react-native-edge-to-edge is not installed.")
|
300
283
|
}
|
301
284
|
}
|
302
285
|
}
|
@@ -11,10 +11,15 @@ import androidx.core.view.WindowInsetsCompat
|
|
11
11
|
import com.facebook.react.bridge.ReactApplicationContext
|
12
12
|
import com.margelo.nitro.unistyles.Insets
|
13
13
|
import com.margelo.nitro.unistyles.UnistyleDependency
|
14
|
+
import com.margelo.nitro.unistyles.UnistylesNativeMiniRuntime
|
14
15
|
|
15
|
-
typealias CxxImeListener = () -> Unit
|
16
|
+
typealias CxxImeListener = (miniRuntime: UnistylesNativeMiniRuntime) -> Unit
|
16
17
|
|
17
|
-
class NativePlatformInsets(
|
18
|
+
class NativePlatformInsets(
|
19
|
+
private val reactContext: ReactApplicationContext,
|
20
|
+
private val getMiniRuntime: () -> UnistylesNativeMiniRuntime,
|
21
|
+
private val diffMiniRuntime: () -> Array<UnistyleDependency>
|
22
|
+
) {
|
18
23
|
private val _imeListeners: MutableList<CxxImeListener> = mutableListOf()
|
19
24
|
private var _insets: Insets = Insets(0.0, 0.0, 0.0, 0.0, 0.0)
|
20
25
|
|
@@ -58,30 +63,30 @@ class NativePlatformInsets(private val reactContext: ReactApplicationContext, pr
|
|
58
63
|
|
59
64
|
// Android 10 and below - set bottom insets to 0 while keyboard is visible and use default bottom insets otherwise
|
60
65
|
// Android 11 and above - animate bottom insets while keyboard is appearing and disappearing
|
61
|
-
val imeInsets =
|
62
|
-
animatedBottomInsets
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
// call new IME event here, as for SDK >= 30 it's called in AnimationCallback
|
67
|
-
this@NativePlatformInsets.emitImeEvent()
|
68
|
-
|
69
|
-
if (nextBottomInset < 0) {
|
70
|
-
0
|
71
|
-
} else {
|
72
|
-
nextBottomInset
|
66
|
+
val imeInsets = when {
|
67
|
+
animatedBottomInsets != null && Build.VERSION.SDK_INT >= 30 -> animatedBottomInsets
|
68
|
+
Build.VERSION.SDK_INT < 30 -> {
|
69
|
+
val nextBottomInset = insetsCompat.getInsets(WindowInsetsCompat.Type.ime()).bottom - insets.bottom
|
70
|
+
maxOf(nextBottomInset, 0).toDouble()
|
73
71
|
}
|
72
|
+
else -> 0.0
|
74
73
|
}
|
75
74
|
|
75
|
+
val shouldEmitImeEvent = Build.VERSION.SDK_INT < 30 && imeInsets != this._insets.ime || animatedBottomInsets != null && Build.VERSION.SDK_INT >= 30
|
76
|
+
|
76
77
|
this._insets = Insets(
|
77
78
|
statusBarTopInset.toDouble(),
|
78
79
|
insets.bottom.toDouble(),
|
79
80
|
insets.left.toDouble(),
|
80
81
|
insets.right.toDouble(),
|
81
|
-
imeInsets
|
82
|
+
imeInsets
|
82
83
|
)
|
83
84
|
|
84
85
|
diffMiniRuntime()
|
86
|
+
|
87
|
+
if (shouldEmitImeEvent) {
|
88
|
+
this@NativePlatformInsets.emitImeEvent(this.getMiniRuntime())
|
89
|
+
}
|
85
90
|
}
|
86
91
|
|
87
92
|
fun startInsetsListener() {
|
@@ -111,7 +116,6 @@ class NativePlatformInsets(private val reactContext: ReactApplicationContext, pr
|
|
111
116
|
}
|
112
117
|
|
113
118
|
this@NativePlatformInsets.setInsets(insets, activity.window, nextBottomInset)
|
114
|
-
this@NativePlatformInsets.emitImeEvent()
|
115
119
|
}
|
116
120
|
|
117
121
|
return insets
|
@@ -123,9 +127,9 @@ class NativePlatformInsets(private val reactContext: ReactApplicationContext, pr
|
|
123
127
|
}
|
124
128
|
}
|
125
129
|
|
126
|
-
fun emitImeEvent() {
|
130
|
+
fun emitImeEvent(miniRuntime: UnistylesNativeMiniRuntime) {
|
127
131
|
_imeListeners.forEach { listener ->
|
128
|
-
listener()
|
132
|
+
listener(miniRuntime)
|
129
133
|
}
|
130
134
|
}
|
131
135
|
|
@@ -8,10 +8,15 @@ import android.os.Handler
|
|
8
8
|
import android.os.Looper
|
9
9
|
import com.facebook.react.bridge.ReactApplicationContext
|
10
10
|
import com.margelo.nitro.unistyles.UnistyleDependency
|
11
|
+
import com.margelo.nitro.unistyles.UnistylesNativeMiniRuntime
|
11
12
|
|
12
|
-
typealias CxxDependencyListener = (dependencies: Array<UnistyleDependency
|
13
|
+
typealias CxxDependencyListener = (dependencies: Array<UnistyleDependency>, miniRuntime: UnistylesNativeMiniRuntime) -> Unit
|
13
14
|
|
14
|
-
class NativePlatformListener(
|
15
|
+
class NativePlatformListener(
|
16
|
+
private val reactContext: ReactApplicationContext,
|
17
|
+
private val getMiniRuntime: () -> UnistylesNativeMiniRuntime,
|
18
|
+
private val diffMiniRuntime: () -> Array<UnistyleDependency>
|
19
|
+
) {
|
15
20
|
private val _dependencyListeners: MutableList<CxxDependencyListener> = mutableListOf()
|
16
21
|
|
17
22
|
private val configurationChangeReceiver = object : BroadcastReceiver() {
|
@@ -38,9 +43,9 @@ class NativePlatformListener(private val reactContext: ReactApplicationContext,
|
|
38
43
|
this._dependencyListeners.clear()
|
39
44
|
}
|
40
45
|
|
41
|
-
private fun emitCxxEvent(dependencies: Array<UnistyleDependency
|
46
|
+
private fun emitCxxEvent(dependencies: Array<UnistyleDependency>, miniRuntime: UnistylesNativeMiniRuntime) {
|
42
47
|
this._dependencyListeners.forEach { listener ->
|
43
|
-
listener(dependencies)
|
48
|
+
listener(dependencies, miniRuntime)
|
44
49
|
}
|
45
50
|
}
|
46
51
|
|
@@ -48,7 +53,7 @@ class NativePlatformListener(private val reactContext: ReactApplicationContext,
|
|
48
53
|
val changedDependencies = diffMiniRuntime()
|
49
54
|
|
50
55
|
if (changedDependencies.isNotEmpty()) {
|
51
|
-
emitCxxEvent(changedDependencies)
|
56
|
+
emitCxxEvent(changedDependencies, getMiniRuntime())
|
52
57
|
}
|
53
58
|
}
|
54
59
|
}
|
@@ -85,18 +85,35 @@ inline static jsi::Object generateUnistylesPrototype(
|
|
85
85
|
}
|
86
86
|
|
87
87
|
inline static std::vector<Unistyle::Shared> unistyleFromValue(jsi::Runtime& rt, const jsi::Value& value) {
|
88
|
-
if (value.isNull()) {
|
88
|
+
if (value.isNull() || !value.isObject()) {
|
89
89
|
return {};
|
90
90
|
}
|
91
|
-
|
92
|
-
auto
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
91
|
+
|
92
|
+
auto maybeArray = value.asObject(rt);
|
93
|
+
|
94
|
+
helpers::assertThat(rt, maybeArray.isArray(rt), "Unistyles: can't retrieve Unistyle state from node as it's not an array.");
|
95
|
+
|
96
|
+
std::vector<Unistyle::Shared> unistyles;
|
97
|
+
jsi::Array unistylesArray = maybeArray.asArray(rt);
|
98
|
+
|
99
|
+
helpers::iterateJSIArray(rt, unistylesArray, [&rt, &unistyles](size_t index, jsi::Value& value){
|
100
|
+
auto obj = value.getObject(rt);
|
101
|
+
|
102
|
+
// possible if user used React Native styles or inline styles or did spread styles
|
103
|
+
if (!obj.hasNativeState(rt)) {
|
104
|
+
auto exoticUnistyles = unistylesFromNonExistentNativeState(rt, obj);
|
105
|
+
|
106
|
+
for (auto& exoticUnistyle: exoticUnistyles) {
|
107
|
+
unistyles.emplace_back(exoticUnistyle);
|
108
|
+
}
|
109
|
+
|
110
|
+
return;
|
111
|
+
}
|
112
|
+
|
113
|
+
unistyles.emplace_back(value.getObject(rt).getNativeState<UnistyleWrapper>(rt)->unistyle);
|
114
|
+
});
|
115
|
+
|
116
|
+
return unistyles;
|
100
117
|
}
|
101
118
|
|
102
119
|
inline static jsi::Value valueFromUnistyle(jsi::Runtime& rt, std::shared_ptr<HybridUnistylesRuntime> unistylesRuntime, Unistyle::Shared unistyle, int tag) {
|
@@ -73,13 +73,15 @@ void core::UnistylesRegistry::linkShadowNodeWithUnistyle(
|
|
73
73
|
const ShadowNodeFamily* shadowNodeFamily,
|
74
74
|
std::vector<core::Unistyle::Shared>& unistyles,
|
75
75
|
Variants& variants,
|
76
|
-
std::vector<folly::dynamic
|
76
|
+
std::vector<std::vector<folly::dynamic>>& arguments
|
77
77
|
) {
|
78
78
|
auto parser = parser::Parser(nullptr);
|
79
79
|
shadow::ShadowLeafUpdates updates;
|
80
|
+
|
81
|
+
for (size_t index = 0; index < unistyles.size(); index++) {
|
82
|
+
Unistyle::Shared unistyle = unistyles[index];
|
80
83
|
|
81
|
-
|
82
|
-
this->_shadowRegistry[&rt][shadowNodeFamily].emplace_back(std::make_shared<UnistyleData>(unistyle, variants, arguments));
|
84
|
+
this->_shadowRegistry[&rt][shadowNodeFamily].emplace_back(std::make_shared<UnistyleData>(unistyle, variants, arguments[index]));
|
83
85
|
|
84
86
|
// add or update node for shadow leaf updates
|
85
87
|
// dynamic functions are parsed later
|
@@ -92,7 +94,7 @@ void core::UnistylesRegistry::linkShadowNodeWithUnistyle(
|
|
92
94
|
}
|
93
95
|
}
|
94
96
|
}
|
95
|
-
}
|
97
|
+
}
|
96
98
|
|
97
99
|
this->trafficController.setUpdates(updates);
|
98
100
|
this->trafficController.resumeUnistylesTraffic();
|
@@ -153,6 +155,8 @@ void core::UnistylesRegistry::shadowLeafUpdateFromUnistyle(jsi::Runtime& rt, Uni
|
|
153
155
|
for (const auto& [family, unistyles] : this->_shadowRegistry[&rt]) {
|
154
156
|
for (const auto& unistyleData : unistyles) {
|
155
157
|
if (unistyleData->unistyle == unistyle) {
|
158
|
+
// update state eg. for pressable
|
159
|
+
unistyleData->parsedStyle = jsi::Value(rt, unistyle->parsedStyle.value()).asObject(rt);
|
156
160
|
updates[family] = parser.parseStylesToShadowTreeStyles(rt, { unistyleData });
|
157
161
|
}
|
158
162
|
}
|
@@ -161,9 +165,15 @@ void core::UnistylesRegistry::shadowLeafUpdateFromUnistyle(jsi::Runtime& rt, Uni
|
|
161
165
|
this->trafficController.setUpdates(updates);
|
162
166
|
}
|
163
167
|
|
164
|
-
std::vector<std::shared_ptr<core::StyleSheet>> core::UnistylesRegistry::getStyleSheetsToRefresh(jsi::Runtime& rt,
|
168
|
+
std::vector<std::shared_ptr<core::StyleSheet>> core::UnistylesRegistry::getStyleSheetsToRefresh(jsi::Runtime& rt, std::vector<UnistyleDependency>& unistylesDependencies) {
|
165
169
|
std::vector<std::shared_ptr<core::StyleSheet>> stylesheetsToRefresh{};
|
166
|
-
|
170
|
+
auto themeDidChangeIt = std::find(unistylesDependencies.begin(),
|
171
|
+
unistylesDependencies.end(),
|
172
|
+
UnistyleDependency::THEME);
|
173
|
+
auto themeDidChange = themeDidChangeIt != unistylesDependencies.end();
|
174
|
+
auto runtimeDidChange = (themeDidChange && unistylesDependencies.size() > 1) || unistylesDependencies.size() > 0;
|
175
|
+
|
176
|
+
// if nothing changed, skip further lookup
|
167
177
|
if (!themeDidChange && !runtimeDidChange) {
|
168
178
|
return stylesheetsToRefresh;
|
169
179
|
}
|
@@ -173,10 +183,24 @@ std::vector<std::shared_ptr<core::StyleSheet>> core::UnistylesRegistry::getStyle
|
|
173
183
|
std::for_each(styleSheets.begin(), styleSheets.end(), [&](std::pair<int, std::shared_ptr<core::StyleSheet>> pair){
|
174
184
|
auto& [_, styleSheet] = pair;
|
175
185
|
|
176
|
-
if (styleSheet->type == StyleSheetType::ThemableWithMiniRuntime
|
177
|
-
|
178
|
-
|
179
|
-
|
186
|
+
if (styleSheet->type == StyleSheetType::ThemableWithMiniRuntime) {
|
187
|
+
for (const auto& unistylePair: styleSheet->unistyles) {
|
188
|
+
auto& [_, unistyle] = unistylePair;
|
189
|
+
|
190
|
+
bool hasAnyOfDependencies = std::any_of(
|
191
|
+
unistyle->dependencies.begin(),
|
192
|
+
unistyle->dependencies.end(),
|
193
|
+
[&unistylesDependencies](UnistyleDependency dep) {
|
194
|
+
return std::find(unistylesDependencies.begin(), unistylesDependencies.end(), dep) != unistylesDependencies.end();
|
195
|
+
}
|
196
|
+
);
|
197
|
+
|
198
|
+
if (hasAnyOfDependencies) {
|
199
|
+
stylesheetsToRefresh.emplace_back(styleSheet);
|
200
|
+
|
201
|
+
return;
|
202
|
+
}
|
203
|
+
}
|
180
204
|
}
|
181
205
|
|
182
206
|
if (styleSheet->type == StyleSheetType::Themable && themeDidChange) {
|
@@ -36,8 +36,8 @@ struct UnistylesRegistry: public StyleSheetRegistry {
|
|
36
36
|
|
37
37
|
UnistylesState& getState(jsi::Runtime& rt);
|
38
38
|
void createState(jsi::Runtime& rt);
|
39
|
-
std::vector<std::shared_ptr<core::StyleSheet>> getStyleSheetsToRefresh(jsi::Runtime& rt,
|
40
|
-
void linkShadowNodeWithUnistyle(jsi::Runtime& rt, const ShadowNodeFamily*, std::vector<core::Unistyle::Shared>& unistyles, Variants& variants, std::vector<folly::dynamic
|
39
|
+
std::vector<std::shared_ptr<core::StyleSheet>> getStyleSheetsToRefresh(jsi::Runtime& rt, std::vector<UnistyleDependency>& unistylesDependencies);
|
40
|
+
void linkShadowNodeWithUnistyle(jsi::Runtime& rt, const ShadowNodeFamily*, std::vector<core::Unistyle::Shared>& unistyles, Variants& variants, std::vector<std::vector<folly::dynamic>>&);
|
41
41
|
void unlinkShadowNodeWithUnistyles(jsi::Runtime& rt, const ShadowNodeFamily*);
|
42
42
|
std::shared_ptr<core::StyleSheet> addStyleSheet(jsi::Runtime& rt, int tag, core::StyleSheetType type, jsi::Object&& rawValue);
|
43
43
|
DependencyMap buildDependencyMap(jsi::Runtime& rt, std::vector<UnistyleDependency>& deps);
|
@@ -1,9 +1,5 @@
|
|
1
1
|
#include "HybridNavigationBar.h"
|
2
2
|
|
3
|
-
void HybridNavigationBar::setBackgroundColor(double color) {
|
4
|
-
this->_nativePlatform.setNavigationBarBackgroundColor(color);
|
5
|
-
};
|
6
|
-
|
7
3
|
void HybridNavigationBar::setHidden(bool isHidden) {
|
8
4
|
this->_nativePlatform.setNavigationBarHidden(isHidden);
|
9
5
|
};
|
@@ -9,7 +9,6 @@ using namespace margelo::nitro::unistyles;
|
|
9
9
|
struct HybridNavigationBar: public HybridUnistylesNavigationBarSpec {
|
10
10
|
HybridNavigationBar(Unistyles::HybridNativePlatformSpecCxx nativePlatform): HybridObject(TAG), _nativePlatform{nativePlatform} {}
|
11
11
|
|
12
|
-
void setBackgroundColor(double color) override;
|
13
12
|
void setHidden(bool isHidden) override;
|
14
13
|
double getWidth() override;
|
15
14
|
double getHeight() override;
|
@@ -9,10 +9,14 @@ jsi::Value HybridShadowRegistry::link(jsi::Runtime &rt, const jsi::Value &thisVa
|
|
9
9
|
ShadowNode::Shared shadowNodeWrapper = shadowNodeFromValue(rt, args[0]);
|
10
10
|
std::vector<core::Unistyle::Shared> unistyleWrappers = core::unistyleFromValue(rt, args[1]);
|
11
11
|
core::Variants variants = helpers::variantsToPairs(rt, args[2].asObject(rt));
|
12
|
-
|
13
|
-
|
12
|
+
jsi::Array rawArguments = args[3].asObject(rt).asArray(rt);
|
13
|
+
std::vector<std::vector<folly::dynamic>> arguments;
|
14
14
|
auto& registry = core::UnistylesRegistry::get();
|
15
|
-
|
15
|
+
|
16
|
+
helpers::iterateJSIArray(rt, rawArguments, [&rt, &arguments](size_t index, jsi::Value& value){
|
17
|
+
arguments.push_back(helpers::parseDynamicFunctionArguments(rt, value.asObject(rt).asArray(rt)));
|
18
|
+
});
|
19
|
+
|
16
20
|
registry.linkShadowNodeWithUnistyle(rt, &shadowNodeWrapper->getFamily(), unistyleWrappers, variants, arguments);
|
17
21
|
|
18
22
|
return jsi::Value::undefined();
|
@@ -9,7 +9,6 @@ using namespace margelo::nitro::unistyles;
|
|
9
9
|
struct HybridStatusBar: public HybridUnistylesStatusBarSpec {
|
10
10
|
HybridStatusBar(Unistyles::HybridNativePlatformSpecCxx nativePlatform): HybridObject(TAG), _nativePlatform{nativePlatform} {}
|
11
11
|
|
12
|
-
void setBackgroundColor(double color) override;
|
13
12
|
double getWidth() override;
|
14
13
|
double getHeight() override;
|
15
14
|
void setHidden(bool isHidden) override;
|
@@ -237,76 +237,107 @@ void HybridStyleSheet::registerHooks(jsi::Runtime& rt) {
|
|
237
237
|
this->_unistylesMountHook = std::make_shared<core::UnistylesMountHook>(this->_uiManager, this->_unistylesRuntime);
|
238
238
|
}
|
239
239
|
|
240
|
-
void HybridStyleSheet::onPlatformDependenciesChange(std::vector<UnistyleDependency>
|
241
|
-
|
240
|
+
void HybridStyleSheet::onPlatformDependenciesChange(std::vector<UnistyleDependency> dependencies) {
|
241
|
+
// this event listener is triggered from C++ module, and it's only about theme / adaptive theme changes
|
242
|
+
if (dependencies.size() == 0) {
|
243
|
+
return;
|
244
|
+
}
|
245
|
+
|
246
|
+
auto& registry = core::UnistylesRegistry::get();
|
247
|
+
auto& rt = this->_unistylesRuntime->getRuntime();
|
248
|
+
auto parser = parser::Parser(this->_unistylesRuntime);
|
249
|
+
auto dependencyMap = registry.buildDependencyMap(rt, dependencies);
|
250
|
+
|
251
|
+
if (dependencyMap.empty()) {
|
252
|
+
this->notifyJSListeners(dependencies);
|
253
|
+
|
242
254
|
return;
|
243
255
|
}
|
244
256
|
|
245
|
-
|
257
|
+
// in a later step, we will rebuild only Unistyles with mounted StyleSheets
|
258
|
+
// however, user may have StyleSheets with components that haven't mounted yet
|
259
|
+
// we need to rebuild all dependent StyleSheets as well
|
260
|
+
auto dependentStyleSheets = registry.getStyleSheetsToRefresh(rt, dependencies);
|
261
|
+
|
262
|
+
parser.rebuildUnistylesInDependencyMap(rt, dependencyMap, dependentStyleSheets, std::nullopt);
|
263
|
+
parser.rebuildShadowLeafUpdates(rt, dependencyMap);
|
264
|
+
|
265
|
+
this->notifyJSListeners(dependencies);
|
266
|
+
shadow::ShadowTreeManager::updateShadowTree(UIManagerBinding::getBinding(rt)->getUIManager().getShadowTreeRegistry());
|
267
|
+
}
|
268
|
+
|
269
|
+
void HybridStyleSheet::onPlatformNativeDependenciesChange(std::vector<UnistyleDependency> dependencies, UnistylesNativeMiniRuntime miniRuntime) {
|
270
|
+
// this event listener is triggered from Native platform
|
271
|
+
if (dependencies.size() == 0 || this->_unistylesRuntime == nullptr) {
|
272
|
+
return;
|
273
|
+
}
|
274
|
+
|
275
|
+
this->_unistylesRuntime->runOnJSThread([this, dependencies, miniRuntime](jsi::Runtime& rt){
|
246
276
|
auto& registry = core::UnistylesRegistry::get();
|
247
277
|
auto parser = parser::Parser(this->_unistylesRuntime);
|
248
|
-
auto
|
278
|
+
auto unistyleDependencies = std::move(dependencies);
|
249
279
|
|
250
280
|
// re-compute new breakpoint
|
251
|
-
auto dimensionsIt = std::find(
|
281
|
+
auto dimensionsIt = std::find(dependencies.begin(), dependencies.end(), UnistyleDependency::DIMENSIONS);
|
252
282
|
|
253
|
-
if (dimensionsIt !=
|
283
|
+
if (dimensionsIt != dependencies.end()) {
|
254
284
|
registry.getState(rt).computeCurrentBreakpoint(this->_unistylesRuntime->getScreen().width);
|
255
285
|
}
|
256
286
|
|
257
287
|
// check if color scheme changed and then if Unistyles state depend on it (adaptive themes)
|
258
|
-
auto colorSchemeIt = std::find(
|
259
|
-
auto hasNewColorScheme = colorSchemeIt !=
|
260
|
-
|
261
|
-
// in a later step, we will rebuild only Unistyles with mounted StyleSheets
|
262
|
-
// however, user may have StyleSheets with components that haven't mounted yet
|
263
|
-
// we need to rebuild all dependent StyleSheets as well
|
264
|
-
auto dependentStyleSheets = registry.getStyleSheetsToRefresh(rt, hasNewColorScheme, unistylesDependencies.size() > 1);
|
288
|
+
auto colorSchemeIt = std::find(dependencies.begin(), dependencies.end(), UnistyleDependency::COLORSCHEME);
|
289
|
+
auto hasNewColorScheme = colorSchemeIt != dependencies.end();
|
265
290
|
|
266
291
|
if (hasNewColorScheme) {
|
267
|
-
this->_unistylesRuntime->includeDependenciesForColorSchemeChange(
|
292
|
+
this->_unistylesRuntime->includeDependenciesForColorSchemeChange(unistyleDependencies);
|
268
293
|
}
|
269
294
|
|
270
|
-
auto dependencyMap = registry.buildDependencyMap(rt,
|
295
|
+
auto dependencyMap = registry.buildDependencyMap(rt, unistyleDependencies);
|
271
296
|
|
272
297
|
if (dependencyMap.empty()) {
|
273
|
-
this->notifyJSListeners(
|
298
|
+
this->notifyJSListeners(unistyleDependencies);
|
274
299
|
|
275
300
|
return;
|
276
301
|
}
|
277
302
|
|
278
|
-
|
303
|
+
// in a later step, we will rebuild only Unistyles with mounted StyleSheets
|
304
|
+
// however, user may have StyleSheets with components that haven't mounted yet
|
305
|
+
// we need to rebuild all dependent StyleSheets as well
|
306
|
+
auto dependentStyleSheets = registry.getStyleSheetsToRefresh(rt, unistyleDependencies);
|
307
|
+
|
308
|
+
parser.rebuildUnistylesInDependencyMap(rt, dependencyMap, dependentStyleSheets, miniRuntime);
|
279
309
|
parser.rebuildShadowLeafUpdates(rt, dependencyMap);
|
280
310
|
|
281
|
-
this->notifyJSListeners(
|
311
|
+
this->notifyJSListeners(unistyleDependencies);
|
282
312
|
shadow::ShadowTreeManager::updateShadowTree(UIManagerBinding::getBinding(rt)->getUIManager().getShadowTreeRegistry());
|
283
313
|
});
|
284
314
|
}
|
285
315
|
|
286
|
-
void HybridStyleSheet::onImeChange() {
|
316
|
+
void HybridStyleSheet::onImeChange(UnistylesNativeMiniRuntime miniRuntime) {
|
287
317
|
if (this->_unistylesRuntime == nullptr) {
|
288
318
|
return;
|
289
319
|
}
|
290
320
|
|
291
|
-
this->_unistylesRuntime->runOnJSThread([this](jsi::Runtime& rt){
|
321
|
+
this->_unistylesRuntime->runOnJSThread([this, miniRuntime](jsi::Runtime& rt){
|
322
|
+
std::vector<UnistyleDependency> dependencies{UnistyleDependency::IME};
|
292
323
|
auto& registry = core::UnistylesRegistry::get();
|
293
324
|
auto parser = parser::Parser(this->_unistylesRuntime);
|
294
|
-
|
295
|
-
std::vector<UnistyleDependency> dependencies{UnistyleDependency::IME};
|
296
|
-
|
297
|
-
this->notifyJSListeners(dependencies);
|
298
|
-
|
299
325
|
auto dependencyMap = registry.buildDependencyMap(rt, dependencies);
|
300
326
|
|
301
327
|
if (dependencyMap.empty()) {
|
328
|
+
this->notifyJSListeners(dependencies);
|
329
|
+
|
302
330
|
return;
|
303
331
|
}
|
304
|
-
|
305
|
-
std::vector<std::shared_ptr<core::StyleSheet>> styleSheet;
|
306
332
|
|
307
|
-
|
333
|
+
// we don't care about other unmounted stylesheets as their not visible
|
334
|
+
// so user won't see any changes
|
335
|
+
std::vector<std::shared_ptr<core::StyleSheet>> dependentStyleSheets;
|
336
|
+
|
337
|
+
parser.rebuildUnistylesInDependencyMap(rt, dependencyMap, dependentStyleSheets, miniRuntime);
|
308
338
|
parser.rebuildShadowLeafUpdates(rt, dependencyMap);
|
309
339
|
|
340
|
+
this->notifyJSListeners(dependencies);
|
310
341
|
shadow::ShadowTreeManager::updateShadowTree(UIManagerBinding::getBinding(rt)->getUIManager().getShadowTreeRegistry());
|
311
342
|
});
|
312
343
|
}
|
@@ -21,13 +21,16 @@ struct HybridStyleSheet: public HybridUnistylesStyleSheetSpec {
|
|
21
21
|
this->_unistylesRuntime->registerPlatformListener(
|
22
22
|
std::bind(&HybridStyleSheet::onPlatformDependenciesChange, this, std::placeholders::_1)
|
23
23
|
);
|
24
|
+
this->_unistylesRuntime->registerNativePlatformListener(
|
25
|
+
std::bind(&HybridStyleSheet::onPlatformNativeDependenciesChange, this, std::placeholders::_1, std::placeholders::_2)
|
26
|
+
);
|
24
27
|
this->_unistylesRuntime->registerImeListener(
|
25
|
-
std::bind(&HybridStyleSheet::onImeChange, this)
|
28
|
+
std::bind(&HybridStyleSheet::onImeChange, this, std::placeholders::_1)
|
26
29
|
);
|
27
30
|
}
|
28
31
|
|
29
32
|
~HybridStyleSheet() {
|
30
|
-
this->_unistylesRuntime->
|
33
|
+
this->_unistylesRuntime->unregisterNativePlatformListeners();
|
31
34
|
}
|
32
35
|
|
33
36
|
jsi::Value create(jsi::Runtime& rt,
|
@@ -66,7 +69,8 @@ private:
|
|
66
69
|
void loadExternalMethods(const jsi::Value& thisValue, jsi::Runtime& rt);
|
67
70
|
void registerHooks(jsi::Runtime& rt);
|
68
71
|
void onPlatformDependenciesChange(std::vector<UnistyleDependency> dependencies);
|
69
|
-
void
|
72
|
+
void onPlatformNativeDependenciesChange(std::vector<UnistyleDependency> dependencies, UnistylesNativeMiniRuntime miniRuntime);
|
73
|
+
void onImeChange(UnistylesNativeMiniRuntime miniRuntime);
|
70
74
|
void notifyJSListeners(std::vector<UnistyleDependency>& dependencies);
|
71
75
|
|
72
76
|
double __unid = -1;
|