Repository navigation
Conversation
markmur
left a comment
There was a problem hiding this comment.
Three implementation notes for reviewers.
| } catch (IOException e) { | ||
| Log.e(TAG, "Error emitting link click event", e); | ||
| } | ||
| return linkAction; |
There was a problem hiding this comment.
The native SDK needs an immediate link decision, so linkAction is chosen before presentation. onLinkClick is an asynchronous notification; returning a value from JS cannot change the native action.
| return; | ||
| } | ||
| case 'dismiss': | ||
| options.onTerminal?.(); |
There was a problem hiding this comment.
Completion keeps the subscription alive while the confirmation page remains visible. Dismissal and failure clean up before invoking app code, allowing those callbacks to safely present another checkout.
| } | ||
|
|
||
| export function decodeCheckout(value: unknown): Checkout { | ||
| return decodeCheckoutSnapshot(value) as unknown as Checkout; |
There was a problem hiding this comment.
Kit snapshots omit protocol metadata but still need schema-aware decoding. This converts known fields such as line_items to lineItems while preserving arbitrary extension keys and values.
6c54c36 to
5a1262b
Compare
Bundle Size Budgets
Bundle and package sizeWeb bundle sizes cover shipped runtime JavaScript. Package sizes cover the full published archive, including any source maps, declarations, and documentation it contains.
React Native package files (uncompressed)These are uncompressed file sizes; they do not sum to the compressed package size above.
How sizes are measuredMeasured from the PR base SHA and PR head SHA. Web bundle rows sum shipped |
Bitrise buildsInstall this buildOpen Tophat, select your target device, then click Install. Links open on the Mac running Tophat.
Checkout Kit E2E results
|
1ea9ad7 to
cb7bb33
Compare
cb7bb33 to
eeae337
Compare
tiagocandido
left a comment
There was a problem hiding this comment.
iOS E2E is failing on all four React Native flows (launch, present/close, guest, buyer identity), while Android passes. Do you know if that is related to this change?
eeae337 to
7369c47
Compare
7369c47 to
9e0ab13
Compare
Replace raw protocol callbacks with
onStart,onUpdate,onComplete,onFail, andonDismissfor checkout sheets and accelerated buttons. Events expose Kit checkout snapshots through the shared schema-aware decoder, and completion keeps observations alive until dismissal or failure.The latest presentation owns subscriptions across
ShopifyCheckoutinstances. Both native bridges keep closing sessions separate from new requests and bound the wait for dismissal to five seconds. Android also cancels queued presentations after module invalidation. The sample clears completed carts on dismissal or failure.Pin Swift to 4.0.0-alpha.7 and Android to 4.0.0-alpha.8, update published CocoaPods lockfiles, remove the public protocol handler API, and document the migration. Link opening uses native defaults; explicit link policy is added in the next PR.
Stack