[expo-router][ios] support xcasset in header items#43046
Merged
Conversation
Contributor
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
3 tasks
Contributor
There was a problem hiding this comment.
Pull request overview
Adds iOS support for using Xcode asset-catalog images (.xcassets) as toolbar/header icons in expo-router’s stack toolbar utilities.
Changes:
- Extend
StackToolbarIconPropswith a newxcassetoption (iOS). - Convert
StackToolbarIcon xcasset="..."into the corresponding native-stack header icon shape ({ type: 'xcasset', name }). - Add/extend iOS test coverage for xcasset conversion behavior (including submenu warning behavior).
Reviewed changes
Copilot reviewed 6 out of 12 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| packages/expo-router/src/layouts/stack-utils/toolbar/toolbar-primitives.tsx | Adds xcasset to the StackToolbarIcon prop union with iOS-focused documentation. |
| packages/expo-router/src/layouts/stack-utils/toolbar/shared.ts | Implements xcasset conversion in shared header-item conversion; adds extractXcassetName. |
| packages/expo-router/src/layouts/stack-utils/tests/shared.test.ios.tsx | Adds tests validating xcasset icon conversion + extractXcassetName behavior. |
| packages/expo-router/src/layouts/stack-utils/tests/StackToolbarMenu.test.ios.tsx | Adds test ensuring submenu warns when xcasset icons are used (non-SF-symbol limitation). |
| packages/expo-router/src/layouts/stack-utils/tests/StackToolbarButton.test.ios.tsx | Adds test ensuring xcasset icon is extracted for header button conversion. |
| packages/expo-router/build/layouts/stack-utils/toolbar/toolbar-primitives.js.map | Build artifact update reflecting new xcasset prop typing/docs. |
| packages/expo-router/build/layouts/stack-utils/toolbar/toolbar-primitives.d.ts.map | Build artifact update reflecting new xcasset prop typing/docs. |
| packages/expo-router/build/layouts/stack-utils/toolbar/toolbar-primitives.d.ts | Build artifact update reflecting new xcasset prop typing/docs. |
| packages/expo-router/build/layouts/stack-utils/toolbar/shared.js.map | Build artifact update reflecting xcasset conversion + new helper export. |
| packages/expo-router/build/layouts/stack-utils/toolbar/shared.js | Build artifact update reflecting xcasset conversion + new helper export. |
| packages/expo-router/build/layouts/stack-utils/toolbar/shared.d.ts.map | Build artifact update reflecting new helper export. |
| packages/expo-router/build/layouts/stack-utils/toolbar/shared.d.ts | Build artifact update reflecting new helper export. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
8a8b560 to
6b517b1
Compare
Ubax
commented
Feb 11, 2026
Contributor
Author
There was a problem hiding this comment.
This file will render as the filled rectangle, because currently there is no way to change the render mode via expo-assets plugin
6b517b1 to
f50ae59
Compare
Contributor
|
Subscribed to pull request
Generated by CodeMention |
f50ae59 to
e7d7e38
Compare
3 tasks
hassankhan
approved these changes
Feb 11, 2026
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

Why
In #42867, the support for xcassets was added to native tabs. In this PR the same option is added to header items
How
Test Plan
Checklist
changelog.mdentry and rebuilt the package sources according to this short guidenpx expo prebuild& EAS Build (eg: updated a module plugin).