Conversation
# Why Adds documentation for the universal TextInput introduced in #45205. <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # How Adds a new textinput universal component docs and updates some examples in textfield docs. <!-- How did you build this feature or fix this bug and why? --> # Test Plan Verified rendered docs locally for unversioned/ and v56.0.0/. <!-- 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: Kudo Chien <ckchien@gmail.com>
# Why the expo package has a dependency on @expo/vector-icons which we don't want to have. # How remove the dep (but add it to the apps that depend on it, I'll migrate those to the community packages in another PR) <!-- How did you build this feature or fix this bug and why? --> # Test Plan <!-- 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) - [ ] 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)
#45627) # Why <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # How <!-- How did you build this feature or fix this bug and why? --> # Test Plan <!-- 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)
# Why
`Sharing.shareAsync` on iOS leaks its promise when the user picks an
activity in the share sheet and then cancels the follow-up dialog.
Easiest reproduction: present a share sheet with a PDF, tap **Print**,
then tap **Cancel** in the print dialog. The promise never resolves, and
any caller-side state guarded by `await Sharing.shareAsync(...)` (busy
flags, ref-based sheet tracking) stays stuck and blocks subsequent
calls.
The current `completionWithItemsHandler` in
`packages/expo-sharing/ios/SharingModule.swift` only resolves two of
four `(activityType, completed)` permutations:
```swift
activityController.completionWithItemsHandler = { type, completed, _, _ in
if type != nil && completed { promise.resolve(nil) }
if type == nil && !completed { promise.resolve(nil) }
}
```
When the user picks an activity and cancels its follow-up dialog, iOS
calls the handler with `type != nil, completed == false`. Neither branch
matches.
`UIActivityViewController` invokes `completionWithItemsHandler` exactly
once on dismissal for every permutation, so all four cases are terminal
and should settle the promise. Apple docs:
https://developer.apple.com/documentation/uikit/uiactivityviewcontroller/completionwithitemshandler.
Related long-standing reports closed without a fix: #8218, #20567,
#21418, #35835.
# How
Resolve unconditionally inside the handler. `shareAsync` returns
`Promise<void>`, there is no result shape that depends on which branch
fires, and the handler runs at most once per controller lifecycle, so no
double-resolve risk.
```swift
activityController.completionWithItemsHandler = { _, _, _, _ in
promise.resolve(nil)
}
```
# Test Plan
Verified on iOS with `expo-sharing@55.0.18` (same code as `main`),
patched locally via `pnpm patch` and rebuilt.
| Flow | Before | After |
| --- | --- | --- |
| Tap Print in share sheet, then Cancel in print dialog | Promise never
resolves, subsequent `shareAsync` calls hang | Resolves on dismissal |
| Tap Print, then Print in print dialog | Resolves | Resolves |
| Dismiss share sheet without picking an activity | Resolves | Resolves
|
| Tap an activity, then cancel its compose dialog (Mail, Messages, etc.)
| Same root cause as Print, expected to leak | Resolves on dismissal |
No JS API change. Behavior for callers that already resolved
successfully is unchanged.
# 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).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why Rename the `smart_retry` Maestro test job config field to `retry_failed_only` to match the rename in eas-cli and universe. The new name is self-explanatory. Linear: [ENG-21159](https://linear.app/expo/issue/ENG-21159/rename-smart-retry-to-retry-failed-only). # How Renamed `smart_retry` → `retry_failed_only` in: - `docs/pages/eas/workflows/syntax.mdx` - `docs/pages/eas/workflows/pre-packaged-jobs.mdx` (YAML example + parameter table) Docs-only; no behavior change. # Test Plan Visual confirmation that the Maestro section in `pre-packaged-jobs.mdx` and `syntax.mdx` renders with the new field name. Companion PRs land the matching rename in code: - expo/eas-cli#3709 (BuildStepInput id) - expo/universe#27434 (Zod schema + step param) # Checklist - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] N/A: \`changelog.md\` (docs-only change, no package sources touched) - [ ] N/A: \`npx expo prebuild\` & EAS Build (no module plugin) Signed-off-by: Ash Wu <hsatac@gmail.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 : )