Skip to content

feat(components): bank-selection redirect methods, iDEAL/Dotpay (ORC-6514)#387

Closed
OnurVar wants to merge 1 commit into
ov/feat/ORC-6514-foundationalfrom
ov/feat/ORC-6514-banks
Closed

feat(components): bank-selection redirect methods, iDEAL/Dotpay (ORC-6514)#387
OnurVar wants to merge 1 commit into
ov/feat/ORC-6514-foundationalfrom
ov/feat/ORC-6514-banks

Conversation

@OnurVar

@OnurVar OnurVar commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Bank-selection redirect methods (iDEAL on both platforms, Dotpay on Android) now flow through the generic usePrimerPaymentMethod(type) — narrow on kind: 'bankSelection'. Fifth step of the APM hook unification (after Google Pay #376, Apple Pay #374, PayPal #385, foundational #386).

This is the first "build the vertical slice" PR: the bespoke usePrimerBanks hook + BanksController type are gone; their surface folds into a bankSelection variant of the one hook, and the prebuilt BankSelectionScreen now dogfoods that public API.

What's here

  • usePrimerPaymentMethod('ADYEN_IDEAL')kind: 'bankSelection' with banks, selectedBankId, start() (fetch issuers), filter(text), selectBank(id), submit() (launch the bank redirect). Outcome arrives on the shared paymentOutcome.
  • Routing: COMPONENT_WITH_REDIRECT → bankSelection in the shared routeMethodSelection; MethodSelectionScreen gets the matching case; the category union gains COMPONENT_WITH_REDIRECT.
  • The provider owns the ComponentWithRedirectManager lifecycle (issuer fetch, step/error events) + the bank sub-actions — the native SDK owns the redirect + status polling.
  • ComponentWithRedirectManager.provide drops its hard-coded === 'ADYEN_IDEAL' gate so any redirect method (incl. Dotpay) is served; the native configure(type) validates. TS wrapper only — no native change.
  • BankSelectionScreen rebuilt on usePrimerPaymentMethod (was usePrimerBanks).

Breaking change

usePrimerBanks and BanksController are removed — use usePrimerPaymentMethod(type) and narrow on kind: 'bankSelection'.

Base

ov/feat/ORC-6514-foundational (#386).

Jira

ORC-6514

Test plan

  • yarn typecheck / yarn lint — clean
  • yarn jest — green bar the known tr_TR localization flake; new router case + 5 bankSelection cases (routes to bankSelection; available on both platforms when listed; start() configures + fetches issuers; selectBank/submit forward to native)
  • Manual iDEAL — bank picker → select → Pay → bank redirect (in-app browser) → onCheckoutComplete (sandbox payment succeeded)
  • Dotpay — not device-run (the demo merchant doesn't surface it, even on a PL/PLN session). Covered by parity (identical COMPONENT_WITH_REDIRECT path as iDEAL) + the ADYEN_DOTPAY → bankSelection unit test + the dropped iDEAL-only bridge gate.

@OnurVar OnurVar requested a review from a team as a code owner June 17, 2026 21:46
@github-actions

Copy link
Copy Markdown
Warnings
⚠️ This PR doesn't seem to contain any updated Unit Test for Swift 🤔. Please consider double checking it 🙏
Messages
📖 ✅ No SwiftLint violations found.

Generated by 🚫 Danger Swift against 4730dbf

@github-actions

Copy link
Copy Markdown
Fails
🚫

🙁 Found 1 ESLint violations.

🚫

src/Components/hooks/useCardNetworkDescriptor.ts#L18 - ** ESLint **: Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator. - (@typescript-eslint/no-floating-promises)

Warnings
⚠️ Please assign someone aside from CODEOWNERS (@checkout-pci-reviewers) to review this PR.

Generated by 🚫 dangerJS against 4730dbf

@github-actions

Copy link
Copy Markdown
Warnings
⚠️ This PR doesn't seem to contain any updated Unit Test for Kotlin 🤔. Please consider double checking it 🙏
Messages
📖 ✅ No detekt violations found.

Generated by 🚫 Danger Kotlin against 4730dbf

@unblocked unblocked Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No issues 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.

@OnurVar OnurVar marked this pull request as draft June 17, 2026 21:54
@OnurVar OnurVar self-assigned this Jun 17, 2026
@OnurVar OnurVar force-pushed the ov/feat/ORC-6514-foundational branch from 01d6bca to 630a84e Compare June 23, 2026 19:01
…entMethod (ORC-6514)

Banks ride the generic hook's bankSelection variant; drop the iDEAL-only bridge gate.
@OnurVar

OnurVar commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by the consolidated APM-unification stack — #392 (native-UI) → #393 (bank) → #394 (raw-data) → #395 (QR) → #396 (Klarna). Closing in favor of those; the new stack carries the same work plus the review fixes.

@OnurVar OnurVar closed this Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant