[dev-launcher] Launch directly into previously opened project (#24614)# Why Closes ENG-10041 # How In order to allow users to launch directly into previously opened projects, this PR upda
[dev-launcher] Launch directly into previously opened project (#24614)# Why Closes ENG-10041 # How In order to allow users to launch directly into previously opened projects, this PR updates `startWithWindow` and `handleIntent` to try to launch from the most recent URL of the RecentlyOpenedAppsRegistry. If the bundle cannot be loaded, it falls back to the regular launcher. This also refactors the existing dev-client and dev-launcher config plugins adding a new `tryToLaunchLastOpenedBundle` parameter to the Android and iOS plugin config types. E.g. ```json "plugins": [ [ "expo-dev-client", { "android": { "tryToLaunchLastOpenedBundle": true }, "ios": { "tryToLaunchLastOpenedBundle": true } } ] ] ``` # Test Plan Run dev-client through bare-expo on Android and iOS testing opening the app directly, with and without "Recent Apps" and opening through deep links # Checklist - [ ] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). --------- Co-authored-by: Łukasz Kosmaty <[email protected]>
show more ...
[lint] Upgrade to Prettier v3, typescript-eslint to v6 (#23544)Why --- Prettier 3 is out. Add support for it with this linter config. **Note for reviewer:** the first commit is the one with th
[lint] Upgrade to Prettier v3, typescript-eslint to v6 (#23544)Why --- Prettier 3 is out. Add support for it with this linter config. **Note for reviewer:** the first commit is the one with the actual changes. The rest of this PR are changes to get the linter passing (mostly autofix). How --- Update eslint-config-prettier and eslint-plugin-prettier. To address deprecation warnings, also update typescript-eslint/parser and typescript-eslint/eslint-plugin. Because of an update to typescript-eslint/parser, we need to suppress deprecation warnings (documented in a comment). Regenerated test snapshots. Due to the upgraded dependencies, typecasts and optional chaining are now auto-fixable by lint. This converts warnings into autofixes. Test Plan --- `yarn test` in the linter config. Run `expotools check --all --fix-lint --no-build --no-test --no-uniformity-check` to try this config on the whole repo. --------- Co-authored-by: Expo Bot <[email protected]>
[2/3] upgrade react native 0.71 (#20832)# Why follow up #20799 for react-native 0.71 upgrade. this pr aims for jest upgrade and fix all broken tests. close ENG-7192 # How - upgrade packag
[2/3] upgrade react native 0.71 (#20832)# Why follow up #20799 for react-native 0.71 upgrade. this pr aims for jest upgrade and fix all broken tests. close ENG-7192 # How - upgrade packages - `jest: ^26.0.24 -> ^29.2.1` - `jest-watch-typeahead: 0.6.4 -> 2.2.1` - `@types/jest: ^26.0.24 -> ^29.2.1` - `babel-jest: ^26.6.3 -> ^29.2.1` - `@jest/create-cache-key-function: ^27.0.1 -> ^29.2.1` - `@babel/preset-env: ^7.12.9 -> ^7.14.0` - `eslint: ^8.20.0 -> ^8.29.0` - add `jest-environment-jsdom` because new jest does not include it by default - [core] fix `SyntheticPlatformEmitter` type error. originally it refers to `react-native/Libraries/EventEmitter/RCTDeviceEventEmitter` internal file which has incorrect type setup in 0.71. we could use the `react-native.DeviceEventEmitter` instead. - [expo-linking]: remove the deprecated `Linking.removeEventListener` (which is also removed from upstream) - [firebase-recaptcha] remove broken web test because firebase ESM which is not supported by jest. this pr simply remove the test case because the package is deprecated. - [jest-expo-enzyme] remove this package and move to [the archived repo](https://github.com/expo/jest-expo-enzyme). enzyme cannot upgrade to jest 29. - remove `@types/react-native` and the versioned cli package check. because 0.71 ships the types directly. - [ncl] workaround `@react-native-community/slider`, `@react-native-segmented-control/segmented-control`, and `@react-native-masked-view/masked-view` type errors in the `react-native-71-fix.d.ts`. - for other details, please check the commit histories one by one. # Test Plan - ci passed - for test-suite ios ci error, i've mentioned in #20799
Re-export config-plugins from expo package and update docs (#18855)
[dev-client] update config plugin to remove exp+ scheme from autoVeri… (#18963)
[dev-client][plugin] Remove unneeded `react-native.config.js` modification (#15380)# Why Closes ENG-1694 # How After we land https://github.com/expo/expo/pull/15379, we won't longer need t
[dev-client][plugin] Remove unneeded `react-native.config.js` modification (#15380)# Why Closes ENG-1694 # How After we land https://github.com/expo/expo/pull/15379, we won't longer need to link our dependencies through `react-native.config.js`. So we can remove it ;) # Test Plan - Run config plugin and see if `react-native.config.js` was created ✅
[expo-dev-client][plugin] Fix android adding duplicate schemes (#15057)* [plugin] Fix android adding duplicate schemes * Update CHANGELOG.md
[multiple packages] Fix broken typings causing `check-packages` failures (#14912)
[dev-client][plugins] Link to installation instructions in config plugin error messages (#14307)# Why Closes ENG-1839. # How Add a link to the installation instructions in the error messag
[dev-client][plugins] Link to installation instructions in config plugin error messages (#14307)# Why Closes ENG-1839. # How Add a link to the installation instructions in the error message.
[eslint-config] remove `arrowParens` overwrite, reformat files (#14232)
[expo-dev-client] Add `getDefaultScheme` function for Expo CLI (#13230)Expo CLI needs to format the slug the same way as the dev client plugin to be able to use a correct scheme for the app. -
[expo-dev-client] Add `getDefaultScheme` function for Expo CLI (#13230)Expo CLI needs to format the slug the same way as the dev client plugin to be able to use a correct scheme for the app. - Rename `generateScheme` to `getDefaultScheme` - Expose it in the top level of the package - Add runtime argument validation to `getDefaultScheme`
[expo-dev-client] Autogenerate a common URI scheme for iOS/Android if none exist (#13147)
[expo-dev-client] Fix `react-native.config.js` not being added in `expo prebuild --platform android` (#13204)
[dev-client] Add expo-dev-client package (#12765)