Conversation
Generated by 🚫 Danger Swift against 7d9f4c5 |
There was a problem hiding this comment.
1 issue found.
About Unblocked
Unblocked has been set up to automatically review your team's pull requests to identify genuine bugs and issues.
📖 Documentation — Learn more in our docs.
💬 Ask questions — Mention @unblocked to request a review or summary, or ask follow-up questions.
👍 Give feedback — React to comments with 👍 or 👎 to help us improve.
⚙️ Customize — Adjust settings in your preferences.
| <TouchableOpacity | ||
| style={[styles.payButton, !payEnabled && styles.payButtonDisabled]} | ||
| onPress={handlePay} | ||
| disabled={!payEnabled} | ||
| > |
There was a problem hiding this comment.
The pay button is disabled only when !payEnabled, but it does not account for showProcessing. While the processing overlay covers the screen, a fast tap before the overlay renders (or on slower devices) can trigger handlePay a second time since the button is still technically enabled. Other screens in this PR (e.g. AccordionCheckoutScreen line 352, CoffeeReorderScreen line 422) correctly use disabled={!payEnabled || showProcessing}.
| <TouchableOpacity | |
| style={[styles.payButton, !payEnabled && styles.payButtonDisabled]} | |
| onPress={handlePay} | |
| disabled={!payEnabled} | |
| > | |
| disabled={!payEnabled || showProcessing} |
Generated by 🚫 Danger Kotlin against 7d9f4c5 |
|
7d9f4c5 to
6b75ce6
Compare
6b35a30 to
b4b8966
Compare
6b75ce6 to
b142845
Compare
b4b8966 to
a48bae6
Compare
b142845 to
3094940
Compare
a48bae6 to
3ac806e
Compare
3094940 to
d2278aa
Compare
d2278aa to
ff34021
Compare
Summary
Replaces the single-row Checkout Components screen in the example app with an 8-example gallery, ordered as the customization ladder and badged per tier:
themepropusePrimerVaultManager, new-card fallbackThe list screen fetches a client session per example and presents overlays in place or pushes screens with the token as a route param. Every screen handles loading, processing, success and error (processing mirrors the drop-in's pattern: flag from submit/retry initiation until the outcome lands).
Example-app only; no SDK changes.
Merge gate
Merges after its parents; same ADR gate: https://app.notion.com/p/377ca65dc30e81de958bdc3bb2b887b8
Stacked on
#381 (naming) → #382 (context provider) → this.
Jira
https://primerapi.atlassian.net/browse/ORC-6924
Test plan