Conversation
…r data by `contextKey` instead of URL pathname (#43017) # Why Loader data was keyed by URL pathname which was causing two problems: - Route groups were stripped, which meant `/(group)/index` resolved to `/` for loader lookups, colliding with the root index route - Index routes conflated with parent paths, which meant `/nested/index` and `/nested` produced the same key, so `useLoaderData()` would try and look up an incorrect loader URL # How By switching to `contextKey`, loader data is now unambiguously keyed for the client hook `useLoaderData()`, SSR render, hydration script, static export, and server runtime. # Test Plan - CI - Manual testing # 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) - [x] 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 #42958 `Section` currently does not support title + footer combination. This was intentional because SwiftUI does not have constructor to support title and footer. But supporting this usecase is trivial, so we can add it for convenience. <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # How Pass `Text` in header if title and footer are passed. <!-- How did you build this feature or fix this bug and why? --> # Test Plan Added example in `SectionScreen.ios.tsx` in NCL <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> # 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) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) --------- Co-authored-by: Jakub Grzywacz <kontakt@jakubgrzywacz.pl>
## Why Geodesic polylines were rendering as straight lines on iOS, making flight paths and other curved routes display incorrectly. This was causing issues for apps that need to show accurate great circle paths on maps. Fixes [geodesic line issue (discord)](https://discord.com/channels/695411232856997968/1418302770850566174/1418302770850566174) ## How The issue was that the `contourStyle` property was stored as a `String` instead of the proper `MapContourStyle` enum, and the contourStyle wasn't being applied to the MapPolyline view. Fixed by: 1. Changed `contourStyle` field type from `String` to `MapContourStyle` enum in `MapRecords.swift` 2. Applied `.contourStyle()` modifier to MapPolyline based on the enum value in `AppleMapsViewiOS18.swift` 3. Updated onPolylineClick handler to use `contourStyle.rawValue` for event data Before: <img width="381" height="298" alt="Screenshot 2025-09-18 at 9 54 41 PM" src="https://github.com/user-attachments/assets/f7c99d9a-b566-4268-949c-7523f5f51131" /> After: <img width="392" height="297" alt="Screenshot 2025-09-18 at 9 54 05 PM" src="https://github.com/user-attachments/assets/1f09044c-cdd0-4277-b3ce-5cabdfbec0ca" /> ## Test Plan - Created test app with flight paths using geodesic polylines - Verified curved paths render correctly on iOS 17+ - Tested both single and multiple polylines render properly - Confirmed straight polylines still work as expected - Tested polyline click events still work correctly ## Checklist - [x] Documentation is up to date - [x] Lint (`yarn lint` in package) and tests pass - [x] CHANGELOG.md entry added --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Vojtech Novak <vonovak@gmail.com>
# Why There's two tasks in the CLI startup phase that block the main thread: getting the IP address of the default route, and `@expo/config`'s `getConfig` (partially). Both have synchronous operations. The former has a `spawnSync` that was only needed because we didn't build this to be asynchronous. This holds up CLI startup by blocking. Instead, we should initialize the `UrlCreator` asynchronously (and leave some assertions around to validate that it's safe to do so), and not block the main thread. # How - Add separate `ip.ts` utilities that are async - Add `UrlCreator.init` async initializer - Refactor `UrlCreator` to get gateway info from its own state - Add `initUrlCreator` and run it in headless and implementation starts - Disable `lan-network`'s DHCP strategy for headless mode There's still a remaining gap of delay in the startup phase, which we can probably close more easily now: <img width="550" height="289" alt="image" src="https://github.com/user-attachments/assets/0724cf50-f9d1-4d09-afdd-abd0c50d2602" /> # Test Plan - Try various `expo start` operations and ensure assertions don't trigger # 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)
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 : )