[ncl] refactor deprecated code, remove no longer valid ignores (#20555)
Upgrade to react-native 0.69 (#18006)# Why for sdk 46 close ENG-5353 # How - update packages - react -> 18.0.0 - react-native -> 0.69.0 - react-dom -> 18.0.0 - react-native-w
Upgrade to react-native 0.69 (#18006)# Why for sdk 46 close ENG-5353 # How - update packages - react -> 18.0.0 - react-native -> 0.69.0 - react-dom -> 18.0.0 - react-native-web -> ~0.18.1 - react-test-renderer -> ~18.0.0 - @types/react -> ~18.0.14 - @types/react-native -> ~0.69.1 - early patch react-native for 0.69.1 fixes - https://github.com/facebook/react-native/commit/43f831b - https://github.com/facebook/react-native/commit/c2088e1 - https://github.com/facebook/react-native/commit/f97c6a5 - https://github.com/facebook/react-native/commit/79baca6 - https://github.com/facebook/react-native/pull/34064#issuecomment-1168810152 - migrate `expo-template-bare-minimum`, `bare-expo`, `bare-sandbox` to 0.69. reference from https://react-native-community.github.io/upgrade-helper/?from=0.68.1&to=0.69.0 - also remove the `hermesCommand` because 0.69 uses the builtin hermes-engine - `expo-av`, `expo-modules-core`, `expo-gl-cpp`: fix android cpp building errors, because 0.69 ships both release and debug aar - `expo-dev-client`: fix android build error from RedBox package rename - `html-elements`: update RNWView where react-native-web removed [the `css` import](https://github.com/necolas/react-native-web/commit/b27c9820) - `expo`: move Expo.podspec out from ios, because newer [rn-cli removed the `podspecPath` and `project` support](https://github.com/react-native-community/cli/commit/25eec7c#diff-0dddbcedebb33032fcac5991f3dcdfa44157e6ae87afcf3dabcd240a0db09832L58). - [ ] disable dev-client because the vendored reanimated in dev menu doesn't support 0.69 yet, e.g. `folly_json -> folly_runtime` - update reanimated and gesture-handler to latest for 0.69 support - `jest-expo`: update to [fix the deprecated react-native-web jest preset](https://github.com/necolas/react-native-web/commit/9b0c119) - `NCL`, `home`, patch `react-native-svg`: fix react 18 that [`children` should be explicitly added](https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-typescript-definitions) - `@expo/cli` fix react-native-web and react-dom version checks # Test Plan - android bare-expo smoke test - ios bare-expo smoke test - ci passed - updates e2e is broken because in the flow the react-native doesn't include 0.69.1 fixes.
show more ...
[lint] Add "caughtErrors: 'all'" to linter config (#16591)Why --- ES2019 added "optional catch bindings" so that `e`/`error`/etc. don't need to be specified in catch clauses if the thrown value i
[lint] Add "caughtErrors: 'all'" to linter config (#16591)Why --- ES2019 added "optional catch bindings" so that `e`/`error`/etc. don't need to be specified in catch clauses if the thrown value isn't used. This changes our lint rules to warn if unnecessary error variables are declared. https://2ality.com/2017/08/optional-catch-binding.html. In JS, as opposed to TS, we allow unused catch bindings if the variable names are prefixed with an underscore. This is so that JS targeting older JS interpreters can write `catch (_) {}` if needed. With TS we disallow unused catch bindings since tsc can compile code to its target JS version. How --- Added `caughtErrors: 'all'` to the no-unused-vars rule's configuration. As part of this change, I made the TypeScript linting rules apply only to .ts/.tsx/.ts.d files and updated the unit test snapshots. Test Plan --- Added unit tests to the linter. Ran linter over all modules in this repo with expotools.
[ncl] Clarify a couple of examples
[native-component-list] Inform user about required API key for google geocoding (#14595) (#14601)
[eslint-config] remove `arrowParens` overwrite, reformat files (#14232)
[ios] small fixes to NCL and test suite following QA (#13224)* better bg location console errors * fix facebook native ad id * close sqlite db after creating * fix expo-device screen to on
[ios] small fixes to NCL and test suite following QA (#13224)* better bg location console errors * fix facebook native ad id * close sqlite db after creating * fix expo-device screen to only show device-compatible options * small improvements to slider * google sign in only available in standalone * small trackingtransparency fix * add missing NCL screens * Apply suggestions from code review
[ncl] lazy load components and improve startup (#12503)* lazy load screens * fix up test suite * load less icons * lint fix * Update AppNavigator.js * fix tsc * Create debugging.w
[ncl] lazy load components and improve startup (#12503)* lazy load screens * fix up test suite * load less icons * lint fix * Update AppNavigator.js * fix tsc * Create debugging.web.ts * updated pods
[NCL] Update background location screen for Google app review (#12296)* Update background location screen for Google app review * remove imports unused * address PR feedback
[ncl] A bunch of improvements while testing
[ncl] Split out BG location into its own NCL entry (#12221)Why: This is to make it easier to demo on Android, where we link to NCL from the Explore tab. How: Just moved the BG location map scree
[ncl] Split out BG location into its own NCL entry (#12221)Why: This is to make it easier to demo on Android, where we link to NCL from the Explore tab. How: Just moved the BG location map screen to be listed as a top-level item in the Expo APIs list. Test Plan: Built Expo Go for Android from source (ran in an emulator), ran `expo start` in NCL, loaded it and confirmed the map showed up.
[expo-location][expo-permissions] Refactor location permissions (#12063)# Why A follow up to the https://github.com/expo/expo/pull/11565. # How Split location permissions into `foreground`
[expo-location][expo-permissions] Refactor location permissions (#12063)# Why A follow up to the https://github.com/expo/expo/pull/11565. # How Split location permissions into `foreground` and `background` permission. Unfortunately, not all versions of Android or iOS have `background` permission, but for those, we can just ask for all permission. If Android supports background permissions: - `Permissions.LOCATION` is the same as `Permissions.LOCATION_FOREGROUND` - `Permissions.LOCATION_FOREGROUND` only asks for `ACCESS_FINE_LOCATION` and `ACCESS_COARSE_LOCATION` - `Permissions.LOCATION_BACKGROUND` only asks for `ACCESS_BACKGROUND_LOCATION` If iOS supports background permissions: - `Permissions.LOCATION` is the same as `Permissions.LOCATION_FOREGROUND` - `Permissions.LOCATION_FOREGROUND` only asks for `when in use` permission. - `Permissions.LOCATION_BACKGROUND` only ask for `always` permission. > On Web, both `FOREGROUND` and `BACKGROUND` are handled by the same logic. Both of these permissions will just ask the location of the browser. # Test Plan (Tested on iOS 12, 13, 14, and Android 28, 29, 30) - using NCL ✅ - using a simple app ✅
[ncl] Fix lint warnings (#10443)# Why Let's make NCL a top-notch application, always tidy etc. # How - configured ESLint for NCL - fixed all warnings automatically - changed manually all
[ncl] Fix lint warnings (#10443)# Why Let's make NCL a top-notch application, always tidy etc. # How - configured ESLint for NCL - fixed all warnings automatically - changed manually all `React.Component<object, …` that ESLint "automatically fixed" to `<{}` as per https://github.com/expo/expo/pull/10229#discussion_r490961694 # Test Plan `yarn lint` no longer warns about warnings.
Added permission check to geocoding screen
[workspace] ESLint fixes for home and some packages (#9830)# Why Once we upgraded ESLint we no longer need to `eslint-disable` `?.` notation. We can also fix some Home lint checks so they don't
[workspace] ESLint fixes for home and some packages (#9830)# Why Once we upgraded ESLint we no longer need to `eslint-disable` `?.` notation. We can also fix some Home lint checks so they don't appear on PR checks. # How - `yarn lint --fix` in Home - rewrote `ProfileView` to a function to remove warning about `setState` in `componentDidMount` - disabled warning about `setState` in `componentDidUpdate` in `ProjectsScreen` (thought of moving it to `getDerivedProps…`, but I don't think it's worth it (and I'm afraid of braking it) - removed `// eslint-disable-next-line` from other code which fixed `?.` warning. # Test Plan `yarn lint` passes in `home`. `yarn` rebuilt `expo-notifications` successfully.
fix web location screens
[location] Improve and refactor Geocoding API (#9444)# Why Messy code. # How - `geocodeAsync` and `reverseGeocodeAsync` now always use native implementations by default and don't fall back
[location] Improve and refactor Geocoding API (#9444)# Why Messy code. # How - `geocodeAsync` and `reverseGeocodeAsync` now always use native implementations by default and don't fall back to Google Maps API (it's been causing some mess and inconsistent results on Android). - Since we still need Google Maps API implementation (for Web) I added such possibility to use it on other platforms as well with the new `useGoogleMaps` option. - Added `district`, `subregion` and `timezone` fields to geocoded address object. - Fixed `LocationGeocodedAddress` type to reflect the possibility of receiving `null` values. - Added more TSDoc comments. - Refactored `GeocodingScreen` in NCL. # Test Plan Tested NCL examples in the new Geocoding screen on iOS and Android ✅ Went through test-suite tests ✅
[location] expo-location audit and refactor (#9251)# Why `expo-location` wins the challenge for the number of issues being opened Fixes #4015 Fixes #4304 Fixes #5249 # How I've de
[location] expo-location audit and refactor (#9251)# Why `expo-location` wins the challenge for the number of issues being opened Fixes #4015 Fixes #4304 Fixes #5249 # How I've decided to do an audit over it which should result in fixing some of those reported bugs and generally improve its reliability and make API more consistent across platforms. - `getLastKnownPositionAsync` - Now doesn't request for the new location on iOS - No longer rejects when the last known location is not available, returns `null` instead - Removed deprecated `enableHighAccuracy` - Removed `maximumAge` and `timeout` options from `getCurrentPositionAsync` — they were Android only and honestly the same behavior can be implemented on the JS side for all platforms so I see no reason to maintain this code on the native side - Some of TypeScript types have changed their names — it might be considered breaking, but this is a change for the better - `LocationData` -> `LocationObject` - `Accuracy` -> `LocationAccuracy` - `ProviderStatus` -> `LocationProviderStatus` - `HeadingData` -> `LocationHeadingObject` - ... and more like this ... - Added some new tests - Improved Web support - Added missing methods (for permissions and last known location) - Make types consistent with other platforms - Enabled web-compatible tests in test-suite - Better handling of `watchPositionAsync` and `watchHeadingAsync` subscriptions - `altitudeAccuracy` now available on Android as well (at least Android 8.0) # Test Plan - Ran through `test-suite` tests on Android, iOS and Web – all is green ✅ # To do later - I'm wondering whether it's a good chance to rename enums to be all UPPER_CASED as we use this convention right now
[ncl][chore] use community async storage (#9018)* Install community async-storage * Install pods in bare-expo * Migrate NCL to community async storage
Migrate to react-navigation v5 (#8857)* Migrate apps/ to use react-navigation v5 * Update GeofencingScreen.tsx * Update GeofencingScreen.tsx * Updated useFocusEffect * Update MediaLibra
Migrate to react-navigation v5 (#8857)* Migrate apps/ to use react-navigation v5 * Update GeofencingScreen.tsx * Update GeofencingScreen.tsx * Updated useFocusEffect * Update MediaLibraryScreen.tsx * Update GeofencingScreen.tsx * Updated onFocus methods * Update BackgroundLocationMapScreen.tsx * Fix tab loading * Update ExpoComponents.ts * Updated Media Library * fix bare-expo routing in e2e * Update TaskManagerScreen.tsx * Improve linking configuration * Update MainNavigator.tsx * Updated prop signature * Update MainNavigator.tsx Co-authored-by: Brent Vatne <[email protected]>
[chore] Fix lint and typescript errors in NCL (#8861)* Fix lint errors * Revice web unimplemented views * Delete useDimensions.ts * Remove unused screen object properties * Convert to f
[chore] Fix lint and typescript errors in NCL (#8861)* Fix lint errors * Revice web unimplemented views * Delete useDimensions.ts * Remove unused screen object properties * Convert to functional components * Fix TypeScript errors * Fix subscription bug
[expo-notifications] Update NCL example (#8617)* [expo-notifications] Update NCL example * [expo-notifications] Fix title of the local notification
Fix web NCL (#6546)* [WIP][CORS error] disable remote font loading * Fixed safe-area * Fix screen loading * Create BatteryScreen.web.tsx * Add missing background screens * fix view s
Fix web NCL (#6546)* [WIP][CORS error] disable remote font loading * Fixed safe-area * Fix screen loading * Create BatteryScreen.web.tsx * Add missing background screens * fix view shot * fix screens list * Update ComponentListScreen.tsx
[sdk33][ncl][home] add Location.isBackgroundLocationAvailableAsync()
[ncl] some improvements in native-component-list
12