react-native-unistyles 2.20.0 → 2.31.0
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.
@@ -23,6 +23,7 @@ import kotlin.math.roundToInt
|
|
23
23
|
class UnistylesModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext), LifecycleEventListener {
|
24
24
|
private var isCxxReady: Boolean = false
|
25
25
|
private var platform: Platform = Platform(reactContext)
|
26
|
+
private var _shouldListenToImeEvents = false
|
26
27
|
|
27
28
|
private val configurationChangeReceiver = object : BroadcastReceiver() {
|
28
29
|
override fun onReceive(context: Context, intent: Intent) {
|
@@ -66,6 +67,10 @@ class UnistylesModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
66
67
|
}
|
67
68
|
|
68
69
|
private fun onConfigChange() {
|
70
|
+
if (!this.isCxxReady) {
|
71
|
+
return
|
72
|
+
}
|
73
|
+
|
69
74
|
val colorScheme = this.platform.getColorScheme()
|
70
75
|
val contentSizeCategory = this.platform.getContentSizeCategory()
|
71
76
|
|
@@ -76,6 +81,10 @@ class UnistylesModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
76
81
|
}
|
77
82
|
|
78
83
|
private fun onLayoutConfigChange() {
|
84
|
+
if (!this.isCxxReady) {
|
85
|
+
return
|
86
|
+
}
|
87
|
+
|
79
88
|
val screen = this.platform.getScreenDimensions()
|
80
89
|
val insets = this.platform.getInsets()
|
81
90
|
val statusBar = this.platform.getStatusBarDimensions()
|
@@ -137,6 +146,7 @@ class UnistylesModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
137
146
|
|
138
147
|
override fun onHostResume() {
|
139
148
|
this.enableEdgeToEdge()
|
149
|
+
_shouldListenToImeEvents = true
|
140
150
|
|
141
151
|
if (isCxxReady) {
|
142
152
|
this.onConfigChange()
|
@@ -178,6 +188,10 @@ class UnistylesModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
178
188
|
insets: WindowInsetsCompat,
|
179
189
|
runningAnimations: List<WindowInsetsAnimationCompat>
|
180
190
|
): WindowInsetsCompat {
|
191
|
+
if (!_shouldListenToImeEvents) {
|
192
|
+
return insets
|
193
|
+
}
|
194
|
+
|
181
195
|
runningAnimations.firstOrNull()?.let { animation ->
|
182
196
|
val progress = animation.fraction
|
183
197
|
val nextBottomInset = if (isGoingUp) {
|
@@ -208,9 +222,10 @@ class UnistylesModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
208
222
|
this.reactApplicationContext.currentActivity?.let { activity ->
|
209
223
|
activity.window?.decorView?.let { view ->
|
210
224
|
ViewCompat.setOnApplyWindowInsetsListener(view, null)
|
211
|
-
ViewCompat.setWindowInsetsAnimationCallback(view, null)
|
212
225
|
}
|
213
226
|
}
|
227
|
+
|
228
|
+
_shouldListenToImeEvents = false
|
214
229
|
}
|
215
230
|
|
216
231
|
override fun onHostDestroy() {}
|
@@ -130,15 +130,40 @@
|
|
130
130
|
});
|
131
131
|
}
|
132
132
|
|
133
|
+
- (UIWindow *)getMainWindow {
|
134
|
+
for (UIScene *scene in [UIApplication sharedApplication].connectedScenes) {
|
135
|
+
if ([scene isKindOfClass:[UIWindowScene class]]) {
|
136
|
+
UIWindowScene *windowScene = (UIWindowScene *)scene;
|
137
|
+
for (UIWindow *window in windowScene.windows) {
|
138
|
+
if (window.isKeyWindow) {
|
139
|
+
return window;
|
140
|
+
}
|
141
|
+
}
|
142
|
+
}
|
143
|
+
}
|
144
|
+
|
145
|
+
return nil;
|
146
|
+
}
|
147
|
+
|
133
148
|
- (Insets)getInsets {
|
134
|
-
UIWindow *window =
|
149
|
+
UIWindow *window = [self getMainWindow];
|
150
|
+
|
151
|
+
if (window == nil) {
|
152
|
+
return {0, 0, 0, 0};
|
153
|
+
}
|
154
|
+
|
135
155
|
UIEdgeInsets safeArea = window.safeAreaInsets;
|
136
156
|
|
137
157
|
return {(int)safeArea.top, (int)safeArea.bottom, (int)safeArea.left, (int)safeArea.right};
|
138
158
|
}
|
139
159
|
|
140
160
|
- (Dimensions)getStatusBarDimensions {
|
141
|
-
UIWindow *window =
|
161
|
+
UIWindow *window = [self getMainWindow];
|
162
|
+
|
163
|
+
if (window == nil) {
|
164
|
+
return {0, 0};
|
165
|
+
}
|
166
|
+
|
142
167
|
CGRect statusBarFrame = window.windowScene.statusBarManager.statusBarFrame;
|
143
168
|
|
144
169
|
return {(int)statusBarFrame.size.width, (int)statusBarFrame.size.height};
|
@@ -183,7 +208,7 @@
|
|
183
208
|
|
184
209
|
return;
|
185
210
|
}
|
186
|
-
|
211
|
+
|
187
212
|
presentedViewController.view.backgroundColor = backgroundColor;
|
188
213
|
});
|
189
214
|
}
|
@@ -19,7 +19,7 @@ type FlattenVariants<T, ShouldFlatten> = T extends object ? {
|
|
19
19
|
[key in keyof T[K]]: T[K][key] extends object ? ParseNestedObject<T[K][key], ShouldFlatten> : never;
|
20
20
|
} : never;
|
21
21
|
} : never;
|
22
|
-
type ParseVariants<T> = T extends object ? T[keyof T] extends object ? UnionToIntersection<ParseVariants<T[keyof T]>> : T : T;
|
22
|
+
type ParseVariants<T> = T extends object ? T[keyof T] extends object ? UnionToIntersection<ParseVariants<T[keyof T]>> extends never ? ParseVariants<T[keyof T]> : UnionToIntersection<ParseVariants<T[keyof T]>> : T : T;
|
23
23
|
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
|
24
24
|
type ParseStyleKeys<T> = T extends object ? {
|
25
25
|
[K in keyof T]: ParseNestedObject<T[K], false>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../../../src/types/breakpoints.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../../../src/types/breakpoints.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/types/breakpoints.ts
CHANGED
@@ -53,7 +53,9 @@ type FlattenVariants<T, ShouldFlatten> = T extends object
|
|
53
53
|
|
54
54
|
type ParseVariants<T> = T extends object
|
55
55
|
? T[keyof T] extends object
|
56
|
-
? UnionToIntersection<ParseVariants<T[keyof T]>>
|
56
|
+
? UnionToIntersection<ParseVariants<T[keyof T]>> extends never
|
57
|
+
? ParseVariants<T[keyof T]>
|
58
|
+
: UnionToIntersection<ParseVariants<T[keyof T]>>
|
57
59
|
: T
|
58
60
|
: T
|
59
61
|
|