Skip to content

Conversation

@dannash100
Copy link
Contributor

@dannash100 dannash100 commented Dec 11, 2025

Changes

Add a brief description of the changes in this PR to help give the reviewer context.

Deploys

  • Deploy to Tamanu Internal

Tests

  • Run E2E Tests

Remember to...

  • ...write or update tests
  • ...add UI screenshots and testing notes to the Linear issue
  • ...add any manual upgrade steps to the Linear issue
  • ...update the config reference, settings reference, or any relevant runbook(s)
  • ...call out additions or changes to config files for the deployment team to take note of

Note

Upgrades mobile to RN 0.76, updates Android Gradle/Kotlin/SDK, migrates DB to react-native-nitro-sqlite and storage to MMKV, modernizes navigation/options and tooling, and applies minor typings/fixes.

  • Mobile (React Native 0.76)
    • Bump react-native to ^0.76.0 and react to 18.3.1; refresh major RN libs (navigation, gesture-handler, screens, paper, reanimated, etc.).
    • Replace react-native-quick-sqlite with react-native-nitro-sqlite; enable simple null handling; add Jest mock and alias; update babel/metro configs.
    • Switch Redux persist storage to MMKV (mmkvStorage); remove sensitive storage.
    • Update navigation stacks to screenOptions={{ headerShown: false }} instead of headerMode.
    • BackendContext: remove bg-thread, lazy-init singleton, use InteractionManager for init, adjust error accessors.
    • App: memoize paperTheme; ModalInfo: default screenPosition via param; Root: lazy-load Storybook.
    • Minor TypeScript typing in TamanuApi buffer stream handling.
  • Android build/system
    • Upgrade Gradle wrapper to 8.10.2, AGP via RN plugin, Kotlin 1.9.25, NDK 26.1, buildTools 35.0.0, SDK 35.
    • Migrate to new RN Gradle plugin setup and autolinking; apply Kotlin Android plugin; enable New Architecture; Hermes on.
    • Convert MainActivity/MainApplication to Kotlin; remove Flipper debug sources; update settings.gradle and project structure.
    • Manifest: replace legacy storage with scoped media read permissions; enable RTL support.
  • Tooling/Config
    • Metro: new config using @react-native/metro-config, custom blockList, explicit module paths.
    • Babel: use @react-native/babel-preset; alias sqlite package.
    • Jest: map core modules and new sqlite mock; tidy LogBox setup.
  • Misc
    • react-native-svg override pinned to 15.15.1 (root) and 15.15.0 (mobile); add Android .cxx to .gitignore; Gemfile pins CocoaPods/AS deps to avoid build issues.

Written by Cursor Bugbot for commit de32900. This will update automatically on new commits. Configure here.

@tcodling
Copy link
Contributor

bugbot run

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no bugs!


"ms": "^2.1.3",
"react": "18.2.0",
"react-native-svg": "^12.1.0",
"react-native-svg": "15.15.1",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Todo dont think need this anymore

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.

3 participants