Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Jan 12, 2026

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 : )

behenate and others added 8 commits January 12, 2026 17:56
# Why

Once the recording is finished the app shows the playback screen for a
second and goes back right away on android.

# How

In the recording toggle return when recording is finished. Add a
separate go back button.

# Test Plan

Tested in BareExpo on Android
# Why

<img height="500"
alt="simulator_screenshot_BFF37225-21C5-4CA6-90E8-379AFACF7B48"
src="https://github.com/user-attachments/assets/5972990c-4afc-4090-b985-9f0eb5984c08"
/>

# How

1. Add native component implementation
2. Use
[`searchBarPlacementBarButtonItem`](https://developer.apple.com/documentation/uikit/uinavigationitem/searchbarplacementbarbuttonitem)

# Test Plan

1. Manual testing
2. local e2e

# 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

When passing array style to child of `Slot` (or `<Link asChild`) the
styles are not applied correctly and on web an error is thrown. Reported
in: #31990

The issue is caused by radix Slot, which merges styles by spread
operator -
https://github.com/radix-ui/primitives/blob/907513701a75b11a115563f9554ac6e8147bf2db/packages/react/slot/src/slot.tsx#L189

This PR does not fix the issue itself, but makes the error clearer and
actionable.

Related to: #31373

# How

When child with `style={[...]}` is passed to a `Slot`, an error is
thrown

# Test Plan

Manual and unit tests 

# 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)
# Why

`expo-brownfield` had some leftover TODOs and issues that were pointed
out in the other reviews - adding them in a separate PR to keep the one
with testing setup (#42032) minimal

# How

- Removed leftover TODO in CLI
- Resolved a TODO regarding missing type in xcode utils in the plugin
and extracted native target querying into a separate function
- Moved CLI code out of `plugin/` to separate and to better intergrate
with EM supporting separate plugin and cli targets
- Removed direct injection of brownfield target name in `Podfile` in
favor of passing via `Podfile.properties.json` and the config plugin mod
(as per discussion here:
#42048 (comment))
- Updated lint script to lint all three targets which removes the
discrepancy between CI and running only `expo-modules lint` locally +
added separate script for linting with `--fix` option
- Removed the `files` array from `package.json`

# Test Plan

- Verified that all needed files are included without the `files` array
explicitly defined
- Verified that new linting scripts setup lints all targets
- Verified that the build (`yarn prepare`) passes for all three targets
- Validated the built package using a test app

# 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)
# Why

Follow up #41404 and #41415 for Android.
Adds support for `JavaScriptArrayBuffer` and `NativeArrayBuffer` in Expo
modules.

# How

- Similarly to Android version, created two types of ArrayBuffers:
  - `JavaScriptArrayBuffer` that wraps JSI ArrayBuffer object
- `NativeArrayBuffer` that manages direct memory, is thread safe, can be
created on native side. When used as argument type, a JS buffer is
copied. Then, zero-copy JSI ArrayBuffer is created upon returning.
- Both inherit the `ArrayBuffer` class which contains some utilities for
working with `Unsafe[...]Pointer`s and `Data`.

I tried to keep code organized similarly to the typed arrays
implementation, to keep it somehow consistent.

# Test Plan

- Created native unit test specs for the APIs.
- Manual testing in NCL

# 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)

---------

Co-authored-by: Łukasz Kosmaty <kosmatylukasz@gmail.com>
@pull pull bot locked and limited conversation to collaborators Jan 12, 2026
@pull pull bot added the ⤵️ pull label Jan 12, 2026
@pull pull bot merged commit b660ed1 into code:main Jan 12, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants