-
Notifications
You must be signed in to change notification settings - Fork 0
[pull] main from expo:main #513
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
…other apps (#42242) # Why Adds a config plugin, which adds appropiate sharing target on iOS and intent filters on Android. # How The plugin adds a `share-extension` target, which makes the app appear in the system sharing bottom sheet. One a share is received the main app is opened with a deeplink. Subsequent PRs include code for handling the data. On Android we just need to add some intent filters. You can check out `ShareExtensionConfigPluginProps` for possible configuration options of the plugin. On iOS opening the main target from a sharing extension is unsupported and generally discouraged, but possible with a hack (see `template-files/ShareIntoViewController`). This is not guaranteed to work in future iOS versions and is the main roadblock in marking these changes as non-experimental. Based on other similar libraries and information on the web I can pretty confidently say, that this hack will not cause apps to be rejected from the App Store though. There is some stuff, like data structures, that we'd like to share between the extension target and the main-target. Such files are stored in the `ios/shared` directory and are automatically linked with the target during the prebuild. Here is how a sample plugin configuration would look like in an app ``` [ "expo-sharing", { "ios": { "enabled": true, "activationRule": { "supportsText": 1, "supportsWebUrlWithMaxCount": 1, "supportsImageWithMaxCount": 2, "supportsMovieWithMaxCount": 3, "supportsFileWithMaxCount": 4, "supportsWebPageWithMaxCount": 5, "supportsAttachmentsWithMaxCount": 6 } }, "android": { "enabled": true, "singleShareMimeTypes": [ "image/*", "application/*", "text/*", "video/*" ], "multipleShareMimeTypes": [ "image/*", "application/*", "text/*", "video/*" ] } } ] ``` iOS activation rule can also be a string # Test Plan Tested on iOS and Android Functionality demo: https://github.com/user-attachments/assets/d2caa3b8-d861-4113-83a7-ca49281d59b7
…42356) # Why We should include an Android project for testing the brownfield integrated approach # How Create a new Android project using Android studio to test and and integrate react native using minimal tester as an aar # Test Plan Run it on Android # 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 Adds native code changes to `expo-sharing` with functionality for receiving and reading shared data # How Adds funcitons for reading shared data stored in UserDefaults by the share-extension. There are two important methods in the API: - `getSharedData` - Fetches raw data shared with the app, is synchronous and doesn't require a network connection. Most of data resolving has to be done by the user. - `getResolvedSharedData` - Fetches the raw data and resolves it. Includes content type, mimeType of the content etc. Especially useful when an `url` was shared with the app. In case of urls fetches the header of the content in order to determine what is the content type, content uri etc. You can see it at the end of the demo video in this PR: #42242. `getResolvedSharedData` makes it super-easy to display the shared content in libraries like `expo-image`, `expo-video`, `expo-audio`, `expo-file-system`, the resolved `contentUri` can be dropped as a source into any of those libraries (assuming correct content type) # Test Plan Tested in a separate test app on iOS Simulator and an iPhone 13. Tested in iOS 26.2 and 17.5. # Checklist
Co-authored-by: Tomasz Sapeta <tsapeta@expo.dev>
…kt` (#42025) # Why During pre-beta checkup I've found that we aren't exporting all types into the docs. Also noticed a duplicated code block, which can be removed. # How Update the exports, remove duplicated code. # Test Plan Tested in BareExpo on Android and ran the docs server locally.
# Why In SDK 55, the router native tabs no longer export `Icon` and `Label`. <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # How Use the new API for router bottom tabs label and icon. <!-- How did you build this feature or fix this bug and why? --> # Test Plan - Create a new project using the latest canary - Replace the contents of `src/components/app-tabs.native.tsx` with the changes in this PR - `npx expo run:ios` <!-- 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 Adds native code changes to expo-sharing with functionality for receiving and reading shared data # How Adds funcitons for reading shared data stored in UserDefaults by the share-extension. There are two important methods in the API: getSharedData - Fetches raw data shared with the app, is synchronous and doesn't require a network connection. Most of data resolving has to be done by the user. getResolvedSharedData - Fetches the raw data and resolves it. Includes content type, mimeType of the content etc. Especially useful when an url was shared with the app. In case of urls fetches the header of the content in order to determine what is the content type, content uri etc. You can see it at the end of the demo video in this PR: #42242. `getResolvedSharedData` makes it super-easy to display the shared content in libraries like expo-image, expo-video, expo-audio, expo-file-system, the resolved contentUri can be dropped as a source into any of those libraries (assuming correct content type) # Test Plan Tested in a separate test app on a Pixel 8 running Android 16
…` types (#42363) # Why The `ExpoRequest` and `ExpoResponse` types have been marked deprecated since at least SDK 53 and it should be safe to remove them. # How Deleted the types from `expo-router/server`. # Test Plan - CI # 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)
…endering (#42367) # Why Fixes a regression introduced in #42051 where SSR pages fail to render when a loader returns `undefined`. #42051 changed `executeLoader()` to return raw results instead of wrapping them in `{ data: ... }`. This broke the check in `getHtml()`, which used to check `if (loaderResult)`. # How Changed the conditional from checking the result value to checking if the route has a loader. Also ensured `null` values are preserved (not converted to `{}`) while `undefined` is normalized to `{}`. # Test Plan - CI # 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)
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 : )