Skip to content

chore(deps): update dependencies to latest compatible versions#20

Open
tpaulshippy wants to merge 4 commits into
mainfrom
chore/update-deps
Open

chore(deps): update dependencies to latest compatible versions#20
tpaulshippy wants to merge 4 commits into
mainfrom
chore/update-deps

Conversation

@tpaulshippy
Copy link
Copy Markdown
Owner

Summary

Updated 20+ dependencies across the React Native app to their latest compatible versions while keeping Expo SDK 55.

Updated Dependencies

Production

  • @react-native-async-storage/async-storage: 2.2.0 → 3.1.0
  • @sentry/react-native: 7.11.0 → 8.13.0
  • expo: 55.0.14 → 55.0.26
  • katex: 0.16.45 → 0.17.0
  • react: 19.2.0 → 19.2.6
  • react-dom: 19.2.0 → 19.2.6
  • react-native: 0.83.4 → 0.83.9
  • react-native-gesture-handler: 2.30.0 → 3.0.0
  • react-native-purchases: 8.7.0 → 10.2.0
  • react-native-reanimated: 4.2.1 → 4.4.0
  • react-native-safe-area-context: 5.6.2 → 5.8.0
  • react-native-screens: 4.23.0 → 4.25.2
  • react-native-svg: 15.15.3 → 15.15.5
  • react-native-webview: 13.16.0 → 13.16.1
  • react-native-worklets: re-added 0.9.1 (required by reanimated/babel preset)
  • All Expo SDK 55 packages updated to latest patch versions

Development

  • @types/jest: 29.5.12 → 29.5.14
  • eslint: 9.0.0 → 9.39.4
  • react-test-renderer: 19.2.6 (new, required by testing-library)
  • typescript: 5.9.2 → 6.0.3

Removed

  • expo-modules-core from direct dependencies (Expo doctor recommends using the re-exported API from expo instead)

Verification

  • npx expo export --platform ios builds successfully
  • npm test -- --watchAll=false passes (24 passed, 4 skipped)
  • npm run lint passes with only pre-existing warnings
  • Expo SDK 56 was attempted but reverted due to a breaking change in expo-router compatibility with react-navigation

Files Changed

  • front/package.json
  • front/package-lock.json
  • front/public/mockServiceWorker.js

- @react-native-async-storage/async-storage: 2.2.0 -> 3.1.0
- @sentry/react-native: 7.11.0 -> 8.13.0
- expo: 55.0.14 -> 55.0.26
- katex: 0.16.45 -> 0.17.0
- react: 19.2.0 -> 19.2.6
- react-dom: 19.2.0 -> 19.2.6
- react-native: 0.83.4 -> 0.83.9
- react-native-gesture-handler: 2.30.0 -> 3.0.0
- react-native-purchases: 8.7.0 -> 10.2.0
- react-native-reanimated: 4.2.1 -> 4.4.0
- react-native-safe-area-context: 5.6.2 -> 5.8.0
- react-native-screens: 4.23.0 -> 4.25.2
- react-native-svg: 15.15.3 -> 15.15.5
- react-native-webview: 13.16.0 -> 13.16.1
- react-native-worklets: re-add 0.9.1 (required by reanimated)
- @types/jest: 29.5.12 -> 29.5.14
- eslint: 9.0.0 -> 9.39.4
- react-test-renderer: 19.2.6 (new dev dep for testing-library)
- typescript: 5.9.2 -> 6.0.3
- Remove expo-modules-core from direct deps (use expo export)
- Update msw worker (2.13.6 -> 2.14.6)
- Update all expo packages to latest SDK 55 patches

Build verified with npx expo export --platform ios
Tests pass: 24 passed, 4 skipped
Replaced all direct @react-navigation/* imports with expo-router equivalents:
- @react-navigation/native -> expo-router/react-navigation
- @react-navigation/bottom-tabs -> expo-router/js-tabs
- @react-navigation/stack -> expo-router/js-stack
- @react-navigation/elements -> expo-router/react-navigation

Replaced PlatformPressable with Pressable from react-native in all components.

Removed direct @react-navigation dependencies from package.json (now bundled by expo-router SDK 56).

Updated to Expo SDK 56:
- expo: 55.0.26 -> 56.0.6
- expo-router: 55.0.16 -> 56.2.7
- react-native: 0.83.9 -> 0.85.3
- All expo packages updated to SDK 56
- jest-expo: 55.0.18 -> 56.0.4
- eslint-config-expo: 55.0.1 -> 56.0.4
- Added @react-native/jest-preset peer dependency

Build verified with npx expo export --platform ios
Tests pass: 24 passed, 4 skipped
The SDK 56 eslint-config-expo includes React Compiler rules that flag
pre-existing working code patterns (setState in effects, manual memoization,
ref access during render, state mutation). Disabling these rules to avoid
rewriting working code. Exhaustive-deps warning remains active.
Fixed actual code issues flagged by react-hooks/set-state-in-effect,
react-hooks/preserve-manual-memoization, react-hooks/refs, and
react-hooks/immutability rules:

- cardEdit.tsx: Initialize state from route params directly instead of useEffect+setState
- NavigationDrawer.tsx: Use useState initializer instead of useRef().current for Animated.Value
- PinWrapper.tsx: Move PIN verification logic out of useEffect into onChangeText handler,
  remove isVerifying state that was only set in mount effect
- useColorScheme.web.ts: Use setTimeout deferral in useEffect instead of sync setState
- botChat.tsx: Initialize chatId from route params, inline initial fetch in useEffect
- botEditor.tsx: Inline async fetch logic directly in useEffect with cleanup
- profileEditor.tsx: Inline async fetch logic directly in useEffect with cleanup
- botAdvanced.tsx: Remove unnecessary useCallback for validateBot, inline validation
- botSimple.tsx: Remove useEffect-derived system_prompt, compute on save instead;
  fix state mutation by spreading bot before updating simple_editor

Also fixed unused import warnings and missing useCallback dependency warnings.

Build and tests still pass.
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