Conversation
# Why [withAnimation](https://developer.apple.com/documentation/swiftui/withanimation(_:_:)) is useful to trigger native state based animation, by mutating state in worklet callback swiftui animates the value changes. <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # How Adds JS API that matches the `withAnimation` Swift API. ### Usage ```js const width = useNativeState(100); const height = useNativeState(100); withAnimation(Animation.spring({ response: 0.45, dampingFraction: 0.6 }), () => { "worklet"; width.value = width.value === 100 ? 200 : 100; height.value = height.value === 100 ? 200 : 100; }); ``` <!-- How did you build this feature or fix this bug and why? --> # Test Plan Tested locally. No examples/docs yet. It will be done in a separate PR. This will be used internally in #45828 for now. We dont have too many modifiers supporting observable state so it is not that useful currently (it is still useful if people extend Expo UI) https://github.com/user-attachments/assets/04b46b00-1d48-4cfc-afd3-3fb5b1d3e670 <!-- 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) - [ ] 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)
Co-authored-by: Aman Mittal <amandeepmittal@live.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…ll --fix` (#45816) # Why <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> For TV projects that alias `react-native` to `react-native-tvos `(`"react-native": "npm:react-native-tvos@<version>"`), make the dependency validator detect the alias and derive the correct `react-native-tvos`install spec from the bundled `react-native` version, so that`expo install --check`/`--fix` warn and install with the correct TV variant instead of overwriting `react-native` with the upstream package. # How Detection reads `node_modules/react-native/package.json`'s `name` field (`"react-native-tvos"` for TV projects). The validator already loads that manifest for the version, and `name` is set authoritatively by the package — more reliable than the project's `pkg.dependencies` spec string, which can vary across package managers and lockfile rewrites. The install spec is derived from the bundled `react-native` version because `react-native-tvos` ships per-minor dist-tags (`<major>.<minor>-stable`) and a `next` tag for pre-GA lines, so no separate `bundledNativeModules` entry for `react-native-tvos` is needed. # Test Plan - Tested in a new TV project. See https://github.com/douglowder/UpgradeTest for a project set up to manually test this change. - New unit tests added to the CLI <!-- 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). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
…rallel folders sharing prefix [EXP-58] (#45882) ## Summary The `tar.ts` extracting checks with `startsWith` had a typo that was lacking a `+ path.sep` append to check that we're not writing to parallel folders/files with the same prefix. ## 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)
…kage boundaries [EXP-17] (#45841) ## Summary We shouldn't allow the `webpageRoot` to leave the package root for devtools plugins. Practically, this isn't a huge concern, but makes sure that malicious devtools plugins cannot chain this into something more nefarious. ## Set of changes - Apply fix to `expo-modules-autolinking` to sanitize `webpageRoot` - Duplicate check to CLI just in case # 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)
… [EXP-52] (#45877) ## Summary Adds `expo login -p -` support to pass a password via stdin. This is mostly for our own uses to isolate the password input away from shell arguments, but is likely useful for users too. ## 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)
…-router routing and filter skip list [EXP-42] (#45900) ## Summary This is a first pass at aligning the RSC server routing with expo-router and expo-server, squashing the route conversion and path matching down to take advantage of expo-router's data structures. This simplifies the routing a lot and allows us to more easily add routing constraints to RSC. The "Component ID" minting has been centralized in the `expo-router` codebase to create some more clarity around how they're created, and how they ultimately match up on the server-side with the client-side. The `skip` parameter feature has been constrained to properly disallow skipping layouts, which was only loosely (and inaccurately) enforced before via the Component IDs. This turned out to not be very effective, but this wasn't clear since the conversion between our code and router and the Waku-inherited code was too complicated to follow. The new implementation now inherits server-side routing code from `expo-router` instead. This refactor doesn't touch the client-side router (yet) and hence doesn't pass on the full `contextKey` to the server-side RSC router. This means that overlapping layouts are still problematic, but this can be fixed with another subsequent PR. Once the two are aligned, this should unlock some more simplifications. ## 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 : )