Conversation
…form (#45121) # Why To make the migration off react-navigation easier for our users, we'll release a codemod script which will transform direct `@react-navigation` imports into `expo-router` ones. # How 1. Using jscodeshift, create a transform which will change the import paths 2. Add cli for using the codemod # Test Plan 1. Manually publish the package and test on codebase 2. Unit tests # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [x] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why `File.createUploadTask()` is verbose for simple fire-and-forget uploads. This adds a `File.upload()` convenience method for callers who don't need pause/resume or manual task control. # How - Add `File.prototype.upload(url, options?)` that creates an `UploadTask` and immediately calls `uploadAsync()`, matching the existing `createDownloadTask` / `download` pattern. - Declare the method type in `ExpoFileSystem.types.ts`. # Test Plan - expo-file-system Jest tests # Checklist - [x] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why The CDP target was evaluated by connecting to it and evaluating JS properties to detect and exclude the dev menu. This is now obsolete, and the missing `Origin` header on this request was causing issues. # How - Drop evaluation filter for CDP apps/targets # Test Plan - Run an app (e.g. `apps/bare-expo`) and try to open the debugger # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [x] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why Fixes check-packages workflow https://github.com/expo/expo/actions/runs/25097696967/job/73538527981 # How `pnpm test -u` # Test Plan Check packages should be green # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [ ] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
…ent instance (#40172) # Summary Fixes a bug where `deleteEventAsync` with `instanceStartDate` parameter always deleted the first/master instance of a recurring event instead of the specified instance. # Motivation When users try to delete a specific occurrence of a recurring event (e.g., delete the 3rd occurrence of a weekly event), the first occurrence gets deleted instead. This makes it impossible to delete individual instances of recurring events. **Reproduction:** 1. Create a weekly recurring event starting Oct 6 2. Call `deleteEventAsync` with the Oct 13 instance's `startDate` as `instanceStartDate` 3. **Bug:** Oct 6 instance gets deleted instead of Oct 13 # Changes ## Root Cause In `packages/expo-calendar/ios/CalendarModule.swift`, the `getEvent` function had inverted logic: ```swift // Before (buggy): guard let firstEventStart = firstEvent.startDate, firstEventStart.compare(startDate) == .orderedSame else { return firstEvent // ❌ Returns master event when dates DON'T match } ``` The guard statement would return the master event when dates didn't match, preventing the search loop below from executing to find the correct instance. ### Fix Changed from guard to if statement to only return early when dates do match: ``` // After (fixed): if let firstEventStart = firstEvent.startDate, firstEventStart.compare(startDate) == .orderedSame { return firstEvent // ✅ Only returns when dates match } // Falls through to search loop for correct instance ``` ### Test Plan Automated Test Added test in apps/test-suite/tests/Calendar.js that: 1. Creates a recurring event with 3 weekly occurrences 2. Deletes the 2nd instance using instanceStartDate 3. Verifies only the 2nd instance was deleted (1st and 3rd remain) Before fix: Test would fail - 1st instance deleted instead of 2ndAfter fix: Test passes - correct instance deleted To run: ``` cd apps/bare-expo yarn test:ios ``` Manual Testing Tested manually in native-component-list on iPhone with iOS 18: 1. Navigate to the native-component-list app: ``` cd apps/native-component-list ``` 2. Build and run on device: ``` npx expo run:ios --device ``` 5. Test the fix: - Navigate to Calendars section - Select any calendar → View Events - Tap Add New Recurring Event (creates a weekly recurring event) - Select a recurring event instance (not the first one) - Tap Delete Event on the specific instance - Expected: Only that specific instance is deleted - Before fix: The first/master instance would be deleted instead - After fix: ✅ The correct instance is deleted --------- Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )