-
Notifications
You must be signed in to change notification settings - Fork 0
[pull] main from expo:main #494
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
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
…ckground recording (#42134) # Why We had some reports from our QA that audio recording in the background was not possible. After testing it seemed that `shouldPlayInBackground` had to be set together with `allowsBackgroundRecording` for this to work. # How This commit fixes so that only `allowsBackgroundRecording` is required for background recording on Android - `shouldPlayInBackground` is for audio playback only. # Test Plan ✅ Bare Expo on Android (iOS is not touched) now works correctly. # 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). --------- Co-authored-by: Expo Bot <[email protected]>
# Why - Updates BottomSheet to match SwiftUI [sheet](https://developer.apple.com/documentation/swiftui/view/sheet(ispresented:ondismiss:content:)) - Added support for `height` detents via `presentationDetents` modifier - Simplify BottomSheet native code by moving the complexity to individual modifiers. <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # How - Removed props from BottomSheet in favour of modifiers. - Updated BottomSheet docs and improved example - Added `fitToContents` prop for content fitting BottomSheet, the prop name is kept similar to react native screen's formSheet. <!-- How did you build this feature or fix this bug and why? --> # Test Plan Tested docs and example locally. https://github.com/user-attachments/assets/06a14e36-3e82-49d5-97e9-a5297b1ab7f1 <!-- 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. --> - [ ] 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: Aman Mittal <[email protected]>
…ose warning (#41971) # Why Resolves #41968 / #41304 On Firefox specifically, a `WebSocket` fires a `close` event when the page refreshes. This happens just before `pagehide` / `visibilitychange`, as a tab becomes unavailable. This then shows our HMR-close warning, telling users that the WebSocket disconnected, which persists beyond the reload since the new tab is already available and the console is partially persisted. # How The `pagehide` and `visibilitychange` events fire after the `close` event, and using those with some kind of timing/buffer trick would be too complex for this case. There's nothing on the event tells us that it's the current tab that's closing. We can't check for `wasClean` / code 1001 since that could be the server shutting down properly. The cleanest solution seems to be to just add a timeout that is long enough to never fire since the tab is already closing. It doesn't seem like there's an obvious event/timer that never fires, instead, the timeout has to just be long enough. Sorry. # Test Plan - Open SDK 54 web app in Firefox and reload; check that the HMR disconnection warning doesn't show with this patch applied # 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 Create a base package for expo-widgets stack PRs. # How Create new package # Test Plan Nothing to test yet.
# Why This PR improves the accessibility of Maestro test artifacts by renaming the hidden `.maestro` folder to `maestroArtifacts` before uploading it as an artifact. This makes the test results easier to access when downloaded locally. # How - Added a new step "📦 Prepare testing artifacts" to both iOS and Android test workflows - Modified the artifact upload paths to use the renamed folder - Removed the `include-hidden-files: true` flag since it's no longer needed # Test Plan - download the artifacts, maestro artifacts are not in a hidden folder # Checklist - [ ] 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)
…ding screen (#42155) # Why In #42134 I removed the button "Stay active in the background", this is not necessary, it can still be used in the recording screen since it contains a player as well as a recorder. # Test Plan ✅ Bare Expo # Checklist - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin).
# Why
SwiftUI supports nested like Text syntax via `Text("Hello
\(Text("World"))")` text concatenation. We want to support it with Expo
UI.
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
# How
We pass the nested `Text` components as react children and concat on
native recursively. The concatenation is only supported if the modifier
returns a Text, so i added `applyTextModifier` function to modifier
registry that is used by `Text` on concatenation.
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
Added example and docs.
<img width="400" height="auto" alt="Screenshot 2025-12-17 at 9 10 31 PM"
src="https://github.com/user-attachments/assets/ac2632d8-21e2-49f5-a0ba-715ba8152c87"
/>
<!--
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: Aman Mittal <[email protected]>
Co-authored-by: Kudo Chien <[email protected]>
…ield` CLI (#42152) # Why This was missing a non-build entrypoint file. That means the shebang was missing from the `bin` entrypoint and that yarn was modifying the execution rights of `build`, which would be lost when `build` is cleared and wasn't present on `main` either. # How - Add `bin/cli.js` entrypoint (chmod `+x`) - Switch `bin` to `bin/cli.js` # Test Plan - n/a # 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)
…rvice advertisement to `expo start` (#42138) # Why Resolves DVT-79 We'd like to replace port scanning (and eventually probably the `DevelopmentSession`) when running `expo start`. This would allow dev clients and Expo Go to search for apps without the need to either make requests to the API (keeping track of `DevelopmentSession`s) and without scanning ports. # How The advertising is activated by `EXPO_UNSTABLE_BONJOUR`, so we can get it into a canary release. Once we're confident it's working and corresponding client functionality is present we can make it the default. Supporting DNS-SD is a bit tricky and while there's several solutions we can consider, the requirements are lengthy: - `expo start` is a long-running process, therefore the DNS-SD advertiser... - must behave well and not cause excessive traffic - must react to updating/changing network interfaces and addresses - must avoid conflicts as per the specification - must be fault-tolerant - running on all kinds of networks, it must... - respond differently to different NICs to avoid address spill - support responding on `lo0`, when offline, and on all non-local networks otherwise - resolve conflicts with human-readable names preferably - running on macOS, it must avoid conflicts with `mDNSResponder` - running on Windows, it must support its differences in setting up a UDP6 socket - it must be maintainable, tested, and not pose a supply chain risk These requirements are captured in `dnssd-advertise` with corresponding tests. # Test Plan - `EXPO_UNSTABLE_BONJOUR=1 expo start`, e.g. in `apps/router-e2e` - Then: `dns-sd -B _expo._tcp.` - Then: `dns-sd -L "Router E2E" _expo._tcp` **Manual Checks:** - [x] Tested manually on macOS - [x] Tested manually on Linux - [x] Tested manually on Windows # 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)
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 : )