react-native-edge-to-edge 1.1.2 → 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.
- package/README.md +3 -4
- package/android/src/main/java/com/zoontek/rnedgetoedge/EdgeToEdgeModuleImpl.kt +1 -0
- package/dist/commonjs/SystemBars.js +36 -34
- package/dist/commonjs/SystemBars.js.map +1 -1
- package/dist/module/SystemBars.js +36 -34
- package/dist/module/SystemBars.js.map +1 -1
- package/dist/typescript/SystemBars.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/SystemBars.ts +46 -44
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
|
|
133
|
-
|
|
134
|
-
|
|
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) {
|
|
@@ -18,6 +18,7 @@ import com.facebook.react.common.ReactConstants
|
|
|
18
18
|
object EdgeToEdgeModuleImpl {
|
|
19
19
|
const val NAME = "RNEdgeToEdge"
|
|
20
20
|
|
|
21
|
+
@Suppress("DEPRECATION")
|
|
21
22
|
fun applyEdgeToEdge(reactContext: ReactApplicationContext) {
|
|
22
23
|
val activity = reactContext.currentActivity
|
|
23
24
|
?: return FLog.w(ReactConstants.TAG, "$NAME: Ignored, current activity is null.")
|
|
@@ -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 (
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
if (
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
|
|
90
|
-
|
|
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","
|
|
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":[]}
|
|
@@ -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 (
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
85
|
-
|
|
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","
|
|
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 +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;
|
|
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"}
|
package/package.json
CHANGED
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 (
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
if (Platform.OS === "android" || Platform.OS === "ios") {
|
|
78
|
+
if (updateImmediate != null) {
|
|
79
|
+
clearImmediate(updateImmediate);
|
|
80
|
+
}
|
|
80
81
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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
|
/**
|