react-native-edge-to-edge 1.4.1 → 1.4.3-beta.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.
Files changed (34) hide show
  1. package/android/src/main/java/com/zoontek/rnedgetoedge/EdgeToEdgeModuleImpl.kt +86 -42
  2. package/android/src/main/res/values/attrs.xml +1 -1
  3. package/android/src/main/res/values/styles.xml +8 -8
  4. package/android/src/newarch/com/zoontek/rnedgetoedge/EdgeToEdgeModule.kt +14 -3
  5. package/android/src/oldarch/com/zoontek/rnedgetoedge/EdgeToEdgeModule.kt +17 -3
  6. package/dist/commonjs/SystemBars.js +44 -44
  7. package/dist/commonjs/SystemBars.js.map +1 -1
  8. package/dist/commonjs/expo.js +18 -18
  9. package/dist/commonjs/expo.js.map +1 -1
  10. package/dist/commonjs/specs/NativeEdgeToEdgeModule.js +1 -1
  11. package/dist/commonjs/specs/NativeEdgeToEdgeModule.js.map +1 -1
  12. package/dist/commonjs/specs/NativeEdgeToEdgeModule.web.js +1 -4
  13. package/dist/commonjs/specs/NativeEdgeToEdgeModule.web.js.map +1 -1
  14. package/dist/module/SystemBars.js +45 -45
  15. package/dist/module/SystemBars.js.map +1 -1
  16. package/dist/module/expo.js +18 -18
  17. package/dist/module/expo.js.map +1 -1
  18. package/dist/module/specs/NativeEdgeToEdgeModule.js +2 -2
  19. package/dist/module/specs/NativeEdgeToEdgeModule.js.map +1 -1
  20. package/dist/module/specs/NativeEdgeToEdgeModule.web.js +1 -4
  21. package/dist/module/specs/NativeEdgeToEdgeModule.web.js.map +1 -1
  22. package/dist/typescript/SystemBars.d.ts.map +1 -1
  23. package/dist/typescript/specs/NativeEdgeToEdgeModule.d.ts +6 -8
  24. package/dist/typescript/specs/NativeEdgeToEdgeModule.d.ts.map +1 -1
  25. package/dist/typescript/specs/NativeEdgeToEdgeModule.web.d.ts +1 -4
  26. package/dist/typescript/specs/NativeEdgeToEdgeModule.web.d.ts.map +1 -1
  27. package/dist/typescript/types.d.ts +2 -2
  28. package/dist/typescript/types.d.ts.map +1 -1
  29. package/package.json +2 -2
  30. package/src/SystemBars.ts +77 -74
  31. package/src/expo.ts +15 -15
  32. package/src/specs/NativeEdgeToEdgeModule.ts +11 -10
  33. package/src/specs/NativeEdgeToEdgeModule.web.ts +1 -6
  34. package/src/types.ts +2 -2
@@ -15,7 +15,6 @@ import androidx.core.view.WindowInsetsControllerCompat
15
15
 
16
16
  import com.facebook.common.logging.FLog
17
17
  import com.facebook.react.bridge.ReactApplicationContext
18
- import com.facebook.react.bridge.ReadableMap
19
18
  import com.facebook.react.common.ReactConstants
20
19
 
21
20
  internal val LightNavigationBarColor = Color.argb(0xe6, 0xFF, 0xFF, 0xFF)
@@ -24,16 +23,20 @@ internal val DarkNavigationBarColor = Color.argb(0x80, 0x1b, 0x1b, 0x1b)
24
23
  object EdgeToEdgeModuleImpl {
25
24
  const val NAME = "RNEdgeToEdge"
26
25
 
26
+ private const val NO_ACTIVITY_ERROR = "$NAME: Ignored system bars change, current activity is null."
27
27
  private val boolAttributes = mutableMapOf<Int, Boolean>()
28
28
 
29
+ private var statusBarHidden = false
30
+ private var navigationBarHidden = false
31
+
29
32
  private fun resolveBoolAttribute(activity: Activity, resId: Int): Boolean =
30
33
  boolAttributes.getOrPut(resId) {
31
34
  val value = TypedValue()
32
35
  activity.theme.resolveAttribute(resId, value, true) && value.data != 0
33
36
  }
34
37
 
35
- private fun isNavigationBarLight(activity: Activity): Boolean =
36
- resolveBoolAttribute(activity, R.attr.enforceNavigationBarLightTheme) ||
38
+ private fun isDefaultLightSystemBars(activity: Activity): Boolean =
39
+ resolveBoolAttribute(activity, R.attr.enforceSystemBarsLightTheme) ||
37
40
  activity.window.decorView.resources.configuration.uiMode and
38
41
  Configuration.UI_MODE_NIGHT_MASK != Configuration.UI_MODE_NIGHT_YES
39
42
 
@@ -41,13 +44,13 @@ object EdgeToEdgeModuleImpl {
41
44
  !resolveBoolAttribute(activity, R.attr.enforceNavigationBarContrast)
42
45
 
43
46
  @Suppress("DEPRECATION")
44
- fun applyEdgeToEdge(reactContext: ReactApplicationContext) {
45
- val activity = reactContext.currentActivity
47
+ fun applyEdgeToEdge(reactContext: ReactApplicationContext?) {
48
+ val activity = reactContext?.currentActivity
46
49
  ?: return FLog.w(ReactConstants.TAG, "$NAME: Ignored, current activity is null.")
47
50
 
48
51
  activity.runOnUiThread {
49
52
  val window = activity.window
50
- val view = window.decorView
53
+ val insetsController = WindowInsetsControllerCompat(window, window.decorView)
51
54
 
52
55
  WindowCompat.setDecorFitsSystemWindows(window, false)
53
56
 
@@ -61,17 +64,17 @@ object EdgeToEdgeModuleImpl {
61
64
  window.isNavigationBarContrastEnforced = false
62
65
  }
63
66
  } else {
64
- val isLight = isNavigationBarLight(activity)
67
+ val light = isDefaultLightSystemBars(activity)
65
68
 
66
69
  window.navigationBarColor = when {
67
70
  VERSION.SDK_INT >= VERSION_CODES.Q -> Color.TRANSPARENT
68
- VERSION.SDK_INT >= VERSION_CODES.O_MR1 && isLight -> LightNavigationBarColor
71
+ VERSION.SDK_INT >= VERSION_CODES.O_MR1 && light -> LightNavigationBarColor
69
72
  else -> DarkNavigationBarColor
70
73
  }
71
74
 
72
- WindowInsetsControllerCompat(window, view).run {
75
+ insetsController.run {
73
76
  isAppearanceLightNavigationBars = when {
74
- VERSION.SDK_INT >= VERSION_CODES.O_MR1 -> isLight
77
+ VERSION.SDK_INT >= VERSION_CODES.O_MR1 -> light
75
78
  else -> false
76
79
  }
77
80
  }
@@ -88,52 +91,93 @@ object EdgeToEdgeModuleImpl {
88
91
  else -> WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
89
92
  }
90
93
  }
94
+
95
+ // re-apply statusBarHidden / navigationBarHidden when app gains focus
96
+ // see https://github.com/zoontek/react-native-edge-to-edge/issues/66
97
+ if (statusBarHidden || navigationBarHidden) {
98
+ insetsController.systemBarsBehavior =
99
+ WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
100
+
101
+ if (statusBarHidden) {
102
+ insetsController.hide(WindowInsetsCompat.Type.statusBars())
103
+ }
104
+ if (navigationBarHidden) {
105
+ insetsController.hide(WindowInsetsCompat.Type.navigationBars())
106
+ }
107
+ }
91
108
  }
92
109
  }
93
110
 
94
- fun setSystemBarsConfig(reactContext: ReactApplicationContext, config: ReadableMap) {
95
- val activity = reactContext.currentActivity
96
- ?: return FLog.w(ReactConstants.TAG, "$NAME: Ignored, current activity is null.")
97
-
98
- val statusBarHidden =
99
- config.takeIf { it.hasKey("statusBarHidden") }?.getBoolean("statusBarHidden")
100
- val statusBarStyle =
101
- config.takeIf { it.hasKey("statusBarStyle") }?.getString("statusBarStyle")
102
- val navigationBarHidden =
103
- config.takeIf { it.hasKey("navigationBarHidden") }?.getBoolean("navigationBarHidden")
104
- val navigationBarStyle =
105
- config.takeIf { it.hasKey("navigationBarStyle") }?.getString("navigationBarStyle")
111
+ fun setStatusBarStyle(reactContext: ReactApplicationContext?, style: String) {
112
+ val activity = reactContext?.currentActivity
113
+ ?: return FLog.w(ReactConstants.TAG, NO_ACTIVITY_ERROR)
106
114
 
107
115
  activity.runOnUiThread {
108
116
  val window = activity.window
109
117
  val insetsController = WindowInsetsControllerCompat(window, window.decorView)
110
118
 
111
- statusBarStyle?.let {
112
- insetsController.isAppearanceLightStatusBars = it == "dark"
119
+ insetsController.isAppearanceLightStatusBars = when (style) {
120
+ "dark-content" -> true
121
+ "light-content" -> false
122
+ else -> isDefaultLightSystemBars(activity)
113
123
  }
124
+ }
125
+ }
114
126
 
115
- if (VERSION.SDK_INT >= VERSION_CODES.O_MR1 && isNavigationBarTransparent(activity)) {
116
- navigationBarStyle?.let {
117
- insetsController.isAppearanceLightNavigationBars = it == "dark"
127
+ fun setNavigationBarStyle(reactContext: ReactApplicationContext?, style: String) {
128
+ val activity = reactContext?.currentActivity
129
+ ?: return FLog.w(ReactConstants.TAG, NO_ACTIVITY_ERROR)
130
+
131
+ if (VERSION.SDK_INT >= VERSION_CODES.O_MR1 && isNavigationBarTransparent(activity)) {
132
+ activity.runOnUiThread {
133
+ val window = activity.window
134
+ val insetsController = WindowInsetsControllerCompat(window, window.decorView)
135
+
136
+ insetsController.isAppearanceLightNavigationBars = when (style) {
137
+ "dark-content" -> true
138
+ "light-content" -> false
139
+ else -> isDefaultLightSystemBars(activity)
118
140
  }
119
141
  }
142
+ }
143
+ }
120
144
 
121
- if (statusBarHidden != null || navigationBarHidden != null) {
122
- insetsController.systemBarsBehavior =
123
- WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
145
+ fun setStatusBarHidden(reactContext: ReactApplicationContext?, hidden: Boolean) {
146
+ val activity = reactContext?.currentActivity
147
+ ?: return FLog.w(ReactConstants.TAG, NO_ACTIVITY_ERROR)
124
148
 
125
- statusBarHidden?.let {
126
- when (it) {
127
- true -> insetsController.hide(WindowInsetsCompat.Type.statusBars())
128
- else -> insetsController.show(WindowInsetsCompat.Type.statusBars())
129
- }
130
- }
131
- navigationBarHidden?.let {
132
- when (it) {
133
- true -> insetsController.hide(WindowInsetsCompat.Type.navigationBars())
134
- else -> insetsController.show(WindowInsetsCompat.Type.navigationBars())
135
- }
136
- }
149
+ statusBarHidden = hidden
150
+
151
+ activity.runOnUiThread {
152
+ val window = activity.window
153
+ val insetsController = WindowInsetsControllerCompat(window, window.decorView)
154
+
155
+ insetsController.systemBarsBehavior =
156
+ WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
157
+
158
+ when (hidden) {
159
+ true -> insetsController.hide(WindowInsetsCompat.Type.statusBars())
160
+ else -> insetsController.show(WindowInsetsCompat.Type.statusBars())
161
+ }
162
+ }
163
+ }
164
+
165
+ fun setNavigationBarHidden(reactContext: ReactApplicationContext?, hidden: Boolean) {
166
+ val activity = reactContext?.currentActivity
167
+ ?: return FLog.w(ReactConstants.TAG, NO_ACTIVITY_ERROR)
168
+
169
+ navigationBarHidden = hidden
170
+
171
+ activity.runOnUiThread {
172
+ val window = activity.window
173
+ val insetsController = WindowInsetsControllerCompat(window, window.decorView)
174
+
175
+ insetsController.systemBarsBehavior =
176
+ WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
177
+
178
+ when (hidden) {
179
+ true -> insetsController.hide(WindowInsetsCompat.Type.navigationBars())
180
+ else -> insetsController.show(WindowInsetsCompat.Type.navigationBars())
137
181
  }
138
182
  }
139
183
  }
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <resources>
3
3
  <attr name="enforceNavigationBarContrast" format="boolean" />
4
- <attr name="enforceNavigationBarLightTheme" format="boolean" />
4
+ <attr name="enforceSystemBarsLightTheme" format="boolean" />
5
5
  </resources>
@@ -2,7 +2,7 @@
2
2
  <resources>
3
3
  <style name="Theme.EdgeToEdge.DayNight.Common" parent="Theme.AppCompat.DayNight.NoActionBar">
4
4
  <item name="enforceNavigationBarContrast">true</item>
5
- <item name="enforceNavigationBarLightTheme">false</item>
5
+ <item name="enforceSystemBarsLightTheme">false</item>
6
6
 
7
7
  <item name="android:windowDrawsSystemBarBackgrounds">true</item>
8
8
  <item name="android:fitsSystemWindows">false</item>
@@ -13,7 +13,7 @@
13
13
 
14
14
  <style name="Theme.EdgeToEdge.Material2.DayNight.Common" parent="Theme.MaterialComponents.DayNight.NoActionBar">
15
15
  <item name="enforceNavigationBarContrast">true</item>
16
- <item name="enforceNavigationBarLightTheme">false</item>
16
+ <item name="enforceSystemBarsLightTheme">false</item>
17
17
 
18
18
  <item name="android:windowDrawsSystemBarBackgrounds">true</item>
19
19
  <item name="android:fitsSystemWindows">false</item>
@@ -24,7 +24,7 @@
24
24
 
25
25
  <style name="Theme.EdgeToEdge.Material3.DayNight.Common" parent="Theme.Material3.DayNight.NoActionBar">
26
26
  <item name="enforceNavigationBarContrast">true</item>
27
- <item name="enforceNavigationBarLightTheme">false</item>
27
+ <item name="enforceSystemBarsLightTheme">false</item>
28
28
 
29
29
  <item name="android:windowDrawsSystemBarBackgrounds">true</item>
30
30
  <item name="android:fitsSystemWindows">false</item>
@@ -35,7 +35,7 @@
35
35
 
36
36
  <style name="Theme.EdgeToEdge.Material3.Dynamic.DayNight.Common" parent="Theme.Material3.DynamicColors.DayNight.NoActionBar">
37
37
  <item name="enforceNavigationBarContrast">true</item>
38
- <item name="enforceNavigationBarLightTheme">false</item>
38
+ <item name="enforceSystemBarsLightTheme">false</item>
39
39
 
40
40
  <item name="android:windowDrawsSystemBarBackgrounds">true</item>
41
41
  <item name="android:fitsSystemWindows">false</item>
@@ -46,7 +46,7 @@
46
46
 
47
47
  <style name="Theme.EdgeToEdge.Light.Common" parent="Theme.AppCompat.Light.NoActionBar">
48
48
  <item name="enforceNavigationBarContrast">true</item>
49
- <item name="enforceNavigationBarLightTheme">true</item>
49
+ <item name="enforceSystemBarsLightTheme">true</item>
50
50
 
51
51
  <item name="android:windowDrawsSystemBarBackgrounds">true</item>
52
52
  <item name="android:fitsSystemWindows">false</item>
@@ -57,7 +57,7 @@
57
57
 
58
58
  <style name="Theme.EdgeToEdge.Material2.Light.Common" parent="Theme.MaterialComponents.Light.NoActionBar">
59
59
  <item name="enforceNavigationBarContrast">true</item>
60
- <item name="enforceNavigationBarLightTheme">true</item>
60
+ <item name="enforceSystemBarsLightTheme">true</item>
61
61
 
62
62
  <item name="android:windowDrawsSystemBarBackgrounds">true</item>
63
63
  <item name="android:fitsSystemWindows">false</item>
@@ -68,7 +68,7 @@
68
68
 
69
69
  <style name="Theme.EdgeToEdge.Material3.Light.Common" parent="Theme.Material3.Light.NoActionBar">
70
70
  <item name="enforceNavigationBarContrast">true</item>
71
- <item name="enforceNavigationBarLightTheme">true</item>
71
+ <item name="enforceSystemBarsLightTheme">true</item>
72
72
 
73
73
  <item name="android:windowDrawsSystemBarBackgrounds">true</item>
74
74
  <item name="android:fitsSystemWindows">false</item>
@@ -79,7 +79,7 @@
79
79
 
80
80
  <style name="Theme.EdgeToEdge.Material3.Dynamic.Light.Common" parent="Theme.Material3.DynamicColors.Light.NoActionBar">
81
81
  <item name="enforceNavigationBarContrast">true</item>
82
- <item name="enforceNavigationBarLightTheme">true</item>
82
+ <item name="enforceSystemBarsLightTheme">true</item>
83
83
 
84
84
  <item name="android:windowDrawsSystemBarBackgrounds">true</item>
85
85
  <item name="android:fitsSystemWindows">false</item>
@@ -2,7 +2,6 @@ package com.zoontek.rnedgetoedge
2
2
 
3
3
  import com.facebook.react.bridge.LifecycleEventListener
4
4
  import com.facebook.react.bridge.ReactApplicationContext
5
- import com.facebook.react.bridge.ReadableMap
6
5
  import com.facebook.react.module.annotations.ReactModule
7
6
 
8
7
  @ReactModule(name = EdgeToEdgeModuleImpl.NAME)
@@ -33,7 +32,19 @@ class EdgeToEdgeModule(reactContext: ReactApplicationContext) :
33
32
  EdgeToEdgeModuleImpl.applyEdgeToEdge(reactApplicationContext)
34
33
  }
35
34
 
36
- override fun setSystemBarsConfig(config: ReadableMap) {
37
- EdgeToEdgeModuleImpl.setSystemBarsConfig(reactApplicationContext, config)
35
+ override fun setStatusBarStyle(style: String) {
36
+ EdgeToEdgeModuleImpl.setStatusBarStyle(reactApplicationContext, style)
37
+ }
38
+
39
+ override fun setNavigationBarStyle(style: String) {
40
+ EdgeToEdgeModuleImpl.setNavigationBarStyle(reactApplicationContext, style)
41
+ }
42
+
43
+ override fun setStatusBarHidden(hidden: Boolean) {
44
+ EdgeToEdgeModuleImpl.setStatusBarHidden(reactApplicationContext, hidden)
45
+ }
46
+
47
+ override fun setNavigationBarHidden(hidden: Boolean) {
48
+ EdgeToEdgeModuleImpl.setNavigationBarHidden(reactApplicationContext, hidden)
38
49
  }
39
50
  }
@@ -4,7 +4,6 @@ import com.facebook.react.bridge.LifecycleEventListener
4
4
  import com.facebook.react.bridge.ReactApplicationContext
5
5
  import com.facebook.react.bridge.ReactContextBaseJavaModule
6
6
  import com.facebook.react.bridge.ReactMethod
7
- import com.facebook.react.bridge.ReadableMap
8
7
  import com.facebook.react.module.annotations.ReactModule
9
8
 
10
9
  @ReactModule(name = EdgeToEdgeModuleImpl.NAME)
@@ -37,7 +36,22 @@ class EdgeToEdgeModule(reactContext: ReactApplicationContext) :
37
36
  }
38
37
 
39
38
  @ReactMethod
40
- fun setSystemBarsConfig(config: ReadableMap) {
41
- EdgeToEdgeModuleImpl.setSystemBarsConfig(reactApplicationContext, config)
39
+ fun setStatusBarStyle(style: String) {
40
+ EdgeToEdgeModuleImpl.setStatusBarStyle(reactApplicationContext, style)
41
+ }
42
+
43
+ @ReactMethod
44
+ fun setNavigationBarStyle(style: String) {
45
+ EdgeToEdgeModuleImpl.setNavigationBarStyle(reactApplicationContext, style)
46
+ }
47
+
48
+ @ReactMethod
49
+ fun setStatusBarHidden(hidden: Boolean) {
50
+ EdgeToEdgeModuleImpl.setStatusBarHidden(reactApplicationContext, hidden)
51
+ }
52
+
53
+ @ReactMethod
54
+ fun setNavigationBarHidden(hidden: Boolean) {
55
+ EdgeToEdgeModuleImpl.setNavigationBarHidden(reactApplicationContext, hidden)
42
56
  }
43
57
  }
@@ -11,12 +11,15 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
11
11
  function getColorScheme() {
12
12
  return _reactNative.Appearance?.getColorScheme() ?? "light";
13
13
  }
14
+ function toNativeBarStyle(style) {
15
+ return style === "light" || style === "dark" ? `${style}-content` : "default";
16
+ }
14
17
 
15
18
  /**
16
19
  * Merges the entries stack.
17
20
  */
18
21
  function mergeEntriesStack(entriesStack) {
19
- const mergedEntry = entriesStack.reduce((prev, cur) => {
22
+ return entriesStack.reduce((prev, cur) => {
20
23
  for (const prop in cur) {
21
24
  if (cur[prop] != null) {
22
25
  // @ts-expect-error
@@ -26,15 +29,10 @@ function mergeEntriesStack(entriesStack) {
26
29
  return prev;
27
30
  }, {
28
31
  statusBarStyle: undefined,
29
- statusBarHidden: undefined,
30
32
  navigationBarStyle: undefined,
31
- navigationBarHidden: undefined
33
+ statusBarHidden: false,
34
+ navigationBarHidden: false
32
35
  });
33
- if (mergedEntry.statusBarStyle == null && mergedEntry.statusBarHidden == null && mergedEntry.navigationBarStyle == null && mergedEntry.navigationBarHidden == null) {
34
- return null;
35
- } else {
36
- return mergedEntry;
37
- }
38
36
  }
39
37
 
40
38
  /**
@@ -43,8 +41,8 @@ function mergeEntriesStack(entriesStack) {
43
41
  function createStackEntry(props) {
44
42
  return {
45
43
  statusBarStyle: typeof props.style === "string" ? props.style : props.style?.statusBar,
46
- statusBarHidden: typeof props.hidden === "boolean" ? props.hidden : props.hidden?.statusBar,
47
44
  navigationBarStyle: typeof props.style === "string" ? props.style : props.style?.navigationBar,
45
+ statusBarHidden: typeof props.hidden === "boolean" ? props.hidden : props.hidden?.statusBar,
48
46
  navigationBarHidden: typeof props.hidden === "boolean" ? props.hidden : props.hidden?.navigationBar
49
47
  };
50
48
  }
@@ -54,7 +52,12 @@ const entriesStack = [];
54
52
  let updateImmediate = null;
55
53
 
56
54
  // The current merged values from the entries stack.
57
- let currentMergedEntries = null;
55
+ let currentMergedEntries = {
56
+ statusBarStyle: undefined,
57
+ navigationBarStyle: undefined,
58
+ statusBarHidden: false,
59
+ navigationBarHidden: false
60
+ };
58
61
 
59
62
  /**
60
63
  * Updates the native system bars with the entries from the stack.
@@ -65,42 +68,39 @@ function updateEntriesStack() {
65
68
  clearImmediate(updateImmediate);
66
69
  }
67
70
  updateImmediate = setImmediate(() => {
71
+ const autoBarStyle = getColorScheme() === "light" ? "dark" : "light";
68
72
  const mergedEntries = mergeEntriesStack(entriesStack);
69
- if (mergedEntries != null) {
70
- const {
71
- statusBarHidden,
72
- navigationBarHidden
73
- } = mergedEntries;
74
- const autoBarStyle = getColorScheme() === "light" ? "dark" : "light";
75
- const statusBarStyle = mergedEntries.statusBarStyle === "auto" ? autoBarStyle : mergedEntries.statusBarStyle;
76
- const navigationBarStyle = mergedEntries.navigationBarStyle === "auto" ? autoBarStyle : mergedEntries.navigationBarStyle;
77
- if (currentMergedEntries?.statusBarStyle !== statusBarStyle || currentMergedEntries?.statusBarHidden !== statusBarHidden || currentMergedEntries?.navigationBarStyle !== navigationBarStyle || currentMergedEntries?.navigationBarHidden !== navigationBarHidden) {
78
- if (_reactNative.Platform.OS === "android") {
79
- _NativeEdgeToEdgeModule.default?.setSystemBarsConfig({
80
- statusBarStyle,
81
- statusBarHidden,
82
- navigationBarStyle,
83
- navigationBarHidden
84
- });
85
- } else {
86
- // Emulate android behavior with react-native StatusBar
87
- if (statusBarStyle != null) {
88
- _reactNative.StatusBar.setBarStyle(`${statusBarStyle}-content`, true);
89
- }
90
- if (statusBarHidden != null) {
91
- _reactNative.StatusBar.setHidden(statusBarHidden, "fade"); // 'slide' doesn't work in this context
92
- }
93
- }
73
+ const statusBarStyle = mergedEntries.statusBarStyle === "auto" ? autoBarStyle : mergedEntries.statusBarStyle;
74
+ const navigationBarStyle = mergedEntries.navigationBarStyle === "auto" ? autoBarStyle : mergedEntries.navigationBarStyle;
75
+ const {
76
+ statusBarHidden,
77
+ navigationBarHidden
78
+ } = mergedEntries;
79
+ if (statusBarStyle !== currentMergedEntries.statusBarStyle) {
80
+ const style = toNativeBarStyle(statusBarStyle);
81
+ console.log({
82
+ style
83
+ });
84
+ _reactNative.Platform.OS === "android" ? _NativeEdgeToEdgeModule.default?.setStatusBarStyle(style) : _reactNative.StatusBar.setBarStyle(style, true);
85
+ }
86
+ if (statusBarHidden !== currentMergedEntries.statusBarHidden) {
87
+ _reactNative.Platform.OS === "android" ? _NativeEdgeToEdgeModule.default?.setStatusBarHidden(statusBarHidden) : _reactNative.StatusBar.setHidden(statusBarHidden, "fade"); // 'slide' doesn't work in this context
88
+ }
89
+ if (_reactNative.Platform.OS === "android") {
90
+ if (navigationBarStyle !== currentMergedEntries.navigationBarStyle) {
91
+ const style = toNativeBarStyle(navigationBarStyle);
92
+ _NativeEdgeToEdgeModule.default?.setNavigationBarStyle(style);
93
+ }
94
+ if (navigationBarHidden !== currentMergedEntries.navigationBarHidden) {
95
+ _NativeEdgeToEdgeModule.default?.setNavigationBarHidden(navigationBarHidden);
94
96
  }
95
- currentMergedEntries = {
96
- statusBarStyle,
97
- statusBarHidden,
98
- navigationBarStyle,
99
- navigationBarHidden
100
- };
101
- } else {
102
- currentMergedEntries = null;
103
97
  }
98
+ currentMergedEntries = {
99
+ statusBarStyle,
100
+ navigationBarStyle,
101
+ statusBarHidden,
102
+ navigationBarHidden
103
+ };
104
104
  });
105
105
  }
106
106
  }
@@ -151,8 +151,8 @@ function SystemBars({
151
151
  style
152
152
  }) {
153
153
  const statusBarStyle = typeof style === "string" ? style : style?.statusBar;
154
- const statusBarHidden = typeof hidden === "boolean" ? hidden : hidden?.statusBar;
155
154
  const navigationBarStyle = typeof style === "string" ? style : style?.navigationBar;
155
+ const statusBarHidden = typeof hidden === "boolean" ? hidden : hidden?.statusBar;
156
156
  const navigationBarHidden = typeof hidden === "boolean" ? hidden : hidden?.navigationBar;
157
157
  const stableProps = (0, _react.useMemo)(() => ({
158
158
  style: statusBarStyle === navigationBarStyle ? statusBarStyle : {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_NativeEdgeToEdgeModule","_interopRequireDefault","e","__esModule","default","getColorScheme","Appearance","mergeEntriesStack","entriesStack","mergedEntry","reduce","prev","cur","prop","statusBarStyle","undefined","statusBarHidden","navigationBarStyle","navigationBarHidden","createStackEntry","props","style","statusBar","hidden","navigationBar","updateImmediate","currentMergedEntries","updateEntriesStack","Platform","OS","clearImmediate","setImmediate","mergedEntries","autoBarStyle","NativeEdgeToEdgeModule","setSystemBarsConfig","StatusBar","setBarStyle","setHidden","pushStackEntry","entry","push","popStackEntry","index","indexOf","splice","replaceStackEntry","newEntry","SystemBars","stableProps","useMemo","colorScheme","useColorScheme","stackEntryRef","useRef","useEffect","current"],"sourceRoot":"../../src","sources":["SystemBars.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_NativeEdgeToEdgeModule","_interopRequireDefault","e","__esModule","default","getColorScheme","Appearance","toNativeBarStyle","style","mergeEntriesStack","entriesStack","reduce","prev","cur","prop","statusBarStyle","undefined","navigationBarStyle","statusBarHidden","navigationBarHidden","createStackEntry","props","statusBar","navigationBar","hidden","updateImmediate","currentMergedEntries","updateEntriesStack","Platform","OS","clearImmediate","setImmediate","autoBarStyle","mergedEntries","console","log","NativeModule","setStatusBarStyle","StatusBar","setBarStyle","setStatusBarHidden","setHidden","setNavigationBarStyle","setNavigationBarHidden","pushStackEntry","entry","push","popStackEntry","index","indexOf","splice","replaceStackEntry","newEntry","SystemBars","stableProps","useMemo","colorScheme","useColorScheme","stackEntryRef","useRef","useEffect","current"],"sourceRoot":"../../src","sources":["SystemBars.ts"],"mappings":"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","ignoreList":[]}
@@ -42,14 +42,6 @@ const withAndroidEdgeToEdgeTheme = (config, props = {}) => {
42
42
  if (style.item != null) {
43
43
  style.item = style.item.filter(item => !cleanupList.has(item.$.name));
44
44
  }
45
- if (enforceNavigationBarContrast === false) {
46
- style.item.push({
47
- $: {
48
- name: "enforceNavigationBarContrast"
49
- },
50
- _: String(false)
51
- });
52
- }
53
45
  if (statusBarStyle != null) {
54
46
  style.item.push({
55
47
  $: {
@@ -65,19 +57,27 @@ const withAndroidEdgeToEdgeTheme = (config, props = {}) => {
65
57
  _: String(userInterfaceStyle === "light")
66
58
  });
67
59
  }
68
- if (navigationBarStyle != null) {
69
- style.item.push({
70
- $: {
71
- name: "android:windowLightNavigationBar"
72
- },
73
- _: String(navigationBarStyle === "dark-content")
74
- });
75
- } else if (userInterfaceStyle !== "automatic") {
60
+ if (enforceNavigationBarContrast === false) {
61
+ if (navigationBarStyle != null) {
62
+ style.item.push({
63
+ $: {
64
+ name: "android:windowLightNavigationBar"
65
+ },
66
+ _: String(navigationBarStyle === "dark-content")
67
+ });
68
+ } else if (userInterfaceStyle !== "automatic") {
69
+ style.item.push({
70
+ $: {
71
+ name: "android:windowLightNavigationBar"
72
+ },
73
+ _: String(navigationBarStyle === "light")
74
+ });
75
+ }
76
76
  style.item.push({
77
77
  $: {
78
- name: "android:windowLightNavigationBar"
78
+ name: "enforceNavigationBarContrast"
79
79
  },
80
- _: String(navigationBarStyle === "light")
80
+ _: String(false)
81
81
  });
82
82
  }
83
83
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_configPlugins","require","withAndroidEdgeToEdgeTheme","config","props","themes","Default","Material2","Material3","Light","cleanupList","Set","withAndroidStyles","androidNavigationBar","androidStatusBar","userInterfaceStyle","barStyle","navigationBarStyle","statusBarStyle","android","enforceNavigationBarContrast","parentTheme","modResults","resources","style","map","$","name","parent","item","filter","has","push","_","String","_default","exports","default","createRunOncePlugin"],"sourceRoot":"../../src","sources":["expo.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_configPlugins","require","withAndroidEdgeToEdgeTheme","config","props","themes","Default","Material2","Material3","Light","cleanupList","Set","withAndroidStyles","androidNavigationBar","androidStatusBar","userInterfaceStyle","barStyle","navigationBarStyle","statusBarStyle","android","enforceNavigationBarContrast","parentTheme","modResults","resources","style","map","$","name","parent","item","filter","has","push","_","String","_default","exports","default","createRunOncePlugin"],"sourceRoot":"../../src","sources":["expo.ts"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _reactNative = require("react-native");
8
- const NativeModule = _reactNative.TurboModuleRegistry.get("RNEdgeToEdge");
8
+ const NativeModule = _reactNative.Platform.OS === "android" ? _reactNative.TurboModuleRegistry.getEnforcing("RNEdgeToEdge") : null;
9
9
  if (NativeModule != null) {
10
10
  _reactNative.Appearance.addChangeListener(() => {
11
11
  NativeModule.onColorSchemeChange();
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","NativeModule","TurboModuleRegistry","get","Appearance","addChangeListener","onColorSchemeChange","_default","exports","default"],"sourceRoot":"../../../src","sources":["specs/NativeEdgeToEdgeModule.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAcA,MAAMC,YAAY,GAAGC,gCAAmB,CAACC,GAAG,CAAO,cAAc,CAAC;AAElE,IAAIF,YAAY,IAAI,IAAI,EAAE;EACxBG,uBAAU,CAACC,iBAAiB,CAAC,MAAM;IACjCJ,YAAY,CAACK,mBAAmB,CAAC,CAAC;EACpC,CAAC,CAAC;AACJ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcR,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","NativeModule","Platform","OS","TurboModuleRegistry","getEnforcing","Appearance","addChangeListener","onColorSchemeChange","_default","exports","default"],"sourceRoot":"../../../src","sources":["specs/NativeEdgeToEdgeModule.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAYA,MAAMC,YAAY,GAChBC,qBAAQ,CAACC,EAAE,KAAK,SAAS,GACrBC,gCAAmB,CAACC,YAAY,CAAO,cAAc,CAAC,GACtD,IAAI;AAEV,IAAIJ,YAAY,IAAI,IAAI,EAAE;EACxBK,uBAAU,CAACC,iBAAiB,CAAC,MAAM;IACjCN,YAAY,CAACO,mBAAmB,CAAC,CAAC;EACpC,CAAC,CAAC;AACJ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcV,YAAY","ignoreList":[]}
@@ -4,8 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = exports.default = {
8
- onColorSchemeChange() {},
9
- setSystemBarsConfig() {}
10
- };
7
+ var _default = exports.default = null;
11
8
  //# sourceMappingURL=NativeEdgeToEdgeModule.web.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["onColorSchemeChange","setSystemBarsConfig"],"sourceRoot":"../../../src","sources":["specs/NativeEdgeToEdgeModule.web.ts"],"mappings":";;;;;;iCAEe;EACbA,mBAAmBA,CAAA,EAAG,CAAC,CAAC;EACxBC,mBAAmBA,CAAA,EAAG,CAAC;AACzB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/NativeEdgeToEdgeModule.web.ts"],"mappings":";;;;;;iCAAe,IAAI","ignoreList":[]}