Skip to content

Commit

Permalink
[dev-client] Fix RCTStatusBarManager module requires that the `UIVi…
Browse files Browse the repository at this point in the history
…ewControllerBasedStatusBarAppearance` to be false (#20104)

# Why

Fixes #20047.

# How

Made sure that `StatusBar` won't be imported by any dev-client code. 

# Test Plan

- bare-expo ✅
- simple app outside of the expo/expo repo
  • Loading branch information
lukmccall committed Nov 21, 2022
1 parent 7a8e10e commit 3e3ca02
Show file tree
Hide file tree
Showing 12 changed files with 1,992 additions and 2,016 deletions.
2 changes: 2 additions & 0 deletions packages/expo-dev-launcher/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

### 🐛 Bug fixes

- Fixed `RCTStatusBarManager` module requires that the `UIViewControllerBasedStatusBarAppearance` to be false on iOS. ([#20104](https://github.com/expo/expo/pull/20104) by [@lukmccall](https://github.com/lukmccall))

### 💡 Others

- Locked `layoutDirection` to LTR to prevent incorrect rendering when used together with a RTL enabled app. ([#19634](https://github.com/expo/expo/pull/19634) by [@aleqsio](https://github.com/aleqsio))
Expand Down

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions packages/expo-dev-launcher/bundle/StatusBarMock.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = () => {
return null;
};
2,172 changes: 1,085 additions & 1,087 deletions packages/expo-dev-launcher/ios/main.jsbundle

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions packages/expo-dev-launcher/metro.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const { createMetroConfiguration } = require('expo-yarn-workspaces');
const path = require('path');

const config = createMetroConfiguration(__dirname);

Expand Down Expand Up @@ -35,5 +36,15 @@ if (EXPO_BUNDLE_APP) {
}

config.resolver.blockList.push(/\breact-native-lab\b/);
config.resolver.resolveRequest = (context, moduleName, platform) => {
if (platform === 'ios' && /Components\/StatusBar\/StatusBar/.test(moduleName)) {
console.log(`Replacing ${moduleName} with NOOP`);
return {
type: 'sourceFile',
filePath: path.join(__dirname, 'bundle', 'StatusBarMock.js'),
};
}
return context.resolveRequest(context, moduleName, platform);
};

module.exports = config;
1 change: 1 addition & 0 deletions packages/expo-dev-menu/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

### 🐛 Bug fixes

- Fixed `RCTStatusBarManager` module requires that the `UIViewControllerBasedStatusBarAppearance` to be false on iOS. ([#20104](https://github.com/expo/expo/pull/20104) by [@lukmccall](https://github.com/lukmccall))
- Fixed writing 'r' into text input reloading the app on iOS. ([#20107](https://github.com/expo/expo/pull/20107) by [@lukmccall](https://github.com/lukmccall))

### 💡 Others
Expand Down
3 changes: 3 additions & 0 deletions packages/expo-dev-menu/app/StatusBarMock.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = () => {
return null;
};
114 changes: 57 additions & 57 deletions packages/expo-dev-menu/assets/EXDevMenuApp.android.js

Large diffs are not rendered by default.

1,524 changes: 761 additions & 763 deletions packages/expo-dev-menu/assets/EXDevMenuApp.ios.js

Large diffs are not rendered by default.

13 changes: 11 additions & 2 deletions packages/expo-dev-menu/metro.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { createMetroConfiguration } = require('expo-yarn-workspaces');

const path = require('path');
const config = createMetroConfiguration(__dirname);

config.server = {
Expand All @@ -26,5 +26,14 @@ if (EXPO_BUNDLE_APP) {
}

config.resolver.blockList.push(/\breact-native-lab\b/);

config.resolver.resolveRequest = (context, moduleName, platform) => {
if (platform === 'ios' && /Components\/StatusBar\/StatusBar/.test(moduleName)) {
console.log(`Replacing ${moduleName} with NOOP`);
return {
type: 'sourceFile',
filePath: path.join(__dirname, 'app', 'StatusBarMock.js'),
};
}
return context.resolveRequest(context, moduleName, platform);
};
module.exports = config;
3 changes: 0 additions & 3 deletions packages/expo-dev-menu/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,6 @@
"devDependencies": {
"@apollo/client": "^3.4.10",
"@babel/preset-typescript": "^7.7.4",
"@react-navigation/core": "5.15.1",
"@react-navigation/native": "5.9.2",
"@react-navigation/stack": "5.14.2",
"@testing-library/jest-native": "^4.0.4",
"@testing-library/react-native": "^8.0.0",
"babel-plugin-module-resolver": "^4.1.0",
Expand Down
48 changes: 1 addition & 47 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3567,17 +3567,6 @@
color "^4.2.3"
warn-once "^0.1.0"

"@react-navigation/core@5.15.1":
version "5.15.1"
resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-5.15.1.tgz#dab5192277c606d9acbea511dac407c2834b5fbe"
integrity sha512-GDCpIVQd0NgHYCSdUMY69hrpeWKuYgj5SIRqHI2sYh9OguwGcV52ZZOafc+pQuyfuiLLIMidw34jiqb47QrlhA==
dependencies:
"@react-navigation/routers" "^5.7.1"
escape-string-regexp "^4.0.0"
nanoid "^3.1.15"
query-string "^6.13.6"
react-is "^16.13.0"

"@react-navigation/core@6.4.0", "@react-navigation/core@^6.4.0":
version "6.4.0"
resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-6.4.0.tgz#c44d33a8d8ef010a102c7f831fc8add772678509"
Expand All @@ -3600,17 +3589,6 @@
query-string "^6.13.6"
react-is "^16.13.0"

"@react-navigation/core@^5.15.1":
version "5.16.1"
resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-5.16.1.tgz#e0d308bd9bbd930114ce55c4151806b6d7907f69"
integrity sha512-3AToC7vPNeSNcHFLd1h71L6u34hfXoRAS1CxF9Fc4uC8uOrVqcNvphpeFbE0O9Bw6Zpl0BnMFl7E5gaL3KGzNA==
dependencies:
"@react-navigation/routers" "^5.7.4"
escape-string-regexp "^4.0.0"
nanoid "^3.1.15"
query-string "^6.13.6"
react-is "^16.13.0"

"@react-navigation/drawer@6.5.0":
version "6.5.0"
resolved "https://registry.yarnpkg.com/@react-navigation/drawer/-/drawer-6.5.0.tgz#6f73a04deca2ce046626a60d9a59b11e8cc97167"
Expand All @@ -3632,15 +3610,6 @@
dependencies:
"@react-navigation/elements" "^1.3.6"

"@react-navigation/native@5.9.2":
version "5.9.2"
resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-5.9.2.tgz#2075774c3627d58a324e1b5dfc5f4f356a1ab7e9"
integrity sha512-O8K+Lr6Vy25gTTyXAns9BVyFvwTkKqfFH0RpOimilYndUL6tlhV56oDSp7Hryjy8xsjx6ESWqr6eIu4sS3Z9nQ==
dependencies:
"@react-navigation/core" "^5.15.1"
escape-string-regexp "^4.0.0"
nanoid "^3.1.15"

"@react-navigation/native@6.0.13", "@react-navigation/native@^6.0.1", "@react-navigation/native@~6.0.13":
version "6.0.13"
resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-6.0.13.tgz#ec504120e193ea6a7f24ffa765a1338be5a3160a"
Expand All @@ -3659,28 +3628,13 @@
hoist-non-react-statics "^3.3.2"
react-native-safe-area-view "^0.14.9"

"@react-navigation/routers@^5.7.1", "@react-navigation/routers@^5.7.4":
version "5.7.4"
resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-5.7.4.tgz#8b5460e841a0c64f6c9a5fbc2a1eb832432d4fb0"
integrity sha512-0N202XAqsU/FlE53Nmh6GHyMtGm7g6TeC93mrFAFJOqGRKznT0/ail+cYlU6tNcPA9AHzZu1Modw1eoDINSliQ==
dependencies:
nanoid "^3.1.15"

"@react-navigation/routers@^6.1.3":
version "6.1.3"
resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-6.1.3.tgz#1df51959e9a67c44367462e8b929b7360a5d2555"
integrity sha512-idJotMEzHc3haWsCh7EvnnZMKxvaS4YF/x2UyFBkNFiEFUaEo/1ioQU6qqmVLspdEv4bI/dLm97hQo7qD8Yl7Q==
dependencies:
nanoid "^3.1.23"

"@react-navigation/stack@5.14.2":
version "5.14.2"
resolved "https://registry.yarnpkg.com/@react-navigation/stack/-/stack-5.14.2.tgz#6e48efa74a9b0fc29ff0a90fcbee161039b84d78"
integrity sha512-tt1eFn6HClyXVZiVQsPs3Q2MgoqmJdkQsyT9P4TBLxGsdib6r/oc++eVNc+G/6ws/kCquDdHq3fz1PNSCtyrJA==
dependencies:
color "^3.1.3"
react-native-iphone-x-helper "^1.3.0"

"@react-navigation/stack@6.3.2", "@react-navigation/stack@^6.0.1", "@react-navigation/stack@~6.3.2":
version "6.3.2"
resolved "https://registry.yarnpkg.com/@react-navigation/stack/-/stack-6.3.2.tgz#ba0a65e10e2b165185f20718046f25d8c9abb076"
Expand Down Expand Up @@ -15826,7 +15780,7 @@ nano-time@1.0.0:
dependencies:
big-integer "^1.6.16"

nanoid@^3.1.15, nanoid@^3.1.23:
nanoid@^3.1.23:
version "3.3.2"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557"
integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==
Expand Down

0 comments on commit 3e3ca02

Please sign in to comment.