react-native-edge-to-edge 1.1.1 → 1.1.3

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 (26) hide show
  1. package/README.md +3 -4
  2. package/android/src/main/java/com/zoontek/rnedgetoedge/EdgeToEdgeModuleImpl.kt +2 -11
  3. package/android/src/newarch/com/zoontek/rnedgetoedge/EdgeToEdgeModule.kt +5 -14
  4. package/android/src/oldarch/com/zoontek/rnedgetoedge/EdgeToEdgeModule.kt +6 -14
  5. package/dist/commonjs/SystemBars.js +36 -34
  6. package/dist/commonjs/SystemBars.js.map +1 -1
  7. package/dist/commonjs/specs/NativeEdgeToEdgeModule.js +7 -1
  8. package/dist/commonjs/specs/NativeEdgeToEdgeModule.js.map +1 -1
  9. package/dist/commonjs/specs/NativeEdgeToEdgeModule.web.js +1 -0
  10. package/dist/commonjs/specs/NativeEdgeToEdgeModule.web.js.map +1 -1
  11. package/dist/module/SystemBars.js +36 -34
  12. package/dist/module/SystemBars.js.map +1 -1
  13. package/dist/module/specs/NativeEdgeToEdgeModule.js +8 -2
  14. package/dist/module/specs/NativeEdgeToEdgeModule.js.map +1 -1
  15. package/dist/module/specs/NativeEdgeToEdgeModule.web.js +1 -0
  16. package/dist/module/specs/NativeEdgeToEdgeModule.web.js.map +1 -1
  17. package/dist/typescript/SystemBars.d.ts.map +1 -1
  18. package/dist/typescript/specs/NativeEdgeToEdgeModule.d.ts +3 -2
  19. package/dist/typescript/specs/NativeEdgeToEdgeModule.d.ts.map +1 -1
  20. package/dist/typescript/specs/NativeEdgeToEdgeModule.web.d.ts +1 -0
  21. package/dist/typescript/specs/NativeEdgeToEdgeModule.web.d.ts.map +1 -1
  22. package/package.json +5 -5
  23. package/src/SystemBars.ts +46 -44
  24. package/src/specs/NativeEdgeToEdgeModule.ts +11 -2
  25. package/src/specs/NativeEdgeToEdgeModule.web.ts +1 -0
  26. package/dist/module/package.json +0 -1
package/README.md CHANGED
@@ -129,10 +129,9 @@ function MyAwesomeLibraryComponent({
129
129
  If you want to check for the library's presence on the native side to bypass certain parts of your code, consider using this small utility:
130
130
 
131
131
  ```kotlin
132
- object EdgeToEdgeUtil {
133
- val ENABLED: Boolean
134
- get() = try {
135
- // we cannot detect edge-to-edge, but we can detect react-native-edge-to-edge install
132
+ object EdgeToEdge {
133
+ // we cannot detect edge-to-edge, but we can detect react-native-edge-to-edge install
134
+ val ENABLED: Boolean = try {
136
135
  Class.forName("com.zoontek.rnedgetoedge.EdgeToEdgePackage")
137
136
  true
138
137
  } catch (exception: ClassNotFoundException) {
@@ -3,8 +3,6 @@ package com.zoontek.rnedgetoedge
3
3
  import android.content.res.Configuration
4
4
  import android.graphics.Color
5
5
  import android.os.Build
6
- import android.os.Handler
7
- import android.os.Looper
8
6
  import android.view.WindowManager
9
7
 
10
8
  import androidx.core.content.ContextCompat
@@ -20,7 +18,8 @@ import com.facebook.react.common.ReactConstants
20
18
  object EdgeToEdgeModuleImpl {
21
19
  const val NAME = "RNEdgeToEdge"
22
20
 
23
- private fun applyEdgeToEdge(reactContext: ReactApplicationContext) {
21
+ @Suppress("DEPRECATION")
22
+ fun applyEdgeToEdge(reactContext: ReactApplicationContext) {
24
23
  val activity = reactContext.currentActivity
25
24
  ?: return FLog.w(ReactConstants.TAG, "$NAME: Ignored, current activity is null.")
26
25
 
@@ -56,14 +55,6 @@ object EdgeToEdgeModuleImpl {
56
55
  }
57
56
  }
58
57
 
59
- fun onHostResume(reactContext: ReactApplicationContext) {
60
- applyEdgeToEdge(reactContext)
61
- }
62
-
63
- fun onConfigChange(reactContext: ReactApplicationContext) {
64
- Handler(Looper.getMainLooper()).postDelayed({ applyEdgeToEdge(reactContext) }, 100)
65
- }
66
-
67
58
  fun setSystemBarsConfig(reactContext: ReactApplicationContext, config: ReadableMap) {
68
59
  val activity = reactContext.currentActivity
69
60
  ?: return FLog.w(ReactConstants.TAG, "$NAME: Ignored, current activity is null.")
@@ -1,10 +1,5 @@
1
1
  package com.zoontek.rnedgetoedge
2
2
 
3
- import android.content.BroadcastReceiver
4
- import android.content.Context
5
- import android.content.Intent
6
- import android.content.IntentFilter
7
-
8
3
  import com.facebook.react.bridge.LifecycleEventListener
9
4
  import com.facebook.react.bridge.ReactApplicationContext
10
5
  import com.facebook.react.bridge.ReadableMap
@@ -14,19 +9,11 @@ import com.facebook.react.module.annotations.ReactModule
14
9
  class EdgeToEdgeModule(reactContext: ReactApplicationContext) :
15
10
  NativeEdgeToEdgeModuleSpec(reactContext), LifecycleEventListener {
16
11
 
17
- private val configChangeReceiver = object : BroadcastReceiver() {
18
- override fun onReceive(context: Context, intent: Intent) {
19
- EdgeToEdgeModuleImpl.onConfigChange(reactContext)
20
- }
21
- }
22
-
23
12
  init {
24
- reactApplicationContext.registerReceiver(configChangeReceiver, IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED))
25
13
  reactApplicationContext.addLifecycleEventListener(this)
26
14
  }
27
15
 
28
16
  override fun invalidate() {
29
- reactApplicationContext.unregisterReceiver(configChangeReceiver)
30
17
  reactApplicationContext.removeLifecycleEventListener(this)
31
18
  }
32
19
 
@@ -35,13 +22,17 @@ class EdgeToEdgeModule(reactContext: ReactApplicationContext) :
35
22
  }
36
23
 
37
24
  override fun onHostResume() {
38
- EdgeToEdgeModuleImpl.onHostResume(reactApplicationContext)
25
+ EdgeToEdgeModuleImpl.applyEdgeToEdge(reactApplicationContext)
39
26
  }
40
27
 
41
28
  override fun onHostPause() {}
42
29
 
43
30
  override fun onHostDestroy() {}
44
31
 
32
+ override fun onColorSchemeChange() {
33
+ EdgeToEdgeModuleImpl.applyEdgeToEdge(reactApplicationContext)
34
+ }
35
+
45
36
  override fun setSystemBarsConfig(config: ReadableMap) {
46
37
  EdgeToEdgeModuleImpl.setSystemBarsConfig(reactApplicationContext, config)
47
38
  }
@@ -1,10 +1,5 @@
1
1
  package com.zoontek.rnedgetoedge
2
2
 
3
- import android.content.BroadcastReceiver
4
- import android.content.Context
5
- import android.content.Intent
6
- import android.content.IntentFilter
7
-
8
3
  import com.facebook.react.bridge.LifecycleEventListener
9
4
  import com.facebook.react.bridge.ReactApplicationContext
10
5
  import com.facebook.react.bridge.ReactContextBaseJavaModule
@@ -16,19 +11,11 @@ import com.facebook.react.module.annotations.ReactModule
16
11
  class EdgeToEdgeModule(reactContext: ReactApplicationContext) :
17
12
  ReactContextBaseJavaModule(reactContext), LifecycleEventListener {
18
13
 
19
- private val configChangeReceiver = object : BroadcastReceiver() {
20
- override fun onReceive(context: Context, intent: Intent) {
21
- EdgeToEdgeModuleImpl.onConfigChange(reactContext)
22
- }
23
- }
24
-
25
14
  init {
26
- reactApplicationContext.registerReceiver(configChangeReceiver, IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED))
27
15
  reactApplicationContext.addLifecycleEventListener(this)
28
16
  }
29
17
 
30
18
  override fun invalidate() {
31
- reactApplicationContext.unregisterReceiver(configChangeReceiver)
32
19
  reactApplicationContext.removeLifecycleEventListener(this)
33
20
  }
34
21
 
@@ -37,13 +24,18 @@ class EdgeToEdgeModule(reactContext: ReactApplicationContext) :
37
24
  }
38
25
 
39
26
  override fun onHostResume() {
40
- EdgeToEdgeModuleImpl.onHostResume(reactApplicationContext)
27
+ EdgeToEdgeModuleImpl.applyEdgeToEdge(reactApplicationContext)
41
28
  }
42
29
 
43
30
  override fun onHostPause() {}
44
31
 
45
32
  override fun onHostDestroy() {}
46
33
 
34
+ @ReactMethod
35
+ fun onColorSchemeChange() {
36
+ EdgeToEdgeModuleImpl.applyEdgeToEdge(reactApplicationContext)
37
+ }
38
+
47
39
  @ReactMethod
48
40
  fun setSystemBarsConfig(config: ReadableMap) {
49
41
  EdgeToEdgeModuleImpl.setSystemBarsConfig(reactApplicationContext, config)
@@ -58,43 +58,45 @@ let currentMergedEntries = null;
58
58
  * Updates the native system bars with the entries from the stack.
59
59
  */
60
60
  function updateEntriesStack() {
61
- if (updateImmediate != null) {
62
- clearImmediate(updateImmediate);
63
- }
64
- updateImmediate = setImmediate(() => {
65
- const mergedEntries = mergeEntriesStack(entriesStack);
66
- if (mergedEntries != null) {
67
- const {
68
- statusBarHidden,
69
- navigationBarHidden
70
- } = mergedEntries;
71
- const statusBarStyle = mergedEntries.statusBarStyle === "auto" ? getColorScheme() === "light" ? "dark" : "light" : mergedEntries.statusBarStyle;
72
- if (currentMergedEntries?.statusBarStyle !== statusBarStyle || currentMergedEntries?.statusBarHidden !== statusBarHidden || currentMergedEntries?.navigationBarHidden !== navigationBarHidden) {
73
- if (_reactNative.Platform.OS === "android") {
74
- _NativeEdgeToEdgeModule.default?.setSystemBarsConfig({
75
- statusBarStyle,
76
- statusBarHidden,
77
- navigationBarHidden
78
- });
79
- } else if (_reactNative.Platform.OS === "ios") {
80
- // Emulate android behavior with react-native StatusBar
81
- if (statusBarStyle != null) {
82
- _reactNative.StatusBar.setBarStyle(`${statusBarStyle}-content`, true);
83
- }
84
- if (statusBarHidden != null) {
85
- _reactNative.StatusBar.setHidden(statusBarHidden, "fade"); // 'slide' doesn't work in this context
61
+ if (_reactNative.Platform.OS === "android" || _reactNative.Platform.OS === "ios") {
62
+ if (updateImmediate != null) {
63
+ clearImmediate(updateImmediate);
64
+ }
65
+ updateImmediate = setImmediate(() => {
66
+ const mergedEntries = mergeEntriesStack(entriesStack);
67
+ if (mergedEntries != null) {
68
+ const {
69
+ statusBarHidden,
70
+ navigationBarHidden
71
+ } = mergedEntries;
72
+ const statusBarStyle = mergedEntries.statusBarStyle === "auto" ? getColorScheme() === "light" ? "dark" : "light" : mergedEntries.statusBarStyle;
73
+ if (currentMergedEntries?.statusBarStyle !== statusBarStyle || currentMergedEntries?.statusBarHidden !== statusBarHidden || currentMergedEntries?.navigationBarHidden !== navigationBarHidden) {
74
+ if (_reactNative.Platform.OS === "android") {
75
+ _NativeEdgeToEdgeModule.default?.setSystemBarsConfig({
76
+ statusBarStyle,
77
+ statusBarHidden,
78
+ navigationBarHidden
79
+ });
80
+ } else {
81
+ // Emulate android behavior with react-native StatusBar
82
+ if (statusBarStyle != null) {
83
+ _reactNative.StatusBar.setBarStyle(`${statusBarStyle}-content`, true);
84
+ }
85
+ if (statusBarHidden != null) {
86
+ _reactNative.StatusBar.setHidden(statusBarHidden, "fade"); // 'slide' doesn't work in this context
87
+ }
86
88
  }
87
89
  }
90
+ currentMergedEntries = {
91
+ statusBarStyle,
92
+ statusBarHidden,
93
+ navigationBarHidden
94
+ };
95
+ } else {
96
+ currentMergedEntries = null;
88
97
  }
89
- currentMergedEntries = {
90
- statusBarStyle,
91
- statusBarHidden,
92
- navigationBarHidden
93
- };
94
- } else {
95
- currentMergedEntries = null;
96
- }
97
- });
98
+ });
99
+ }
98
100
  }
99
101
 
100
102
  /**
@@ -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","navigationBarHidden","createStackEntry","props","style","hidden","statusBar","navigationBar","updateImmediate","currentMergedEntries","updateEntriesStack","clearImmediate","setImmediate","mergedEntries","Platform","OS","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","mergeEntriesStack","entriesStack","mergedEntry","reduce","prev","cur","prop","statusBarStyle","undefined","statusBarHidden","navigationBarHidden","createStackEntry","props","style","hidden","statusBar","navigationBar","updateImmediate","currentMergedEntries","updateEntriesStack","Platform","OS","clearImmediate","setImmediate","mergedEntries","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":[]}
@@ -5,5 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _reactNative = require("react-native");
8
- var _default = exports.default = _reactNative.TurboModuleRegistry.get("RNEdgeToEdge");
8
+ const NativeModule = _reactNative.TurboModuleRegistry.get("RNEdgeToEdge");
9
+ if (NativeModule != null) {
10
+ _reactNative.Appearance.addChangeListener(() => {
11
+ NativeModule.onColorSchemeChange();
12
+ });
13
+ }
14
+ var _default = exports.default = NativeModule;
9
15
  //# sourceMappingURL=NativeEdgeToEdgeModule.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeEdgeToEdgeModule.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAYpCC,gCAAmB,CAACC,GAAG,CAAO,cAAc,CAAC","ignoreList":[]}
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;AAaA,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":[]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _default = exports.default = {
8
+ onColorSchemeChange() {},
8
9
  setSystemBarsConfig() {}
9
10
  };
10
11
  //# sourceMappingURL=NativeEdgeToEdgeModule.web.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["setSystemBarsConfig"],"sourceRoot":"../../../src","sources":["specs/NativeEdgeToEdgeModule.web.ts"],"mappings":";;;;;;iCAEe;EACbA,mBAAmBA,CAAA,EAAG,CAAC;AACzB,CAAC","ignoreList":[]}
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":[]}
@@ -53,43 +53,45 @@ let currentMergedEntries = null;
53
53
  * Updates the native system bars with the entries from the stack.
54
54
  */
55
55
  function updateEntriesStack() {
56
- if (updateImmediate != null) {
57
- clearImmediate(updateImmediate);
58
- }
59
- updateImmediate = setImmediate(() => {
60
- const mergedEntries = mergeEntriesStack(entriesStack);
61
- if (mergedEntries != null) {
62
- const {
63
- statusBarHidden,
64
- navigationBarHidden
65
- } = mergedEntries;
66
- const statusBarStyle = mergedEntries.statusBarStyle === "auto" ? getColorScheme() === "light" ? "dark" : "light" : mergedEntries.statusBarStyle;
67
- if (currentMergedEntries?.statusBarStyle !== statusBarStyle || currentMergedEntries?.statusBarHidden !== statusBarHidden || currentMergedEntries?.navigationBarHidden !== navigationBarHidden) {
68
- if (Platform.OS === "android") {
69
- NativeEdgeToEdgeModule?.setSystemBarsConfig({
70
- statusBarStyle,
71
- statusBarHidden,
72
- navigationBarHidden
73
- });
74
- } else if (Platform.OS === "ios") {
75
- // Emulate android behavior with react-native StatusBar
76
- if (statusBarStyle != null) {
77
- StatusBar.setBarStyle(`${statusBarStyle}-content`, true);
78
- }
79
- if (statusBarHidden != null) {
80
- StatusBar.setHidden(statusBarHidden, "fade"); // 'slide' doesn't work in this context
56
+ if (Platform.OS === "android" || Platform.OS === "ios") {
57
+ if (updateImmediate != null) {
58
+ clearImmediate(updateImmediate);
59
+ }
60
+ updateImmediate = setImmediate(() => {
61
+ const mergedEntries = mergeEntriesStack(entriesStack);
62
+ if (mergedEntries != null) {
63
+ const {
64
+ statusBarHidden,
65
+ navigationBarHidden
66
+ } = mergedEntries;
67
+ const statusBarStyle = mergedEntries.statusBarStyle === "auto" ? getColorScheme() === "light" ? "dark" : "light" : mergedEntries.statusBarStyle;
68
+ if (currentMergedEntries?.statusBarStyle !== statusBarStyle || currentMergedEntries?.statusBarHidden !== statusBarHidden || currentMergedEntries?.navigationBarHidden !== navigationBarHidden) {
69
+ if (Platform.OS === "android") {
70
+ NativeEdgeToEdgeModule?.setSystemBarsConfig({
71
+ statusBarStyle,
72
+ statusBarHidden,
73
+ navigationBarHidden
74
+ });
75
+ } else {
76
+ // Emulate android behavior with react-native StatusBar
77
+ if (statusBarStyle != null) {
78
+ StatusBar.setBarStyle(`${statusBarStyle}-content`, true);
79
+ }
80
+ if (statusBarHidden != null) {
81
+ StatusBar.setHidden(statusBarHidden, "fade"); // 'slide' doesn't work in this context
82
+ }
81
83
  }
82
84
  }
85
+ currentMergedEntries = {
86
+ statusBarStyle,
87
+ statusBarHidden,
88
+ navigationBarHidden
89
+ };
90
+ } else {
91
+ currentMergedEntries = null;
83
92
  }
84
- currentMergedEntries = {
85
- statusBarStyle,
86
- statusBarHidden,
87
- navigationBarHidden
88
- };
89
- } else {
90
- currentMergedEntries = null;
91
- }
92
- });
93
+ });
94
+ }
93
95
  }
94
96
 
95
97
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","useRef","Appearance","Platform","StatusBar","useColorScheme","NativeEdgeToEdgeModule","getColorScheme","mergeEntriesStack","entriesStack","mergedEntry","reduce","prev","cur","prop","statusBarStyle","undefined","statusBarHidden","navigationBarHidden","createStackEntry","props","style","hidden","statusBar","navigationBar","updateImmediate","currentMergedEntries","updateEntriesStack","clearImmediate","setImmediate","mergedEntries","OS","setSystemBarsConfig","setBarStyle","setHidden","pushStackEntry","entry","push","popStackEntry","index","indexOf","splice","replaceStackEntry","newEntry","SystemBars","stableProps","colorScheme","stackEntryRef","current"],"sourceRoot":"../../src","sources":["SystemBars.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","useRef","Appearance","Platform","StatusBar","useColorScheme","NativeEdgeToEdgeModule","getColorScheme","mergeEntriesStack","entriesStack","mergedEntry","reduce","prev","cur","prop","statusBarStyle","undefined","statusBarHidden","navigationBarHidden","createStackEntry","props","style","hidden","statusBar","navigationBar","updateImmediate","currentMergedEntries","updateEntriesStack","OS","clearImmediate","setImmediate","mergedEntries","setSystemBarsConfig","setBarStyle","setHidden","pushStackEntry","entry","push","popStackEntry","index","indexOf","splice","replaceStackEntry","newEntry","SystemBars","stableProps","colorScheme","stackEntryRef","current"],"sourceRoot":"../../src","sources":["SystemBars.ts"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { TurboModuleRegistry } from "react-native";
4
- export default TurboModuleRegistry.get("RNEdgeToEdge");
3
+ import { Appearance, TurboModuleRegistry } from "react-native";
4
+ const NativeModule = TurboModuleRegistry.get("RNEdgeToEdge");
5
+ if (NativeModule != null) {
6
+ Appearance.addChangeListener(() => {
7
+ NativeModule.onColorSchemeChange();
8
+ });
9
+ }
10
+ export default NativeModule;
5
11
  //# sourceMappingURL=NativeEdgeToEdgeModule.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeEdgeToEdgeModule.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAYlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,cAAc,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Appearance","TurboModuleRegistry","NativeModule","get","addChangeListener","onColorSchemeChange"],"sourceRoot":"../../../src","sources":["specs/NativeEdgeToEdgeModule.ts"],"mappings":";;AACA,SAASA,UAAU,EAAEC,mBAAmB,QAAQ,cAAc;AAa9D,MAAMC,YAAY,GAAGD,mBAAmB,CAACE,GAAG,CAAO,cAAc,CAAC;AAElE,IAAID,YAAY,IAAI,IAAI,EAAE;EACxBF,UAAU,CAACI,iBAAiB,CAAC,MAAM;IACjCF,YAAY,CAACG,mBAAmB,CAAC,CAAC;EACpC,CAAC,CAAC;AACJ;AAEA,eAAeH,YAAY","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  export default {
4
+ onColorSchemeChange() {},
4
5
  setSystemBarsConfig() {}
5
6
  };
6
7
  //# sourceMappingURL=NativeEdgeToEdgeModule.web.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["setSystemBarsConfig"],"sourceRoot":"../../../src","sources":["specs/NativeEdgeToEdgeModule.web.ts"],"mappings":";;AAEA,eAAe;EACbA,mBAAmBA,CAAA,EAAG,CAAC;AACzB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["onColorSchemeChange","setSystemBarsConfig"],"sourceRoot":"../../../src","sources":["specs/NativeEdgeToEdgeModule.web.ts"],"mappings":";;AAEA,eAAe;EACbA,mBAAmBA,CAAA,EAAG,CAAC,CAAC;EACxBC,mBAAmBA,CAAA,EAAG,CAAC;AACzB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"SystemBars.d.ts","sourceRoot":"","sources":["../../src/SystemBars.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAwK3D,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,eAAe,QA8C5D;yBA9Ce,UAAU;gCAvCK,eAAe,KAAG,eAAe;+BAYlC,eAAe,KAAG,IAAI;mCAe3C,eAAe,SACf,eAAe,KACrB,eAAe"}
1
+ {"version":3,"file":"SystemBars.d.ts","sourceRoot":"","sources":["../../src/SystemBars.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA0K3D,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,eAAe,QA8C5D;yBA9Ce,UAAU;gCAvCK,eAAe,KAAG,eAAe;+BAYlC,eAAe,KAAG,IAAI;mCAe3C,eAAe,SACf,eAAe,KACrB,eAAe"}
@@ -5,8 +5,9 @@ type SystemBarsConfig = {
5
5
  navigationBarHidden: boolean | undefined;
6
6
  };
7
7
  export interface Spec extends TurboModule {
8
+ onColorSchemeChange(): void;
8
9
  setSystemBarsConfig(config: SystemBarsConfig): void;
9
10
  }
10
- declare const _default: Spec | null;
11
- export default _default;
11
+ declare const NativeModule: Spec | null;
12
+ export default NativeModule;
12
13
  //# sourceMappingURL=NativeEdgeToEdgeModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NativeEdgeToEdgeModule.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeEdgeToEdgeModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,KAAK,gBAAgB,GAAG;IACtB,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,mBAAmB,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACrD;;AAED,wBAA6D"}
1
+ {"version":3,"file":"NativeEdgeToEdgeModule.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeEdgeToEdgeModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,KAAK,gBAAgB,GAAG;IACtB,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,mBAAmB,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,mBAAmB,IAAI,IAAI,CAAC;IAC5B,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACrD;AAED,QAAA,MAAM,YAAY,aAAgD,CAAC;AAQnE,eAAe,YAAY,CAAC"}
@@ -1,4 +1,5 @@
1
1
  declare const _default: {
2
+ onColorSchemeChange(): void;
2
3
  setSystemBarsConfig(): void;
3
4
  };
4
5
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeEdgeToEdgeModule.web.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeEdgeToEdgeModule.web.ts"],"names":[],"mappings":";;;AAEA,wBAEiB"}
1
+ {"version":3,"file":"NativeEdgeToEdgeModule.web.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeEdgeToEdgeModule.web.ts"],"names":[],"mappings":";;;;AAEA,wBAGiB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-edge-to-edge",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "license": "MIT",
5
5
  "description": "Effortlessly enable edge-to-edge display in React Native",
6
6
  "author": "Mathieu Acthernoene <zoontek@gmail.com>",
@@ -34,7 +34,7 @@
34
34
  "clean": "rm -rf dist",
35
35
  "format": "prettier '**/*' -u -w",
36
36
  "typecheck": "tsc --noEmit",
37
- "build": "yarn clean && bob build && rm -rf dist/commonjs/package.json",
37
+ "build": "yarn clean && bob build && rm -rf dist/*/package.json",
38
38
  "prepack": "prettier '**/*' -u -c && yarn typecheck && yarn build"
39
39
  },
40
40
  "react-native-builder-bob": {
@@ -58,13 +58,13 @@
58
58
  "devDependencies": {
59
59
  "@babel/core": "^7.25.2",
60
60
  "@babel/preset-env": "^7.25.3",
61
- "@expo/config-plugins": "^7.0.0 || ^8.0.0",
61
+ "@expo/config-plugins": "^7.0.0 || ^8.0.0 || ^9.0.0",
62
62
  "@types/react": "^18.2.6",
63
63
  "prettier": "^3.3.3",
64
64
  "prettier-plugin-organize-imports": "^4.1.0",
65
65
  "react": "18.3.1",
66
- "react-native": "0.76.1",
67
- "react-native-builder-bob": "^0.30.3",
66
+ "react-native": "0.76.2",
67
+ "react-native-builder-bob": "^0.31.0",
68
68
  "typescript": "^5.6.3"
69
69
  },
70
70
  "codegenConfig": {
package/src/SystemBars.ts CHANGED
@@ -74,54 +74,56 @@ let currentMergedEntries: {
74
74
  * Updates the native system bars with the entries from the stack.
75
75
  */
76
76
  function updateEntriesStack() {
77
- if (updateImmediate != null) {
78
- clearImmediate(updateImmediate);
79
- }
77
+ if (Platform.OS === "android" || Platform.OS === "ios") {
78
+ if (updateImmediate != null) {
79
+ clearImmediate(updateImmediate);
80
+ }
80
81
 
81
- updateImmediate = setImmediate(() => {
82
- const mergedEntries = mergeEntriesStack(entriesStack);
83
-
84
- if (mergedEntries != null) {
85
- const { statusBarHidden, navigationBarHidden } = mergedEntries;
86
-
87
- const statusBarStyle: "light" | "dark" | undefined =
88
- mergedEntries.statusBarStyle === "auto"
89
- ? getColorScheme() === "light"
90
- ? "dark"
91
- : "light"
92
- : mergedEntries.statusBarStyle;
93
-
94
- if (
95
- currentMergedEntries?.statusBarStyle !== statusBarStyle ||
96
- currentMergedEntries?.statusBarHidden !== statusBarHidden ||
97
- currentMergedEntries?.navigationBarHidden !== navigationBarHidden
98
- ) {
99
- if (Platform.OS === "android") {
100
- NativeEdgeToEdgeModule?.setSystemBarsConfig({
101
- statusBarStyle,
102
- statusBarHidden,
103
- navigationBarHidden,
104
- });
105
- } else if (Platform.OS === "ios") {
106
- // Emulate android behavior with react-native StatusBar
107
- if (statusBarStyle != null) {
108
- StatusBar.setBarStyle(`${statusBarStyle}-content`, true);
109
- }
110
- if (statusBarHidden != null) {
111
- StatusBar.setHidden(statusBarHidden, "fade"); // 'slide' doesn't work in this context
82
+ updateImmediate = setImmediate(() => {
83
+ const mergedEntries = mergeEntriesStack(entriesStack);
84
+
85
+ if (mergedEntries != null) {
86
+ const { statusBarHidden, navigationBarHidden } = mergedEntries;
87
+
88
+ const statusBarStyle: "light" | "dark" | undefined =
89
+ mergedEntries.statusBarStyle === "auto"
90
+ ? getColorScheme() === "light"
91
+ ? "dark"
92
+ : "light"
93
+ : mergedEntries.statusBarStyle;
94
+
95
+ if (
96
+ currentMergedEntries?.statusBarStyle !== statusBarStyle ||
97
+ currentMergedEntries?.statusBarHidden !== statusBarHidden ||
98
+ currentMergedEntries?.navigationBarHidden !== navigationBarHidden
99
+ ) {
100
+ if (Platform.OS === "android") {
101
+ NativeEdgeToEdgeModule?.setSystemBarsConfig({
102
+ statusBarStyle,
103
+ statusBarHidden,
104
+ navigationBarHidden,
105
+ });
106
+ } else {
107
+ // Emulate android behavior with react-native StatusBar
108
+ if (statusBarStyle != null) {
109
+ StatusBar.setBarStyle(`${statusBarStyle}-content`, true);
110
+ }
111
+ if (statusBarHidden != null) {
112
+ StatusBar.setHidden(statusBarHidden, "fade"); // 'slide' doesn't work in this context
113
+ }
112
114
  }
113
115
  }
114
- }
115
116
 
116
- currentMergedEntries = {
117
- statusBarStyle,
118
- statusBarHidden,
119
- navigationBarHidden,
120
- };
121
- } else {
122
- currentMergedEntries = null;
123
- }
124
- });
117
+ currentMergedEntries = {
118
+ statusBarStyle,
119
+ statusBarHidden,
120
+ navigationBarHidden,
121
+ };
122
+ } else {
123
+ currentMergedEntries = null;
124
+ }
125
+ });
126
+ }
125
127
  }
126
128
 
127
129
  /**
@@ -1,5 +1,5 @@
1
1
  import type { TurboModule } from "react-native";
2
- import { TurboModuleRegistry } from "react-native";
2
+ import { Appearance, TurboModuleRegistry } from "react-native";
3
3
 
4
4
  type SystemBarsConfig = {
5
5
  statusBarHidden: boolean | undefined;
@@ -8,7 +8,16 @@ type SystemBarsConfig = {
8
8
  };
9
9
 
10
10
  export interface Spec extends TurboModule {
11
+ onColorSchemeChange(): void;
11
12
  setSystemBarsConfig(config: SystemBarsConfig): void;
12
13
  }
13
14
 
14
- export default TurboModuleRegistry.get<Spec>("RNEdgeToEdge");
15
+ const NativeModule = TurboModuleRegistry.get<Spec>("RNEdgeToEdge");
16
+
17
+ if (NativeModule != null) {
18
+ Appearance.addChangeListener(() => {
19
+ NativeModule.onColorSchemeChange();
20
+ });
21
+ }
22
+
23
+ export default NativeModule;
@@ -1,5 +1,6 @@
1
1
  import type { Spec } from "./NativeEdgeToEdgeModule";
2
2
 
3
3
  export default {
4
+ onColorSchemeChange() {},
4
5
  setSystemBarsConfig() {},
5
6
  } satisfies Spec;
@@ -1 +0,0 @@
1
- {"type":"module"}