Skip to content

fix: preserve default menu icon colors on iOS new arch#1195

Open
michaelpomogajko wants to merge 1 commit intoreact-native-menu:masterfrom
michaelpomogajko:fix/new-arch-ios-menu-icons
Open

fix: preserve default menu icon colors on iOS new arch#1195
michaelpomogajko wants to merge 1 commit intoreact-native-menu:masterfrom
michaelpomogajko:fix/new-arch-ios-menu-icons

Conversation

@michaelpomogajko
Copy link

Summary

  • stop forwarding imageColor and titleColor from the New Architecture bridge when they were not explicitly set in JS
  • keep the existing behavior for explicitly provided colors

Root cause

In the Fabric/New Architecture path, codegen turns optional imageColor and titleColor fields into plain integer props with a default value of 0. MenuView.mm always forwarded those values into the Objective-C action dictionaries, so iOS treated missing imageColor as a real color and tinted SF Symbols to an invisible color.

This shows up as menu titles rendering correctly while icons disappear entirely on iOS New Architecture, even when the JS action config follows the documented API.

Validation

  • reproduced in an Expo 55 / React Native 0.83 app using @react-native-menu/menu 2.0.0
  • verified that icons render again after omitting unset color props from the New Arch bridge
  • change is scoped to ios/NewArch/MenuView.mm only

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant