Skip to content

Commit

Permalink
Skip updateEntriesStack on platform others than android and ios
Browse files Browse the repository at this point in the history
  • Loading branch information
zoontek committed Nov 21, 2024
1 parent 490be42 commit 7b80de6
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 45 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-edge-to-edge",
"version": "1.1.2",
"version": "1.1.3",
"license": "MIT",
"description": "Effortlessly enable edge-to-edge display in React Native",
"author": "Mathieu Acthernoene <zoontek@gmail.com>",
Expand Down
90 changes: 46 additions & 44 deletions src/SystemBars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,54 +74,56 @@ let currentMergedEntries: {
* Updates the native system bars with the entries from the stack.
*/
function updateEntriesStack() {
if (updateImmediate != null) {
clearImmediate(updateImmediate);
}
if (Platform.OS === "android" || Platform.OS === "ios") {
if (updateImmediate != null) {
clearImmediate(updateImmediate);
}

updateImmediate = setImmediate(() => {
const mergedEntries = mergeEntriesStack(entriesStack);

if (mergedEntries != null) {
const { statusBarHidden, navigationBarHidden } = mergedEntries;

const statusBarStyle: "light" | "dark" | undefined =
mergedEntries.statusBarStyle === "auto"
? getColorScheme() === "light"
? "dark"
: "light"
: mergedEntries.statusBarStyle;

if (
currentMergedEntries?.statusBarStyle !== statusBarStyle ||
currentMergedEntries?.statusBarHidden !== statusBarHidden ||
currentMergedEntries?.navigationBarHidden !== navigationBarHidden
) {
if (Platform.OS === "android") {
NativeEdgeToEdgeModule?.setSystemBarsConfig({
statusBarStyle,
statusBarHidden,
navigationBarHidden,
});
} else if (Platform.OS === "ios") {
// Emulate android behavior with react-native StatusBar
if (statusBarStyle != null) {
StatusBar.setBarStyle(`${statusBarStyle}-content`, true);
}
if (statusBarHidden != null) {
StatusBar.setHidden(statusBarHidden, "fade"); // 'slide' doesn't work in this context
updateImmediate = setImmediate(() => {
const mergedEntries = mergeEntriesStack(entriesStack);

if (mergedEntries != null) {
const { statusBarHidden, navigationBarHidden } = mergedEntries;

const statusBarStyle: "light" | "dark" | undefined =
mergedEntries.statusBarStyle === "auto"
? getColorScheme() === "light"
? "dark"
: "light"
: mergedEntries.statusBarStyle;

if (
currentMergedEntries?.statusBarStyle !== statusBarStyle ||
currentMergedEntries?.statusBarHidden !== statusBarHidden ||
currentMergedEntries?.navigationBarHidden !== navigationBarHidden
) {
if (Platform.OS === "android") {
NativeEdgeToEdgeModule?.setSystemBarsConfig({
statusBarStyle,
statusBarHidden,
navigationBarHidden,
});
} else {
// Emulate android behavior with react-native StatusBar
if (statusBarStyle != null) {
StatusBar.setBarStyle(`${statusBarStyle}-content`, true);
}
if (statusBarHidden != null) {
StatusBar.setHidden(statusBarHidden, "fade"); // 'slide' doesn't work in this context
}
}
}
}

currentMergedEntries = {
statusBarStyle,
statusBarHidden,
navigationBarHidden,
};
} else {
currentMergedEntries = null;
}
});
currentMergedEntries = {
statusBarStyle,
statusBarHidden,
navigationBarHidden,
};
} else {
currentMergedEntries = null;
}
});
}
}

/**
Expand Down

0 comments on commit 7b80de6

Please sign in to comment.