From f983b20a8f0424353cbda5e876428fe97459e303 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Mar 2026 13:53:27 +0000 Subject: [PATCH] fix(mobile): fix iOS TurboModule crash and npm install peer dep conflict MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - UploadScreen.tsx: replace deprecated ImagePicker.MediaTypeOptions.Images with new array syntax ['images'] — the old enum is not accepted by the expo-image-picker v17 TurboModule on iOS, causing SIGABRT on Thread 2 - package.json: bump react 19.1.0 → 19.2.4 so react-dom@19.2.4 (peerOptional of @expo/metro-runtime) no longer conflicts; update @types/react to ~19.2.0 - package-lock.json: update react entry to 19.2.4 (integrity removed, will be regenerated by npm install on the next EAS build) Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com> --- mobile/package-lock.json | 9 ++++----- mobile/package.json | 4 ++-- mobile/src/screens/UploadScreen.tsx | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/mobile/package-lock.json b/mobile/package-lock.json index b1642765..02265f50 100644 --- a/mobile/package-lock.json +++ b/mobile/package-lock.json @@ -33,14 +33,14 @@ "expo-splash-screen": "~31.0.13", "expo-status-bar": "~3.0.9", "expo-web-browser": "~15.0.10", - "react": "19.1.0", + "react": "19.2.4", "react-native": "0.81.5", "react-native-safe-area-context": "5.6.0", "react-native-screens": "4.16.0" }, "devDependencies": { "@babel/core": "^7.24.0", - "@types/react": "~19.1.10", + "@types/react": "~19.2.0", "eslint": "^8.57.0", "eslint-config-expo": "~10.0.0", "typescript": "^5.3.0" @@ -10816,9 +10816,8 @@ } }, "node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", "license": "MIT", "engines": { "node": ">=0.10.0" diff --git a/mobile/package.json b/mobile/package.json index ccaa2218..cfdeab07 100644 --- a/mobile/package.json +++ b/mobile/package.json @@ -42,14 +42,14 @@ "expo-splash-screen": "~31.0.13", "expo-status-bar": "~3.0.9", "expo-web-browser": "~15.0.10", - "react": "19.1.0", + "react": "19.2.4", "react-native": "0.81.5", "react-native-safe-area-context": "5.6.0", "react-native-screens": "4.16.0" }, "devDependencies": { "@babel/core": "^7.24.0", - "@types/react": "~19.1.10", + "@types/react": "~19.2.0", "eslint": "^8.57.0", "eslint-config-expo": "~10.0.0", "typescript": "^5.3.0" diff --git a/mobile/src/screens/UploadScreen.tsx b/mobile/src/screens/UploadScreen.tsx index b9685ee9..fa827f72 100644 --- a/mobile/src/screens/UploadScreen.tsx +++ b/mobile/src/screens/UploadScreen.tsx @@ -68,7 +68,7 @@ export default function UploadScreen() { } const result = await ImagePicker.launchCameraAsync({ - mediaTypes: ImagePicker.MediaTypeOptions.Images, + mediaTypes: ["images"], quality: 0.9, allowsEditing: false, });