Skip to content

Upgrade React Native to 0.86 and modernize dependencies, native tooli… - #858

Open
coryzoon wants to merge 9 commits into
masterfrom
react-native-0.86-upgrade
Open

Upgrade React Native to 0.86 and modernize dependencies, native tooli…#858
coryzoon wants to merge 9 commits into
masterfrom
react-native-0.86-upgrade

Conversation

@coryzoon

@coryzoon coryzoon commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Upgrades the mobile app to React Native 0.86 and React 19.2, modernizes the JavaScript and native dependency stack, and updates the supported Node, Ruby, Bundler, CocoaPods, Android, and iOS tooling. This PR also incorporates the push-notification fixes from #857 and compatibility fixes found during regression testing.

React Native and tooling

  • Upgrades React Native to 0.86.0 and React to 19.2.7, with aligned Metro, Babel, CLI, Jest, and React Native configuration.
  • Updates the project to Node 24.18.0, Ruby 4.0.6, Bundler 4.0.15, and CocoaPods 1.17.0.
  • Applies the required Android Gradle and iOS Pod/codegen changes while preserving the app's existing native configuration.
  • Updates the README with the supported toolchain, installation steps, and required local signing/configuration files.

Dependency updates

  • Updates maintained React Native and JavaScript dependencies, including Firebase, Sentry, React Navigation, Reanimated/Worklets, Gesture Handler, Screens, Async Storage, NetInfo, WebView, i18next, and Ramda.
  • Replaces rn-fetch-blob with react-native-blob-util.
  • Replaces @react-native-community/masked-view with @react-native-masked-view/masked-view.
  • Migrates from the deprecated monolithic react-native-vector-icons package to scoped icon-family packages while preserving the custom Zooniverse font.
  • Updates Ramda imports and removed APIs for Ramda 0.32 compatibility. Additional regression coverage for the affected classification, drawing, project, reducer, and workflow code is tracked in Upgrade ramda or replace #744.
  • Includes the applicable Dependabot dependency updates reviewed during the upgrade.

Push notifications

  • Queues push-notification navigation until React Navigation is ready.
    • Fixes cold-start notification taps opening the app to Home instead of the Notifications screen.
  • Updates push test-token handling for tester accounts.
    • Test users now log FCM/APNs tokens to Sentry instead of using the old email-based token flow.
    • Removes the MailerSend email helper used only for push token testing.
  • Updates Firebase/iOS configuration metadata.
  • Adds a short README checklist for push-notification troubleshooting.

Compatibility and runtime fixes

  • Replaces the removed StyleSheet.absoluteFillObject API with StyleSheet.absoluteFill.
    • Restores full-size, overlaid frames in animated multi-image subjects.
    • Restores centered workflow and subject loading overlays.
    • Restores the classifier header logo, title, menu, and background-blur positioning.
    • Updates the same removed API in full-screen media, subject viewers, and feedback overlays.
  • Makes startup sign-out safe when screen navigation is unavailable and queues root navigation until React Navigation is ready.
  • Keeps the public home discipline list available when private user state is cleared during sign-out.
  • Adds privacy-safe Sentry diagnostics if the guest home screen reaches the unexpected empty-list state.

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.

1 participant