Remove New Arch interop checks - New Arch only#456
Open
kieran-osgood-shopify wants to merge 4 commits intocx-rn-new-arch-planfrom
Open
Remove New Arch interop checks - New Arch only#456kieran-osgood-shopify wants to merge 4 commits intocx-rn-new-arch-planfrom
kieran-osgood-shopify wants to merge 4 commits intocx-rn-new-arch-planfrom
Conversation
Contributor
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
This was referenced Mar 30, 2026
cc709d6 to
f89b585
Compare
14eb240 to
b78d8d1
Compare
b78d8d1 to
ead781e
Compare
Now that we're on TurboModules, the four promise-based methods (getConfig, configureAcceleratedCheckouts, isAcceleratedCheckoutAvailable, isApplePayAvailable) can use synchronous JSI dispatch. Their native implementations are pure in-memory reads or state writes, so the Promise wrapper was boilerplate that blocked readable call sites. BREAKING CHANGE: Consumers must drop `await` from these calls. - Spec: return ConfigurationResultSpec / boolean directly instead of Promise - iOS Swift: remove resolve/reject, return NSDictionary / NSNumber - Android: annotate with isBlockingSynchronousMethod = true, return directly - Consumer API in src/index.ts and src/context.tsx: drop async / await - Tests: replace mockResolvedValue with mockReturnValue, drop awaits - Sample app: drop awaits in Cart and SettingsScreen Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The codegen spec returns colorScheme and logLevel as `string`, but the consumer-facing Configuration type uses typed enums. Replace the previous `as Configuration` cast with a parser that: - Validates colorScheme/logLevel against known enum values, falling back to the safest default when the native side returns an unrecognised value - Re-shapes the flat iOS color fields into the nested `colors.ios` shape so a round trip through setConfig preserves user overrides - Omits undefined fields so consumers don't see spurious `title: undefined` Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Swift tests were still calling the four converted methods with resolve/reject callbacks. Update them to call the sync API directly and compare against the returned NSNumber/NSDictionary. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.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 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.

What changes are you making?
Following on from the introduction of turbo specs in #449 this PR removes the existing fabric conditionals leaving only the new architecture enabled going forwards
PR Checklist
Important
Releasing a new version of the kit?
package.jsonfile.Tip
See the Contributing documentation for instructions on how to publish a new version of the library.