Comments (10)
Hey, we've encountered the same problem on our project, as not all our users need stripe loaded. We created this library to asynchronously load scripts. The example on the page is essentially a StripeProviderProvider. This has more or less solved the problem for us. I think it has advantages over the other discussed methods because it is event driven and doesn't use polling. Let me know if you see any issues with this.
from react-stripe-elements.
Initial idea for a fix: #25
from react-stripe-elements.
@rixth thanks for the report and the PR! I went ahead and fleshed out some alternative ideas here: #25 (comment)
from react-stripe-elements.
@rixth Thinking on this a bit more, is there a reason y'all can't do the polling in your own code and only render the StripeProvider
tree once window.Stripe
is available? None of react-stripe-elements' components are useful until window.Stripe
is available. After putting together the example in the custom elements
instance PR (#27), it feels like a worse developer experience overall. The benefits of polling and then passing the elements instance compared to polling and then creating the StripeProvider
-tree seem minimal. Perhaps we can improve the error messaging in StripeProvider
and in the README and provide a cookbook for dealing async loading. What are your thoughts?
from react-stripe-elements.
So the main issue I see with this approach is the exactly one that you identified here: #25 (comment) In fact isn't #25 more-or-less what you're describing, but supported explicitly by the library?
We'd be blocking the display of everything inside the stripe provider until Stripe was available. In the case of passing the elements
prop to the components themselves has the added benefit that we would be minimizing the amount of page content that is dependent on Stripe before displaying.
from react-stripe-elements.
from react-stripe-elements.
Going down to the individual fields is probably a bit much, but limiting to the form, would be fine. So what you're suggesting is essentially what #25 does, only hoisting this behaviour up and out in to the application? Just trying to get clarity before I spend time on this
from react-stripe-elements.
It seems like I'm essentially going to write a StripeProviderProvider
:)
from react-stripe-elements.
from react-stripe-elements.
Thank you @domlyons. Very cool.
from react-stripe-elements.
Related Issues (20)
- CardNumberElement Placeholder Not Working HOT 1
- CardCvcElement onComplete fires after three digits for AMEX card HOT 2
- docs: confirmCardPayment with split card elements needs a docs update HOT 1
- Payment Fields are not clickable in Samsung device HOT 2
- My Stripe promise with React never resolves even after trying a timeout HOT 1
- 3D Secure Test Payment Screen iFrame - Any way to preview or control width/height? HOT 1
- Not able to customize CSS of CardElement HOT 1
- Split Card Number Not Inserted with 1Password Autofill HOT 1
- Elements locale option not localizing HOT 5
- When click on stripe element its getting blur HOT 1
- About scan card feature in mobile device HOT 1
- PaymentRequestButton Does Not Load On Safari PWA HOT 1
- Stripe console message : parameter: betas is not a recognized parameter. HOT 2
- Connection Failure text in CardNumberElement HOT 3
- loadStripe does not seem to work
- styling CardElement HOT 1
- Add support for extra types of buttons for Apple Pay HOT 1
- Elements tag doesn't accept locale HOT 2
- Add a full stripe elements integration example HOT 1
- PaymentRequestButtonElement Integration Error with saved browser card HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-stripe-elements.