Minimal, hand-generated BuckleScript + ReasonReact bindings for react-stripe-elements. The bindings are vanilla, which means it'll mostly be 1-to-1 bindings. However, the bindings will help you out by for example removing stringly-typed code wherever possible.
State: experimental, but active. unpublished and requires polishing
Note that these examples are not runnable. You would have to copy the files to your own React app to test them. For testing the bindings, I just constantly yarn add <path-to-local-directory-of-bs-stripe-react-elements>
within a different web app to get the updated changes.
This demo ideally will match Stripe's own basic demo.
TBD. I will add specific component usage (styling a CardElement for example).
Since the package is currently unpublished, we do not use npm
. Instead,
we rely on the master
branch.
yarn
yarn add cnguy/bs-react-stripe-elements#master
npm
npm install --save cnguy/bs-react-stripe-elements#master
Add @cnguy/bs-react-stripe-elements
to bsconfig.json
bs-dependencies
.
Add Stripe.js
to your index.html
file as well. Put it before your app's JS bundle.
<html>
<head />
<body>
<div id="root" />
<script src="https://js.stripe.com/v3/"></script>
<script src="bundle.js"></script>
</body>
</html>
let component = ReasonReact.statelessComponent("App");
let make = _children => {
...component,
render: _self =>
<div>
StripeElements.(
<StripeProvider apiKey="pk_abcdefghijklmnoprstuvwxyz">
...<CheckoutForm />
</StripeProvider>
)
</div>,
};
let component = ReasonReact.statelessComponent "App"
let make _children =
{
component with
render =
(fun _self ->
((div
~children:[let open StripeElements in
((StripeProvider.createElement
~apiKey:"pk_abcdefghijklmnoprstuvwxyz"
~children:((CheckoutForm.createElement
~children:[] ())[@JSX ]) ())
[@JSX ])] ())[@JSX ]))
}
Currently unpublished. master
branch will be the "releases" while the development
branch will be where we'll be working.
Goal is to figure out all issues and publish a v0.0.1
that implements a majority of the API's.
Hi! I'm Chau. This is my first Reason
binding, and it's mostly experimental, but I really, really want to polish it, especially because I think Stripe is cool. Also, I use a lot of Reason libraries made by amazing community members, and so I want to try to give back in some way.
All contributions are welcome, whether it's fixing bugs, advice, or important questions (how will I deal with style props for example? will I make a wrapper, convenient API? etc).
I'm pretty active, so don't hesitate to post an issue or send a pull request.