Skip to content

feat(deps): Upgrade to Expo 54, React 19, RN 0.81, React Navigation 7#83

Merged
giolaq merged 5 commits into
AmazonAppDev:mainfrom
giolaq:feat/upgrade-expo-54
May 7, 2026
Merged

feat(deps): Upgrade to Expo 54, React 19, RN 0.81, React Navigation 7#83
giolaq merged 5 commits into
AmazonAppDev:mainfrom
giolaq:feat/upgrade-expo-54

Conversation

@giolaq
Copy link
Copy Markdown
Contributor

@giolaq giolaq commented Apr 10, 2026

Closes #71

Summary

Upgrades all core dependencies to their latest versions:

Package Before After
Expo 51 54
React 18.2 19.1
React Native (tvOS) 0.74 0.81
React Navigation 6.x 7.x
react-tv-space-navigation 3.6 6.0.0-beta1
TypeScript 5.3 5.7
react-native-reanimated 3.10 3.17
react-native-screens 3.31 4.9
react-native-safe-area-context 4.10 5.4
react-native-gesture-handler 2.16 2.24

Breaking changes addressed

  • React Navigation 7: Removed animationEnabled from drawer screen options (no longer a valid prop)
  • react-tv-space-navigation v5+: Removed deprecated numberOfRenderedItems and numberOfItemsVisibleOnScreen props from SpatialNavigationVirtualizedList — now auto-calculated based on parent view size
  • React 19: Removed react-test-renderer (deprecated), updated @types/react to 19.x

Scope

  • apps/expo-multi-tv — fully upgraded
  • packages/shared-ui — types and TS version updated
  • ⏭️ apps/veganot touched (uses @amazon-devices/* scoped packages with separate versioning)

Notes

  • react-tv-space-navigation 6.0.0 stable hasn't been released yet — using 6.0.0-beta1 which is the only version with React 19 compatibility
  • 74 pre-existing TS errors remain (all "Cannot find module" for peer deps in shared-ui — not introduced by this PR)

Testing

  • Android TV
  • Fire TV (Fire OS)
  • Fire TV (Vega OS) — N/A, vega app unchanged
  • Apple TV (tvOS)
  • Web

@iAMkVIN-S
Copy link
Copy Markdown
Contributor

@giolaq Is this something you're still looking to have tested prior to merging? 🙏

giolaq added 2 commits May 6, 2026 16:15
- Pin react/react-dom to 19.1.0 (match react-native-renderer)
- Upgrade react-native-screens to 4.24.0 (ChoreographerCompat removed)
- Upgrade react-native-reanimated to 3.19.5 (API changes in RN 0.81)
- Upgrade expo-dev-client to 6.0.21 (Kotlin metadata version mismatch)
- Use props.navigation instead of useNavigation() in drawer content
- Use jumpTo() instead of navigate() for drawer screen switching
- Move SpatialNavigationRoot from DrawerNavigator into CustomDrawerContent
  so it doesn't block screen content spatial navigation when drawer is closed
- Add onDirectionHandledWithoutMovement to drawer content root for closing
- Screens retain their own SpatialNavigationRoot for independent focus control

Also upgrades react-native-gesture-handler to 2.31.2 for tvOS/RN 0.81
compatibility and removes expo-dev-client to fix dev server connectivity.
@giolaq giolaq merged commit 8eab9b3 into AmazonAppDev:main May 7, 2026
@giolaq giolaq deleted the feat/upgrade-expo-54 branch May 7, 2026 12:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Updating core packages to latest versions (Expo 54.x)

2 participants