Repository navigation
feat(payments): preloadCheckout() loads the provider's script before mounting - #357
Merged
Merged
Conversation
…mounting mountCheckout() fetches the payments config and loads the provider's script only after the checkout exists, so the PayPal button waits for both on top of order creation. preloadCheckout() starts them when the checkout form opens. It never rejects: mountCheckout() retries and reports any failure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
🚀 Package Preview Available!Install this PR's preview build with npm: npm i @base44-preview/sdk@0.8.57-pr.357.4227057Prefer not to change any import paths? Install using npm alias so your code still imports npm i "@base44/sdk@npm:@base44-preview/sdk@0.8.57-pr.357.4227057"Or add it to your {
"dependencies": {
"@base44/sdk": "npm:@base44-preview/sdk@0.8.57-pr.357.4227057"
}
}
Preview published to npm registry — try new features instantly! |
guyofeck
reviewed
Oct 29, 2026
guyofeck
left a comment
Collaborator
There was a problem hiding this comment.
why does the new type is internal?
guyofeck
approved these changes
Oct 29, 2026
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.
Summary
Adds
base44.payments.preloadCheckout(provider). It fetches the payments config and loads the provider's checkout script (PayPal or Stripe) ahead of time, so a latermountCheckout()skips both and renders sooner.Today the PayPal button appears only after a serial chain: the app creates the checkout, then
mountCheckout()fetches the config, downloads PayPal's script, creates the PayPal instance, checks eligibility and renders. The config and script don't depend on the checkout, so an app can start them when the checkout form opens, while the buyer is still typing.mountCheckout(), which reports the error as before.mountCheckout().mountCheckout().Testing
vitest run tests/unit: 412 passed, including 3 newpreloadCheckouttests (single config fetch and script tag across calls, invalid script URL loads nothing, failed config fetch still resolves).npm run test:types: passes, with a type test for the provider union.🤖 Generated with Claude Code